mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-19 05:08:07 -07:00
115 lines
4.0 KiB
Diff
115 lines
4.0 KiB
Diff
From 80af5d40d3ca39e2701c44941c1003ae6a280799 Mon Sep 17 00:00:00 2001
|
|
From: Kernc <kerncece@gmail.com>
|
|
Date: Sat, 29 Oct 2022 18:55:46 +0200
|
|
Subject: [PATCH] CI: Bump min Python 3.7+ and update tests for Python 3.10
|
|
|
|
Fix https://github.com/pdoc3/pdoc/issues/400
|
|
Thanks @tjni
|
|
--- a/pdoc/__init__.py
|
|
+++ b/pdoc/__init__.py
|
|
@@ -1275,7 +1275,7 @@ def _formatannotation(annot):
|
|
`typing.Optional`, `nptyping.NDArray` and other types.
|
|
|
|
>>> _formatannotation(NewType('MyType', str))
|
|
- 'MyType'
|
|
+ 'pdoc.MyType'
|
|
>>> _formatannotation(Optional[Tuple[Optional[int], None]])
|
|
'Optional[Tuple[Optional[int], None]]'
|
|
"""
|
|
--- a/pdoc/documentation.md
|
|
+++ b/pdoc/documentation.md
|
|
@@ -353,7 +353,7 @@ modified templates into the `directories` list of the
|
|
|
|
Compatibility
|
|
-------------
|
|
-`pdoc` requires Python 3.6+.
|
|
+`pdoc` requires Python 3.7+.
|
|
The last version to support Python 2.x is [pdoc3 0.3.x].
|
|
|
|
[pdoc3 0.3.x]: https://pypi.org/project/pdoc3/0.3.13/
|
|
--- a/pdoc/test/__init__.py
|
|
+++ b/pdoc/test/__init__.py
|
|
@@ -126,7 +126,8 @@ class CliTest(unittest.TestCase):
|
|
def setUp(self):
|
|
pdoc.reset()
|
|
|
|
- @unittest.skipIf(sys.version_info < (3, 7), 'pdoc._formatannotation fails on Py3.6')
|
|
+ @unittest.skipIf(sys.version_info < (3, 10),
|
|
+ 'HACK: _formatannotation() changed return value in Py3.10')
|
|
def test_project_doctests(self):
|
|
doctests = doctest.testmod(pdoc)
|
|
assert not doctests.failed and doctests.attempted, doctests
|
|
@@ -185,8 +186,12 @@ def test_html(self):
|
|
'<object ',
|
|
' class="ident">_private',
|
|
' class="ident">_Private',
|
|
- 'non_callable_routine',
|
|
]
|
|
+ if sys.version_info >= (3, 10):
|
|
+ include_patterns.append('non_callable_routine')
|
|
+ else:
|
|
+ exclude_patterns.append('non_callable_routine')
|
|
+
|
|
package_files = {
|
|
'': self.PUBLIC_FILES,
|
|
'.subpkg2': [f for f in self.PUBLIC_FILES
|
|
@@ -356,8 +361,11 @@ def test_text(self):
|
|
'_Private',
|
|
'subprocess',
|
|
'Hidden',
|
|
- 'non_callable_routine',
|
|
]
|
|
+ if sys.version_info >= (3, 10):
|
|
+ include_patterns.append('non_callable_routine')
|
|
+ else:
|
|
+ exclude_patterns.append('non_callable_routine')
|
|
|
|
with self.subTest(package=EXAMPLE_MODULE):
|
|
with redirect_streams() as (stdout, _):
|
|
@@ -543,8 +551,9 @@ class C:
|
|
self.assertEqual(doc.doc['vars_dont'].docstring, '')
|
|
self.assertIn('integer', doc.doc['but_clss_have_doc'].docstring)
|
|
|
|
+ @unittest.skipIf(sys.version_info >= (3, 10), 'No builtin module "parser" in Py3.10')
|
|
def test_builtin_methoddescriptors(self):
|
|
- import parser
|
|
+ import parser # TODO: replace with another public binary builtin
|
|
with self.assertWarns(UserWarning):
|
|
c = pdoc.Class('STType', pdoc.Module(parser), parser.STType)
|
|
self.assertIsInstance(c.doc['compile'], pdoc.Function)
|
|
@@ -906,9 +915,13 @@ def bug130_str_annotation(a: "str"):
|
|
def bug253_newtype_annotation(a: CustomType):
|
|
return
|
|
|
|
+ expected = CustomType.__name__
|
|
+ if sys.version_info > (3, 10):
|
|
+ expected = f'{__name__}.{CustomType.__name__}'
|
|
+
|
|
self.assertEqual(
|
|
pdoc.Function('bug253', mod, bug253_newtype_annotation).params(annotate=True),
|
|
- ['a:\N{NBSP}CustomType'])
|
|
+ [f'a:\N{NBSP}{expected}'])
|
|
|
|
# typing.Callable bug
|
|
def f(a: typing.Callable):
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -2,8 +2,8 @@
|
|
import sys
|
|
from setuptools import setup, find_packages
|
|
|
|
-if sys.version_info < (3, 6):
|
|
- sys.exit('ERROR: pdoc requires Python 3.6+')
|
|
+if sys.version_info < (3, 7):
|
|
+ sys.exit('ERROR: pdoc requires Python 3.7+')
|
|
|
|
|
|
def _discover_tests():
|
|
@@ -58,5 +58,5 @@ def _discover_tests():
|
|
'write_to': os.path.join('pdoc', '_version.py'),
|
|
},
|
|
test_suite="setup._discover_tests",
|
|
- python_requires='>= 3.6',
|
|
+ python_requires='>= 3.7',
|
|
)
|