From 76c7d125f60269c763b56795389abf92a99fa16e Mon Sep 17 00:00:00 2001
From: robot-contrib <robot-contrib@yandex-team.com>
Date: Tue, 17 Oct 2023 12:01:23 +0300
Subject: Update contrib/python/ipython/py3 to 8.16.1

---
 contrib/python/ipython/py3/IPython/core/displayhook.py | 17 ++++++++++++-----
 contrib/python/ipython/py3/IPython/core/release.py     |  2 +-
 contrib/python/ipython/py3/IPython/utils/_sysinfo.py   |  2 +-
 3 files changed, 14 insertions(+), 7 deletions(-)

(limited to 'contrib/python/ipython/py3/IPython')

diff --git a/contrib/python/ipython/py3/IPython/core/displayhook.py b/contrib/python/ipython/py3/IPython/core/displayhook.py
index 1ea8d8506f..b411f11613 100644
--- a/contrib/python/ipython/py3/IPython/core/displayhook.py
+++ b/contrib/python/ipython/py3/IPython/core/displayhook.py
@@ -51,7 +51,7 @@ class DisplayHook(Configurable):
 
         # we need a reference to the user-level namespace
         self.shell = shell
-
+        
         self._,self.__,self.___ = '','',''
 
         # these are deliberately global:
@@ -83,9 +83,15 @@ class DisplayHook(Configurable):
 
     def quiet(self):
         """Should we silence the display hook because of ';'?"""
-        if self.exec_result is not None:
-            return self.semicolon_at_end_of_expression(self.exec_result.info.raw_cell)
-        return False
+        # do not print output if input ends in ';'
+        
+        try:
+            cell = self.shell.history_manager.input_hist_parsed[-1]
+        except IndexError:
+            # some uses of ipshellembed may fail here
+            return False
+        
+        return self.semicolon_at_end_of_expression(cell)
 
     @staticmethod
     def semicolon_at_end_of_expression(expression):
@@ -274,12 +280,13 @@ class DisplayHook(Configurable):
         cull_count = max(int(sz * self.cull_fraction), 2)
         warn('Output cache limit (currently {sz} entries) hit.\n'
              'Flushing oldest {cull_count} entries.'.format(sz=sz, cull_count=cull_count))
-
+        
         for i, n in enumerate(sorted(oh)):
             if i >= cull_count:
                 break
             self.shell.user_ns.pop('_%i' % n, None)
             oh.pop(n, None)
+        
 
     def flush(self):
         if not self.do_full_cache:
diff --git a/contrib/python/ipython/py3/IPython/core/release.py b/contrib/python/ipython/py3/IPython/core/release.py
index 4d0a244e40..152ebcb87b 100644
--- a/contrib/python/ipython/py3/IPython/core/release.py
+++ b/contrib/python/ipython/py3/IPython/core/release.py
@@ -17,7 +17,7 @@
 # version
 _version_major = 8
 _version_minor = 16
-_version_patch = 0
+_version_patch = 1
 _version_extra = ".dev"
 # _version_extra = "rc1"
 _version_extra = ""  # Uncomment this for full releases
diff --git a/contrib/python/ipython/py3/IPython/utils/_sysinfo.py b/contrib/python/ipython/py3/IPython/utils/_sysinfo.py
index c1310937d1..5e2eeadcf3 100644
--- a/contrib/python/ipython/py3/IPython/utils/_sysinfo.py
+++ b/contrib/python/ipython/py3/IPython/utils/_sysinfo.py
@@ -1,2 +1,2 @@
 # GENERATED BY setup.py
-commit = "a6c67bdf4"
+commit = "a2af83ddf"
-- 
cgit v1.2.3