##// END OF EJS Templates
Merge branch 'master' into Carreau-patch-4
Matthias Bussonnier -
r27644:c272c021 merge Carreau-patch-4
parent child Browse files
Show More
@@ -40,7 +40,8 b' See IPython `README.rst` file for more information:'
40
40
41 https://github.com/ipython/ipython/blob/master/README.rst
41 https://github.com/ipython/ipython/blob/master/README.rst
42
42
43 """)
43 """
44 )
44
45
45 #-----------------------------------------------------------------------------
46 #-----------------------------------------------------------------------------
46 # Setup the top level names
47 # Setup the top level names
1 NO CONTENT: modified file
NO CONTENT: modified file
@@ -589,7 +589,7 b' class Completer(Configurable):'
589
589
590 This will enable completion on elements of lists, results of function calls, etc.,
590 This will enable completion on elements of lists, results of function calls, etc.,
591 but can be unsafe because the code is actually evaluated on TAB.
591 but can be unsafe because the code is actually evaluated on TAB.
592 """
592 """,
593 ).tag(config=True)
593 ).tag(config=True)
594
594
595 use_jedi = Bool(default_value=JEDI_INSTALLED,
595 use_jedi = Bool(default_value=JEDI_INSTALLED,
@@ -166,7 +166,7 b' class HistoryAccessor(HistoryAccessorBase):'
166 in which case there will be no stored history, no SQLite connection,
166 in which case there will be no stored history, no SQLite connection,
167 and no background saving thread. This may be necessary in some
167 and no background saving thread. This may be necessary in some
168 threaded environments where IPython is embedded.
168 threaded environments where IPython is embedded.
169 """
169 """,
170 ).tag(config=True)
170 ).tag(config=True)
171
171
172 connection_options = Dict(
172 connection_options = Dict(
1 NO CONTENT: modified file
NO CONTENT: modified file
@@ -58,8 +58,8 b' def script_args(f):'
58 '--no-raise-error', action="store_false", dest='raise_error',
58 '--no-raise-error', action="store_false", dest='raise_error',
59 help="""Whether you should raise an error message in addition to
59 help="""Whether you should raise an error message in addition to
60 a stream on stderr if you get a nonzero exit code.
60 a stream on stderr if you get a nonzero exit code.
61 """
61 """,
62 )
62 ),
63 ]
63 ]
64 for arg in args:
64 for arg in args:
65 f = arg(f)
65 f = arg(f)
@@ -87,7 +87,8 b' g()'
87
87
88 #####
88 #####
89
89
90 MULTILINE_SYSTEM_ASSIGN_AFTER_DEDENT = ("""\
90 MULTILINE_SYSTEM_ASSIGN_AFTER_DEDENT = (
91 """\
91 def test():
92 def test():
92 for i in range(1):
93 for i in range(1):
93 print(i)
94 print(i)
@@ -547,7 +547,7 b' class TestSafeExecfileNonAsciiPath(unittest.TestCase):'
547 self.TESTDIR = join(self.BASETESTDIR, u"åäö")
547 self.TESTDIR = join(self.BASETESTDIR, u"åäö")
548 os.mkdir(self.TESTDIR)
548 os.mkdir(self.TESTDIR)
549 with open(
549 with open(
550 join(self.TESTDIR, u"åäötestscript.py"), "w", encoding="utf-8"
550 join(self.TESTDIR, "åäötestscript.py"), "w", encoding="utf-8"
551 ) as sfile:
551 ) as sfile:
552 sfile.write("pass\n")
552 sfile.write("pass\n")
553 self.oldpath = os.getcwd()
553 self.oldpath = os.getcwd()
@@ -236,7 +236,8 b' def test_run_cell():'
236 if 4:
236 if 4:
237 print "bar"
237 print "bar"
238
238
239 """)
239 """
240 )
240 # Simply verifies that this kind of input is run
241 # Simply verifies that this kind of input is run
241 ip.run_cell(complex)
242 ip.run_cell(complex)
242
243
@@ -448,7 +448,9 b' def test_multiline_time():'
448 ip = get_ipython()
448 ip = get_ipython()
449 ip.user_ns.pop('run', None)
449 ip.user_ns.pop('run', None)
450
450
451 ip.run_cell(dedent("""\
451 ip.run_cell(
452 dedent(
453 """\
452 %%time
454 %%time
453 a = "ho"
455 a = "ho"
454 b = "hey"
456 b = "hey"
@@ -122,7 +122,8 b' class PasteTestCase(TestCase):'
122 ip.user_ns.pop("x")
122 ip.user_ns.pop("x")
123
123
124 def test_paste_py_multi(self):
124 def test_paste_py_multi(self):
125 self.paste("""
125 self.paste(
126 """
126 >>> x = [1,2,3]
127 >>> x = [1,2,3]
127 >>> y = []
128 >>> y = []
128 >>> for i in x:
129 >>> for i in x:
@@ -145,7 +146,8 b' class PasteTestCase(TestCase):'
145
146
146 def test_paste_email(self):
147 def test_paste_email(self):
147 "Test pasting of email-quoted contents"
148 "Test pasting of email-quoted contents"
148 self.paste("""\
149 self.paste(
150 """\
149 >> def foo(x):
151 >> def foo(x):
150 >> return x + 1
152 >> return x + 1
151 >> xx = foo(1.1)"""
153 >> xx = foo(1.1)"""
@@ -154,7 +156,8 b' class PasteTestCase(TestCase):'
154
156
155 def test_paste_email2(self):
157 def test_paste_email2(self):
156 "Email again; some programs add a space also at each quoting level"
158 "Email again; some programs add a space also at each quoting level"
157 self.paste("""\
159 self.paste(
160 """\
158 > > def foo(x):
161 > > def foo(x):
159 > > return x + 1
162 > > return x + 1
160 > > yy = foo(2.1) """
163 > > yy = foo(2.1) """
@@ -163,7 +166,8 b' class PasteTestCase(TestCase):'
163
166
164 def test_paste_email_py(self):
167 def test_paste_email_py(self):
165 "Email quoting of interactive input"
168 "Email quoting of interactive input"
166 self.paste("""\
169 self.paste(
170 """\
167 >> >>> def f(x):
171 >> >>> def f(x):
168 >> ... return x+1
172 >> ... return x+1
169 >> ...
173 >> ...
@@ -108,7 +108,7 b' def test_list_profiles_in():'
108 for name in ("profile_foo", "profile_hello", "not_a_profile"):
108 for name in ("profile_foo", "profile_hello", "not_a_profile"):
109 Path(td / name).mkdir(parents=True)
109 Path(td / name).mkdir(parents=True)
110 if dec.unicode_paths:
110 if dec.unicode_paths:
111 Path(td / u"profile_ünicode").mkdir(parents=True)
111 Path(td / "profile_ünicode").mkdir(parents=True)
112
112
113 with open(td / "profile_file", "w", encoding="utf-8") as f:
113 with open(td / "profile_file", "w", encoding="utf-8") as f:
114 f.write("I am not a profile directory")
114 f.write("I am not a profile directory")
@@ -66,7 +66,9 b' class ImportDenier(importlib.abc.MetaPathFinder):'
66 """
66 """
67 Importing %s disabled by IPython, which has
67 Importing %s disabled by IPython, which has
68 already imported an Incompatible QT Binding: %s
68 already imported an Incompatible QT Binding: %s
69 """ % (fullname, loaded_api()))
69 """
70 % (fullname, loaded_api())
71 )
70
72
71
73
72 ID = ImportDenier()
74 ID = ImportDenier()
@@ -104,7 +104,7 b' class Audio(DisplayObject):'
104 --------
104 --------
105 ipywidgets.Audio
105 ipywidgets.Audio
106
106
107 AUdio widget with more more flexibility and options.
107 Audio widget with more more flexibility and options.
108
108
109 """
109 """
110 _read_flags = 'rb'
110 _read_flags = 'rb'
@@ -510,11 +510,9 b' class FileLinks(FileLink):'
510
510
511 self.recursive = recursive
511 self.recursive = recursive
512
512
513 def _get_display_formatter(self,
513 def _get_display_formatter(
514 dirname_output_format,
514 self, dirname_output_format, fname_output_format, fp_format, fp_cleaner=None
515 fname_output_format,
515 ):
516 fp_format,
517 fp_cleaner=None):
518 """ generate built-in formatter function
516 """generate built-in formatter function
519
517
520 this is used to define both the notebook and terminal built-in
518 this is used to define both the notebook and terminal built-in
@@ -31,7 +31,7 b' def no_op(*args, **kwargs):'
31
31
32
32
33 @onlyif_cmds_exist("latex", "dvipng")
33 @onlyif_cmds_exist("latex", "dvipng")
34 @pytest.mark.parametrize("s, wrap", [(u"$$x^2$$", False), (u"x^2", True)])
34 @pytest.mark.parametrize("s, wrap", [("$$x^2$$", False), ("x^2", True)])
35 def test_latex_to_png_dvipng_runs(s, wrap):
35 def test_latex_to_png_dvipng_runs(s, wrap):
36 """
36 """
37 Test that latex_to_png_dvipng just runs without error.
37 Test that latex_to_png_dvipng just runs without error.
@@ -273,7 +273,7 b' def test_unicode_repr():'
273 p = pretty.pretty(c)
273 p = pretty.pretty(c)
274 assert p == u
274 assert p == u
275 p = pretty.pretty([c])
275 p = pretty.pretty([c])
276 assert p == u"[%s]" % u
276 assert p == "[%s]" % u
277
277
278
278
279 def test_basic_class():
279 def test_basic_class():
@@ -60,7 +60,7 b' def ipfunc():'
60 In [9]: ipfunc()
60 In [9]: ipfunc()
61 Out[9]: 'ipfunc'
61 Out[9]: 'ipfunc'
62 """
62 """
63 return 'ipfunc'
63 return "ipfunc"
64
64
65
65
66 def ipos():
66 def ipos():
@@ -690,7 +690,7 b' def compute_item_matrix(items, row_first=False, empty=None, *args, **kwargs) :'
690 return ([[_get_or_default(items, c * nrow + r, default=empty) for c in range(ncol)] for r in range(nrow)], info)
690 return ([[_get_or_default(items, c * nrow + r, default=empty) for c in range(ncol)] for r in range(nrow)], info)
691
691
692
692
693 def columnize(items, row_first=False, separator=' ', displaywidth=80, spread=False):
693 def columnize(items, row_first=False, separator=" ", displaywidth=80, spread=False):
694 """ Transform a list of strings into a single string with columns.
694 """Transform a list of strings into a single string with columns.
695
695
696 Parameters
696 Parameters
@@ -135,7 +135,7 b' Metadata'
135 ^^^^^^^^
135 ^^^^^^^^
136
136
137 We often want to provide frontends with guidance on how to display the data. To
137 We often want to provide frontends with guidance on how to display the data. To
138 support this, ``_repr_*_()`` methods (except `_repr_pretty_``?) can also return a ``(data, metadata)``
138 support this, ``_repr_*_()`` methods (except ``_repr_pretty_``?) can also return a ``(data, metadata)``
139 tuple where ``metadata`` is a dictionary containing arbitrary key-value pairs for
139 tuple where ``metadata`` is a dictionary containing arbitrary key-value pairs for
140 the frontend to interpret. An example use case is ``_repr_jpeg_()``, which can
140 the frontend to interpret. An example use case is ``_repr_jpeg_()``, which can
141 be set to return a jpeg image and a ``{'height': 400, 'width': 600}`` dictionary
141 be set to return a jpeg image and a ``{'height': 400, 'width': 600}`` dictionary
1 NO CONTENT: modified file
NO CONTENT: modified file
@@ -51,9 +51,9 b' Pull requests (226):'
51 * `542 <https://github.com/ipython/ipython/issues/542>`_: issue 440
51 * `542 <https://github.com/ipython/ipython/issues/542>`_: issue 440
52 * `533 <https://github.com/ipython/ipython/issues/533>`_: Remove unused configobj and validate libraries from externals.
52 * `533 <https://github.com/ipython/ipython/issues/533>`_: Remove unused configobj and validate libraries from externals.
53 * `538 <https://github.com/ipython/ipython/issues/538>`_: fix various tests on Windows
53 * `538 <https://github.com/ipython/ipython/issues/538>`_: fix various tests on Windows
54 * `540 <https://github.com/ipython/ipython/issues/540>`_: support `-pylab` flag with deprecation warning
54 * `540 <https://github.com/ipython/ipython/issues/540>`_: support ``-pylab`` flag with deprecation warning
55 * `537 <https://github.com/ipython/ipython/issues/537>`_: Docs update
55 * `537 <https://github.com/ipython/ipython/issues/537>`_: Docs update
56 * `536 <https://github.com/ipython/ipython/issues/536>`_: `setup.py install` depends on setuptools on Windows
56 * `536 <https://github.com/ipython/ipython/issues/536>`_: ``setup.py install`` depends on setuptools on Windows
57 * `480 <https://github.com/ipython/ipython/issues/480>`_: Get help mid-command
57 * `480 <https://github.com/ipython/ipython/issues/480>`_: Get help mid-command
58 * `462 <https://github.com/ipython/ipython/issues/462>`_: Str and Bytes traitlets
58 * `462 <https://github.com/ipython/ipython/issues/462>`_: Str and Bytes traitlets
59 * `534 <https://github.com/ipython/ipython/issues/534>`_: Handle unicode properly in IPython.zmq.iostream
59 * `534 <https://github.com/ipython/ipython/issues/534>`_: Handle unicode properly in IPython.zmq.iostream
@@ -916,7 +916,7 b' Pull Requests (687):'
916 * :ghpull:`4444`: Css cleaning
916 * :ghpull:`4444`: Css cleaning
917 * :ghpull:`4523`: Use username and password for MongoDB on ShiningPanda
917 * :ghpull:`4523`: Use username and password for MongoDB on ShiningPanda
918 * :ghpull:`4510`: Update whatsnew from PR files
918 * :ghpull:`4510`: Update whatsnew from PR files
919 * :ghpull:`4441`: add `setup.py jsversion`
919 * :ghpull:`4441`: add ``setup.py jsversion``
920 * :ghpull:`4518`: Fix for race condition in url file decoding.
920 * :ghpull:`4518`: Fix for race condition in url file decoding.
921 * :ghpull:`4497`: don't automatically unpack datetime objects in the message spec
921 * :ghpull:`4497`: don't automatically unpack datetime objects in the message spec
922 * :ghpull:`4506`: wait for empty queues as well as load-balanced tasks
922 * :ghpull:`4506`: wait for empty queues as well as load-balanced tasks
@@ -1050,7 +1050,7 b' Pull Requests (687):'
1050 * :ghpull:`4214`: engine ID metadata should be unicode, not bytes
1050 * :ghpull:`4214`: engine ID metadata should be unicode, not bytes
1051 * :ghpull:`4232`: no highlight if no language specified
1051 * :ghpull:`4232`: no highlight if no language specified
1052 * :ghpull:`4218`: Fix display of SyntaxError when .py file is modified
1052 * :ghpull:`4218`: Fix display of SyntaxError when .py file is modified
1053 * :ghpull:`4207`: add `setup.py css` command
1053 * :ghpull:`4207`: add ``setup.py css`` command
1054 * :ghpull:`4224`: clear previous callbacks on execute
1054 * :ghpull:`4224`: clear previous callbacks on execute
1055 * :ghpull:`4180`: Iptest refactoring
1055 * :ghpull:`4180`: Iptest refactoring
1056 * :ghpull:`4105`: JS output area misaligned
1056 * :ghpull:`4105`: JS output area misaligned
@@ -81,7 +81,7 b' New features'
81 :mod:`IPython.kernel`, :mod:`IPython.kernel.core`, :mod:`traitlets.config`,
81 :mod:`IPython.kernel`, :mod:`IPython.kernel.core`, :mod:`traitlets.config`,
82 :mod:`IPython.tools` and :mod:`IPython.testing`.
82 :mod:`IPython.tools` and :mod:`IPython.testing`.
83
83
84 * As part of merging in the `ipython1-dev` stuff, the `setup.py` script and
84 * As part of merging in the `ipython1-dev` stuff, the ``setup.py`` script and
85 friends have been completely refactored. Now we are checking for
85 friends have been completely refactored. Now we are checking for
86 dependencies using the approach that matplotlib uses.
86 dependencies using the approach that matplotlib uses.
87
87
@@ -161,7 +161,7 b' Backwards incompatible changes'
161 `'basic'` to `'b'`.
161 `'basic'` to `'b'`.
162
162
163 * IPython has a larger set of dependencies if you want all of its capabilities.
163 * IPython has a larger set of dependencies if you want all of its capabilities.
164 See the `setup.py` script for details.
164 See the ``setup.py`` script for details.
165
165
166 * The constructors for :class:`IPython.kernel.client.MultiEngineClient` and
166 * The constructors for :class:`IPython.kernel.client.MultiEngineClient` and
167 :class:`IPython.kernel.client.TaskClient` no longer take the (ip,port) tuple.
167 :class:`IPython.kernel.client.TaskClient` no longer take the (ip,port) tuple.
@@ -16,9 +16,6 b' IPython 8.3.0'
16 - :ghpull:`13600`, ``pre_run_*``-hooks will now have a ``cell_id`` attribute on
16 - :ghpull:`13600`, ``pre_run_*``-hooks will now have a ``cell_id`` attribute on
17 the info object when frontend provide it.
17 the info object when frontend provide it.
18
18
19 - :ghpull:`13624`, fixed :kbd:`End` key being broken after accepting an
20 autosuggestion.
21
22 .. _version 8.2.0:
19 .. _version 8.2.0:
23
20
24 IPython 8.2.0
21 IPython 8.2.0
@@ -519,8 +516,8 b' Automatic Vi prompt stripping'
519
516
520 When pasting code into IPython, it will strip the leading prompt characters if
517 When pasting code into IPython, it will strip the leading prompt characters if
521 there are any. For example, you can paste the following code into the console -
518 there are any. For example, you can paste the following code into the console -
522 it will still work, even though each line is prefixed with prompts (`In`,
519 it will still work, even though each line is prefixed with prompts (``In``,
523 `Out`)::
520 ``Out``)::
524
521
525 In [1]: 2 * 2 == 4
522 In [1]: 2 * 2 == 4
526 Out[1]: True
523 Out[1]: True
@@ -615,7 +612,7 b' who did a fantastic job at updating our code base, migrating to pytest, pushing'
615 our coverage, and fixing a large number of bugs. I highly recommend contacting
612 our coverage, and fixing a large number of bugs. I highly recommend contacting
616 them if you need help with C++ and Python projects.
613 them if you need help with C++ and Python projects.
617
614
618 You can find all relevant issues and PRs with the SDG 2021 tag `<https://github.com/ipython/ipython/issues?q=label%3A%22Numfocus+SDG+2021%22+>`__
615 You can find all relevant issues and PRs with `the SDG 2021 tag <https://github.com/ipython/ipython/issues?q=label%3A%22Numfocus+SDG+2021%22+>`__
619
616
620 Removing support for older Python versions
617 Removing support for older Python versions
621 ------------------------------------------
618 ------------------------------------------
@@ -45,3 +45,4 b' addopts = --durations=10'
45 --ignore=IPython/utils/version.py
45 --ignore=IPython/utils/version.py
46 doctest_optionflags = NORMALIZE_WHITESPACE ELLIPSIS
46 doctest_optionflags = NORMALIZE_WHITESPACE ELLIPSIS
47 ipdoctest_optionflags = NORMALIZE_WHITESPACE ELLIPSIS
47 ipdoctest_optionflags = NORMALIZE_WHITESPACE ELLIPSIS
48 asyncio_mode = strict
@@ -52,7 +52,9 b' See IPython `README.rst` file for more information:'
52
52
53 Python {py} detected.
53 Python {py} detected.
54 {pip}
54 {pip}
55 """.format(py=sys.version_info, pip=pip_message )
55 """.format(
56 py=sys.version_info, pip=pip_message
57 )
56
58
57 print(error, file=sys.stderr)
59 print(error, file=sys.stderr)
58 sys.exit(1)
60 sys.exit(1)
General Comments 0
You need to be logged in to leave comments. Login now