Sphinx plugin to make easier-to-navigate class documentation

2020-05-19 Thread Kale Kundert
I'm writing to share a Sphinx plugin I wrote, which I think makes the 
documentation for large classes much easier to navigate and understand.  The 
plugin is called `autoclasstoc` and you can find the documentation here:

https://autoclasstoc.readthedocs.io/en/latest/

I wrote this plugin because, while restructured text and Sphinx are great in a 
lot of ways, I've always been disappointed by the options for documenting 
classes.  `autoclass` is easy to use, but hard to read because all of the 
methods are just documented one after another with no index at the top. 
`autosummary` and `autogen` can be used together to create such an index, but 
they're more difficult to setup, and the index doesn't distinguish nicely 
between inherited and non-inherited methods.

My plugin is modeled after the way `doxygen` (a popular documentation tool for 
C++ projects) works.  The documentation for each class starts with an index of 
all it's methods/attributes. Inherited methods are organized by the class they 
inherit from, and collapsed so they don't distract too much from the methods 
actually defined in the class itself.

I'm pretty happy with how the plugin turned out, and I hope that other people 
might find it useful, too.  If you decide to give it a try, let me know (either 
here or, preferably, on Github) if there's anything you'd change. I'm happy to 
get feedback, because I threw this together pretty quickly and I'm sure there 
are use-cases I haven't fully considered yet.

-Kale
___
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/
Member address: arch...@mail-archive.com


[RELEASE] Python 3.9.0b1 is now available for testing

2020-05-19 Thread Łukasz Langa
On behalf of the entire Python development community, and the currently serving 
Python release team in particular, I’m pleased to announce the release of 
Python 3.9.0b1. Get it here:

https://www.python.org/downloads/release/python-390b1/ 


This is a beta preview of Python 3.9

Python 3.9 is still in development. This release, 3.9.0b1, is the first of four 
planned beta release previews.

Beta release previews are intended to give the wider community the opportunity 
to test new features and bug fixes and to prepare their projects to support the 
new feature release.

Call to action

We strongly encourage maintainers of third-party Python projects to test with 
3.9 during the beta phase and report issues found to the Python bug tracker 
 as soon as possible. While the release is planned to 
be feature complete entering the beta phase, it is possible that features may 
be modified or, in rare cases, deleted up until the start of the release 
candidate phase (2020-08-10). Our goal is have no ABI changes after beta 4 and 
as few code changes as possible after 3.9.0rc1, the first release candidate. To 
achieve that, it will be extremely important to get as much exposure for 3.9 as 
possible during the beta phase.

Please keep in mind that this is a preview release and its use is not 
recommended for production environments.

Major new features of the 3.9 series, compared to 3.8

Some of the new major new features and changes in Python 3.9 are:

PEP 584 , Union Operators in dict

PEP 585 , Type Hinting Generics In 
Standard Collections

PEP 593 , Flexible function and 
variable annotations

PEP 602 , Python adopts a stable 
annual release cadence

PEP 616 , String methods to remove 
prefixes and suffixes

PEP 617 , New PEG parser for CPython

BPO 38379 , garbage collection does not 
block on resurrected objects;

BPO 38692 , os.pidfd_open added that allows 
process management without races and signals;

BPO 39926 , Unicode support updated to 
version 13.0.0;

BPO 1635741 , when Python is initialized 
multiple times in the same process, it does not leak memory anymore;

A number of Python builtins (range, tuple, set, frozenset, list, dict) are now 
sped up using PEP 590  vectorcall;

A number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, 
_functools, _json, _locale, operator, resource, time, _weakref) now use 
multiphase initialization as defined by PEP 489 
;

A number of standard library modules (audioop, ast, grp, _hashlib, pwd, 
_posixsubprocess, random, select, struct, termios, zlib) are now using the 
stable ABI defined by PEP 384 .

(Hey, fellow core developer, if a feature you find important is missing from 
this list, let Łukasz know .)

The next pre-release, the second beta release of Python 3.9, will be 3.9.0b2. 
It is currently scheduled for 2020-06-08.

More resources

Online Documentation 
PEP 596 , 3.9 Release Schedule
Report bugs at https://bugs.python.org .
Help fund Python and its community .
Your friendly release team,
Ned Deily @nad 
Steve Dower @steve.dower 
Łukasz Langa @ambv 
___
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/
Member address: arch...@mail-archive.com