Show More
@@ -4,10 +4,64 b'' | |||
|
4 | 4 | |
|
5 | 5 | .. _version 8.12.0: |
|
6 | 6 | |
|
7 | IPython 8.12 | |
|
8 | ------------ | |
|
7 | 9 | |
|
8 | Dynamic documentation dispatch | |
|
9 | ------------------------------ | |
|
10 | Hopefully slightly early release for IPython 8.12. Last Thursday of the month, | |
|
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 | 66 | We are experimenting with dynamic documentation dispatch for object attribute. |
|
13 | 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 | 72 | documentation |
|
19 | 73 | |
|
20 | 74 | |
|
21 | .. code:: | |
|
75 | .. code-block:: ipython | |
|
76 | ||
|
22 | 77 | |
|
23 | 78 | In [1]: class User: |
|
24 | ...: | |
|
25 | ...: __custom_documentations__ = { | |
|
26 | ...: "first": "The first name of the user.", | |
|
27 | ...: "last": "The last name of the user.", | |
|
28 | ...: } | |
|
29 | ...: | |
|
30 | ...: first:str | |
|
31 | ...: last:str | |
|
32 | ...: | |
|
33 | ...: def __init__(self, first, last): | |
|
34 | ...: self.first = first | |
|
35 | ...: self.last = last | |
|
36 | ...: | |
|
37 | ...: @property | |
|
38 | ...: def full(self): | |
|
39 | ...: """`self.first` and `self.last` joined by a space.""" | |
|
40 | ...: return self.first + " " + self.last | |
|
41 | ...: | |
|
42 | ...: | |
|
43 | ...: user = Person('Jane', 'Doe') | |
|
79 | ...: | |
|
80 | ...: __custom_documentations__ = { | |
|
81 | ...: "first": "The first name of the user.", | |
|
82 | ...: "last": "The last name of the user.", | |
|
83 | ...: } | |
|
84 | ...: | |
|
85 | ...: first:str | |
|
86 | ...: last:str | |
|
87 | ...: | |
|
88 | ...: def __init__(self, first, last): | |
|
89 | ...: self.first = first | |
|
90 | ...: self.last = last | |
|
91 | ...: | |
|
92 | ...: @property | |
|
93 | ...: def full(self): | |
|
94 | ...: """`self.first` and `self.last` joined by a space.""" | |
|
95 | ...: return self.first + " " + self.last | |
|
96 | ...: | |
|
97 | ...: | |
|
98 | ...: user = Person('Jane', 'Doe') | |
|
44 | 99 | |
|
45 | 100 | In [2]: user.first? |
|
46 | 101 | Type: str |
@@ -59,7 +114,9 b' documentation' | |||
|
59 | 114 | |
|
60 | 115 | |
|
61 | 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 | 122 | In [4]: user.full? |
General Comments 0
You need to be logged in to leave comments.
Login now