##// END OF EJS Templates
upate whats new for 3.12
Matthias Bussonnier -
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