Commit Graph

69 Commits

Author SHA1 Message Date
Takeshi KOMIYA
2fec37219f Fix #7189: autodoc: classmethod coroutines are not detected 2020-02-22 00:49:45 +09:00
Takeshi KOMIYA
cd8f3a78d9 Fix #7156: autodoc: separator for keyword only arguments is not shown 2020-02-16 01:37:23 +09:00
Takeshi KOMIYA
e908e43f67 Fix #7023: autodoc: nested partial functions are not listed 2020-01-17 09:15:45 +09:00
Takeshi KOMIYA
9ed162921e autodoc: Support Positional-Only Argument separator (PEP-570 compliant) 2020-01-11 02:32:33 +09:00
Takeshi KOMIYA
5867416612 refactor: Add sphinx.util.inspect.signature()
As a successor of sphinx.util.inspect.Singnature, this adds
signature() function behaves like `inspect.signature()`.  It is
very similar to way of python's inspect module.

In addition, this also adds stringify_annotation() helper to
sphinx.util.inspect module.  With these two functions, we can move
to python's Signature object to represent function signatures
perfectly.  It's natural design for python developers than ever.
2020-01-09 00:32:07 +09:00
Takeshi KOMIYA
eaf495c3c4 A happy new year! 2020-01-01 14:27:43 +09:00
Takeshi KOMIYA
b43676011e
Merge branch '2.0' into 6574_annotation_for_varidic_params 2019-08-03 02:19:29 +09:00
Takeshi KOMIYA
ace7b4ded7 Fix #6589: autodoc: Formatting issues with autodoc_typehints='none' 2019-08-02 01:55:53 +09:00
Takeshi KOMIYA
92491c0769 Fix autodoc: missing type annotation for variadic and keyword parameters (refs: #6574) 2019-07-13 19:25:38 +09:00
Takeshi KOMIYA
95723aa6f6 Fix flake8 violations 2019-07-01 00:28:30 +09:00
Takeshi KOMIYA
880c47ff61 Fix #6347: autodoc: crashes with a plain Tuple on Python 3.6 and 3.5 2019-05-29 00:51:01 +09:00
Takeshi KOMIYA
c59f2d9545 Add sphinx.util.inspect:isproperty() 2019-05-12 15:53:39 +09:00
Takeshi KOMIYA
a765c2e4ab Add sphinx.util.inspect:iscoroutinefunction() 2019-04-23 01:40:37 +09:00
Takeshi KOMIYA
d41cae328e Add sphinx.util.inspect:isattributedescriptor() 2019-04-14 02:16:17 +09:00
Takeshi KOMIYA
4aecac8251 refactor: Move subject of inspection to rootdir 2019-04-13 22:48:49 +09:00
Takeshi KOMIYA
2652927667 test: Add testcase for isdescriptor() 2019-04-13 19:52:51 +09:00
Takeshi KOMIYA
b4f6a7f643 test: Add testcase for isbuiltin() 2019-04-13 19:52:51 +09:00
Takeshi KOMIYA
2e8842963b test: Add testcase for isfunction() 2019-04-13 19:52:51 +09:00
Jon Dufresne
f210475489 Python-3-only clean ups discovered by pyupgrade
https://github.com/asottile/pyupgrade

> A tool to automatically upgrade syntax for newer versions of the
> language.

- Drop u str prefix
- Drop base object inheritance
- Drop args to super()
- Use set literals
- Use dict comprehension
- Use set comprehension
2019-03-17 12:58:03 -07:00
Takeshi KOMIYA
76e9f57c2e Merge branch '1.8' 2019-01-02 16:16:25 +09:00
Takeshi KOMIYA
1b1ebd2c75 A happy new year! 2019-01-02 16:00:30 +09:00
Jon Dufresne
bade33c7e4 Remove unnecessary encoding cookie from Python source files
In Python 3, the default encoding of source files is utf-8. The encoding
cookie is now unnecessary and redundant so remove it. For more details,
see the docs:

https://docs.python.org/3/howto/unicode.html#the-string-type

> The default encoding for Python source code is UTF-8, so you can
> simply include a Unicode character in a string literal ...

Includes a fix for the flake8 header checks to stop expecting an
encoding cookie.
2018-12-16 12:22:12 -08:00
Takeshi KOMIYA
8b687ac304 Merge branch '1.8' 2018-11-01 01:24:12 +09:00
Takeshi KOMIYA
793792fafc Fix #5480: autodoc: unable to find type hints for unresolvable Forward references 2018-10-15 23:40:05 +09:00
Takeshi KOMIYA
dc44b0d2a9 Merge branch 'master' into HEAD 2018-09-22 22:54:15 +09:00
Takeshi KOMIYA
3a2418a827 refactoring: Drop PY2 and PY3 flags 2018-09-22 21:27:59 +09:00
Takeshi KOMIYA
40a2fdf315 test: Merge py3/test_util_inspect_py3.py to test_util_inspect.py 2018-09-22 16:36:10 +09:00
Takeshi KOMIYA
b18fe13f55 Drop branches for sys.version_info < (3, 4) 2018-09-22 16:31:07 +09:00
Jon Dufresne
490e4aed41 Remove unnecessary object from class definitions
In Python 3, all classes are new-style classes. The object in the
definition is redundant and unnecessary.
2018-09-11 07:07:01 -07:00
Chris Lamb
17d32d625b Ensure frozenset object descriptions are reproducible
Whilst working on the Reproducible Builds effort [0], we noticed
that sphinx could generate output that is not reproducible.

In particular, the rendering of `frozenset` objects in default
arguments and elsewhere is currently non-determinstic.

For example:

    frozenset(['a', 'b', 'c'])

Might be rendered as any of:

    frozenset({'a', 'b', 'c'})
    frozenset({'a', 'c', 'b'})
    frozenset({'b', 'a', 'c'})
    frozenset({'b', 'c', 'a'})
    frozenset({'c', 'a', 'b'})
    frozenset({'c', 'b', 'a'})

Patch attached that sorts the contents of frozensets whilst rendering.
This is parallel to the `dict` and `set` type logic

  [0] https://reproducible-builds.org/
2018-09-05 15:58:54 +01:00
Takeshi KOMIYA
ea3d0b3768 Merge branch '1.7' into 1.8 2018-08-25 03:07:35 +09:00
Takeshi KOMIYA
520797a5e8 test: Upgrade python on Circle CI to 3.5 2018-08-25 02:53:17 +09:00
Takeshi KOMIYA
59a766d7d6 Fix #5322: autodoc: `Any` typehint causes formatting error 2018-08-22 19:57:27 +09:00
Takeshi KOMIYA
11331c5923 Merge branch '1.7' 2018-08-17 00:56:35 +09:00
Takeshi KOMIYA
91650d89c9 Fix #5291: autodoc crashed by ForwardRef types 2018-08-15 21:30:49 +09:00
Takeshi KOMIYA
955c3d388b test Signature annotations in py34 too 2018-08-15 01:22:52 +09:00
Takeshi KOMIYA
e26dc81272 Fix autodoc: Optional types are wrongly rendered 2018-08-15 01:22:52 +09:00
Terence D. Honles
da45604485 handle NoneType as None 2018-08-10 11:58:08 -07:00
Takeshi KOMIYA
3e57ea0a52 Merge branch '1.7' 2018-07-17 00:37:40 +09:00
Dmitry Shachnev
1e11634d51 Add a failing test for formatting Tuple[int, str, int] 2018-07-13 21:21:49 +03:00
Takeshi KOMIYA
71c0eb6b1a Merge branch '1.7' 2018-06-16 18:23:36 +09:00
Takeshi KOMIYA
6c4d6c3b94 Fix #5032: autodoc loses the first staticmethod parameter for old styled classes 2018-06-13 22:30:14 +09:00
Takeshi KOMIYA
057152e9e7 Merge branch '1.7' 2018-05-19 14:25:23 +09:00
Takeshi KOMIYA
b2abab1c45 Fix #4969: autodoc: constructor method should not have return annotation 2018-05-19 11:49:32 +09:00
Chris Lamb
0ffc27b7fa Ensure the set object description is reproducible.
Whilst working on the Reproducible Builds effort [0], we noticed
that sphinx could generate output that is not reproducible.

In particular, the rendering of `set` objects in default arguments
and elsewhere is currently non-determinstic. For example:

    class A_Class(object):
        a_set = {'a', 'b', 'c'}

Might be rendered as any of:

     {'a', 'b', 'c'}
     {'a', 'c', 'b'}
     {'b', 'a', 'c'}
     {'b', 'c', 'a'}
     {'c', 'a', 'b'}
     {'c', 'b', 'a'}

Patch attached that sorts the contents of sets whilst rendering.
This is parallel to the `dict` key sorting.

This was originally filed in Debian as #895553 [1].

 [0] https://reproducible-builds.org/
 [1] https://bugs.debian.org/895553

Signed-off-by: Chris Lamb <lamby@debian.org>
2018-04-14 10:30:54 +01:00
Takeshi KOMIYA
f7027049b1 Fix flake8 violations 2018-02-19 23:20:56 +09:00
Takeshi KOMIYA
656e3be754 Fix #4539: autodoc emits warnings for partialmethods 2018-02-04 23:23:43 +09:00
Takeshi KOMIYA
fd2425238e Fix #4490: autodoc: type annotation is broken with python 3.7.0a4+ 2018-01-27 12:26:53 +09:00
Takeshi KOMIYA
f779fa7ad6 Merge branch 'stable' into 1.7-release 2018-01-25 00:40:21 +09:00
Takeshi KOMIYA
7292386a03 Fix #3570: autodoc: Do not display typing. module for type hints 2018-01-13 12:08:31 +09:00