Commit Graph

116 Commits

Author SHA1 Message Date
Jakob Lykke Andersen
01ef6a437f py nodes, PyObject anno 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
ae7865aaf8 py nodes, PyProperty get_signature_prefix 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
5a3b7f130d py nodes, PyMethod get_signature_prefix 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
51e7b6d2aa py nodes, PyClassLike, get_signature_prefix 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
83fcc98dbc py nodes, PyFunction get_signature_prefix 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
8cd0847590 py nodes, PyProperty 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
73ade60654 py nodes, PyAttribute value 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
2e37c5719d py nodes, PyAttribute type 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
e008b43683 py nodes, PyVariable value 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
3979bbad7f py nodes, PyVariable type 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
3a1bd32665 py nodes, arglist 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
92a9df7451 py nodes, Tuple 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
c00e608783 py nodes, List 2021-10-02 12:41:40 +02:00
Jakob Lykke Andersen
1cb8c56720 py nodes, BitOr 2021-10-02 12:41:40 +02:00
Takeshi KOMIYA
34664ce4ce Fix #9576: py domain: Literal typehint was converted to a cross reference
The content of Literal typehint should not be converted to cross
references.
2021-09-03 22:09:30 +09:00
Takeshi KOMIYA
3e24190564 Fix #9585: py:property directive does not create a hyperlink for types 2021-08-31 23:55:12 +09:00
Takeshi KOMIYA
120525563c Cloase #9445: :py:property: directive now supports :classmethod: option
Since python 3.9, `classmethod` starts to support creating a "class
property".  This allows to describe it.
2021-07-17 14:24:31 +09:00
Takeshi KOMIYA
866719f48f Merge branch '4.x' into 9427 2021-07-11 02:12:32 +09:00
Takeshi KOMIYA
dd89c3689e py domain: Add testcase for empty callable (refs: #9427) 2021-07-11 02:12:23 +09:00
Takeshi KOMIYA
90470b094e Close #9268: python_use_unqualified_type_names supports type field 2021-06-03 00:09:16 +09:00
Takeshi KOMIYA
201f61f722 Fix #9280: py domain: "exceptions" module is not displayed
Since v0.2, python domain gives a special treatment for the exceptions
module to suppress its name on documenting exception classes.  It had
been worthy on python2 era.  But the module has been removed since
python3.  Therefore, the special treatment becomes harmful for user
libraries.  This removes it to render module names correctly.

Note: Now we've only supported python3.  So this is not incompatible.
2021-05-30 03:46:55 +09:00
Takeshi KOMIYA
a1b0e55548 Close #1874: py domain: Support union types using | in info-field-list 2021-05-22 01:55:43 +09:00
Takeshi KOMIYA
d9be8f6d4e Fix #9224: info-field-list does not support a type containing space
So far, DocFieldTransformer has split the field name for `:type:`
and `:param:` at the first whitespace.  Therefore, it does not allow
to use a type containing whitespace (ex. `Dict[str, str]`).

This changes the splitting logic to divide the field name at the last
whitespace (a.k.a `rstrip()`).  It allows to use whitespaces on types.
2021-05-15 20:31:09 +09:00
Takeshi KOMIYA
4ab0dba755 Fix #9205: py domain: canonical option causes xref resolution error
The :canonical: option causes "more than one target for
cross-reference" warning because the class having the same name is
registered.
2021-05-11 01:15:14 +09:00
Takeshi KOMIYA
d02a466cb5 Fix #9121: py domain: duplicated warning for canonical and alias
A duplicated warning is emitted when both canonical and its alias
objects are defined on the same document. But it should not be emitted
because they're the same object, not conflicted.
2021-04-23 01:19:18 +09:00
Takeshi KOMIYA
c7b169c5a9 Fix #8127: py domain: Ellipsis in info-field-list causes nit-picky warning
On parsing the types, the leading dot of the ellipsis (...) is considered
as a reference name.  And its first dot is considered as a notation for
relative type reference (ex. ".ClassName"). As a result, it was converted
double dots unexpectedly.

This changes the parsing rule to treat the ellipsis as a symbol, not a
name.
2021-04-17 02:06:57 +09:00
Takeshi KOMIYA
204f86f736 py domain: Add py:property directive to describe a property (refs: #7068) 2021-03-11 01:56:39 +09:00
Takeshi KOMIYA
930a880294 Fix #7199: py domain: Add a new confval: python_use_unqualified_type_names
Add a new config variable: python_use_unqualified_type_names.  If enabled,
it goes to suppress the module name of the python reference if it can be
resolved.
2021-03-06 14:00:00 +09:00
jfbu
fbafb308b8 Merge branch '3.x' into master_with_merged_3.x 2021-02-02 18:01:55 +01:00
Takeshi KOMIYA
2c2b8c1154 py domain: Support type union operator (PEP-604) (refs: #8775)
Upgrade annotation parser for python domain to support type union
operator introduced in PEP-604.  It's available on all python
interpreters.
2021-02-01 21:12:29 +09:00
Takeshi KOMIYA
30f8640bab Merge branch '3.x' 2021-01-16 21:51:46 +09:00
Takeshi KOMIYA
a3df1d00c7 test: Add testcase for relative/short xref for py domain 2021-01-11 03:12:39 +09:00
Takeshi KOMIYA
918086b559 Close #5977: :var: field do not create a cross-reference
Since its beginning, `:var:` field has created a cross-reference to the
attribute having the same name.  It is meaningful only if the attribute
is documented by `py:attribute` directive.  It means the `:var:` field
and `:attr:` role are almost the same and conflicted.  Additionally,
the cross-reference points incorrect variable if the target is not
documented.

Thus, the cross-reference feature of `:var:` field is disabled.
2021-01-01 22:53:23 +09:00
Takeshi KOMIYA
9cac2001f7 test: py domain: Add a testcase for :var: field 2021-01-01 18:15:42 +09:00
Takeshi KOMIYA
4b452338f9 Merge branch '3.x' 2021-01-01 13:57:19 +09:00
Takeshi KOMIYA
f996859420 A happy new year!
.. note::

   $ find sphinx tests LICENSE doc/conf.py -type f -exec sed -i '' -e 's/2007\-20../2007-2021/' {} \;
   $ git co sphinx/locale/**/*.js sphinx/templates/epub3/mimetype
2021-01-01 13:40:48 +09:00
Takeshi KOMIYA
a7a77d154b Merge branch '3.x' 2020-12-20 21:33:57 +09:00
Takeshi KOMIYA
30c594fbc5 Fix #8365: py domain: :type: and :rtype: gives false ambiguous warnings
The searching context like py:module and py:class are missing in the
pending_xref nodes generated from info-field-lists.  This sets these
searching context info to them.
2020-12-19 18:42:01 +09:00
Takeshi KOMIYA
279e547860 Merge branch '3.x' 2020-11-12 02:50:43 +09:00
François Freitag
0949735210
Sort imports with isort
Keep imports alphabetically sorted and their order homogeneous across
Python source files.

The isort project has more feature and is more active than the
flake8-import-order plugin.

Most issues caught were simply import ordering from the same module.
Where imports were purposefully placed out of order, tag with
isort:skip.
2020-11-11 13:19:05 +01:00
Takeshi KOMIYA
8bf84167a3 Merge branch '3.x' 2020-11-05 02:21:47 +09:00
Takeshi KOMIYA
0e98e9b1a8 Fix #6914: Emit a detailed warning when failed to resolve :ref:
To be clear the ambiguous warning for missing-reference :ref:,
this separates the warning to missing-label and missing-caption.

To emit a warning dynamically, this also adds a new event:
`warn-missing-reference` to customize warning messages via event
handlers.
2020-11-03 02:27:43 +09:00
Takeshi KOMIYA
445b9515c1 Merge branch '3.x' 2020-10-24 18:12:45 +09:00
Eric Larson
d10802fa6a TST: Add test 2020-10-07 14:25:24 -04:00
Takeshi KOMIYA
cc941db40b Fix #8255: py domain: number in defarg is changed to decimal
Number literals in default argument value is converted to decimal form
unexpectedly by AST module.  This fixes the signature parsing code to
recosntruct it correctly.

Note: This is only available in Python 3.8+.
2020-10-05 01:08:14 +09:00
Takeshi KOMIYA
c14c00397e Merge branch '3.x' 2020-08-01 16:59:00 +09:00
Takeshi KOMIYA
a99675bf78 Fix #8008: py domain: failed to parse a type annotation containing ellipsis
Fix _parse_annotation() does not support a type annotation having ellipsis.
2020-07-30 01:48:25 +09:00
Takeshi KOMIYA
327c187284 Merge branch '3.x' 2020-07-24 23:49:45 +09:00
Takeshi KOMIYA
4410668776 Fix #7928: py domain: failed to resolve a type annotation for the attribute 2020-07-09 01:49:34 +09:00
Takeshi KOMIYA
1a223209f2 Merge branch '3.x' 2020-07-05 19:56:21 +09:00