Show More
@@ -4,10 +4,64 b'' | |||||
4 |
|
4 | |||
5 | .. _version 8.12.0: |
|
5 | .. _version 8.12.0: | |
6 |
|
6 | |||
|
7 | IPython 8.12 | |||
|
8 | ------------ | |||
7 |
|
9 | |||
8 | Dynamic documentation dispatch |
|
10 | Hopefully slightly early release for IPython 8.12. Last Thursday of the month, | |
9 | ------------------------------ |
|
11 | even if I guess it's likely already Friday somewhere in the pacific ocean. | |
|
12 | ||||
|
13 | A number of PRs and bug fixes this month with close to 20 PRs merged ! | |||
|
14 | ||||
|
15 | ||||
|
16 | The IPython repo reached :ghpull:``14000`` !! Actually the PR that create those exact release | |||
|
17 | note is :ghpull:`14000`. Ok, more issues and PR is not always better, and I'd | |||
|
18 | love to have more time to close issues and Pull Requests. | |||
|
19 | ||||
|
20 | Let's note that in less than 2 month JupyterCon is back, in Paris please visit | |||
|
21 | `jupytercon.com <https://jupytercon.com>`__, and looking forward to see you | |||
|
22 | there. | |||
|
23 | ||||
|
24 | ||||
|
25 | ||||
|
26 | Packagers should take note that ``typing_extension`` is now a mandatory dependency | |||
|
27 | for Python versions ``<3.10``. | |||
|
28 | ||||
|
29 | ||||
|
30 | ||||
|
31 | Let's note also that according to `NEP29 | |||
|
32 | <https://numpy.org/neps/nep-0029-deprecation_policy.html>`__, It is soon time to | |||
|
33 | stop support for Python 3.8 that will be release more than 3 and 1/2 years ago:: | |||
|
34 | ||||
|
35 | On Apr 14, 2023 drop support for Python 3.8 (initially released on Oct 14, 2019) | |||
|
36 | ||||
|
37 | Thus I am likely to stop advertising support for Python 3.8 in the next | |||
|
38 | release at the end of April. | |||
|
39 | ||||
|
40 | ||||
|
41 | Here are some miscellaneous updates of interest: | |||
|
42 | ||||
|
43 | - :ghpull:`13957` brings updates to the Qt integration, particularly for Qt6. | |||
|
44 | - :ghpull:`13960` fixes the %debug magic command to give access to the local | |||
|
45 | scope. | |||
|
46 | - :ghpull:`13964` fixes some crashes with the new fast traceback code. Note that | |||
|
47 | there are still some issues with the fast traceback code, and I a, likely | |||
|
48 | to fix and tweak behavior. | |||
|
49 | - :ghpull:`13973` We are slowly migrating IPython internals to use proper type | |||
|
50 | objects/dataclasses instead of dictionaries to allow static typing checks. | |||
|
51 | These are technically public API and could lead to breakage, so please let us | |||
|
52 | know if that's the case and I'll mitigate. | |||
|
53 | - :ghpull:`13990`, :ghpull:`13991`, :ghpull:`13994` all improve keybinding and | |||
|
54 | shortcut configurability. | |||
|
55 | ||||
|
56 | As usual you can find the full list of PRs on GitHub under `the 8.12 milestone | |||
|
57 | <https://github.com/ipython/ipython/milestone/114?closed=1>`__. | |||
10 |
|
58 | |||
|
59 | We want to thank the D.E. Shaw group for requesting and sponsoring the work on | |||
|
60 | the following big feature. We had productive discussions on how to best expose | |||
|
61 | this feature | |||
|
62 | ||||
|
63 | Dynamic documentation dispatch | |||
|
64 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |||
11 |
|
65 | |||
12 | We are experimenting with dynamic documentation dispatch for object attribute. |
|
66 | We are experimenting with dynamic documentation dispatch for object attribute. | |
13 | See :ghissue:`13860`. The goal is to allow object to define documentation for |
|
67 | See :ghissue:`13860`. The goal is to allow object to define documentation for | |
@@ -18,29 +72,30 b' In particular when those objects are base types it can be useful to show the' | |||||
18 | documentation |
|
72 | documentation | |
19 |
|
73 | |||
20 |
|
74 | |||
21 | .. code:: |
|
75 | .. code-block:: ipython | |
|
76 | ||||
22 |
|
77 | |||
23 | In [1]: class User: |
|
78 | In [1]: class User: | |
24 | ...: |
|
79 | ...: | |
25 | ...: __custom_documentations__ = { |
|
80 | ...: __custom_documentations__ = { | |
26 | ...: "first": "The first name of the user.", |
|
81 | ...: "first": "The first name of the user.", | |
27 | ...: "last": "The last name of the user.", |
|
82 | ...: "last": "The last name of the user.", | |
28 | ...: } |
|
83 | ...: } | |
29 | ...: |
|
84 | ...: | |
30 | ...: first:str |
|
85 | ...: first:str | |
31 | ...: last:str |
|
86 | ...: last:str | |
32 | ...: |
|
87 | ...: | |
33 | ...: def __init__(self, first, last): |
|
88 | ...: def __init__(self, first, last): | |
34 | ...: self.first = first |
|
89 | ...: self.first = first | |
35 | ...: self.last = last |
|
90 | ...: self.last = last | |
36 | ...: |
|
91 | ...: | |
37 | ...: @property |
|
92 | ...: @property | |
38 | ...: def full(self): |
|
93 | ...: def full(self): | |
39 | ...: """`self.first` and `self.last` joined by a space.""" |
|
94 | ...: """`self.first` and `self.last` joined by a space.""" | |
40 | ...: return self.first + " " + self.last |
|
95 | ...: return self.first + " " + self.last | |
41 | ...: |
|
96 | ...: | |
42 | ...: |
|
97 | ...: | |
43 | ...: user = Person('Jane', 'Doe') |
|
98 | ...: user = Person('Jane', 'Doe') | |
44 |
|
99 | |||
45 | In [2]: user.first? |
|
100 | In [2]: user.first? | |
46 | Type: str |
|
101 | Type: str | |
@@ -59,7 +114,9 b' documentation' | |||||
59 |
|
114 | |||
60 |
|
115 | |||
61 | We can see here the symmetry with IPython looking for the docstring on the |
|
116 | We can see here the symmetry with IPython looking for the docstring on the | |
62 |
properties: |
|
117 | properties: | |
|
118 | ||||
|
119 | .. code-block:: ipython | |||
63 |
|
120 | |||
64 |
|
121 | |||
65 | In [4]: user.full? |
|
122 | In [4]: user.full? |
General Comments 0
You need to be logged in to leave comments.
Login now