Commit Graph

9717 Commits

Author SHA1 Message Date
Sebastian Rittau
17d2e5a862 Clean up common stubtest allowlist (#12770)
* Move all platform and installation differences into a separate
  section.
* Split sections for missing items into "should be fixed" and "should
  not be fixed".
* Add "TODO" markers to appropriate sections.
2024-10-10 07:53:26 -07:00
Sebastian Rittau
4f94a0e140 Bump fpdf2 to 2.8.1 (#12753)
Closes: #12738
2024-10-10 07:49:39 -07:00
Sebastian Rittau
c490871c32 Add 'nis' to stubtest allowlist (#12769) 2024-10-10 16:36:07 +02:00
Jun Komoda
1939ed1dc1 ctypes.POINTER(None) returns ctypes.c_void_p (#12754) 2024-10-10 12:29:37 +02:00
Sebastian Rittau
98f3e5772d [fpdf2] Add actual NamedTuple defaults (#12768) 2024-10-10 12:24:26 +02:00
Cal Jacobson
3f04e4d65b update psutil.Process.parent() return type (#12767)
per `psutil.Process.parent()`'s docstring, it may return `None`.

0a71d0e404/psutil/__init__.py (L574)
2024-10-09 22:18:35 -07:00
Stephen Morton
f83b6fadbe add _asyncio (#12766)
improves naming and inheritance for asyncio.Future and asyncio.Task

related to https://github.com/python/typeshed/issues/3968
2024-10-09 20:55:28 -07:00
Stephen Morton
42ebc89d8c remove redundant methods from _io classes (#12761) 2024-10-09 20:32:54 -07:00
Stephen Morton
4b6869d572 remove SupportsInt from bases of ipaddress._BaseAddress (#12765)
added in 2017: https://github.com/python/typeshed/pull/1361

This use case no longer requires the protocol to be an actual base
class.
2024-10-09 20:32:06 -07:00
Stephen Morton
f42ebdfa61 make shlex.shlex Iterator (#12756) 2024-10-08 21:48:44 -07:00
Stephen Morton
2b1c7d55b9 re-sort io classes into _io (#12755)
This version keeps it simple and clean: No changes to class bodies.
The only changes here are moving between files and updating the
naming and inheritance.

Related to #3968 and split from #12740.
2024-10-08 21:32:10 -07:00
Stephen Morton
3e29e05e4a Experiment: remove IntFlag from enum.auto (#12760)
comments in https://github.com/python/typeshed/issues/10384 suggest
that type checkers should special case enum.auto rather than
relying on the IntFlag hack. It's been a while since then, do we
still need it?
2024-10-08 21:24:31 -07:00
github-actions[bot]
4b11151a0c [stubsabot] Bump xmltodict to 0.14.* (#12757)
Release: https://pypi.org/pypi/xmltodict/0.14.0
Homepage: https://github.com/martinblech/xmltodict
Repository: https://github.com/martinblech/xmltodict
Typeshed stubs: https://github.com/python/typeshed/tree/main/stubs/xmltodict
Diff: https://github.com/martinblech/xmltodict/compare/v0.13.0...v0.14.0

Stubsabot analysis of the diff between the two releases:
 - 1 public Python file has been added: `tests/__init__.py`.
 - 0 files included in typeshed's stubs have been deleted.
 - 1 file included in typeshed's stubs has been modified or renamed: `xmltodict.py`.
 - Total lines of Python code added: 76.
 - Total lines of Python code deleted: 60.

If stubtest fails for this PR:
- Leave this PR open (as a reminder, and to prevent stubsabot from opening another PR)
- Fix stubtest failures in another PR, then close this PR

Note that you will need to close and re-open the PR in order to trigger CI

Co-authored-by: stubsabot <>
2024-10-08 19:19:37 -07:00
Avasam
c6b197e282 Allowlist six.create_bound_method.__code__ (Fix daily test failure) (#12759) 2024-10-08 19:17:52 -07:00
github-actions[bot]
d7e6cb8e1a Bump networkx to 3.3 (#11727) 2024-10-08 10:44:50 +02:00
Avasam
1f4031cc96 Add __code__ to types.MethodType (#12749) 2024-10-08 10:30:49 +02:00
Avasam
8bc20e7415 Bump pywin32 to 307 (#12742) 2024-10-08 10:12:04 +02:00
Stephen Morton
dbd0d35217 add contextlib._BaseExitStack (#12750)
Improves the MRO of ExitStack and AsyncExitStack

related to https://github.com/python/typeshed/issues/3968
2024-10-06 19:08:27 -07:00
Stephen Morton
f318894924 update _CursesWindow to the runtime name "window" (#12744)
Prior to 3.8 the underlying C class was not given a name in
python, so typeshed added _CursesWindow to use it as a type.
Now that it has a name in python, typeshed should use that name.

We can keep _CursesWindow as an alias, for anyone using that
already.
2024-10-06 19:04:55 -07:00
Stephen Morton
dbc71c9951 re-sort decimal classes (#12743)
They call themselves "decimal.*" at runtime, so move them into
decimal.pyi so typshed's name matches.

related to #3968
2024-10-06 13:19:22 -07:00
Stephen Morton
1a0b507ae7 add unittest.mock.Base to MagicMixin and MagicProxy (#12747)
This matches the runtime.
2024-10-06 13:17:42 -07:00
Tomas R.
04f3f77ee5 Remove outdated comment regarding tokenize.generate_tokens (#12748) 2024-10-06 14:54:33 +01:00
Avasam
0aa5186826 Lock stubdefaulter to python_version < "3.13" due to missing 3.13 libcst wheels (#12741)
On Windows, python 3.13, running `python3.13 -m pip install -r .\requirements-tests.txt` results in the following error:
```py
Building wheels for collected packages: libcst
  Building wheel for libcst (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for libcst (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [397 lines of output]
      C:\Users\Avasam\AppData\Local\Temp\pip-build-env-3pmjtsds\overlay\Lib\site-packages\setuptools\_distutils\dist.py:261: UserWarning: Unknown distribution option: 'test_suite'
        warnings.warn(msg)
      WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
      Traceback (most recent call last):
        File "C:\Users\Avasam\AppData\Local\Temp\pip-build-env-3pmjtsds\overlay\Lib\site-packages\setuptools_scm\_integration\pyproject_reading.py", line 36, in read_pyproject
          section = defn.get("tool", {})[tool_name]
                    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
      KeyError: 'setuptools_scm'
      running bdist_wheel
      running build
      running build_py
      creating build\lib.win-amd64-cpython-313\libcst
      copying libcst\tool.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_add_slots.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_batched_visitor.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_exceptions.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_flatten_sentinel.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_maybe_sentinel.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_metadata_dependent.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_position.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_removal_sentinel.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_tabs.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_typed_visitor.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_typed_visitor_base.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_types.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_type_enforce.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_version.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\_visitors.py -> build\lib.win-amd64-cpython-313\libcst
      copying libcst\__init__.py -> build\lib.win-amd64-cpython-313\libcst
      creating build\lib.win-amd64-cpython-313\libcst\codegen
      copying libcst\codegen\gather.py -> build\lib.win-amd64-cpython-313\libcst\codegen
      copying libcst\codegen\generate.py -> build\lib.win-amd64-cpython-313\libcst\codegen
      copying libcst\codegen\gen_matcher_classes.py -> build\lib.win-amd64-cpython-313\libcst\codegen
      copying libcst\codegen\gen_type_mapping.py -> build\lib.win-amd64-cpython-313\libcst\codegen
      copying libcst\codegen\gen_visitor_functions.py -> build\lib.win-amd64-cpython-313\libcst\codegen
      copying libcst\codegen\transforms.py -> build\lib.win-amd64-cpython-313\libcst\codegen
      copying libcst\codegen\__init__.py -> build\lib.win-amd64-cpython-313\libcst\codegen
      creating build\lib.win-amd64-cpython-313\libcst\codemod
      copying libcst\codemod\_cli.py -> build\lib.win-amd64-cpython-313\libcst\codemod
      copying libcst\codemod\_codemod.py -> build\lib.win-amd64-cpython-313\libcst\codemod
      copying libcst\codemod\_command.py -> build\lib.win-amd64-cpython-313\libcst\codemod
      copying libcst\codemod\_context.py -> build\lib.win-amd64-cpython-313\libcst\codemod
      copying libcst\codemod\_dummy_pool.py -> build\lib.win-amd64-cpython-313\libcst\codemod
      copying libcst\codemod\_runner.py -> build\lib.win-amd64-cpython-313\libcst\codemod
      copying libcst\codemod\_testing.py -> build\lib.win-amd64-cpython-313\libcst\codemod
      copying libcst\codemod\_visitor.py -> build\lib.win-amd64-cpython-313\libcst\codemod
      copying libcst\codemod\__init__.py -> build\lib.win-amd64-cpython-313\libcst\codemod
      creating build\lib.win-amd64-cpython-313\libcst\display
      copying libcst\display\graphviz.py -> build\lib.win-amd64-cpython-313\libcst\display
      copying libcst\display\text.py -> build\lib.win-amd64-cpython-313\libcst\display
      copying libcst\display\__init__.py -> build\lib.win-amd64-cpython-313\libcst\display
      creating build\lib.win-amd64-cpython-313\libcst\helpers
      copying libcst\helpers\common.py -> build\lib.win-amd64-cpython-313\libcst\helpers
      copying libcst\helpers\expression.py -> build\lib.win-amd64-cpython-313\libcst\helpers
      copying libcst\helpers\module.py -> build\lib.win-amd64-cpython-313\libcst\helpers
      copying libcst\helpers\node_fields.py -> build\lib.win-amd64-cpython-313\libcst\helpers
      copying libcst\helpers\paths.py -> build\lib.win-amd64-cpython-313\libcst\helpers
      copying libcst\helpers\_template.py -> build\lib.win-amd64-cpython-313\libcst\helpers
      copying libcst\helpers\__init__.py -> build\lib.win-amd64-cpython-313\libcst\helpers
      creating build\lib.win-amd64-cpython-313\libcst\matchers
      copying libcst\matchers\_decorators.py -> build\lib.win-amd64-cpython-313\libcst\matchers
      copying libcst\matchers\_matcher_base.py -> build\lib.win-amd64-cpython-313\libcst\matchers
      copying libcst\matchers\_return_types.py -> build\lib.win-amd64-cpython-313\libcst\matchers
      copying libcst\matchers\_visitors.py -> build\lib.win-amd64-cpython-313\libcst\matchers
      copying libcst\matchers\__init__.py -> build\lib.win-amd64-cpython-313\libcst\matchers
      creating build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\accessor_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\base_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\expression_context_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\file_path_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\full_repo_manager.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\name_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\parent_node_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\position_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\reentrant_codegen.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\scope_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\span_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\type_inference_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\wrapper.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      copying libcst\metadata\__init__.py -> build\lib.win-amd64-cpython-313\libcst\metadata
      creating build\lib.win-amd64-cpython-313\libcst\testing
      copying libcst\testing\utils.py -> build\lib.win-amd64-cpython-313\libcst\testing
      copying libcst\testing\__init__.py -> build\lib.win-amd64-cpython-313\libcst\testing
      creating build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_add_slots.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_batched_visitor.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_deep_clone.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_deep_replace.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_e2e.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_exceptions.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_fuzz.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_pyre_integration.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_roundtrip.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_tabs.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_type_enforce.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\test_visitor.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\tests
      copying libcst\tests\__main__.py -> build\lib.win-amd64-cpython-313\libcst\tests
      creating build\lib.win-amd64-cpython-313\libcst\_nodes
      copying libcst\_nodes\base.py -> build\lib.win-amd64-cpython-313\libcst\_nodes
      copying libcst\_nodes\deep_equals.py -> build\lib.win-amd64-cpython-313\libcst\_nodes
      copying libcst\_nodes\expression.py -> build\lib.win-amd64-cpython-313\libcst\_nodes
      copying libcst\_nodes\internal.py -> build\lib.win-amd64-cpython-313\libcst\_nodes
      copying libcst\_nodes\module.py -> build\lib.win-amd64-cpython-313\libcst\_nodes
      copying libcst\_nodes\op.py -> build\lib.win-amd64-cpython-313\libcst\_nodes
      copying libcst\_nodes\statement.py -> build\lib.win-amd64-cpython-313\libcst\_nodes
      copying libcst\_nodes\whitespace.py -> build\lib.win-amd64-cpython-313\libcst\_nodes
      copying libcst\_nodes\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_nodes
      creating build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\base_parser.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\custom_itertools.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\detect_config.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\entrypoints.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\grammar.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\production_decorator.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\python_parser.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\py_whitespace_parser.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\whitespace_parser.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\wrapped_tokenize.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      copying libcst\_parser\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_parser
      creating build\lib.win-amd64-cpython-313\libcst\codegen\tests
      copying libcst\codegen\tests\test_codegen_clean.py -> build\lib.win-amd64-cpython-313\libcst\codegen\tests        
      copying libcst\codegen\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\codegen\tests
      creating build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\add_pyre_directive.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands  
      copying libcst\codemod\commands\add_trailing_commas.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands 
      copying libcst\codemod\commands\convert_format_to_fstring.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\convert_namedtuple_to_dataclass.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\convert_percent_format_to_fstring.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\convert_type_comments.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\ensure_import_present.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\fix_pyre_directives.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands 
      copying libcst\codemod\commands\noop.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\remove_pyre_directive.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\remove_unused_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\rename.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\strip_strings_from_types.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\unnecessary_format_string.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      copying libcst\codemod\commands\__init__.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands
      creating build\lib.win-amd64-cpython-313\libcst\codemod\tests
      copying libcst\codemod\tests\test_codemod.py -> build\lib.win-amd64-cpython-313\libcst\codemod\tests
      copying libcst\codemod\tests\test_codemod_cli.py -> build\lib.win-amd64-cpython-313\libcst\codemod\tests
      copying libcst\codemod\tests\test_metadata.py -> build\lib.win-amd64-cpython-313\libcst\codemod\tests
      copying libcst\codemod\tests\test_runner.py -> build\lib.win-amd64-cpython-313\libcst\codemod\tests
      copying libcst\codemod\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\codemod\tests
      creating build\lib.win-amd64-cpython-313\libcst\codemod\visitors
      copying libcst\codemod\visitors\_add_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors        
      copying libcst\codemod\visitors\_apply_type_annotations.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors
      copying libcst\codemod\visitors\_gather_comments.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors    
      copying libcst\codemod\visitors\_gather_exports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors     
      copying libcst\codemod\visitors\_gather_global_names.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors      copying libcst\codemod\visitors\_gather_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors     
      copying libcst\codemod\visitors\_gather_string_annotation_names.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors
      copying libcst\codemod\visitors\_gather_unused_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors
      copying libcst\codemod\visitors\_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors
      copying libcst\codemod\visitors\_remove_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors     
      copying libcst\codemod\visitors\__init__.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors
      creating build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_add_pyre_directive.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_add_trailing_commas.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_convert_format_to_fstring.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_convert_namedtuple_to_dataclass.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_convert_percent_format_to_fstring.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_convert_type_comments.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_ensure_import_present.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_fix_pyre_directives.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_noop.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_remove_pyre_directive.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_remove_unused_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_rename.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_strip_strings_from_types.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\test_unnecessary_format_string.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests
      copying libcst\codemod\commands\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\codemod\commands\tests      creating build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\test_add_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\test_apply_type_annotations.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\test_gather_comments.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\test_gather_exports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\test_gather_global_names.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\test_gather_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\test_gather_string_annotation_names.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\test_gather_unused_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\test_remove_imports.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests
      copying libcst\codemod\visitors\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\codemod\visitors\tests      creating build\lib.win-amd64-cpython-313\libcst\display\tests
      copying libcst\display\tests\test_dump_graphviz.py -> build\lib.win-amd64-cpython-313\libcst\display\tests        
      copying libcst\display\tests\test_dump_text.py -> build\lib.win-amd64-cpython-313\libcst\display\tests
      copying libcst\display\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\display\tests
      creating build\lib.win-amd64-cpython-313\libcst\helpers\tests
      copying libcst\helpers\tests\test_expression.py -> build\lib.win-amd64-cpython-313\libcst\helpers\tests
      copying libcst\helpers\tests\test_module.py -> build\lib.win-amd64-cpython-313\libcst\helpers\tests
      copying libcst\helpers\tests\test_node_fields.py -> build\lib.win-amd64-cpython-313\libcst\helpers\tests
      copying libcst\helpers\tests\test_paths.py -> build\lib.win-amd64-cpython-313\libcst\helpers\tests
      copying libcst\helpers\tests\test_template.py -> build\lib.win-amd64-cpython-313\libcst\helpers\tests
      copying libcst\helpers\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\helpers\tests
      creating build\lib.win-amd64-cpython-313\libcst\matchers\tests
      copying libcst\matchers\tests\test_decorators.py -> build\lib.win-amd64-cpython-313\libcst\matchers\tests
      copying libcst\matchers\tests\test_extract.py -> build\lib.win-amd64-cpython-313\libcst\matchers\tests
      copying libcst\matchers\tests\test_findall.py -> build\lib.win-amd64-cpython-313\libcst\matchers\tests
      copying libcst\matchers\tests\test_matchers.py -> build\lib.win-amd64-cpython-313\libcst\matchers\tests
      copying libcst\matchers\tests\test_matchers_with_metadata.py -> build\lib.win-amd64-cpython-313\libcst\matchers\tests
      copying libcst\matchers\tests\test_replace.py -> build\lib.win-amd64-cpython-313\libcst\matchers\tests
      copying libcst\matchers\tests\test_visitors.py -> build\lib.win-amd64-cpython-313\libcst\matchers\tests
      copying libcst\matchers\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\matchers\tests
      creating build\lib.win-amd64-cpython-313\libcst\metadata\tests
      copying libcst\metadata\tests\test_accessor_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests  
      copying libcst\metadata\tests\test_base_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests      
      copying libcst\metadata\tests\test_expression_context_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests
      copying libcst\metadata\tests\test_file_path_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests 
      copying libcst\metadata\tests\test_full_repo_manager.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests  
      copying libcst\metadata\tests\test_metadata_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests  
      copying libcst\metadata\tests\test_metadata_wrapper.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests   
      copying libcst\metadata\tests\test_name_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests      
      copying libcst\metadata\tests\test_parent_node_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests
      copying libcst\metadata\tests\test_position_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests  
      copying libcst\metadata\tests\test_reentrant_codegen.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests  
      copying libcst\metadata\tests\test_scope_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests     
      copying libcst\metadata\tests\test_span_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests      
      copying libcst\metadata\tests\test_type_inference_provider.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests
      copying libcst\metadata\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\metadata\tests
      creating build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\base.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_assert.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_assign.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_atom.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_attribute.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_await.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_binary_op.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_boolean_op.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_call.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_classdef.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_comment.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_comparison.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_cst_node.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_del.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_dict.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_dict_comp.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_docstring.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_else.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_empty_line.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_flatten_behavior.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests       
      copying libcst\_nodes\tests\test_for.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_funcdef.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_global.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_if.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_ifexp.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_import.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_indented_block.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_lambda.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_leaf_small_statements.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests  
      copying libcst\_nodes\tests\test_list.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_match.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_matrix_multiply.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests        
      copying libcst\_nodes\tests\test_module.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_namedexpr.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_newline.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_nonlocal.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_number.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_raise.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_removal_behavior.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests       
      copying libcst\_nodes\tests\test_return.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_set.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_simple_comp.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_simple_statement.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests       
      copying libcst\_nodes\tests\test_simple_string.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_simple_whitespace.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests      
      copying libcst\_nodes\tests\test_small_statement.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests        
      copying libcst\_nodes\tests\test_subscript.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_trailing_whitespace.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests    
      copying libcst\_nodes\tests\test_try.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_tuple.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_type_alias.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_unary_op.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_while.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_with.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\test_yield.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      copying libcst\_nodes\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_nodes\tests
      creating build\lib.win-amd64-cpython-313\libcst\_parser\conversions
      copying libcst\_parser\conversions\expression.py -> build\lib.win-amd64-cpython-313\libcst\_parser\conversions    
      copying libcst\_parser\conversions\module.py -> build\lib.win-amd64-cpython-313\libcst\_parser\conversions        
      copying libcst\_parser\conversions\params.py -> build\lib.win-amd64-cpython-313\libcst\_parser\conversions        
      copying libcst\_parser\conversions\statement.py -> build\lib.win-amd64-cpython-313\libcst\_parser\conversions     
      copying libcst\_parser\conversions\terminals.py -> build\lib.win-amd64-cpython-313\libcst\_parser\conversions     
      copying libcst\_parser\conversions\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_parser\conversions      
      creating build\lib.win-amd64-cpython-313\libcst\_parser\parso
      copying libcst\_parser\parso\utils.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso
      copying libcst\_parser\parso\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso
      creating build\lib.win-amd64-cpython-313\libcst\_parser\tests
      copying libcst\_parser\tests\test_config.py -> build\lib.win-amd64-cpython-313\libcst\_parser\tests
      copying libcst\_parser\tests\test_detect_config.py -> build\lib.win-amd64-cpython-313\libcst\_parser\tests        
      copying libcst\_parser\tests\test_footer_behavior.py -> build\lib.win-amd64-cpython-313\libcst\_parser\tests      
      copying libcst\_parser\tests\test_node_identity.py -> build\lib.win-amd64-cpython-313\libcst\_parser\tests        
      copying libcst\_parser\tests\test_parse_errors.py -> build\lib.win-amd64-cpython-313\libcst\_parser\tests
      copying libcst\_parser\tests\test_version_compare.py -> build\lib.win-amd64-cpython-313\libcst\_parser\tests
      copying libcst\_parser\tests\test_whitespace_parser.py -> build\lib.win-amd64-cpython-313\libcst\_parser\tests    
      copying libcst\_parser\tests\test_wrapped_tokenize.py -> build\lib.win-amd64-cpython-313\libcst\_parser\tests     
      copying libcst\_parser\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_parser\tests
      creating build\lib.win-amd64-cpython-313\libcst\_parser\types
      copying libcst\_parser\types\config.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types
      copying libcst\_parser\types\conversions.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types
      copying libcst\_parser\types\partials.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types
      copying libcst\_parser\types\production.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types
      copying libcst\_parser\types\py_config.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types
      copying libcst\_parser\types\py_token.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types
      copying libcst\_parser\types\py_whitespace_state.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types       
      copying libcst\_parser\types\token.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types
      copying libcst\_parser\types\whitespace_state.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types
      copying libcst\_parser\types\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types
      creating build\lib.win-amd64-cpython-313\libcst\_parser\parso\pgen2
      copying libcst\_parser\parso\pgen2\generator.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\pgen2     
      copying libcst\_parser\parso\pgen2\grammar_parser.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\pgen2      copying libcst\_parser\parso\pgen2\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\pgen2      
      creating build\lib.win-amd64-cpython-313\libcst\_parser\parso\python
      copying libcst\_parser\parso\python\py_token.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\python    
      copying libcst\_parser\parso\python\token.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\python       
      copying libcst\_parser\parso\python\tokenize.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\python    
      copying libcst\_parser\parso\python\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\python    
      creating build\lib.win-amd64-cpython-313\libcst\_parser\parso\tests
      copying libcst\_parser\parso\tests\test_fstring.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\tests  
      copying libcst\_parser\parso\tests\test_tokenize.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\tests 
      copying libcst\_parser\parso\tests\test_utils.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\tests    
      copying libcst\_parser\parso\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_parser\parso\tests      
      creating build\lib.win-amd64-cpython-313\libcst\_parser\types\tests
      copying libcst\_parser\types\tests\test_config.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types\tests   
      copying libcst\_parser\types\tests\__init__.py -> build\lib.win-amd64-cpython-313\libcst\_parser\types\tests      
      running egg_info
      writing libcst.egg-info\PKG-INFO
      writing dependency_links to libcst.egg-info\dependency_links.txt
      writing requirements to libcst.egg-info\requires.txt
      writing top-level names to libcst.egg-info\top_level.txt
      ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any
      reading manifest file 'libcst.egg-info\SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files matching '*' found under directory 'native\target'
      adding license file 'LICENSE'
      writing manifest file 'libcst.egg-info\SOURCES.txt'
      C:\Users\Avasam\AppData\Local\Temp\pip-build-env-3pmjtsds\overlay\Lib\site-packages\setuptools\command\build_py.py:218: _Warning: Package 'libcst.tests.pyre' is absent from the `packages` configuration.
      !!
     
              ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'libcst.tests.pyre' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration.
     
              This leads to an ambiguous overall configuration. If you want to distribute this
              package, please make sure that 'libcst.tests.pyre' is explicitly added
              to the `packages` configuration field.
     
              Alternatively, you can also rely on setuptools' discovery methods
              (for example by using `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).
     
              You can read more about "package discovery" on setuptools documentation page:
     
              - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
     
              If you don't want 'libcst.tests.pyre' to be distributed and are
              already explicitly excluding 'libcst.tests.pyre' via
              `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or `include-package-data=False` in
              combination with a more fine grained `package-data` configuration.
     
              You can read more about "package data files" on setuptools documentation page:
     
              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html
     
     
              [^1]: For Python, any directory (with suitable naming) can be imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of package data
                    directory, all directories are treated like packages.
              ********************************************************************************
     
      !!
        check.warn(importable)
      copying libcst\py.typed -> build\lib.win-amd64-cpython-313\libcst
      creating build\lib.win-amd64-cpython-313\libcst\tests\pyre
      copying libcst\tests\pyre\.pyre_configuration -> build\lib.win-amd64-cpython-313\libcst\tests\pyre
      copying libcst\tests\pyre\simple_class.json -> build\lib.win-amd64-cpython-313\libcst\tests\pyre
      copying libcst\tests\pyre\simple_class.py -> build\lib.win-amd64-cpython-313\libcst\tests\pyre
      copying libcst\codemod\tests\codemod_formatter_error_input.py.txt -> build\lib.win-amd64-cpython-313\libcst\codemod\tests
      copying libcst\_parser\conversions\README.md -> build\lib.win-amd64-cpython-313\libcst\_parser\conversions        
      running build_ext
      running build_rust
      error: can't find Rust compiler
     
      If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.
     
      To update pip, run:
     
          pip install --upgrade pip
     
      and then retry package installation.
     
      If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for libcst
Failed to build libcst
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (libcst)
```
2024-10-06 09:40:23 +01:00
Stephen Morton
f30d367c7a move socket.error classes from _socket to socket (#12746)
They're implemented in C, but consider themselves to live in
socket.
2024-10-05 18:19:34 -07:00
Alex Waygood
8cb6df0201 Bump flake8-pyi to 24.9.0 (#12739) 2024-10-05 19:16:05 +01:00
renovate[bot]
fc611d94c8 Update most test/lint dependencies (#12717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 07:52:10 -07:00
Alex Waygood
ad96829bfa Remove linters from requirements-tests.txt (#12725) 2024-10-05 14:37:27 +01:00
Stephen Morton
77510ae6a4 resort _ast and ast modules (#11162)
The classes imported from the _ast module are defined in C,
but set their __module__ to ast. This arrangement ensures that
the type stubs have the same.

related to https://github.com/python/typeshed/issues/3968
and the discussion in https://github.com/python/typeshed/issues/11141
2024-10-04 17:33:45 -07:00
Stephen Morton
39650b43b5 add _sqlite3 module (#11174)
This aligns with the implementation while giving greater fidelity
to runtime naming and inheritance

Related to https://github.com/python/typeshed/issues/3968 and https://github.com/python/typeshed/issues/11141
2024-10-04 17:28:26 -07:00
danieleades
99095f5437 improve type annotations in 'docutils.frontend' (#12735)
Co-authored-by: daniel.eades <daniel.eades@seebyte.com>
2024-10-04 09:10:09 -07:00
Philipp Hahn
277202cf7e Xmlrpc: accept data:str|bytes and require method:str (#12734)
Declared <https://github.com/python/cpython/blob/main/Lib/xmlrpc/server.py#L622>

Inside
[`do_POST()`](https://github.com/python/cpython/blob/main/Lib/xmlrpc/server.py#L493)
`data: bytes`, where `decode_request_content()` only handles `gzip`
compression.
The `result` is then written to `self.wfile`, which uses `bytes`.

But for
[CGI](https://github.com/python/cpython/blob/main/Lib/xmlrpc/server.py#L636)
`str` is used: [`handle_xmlrpc(self,
request_text)`](https://github.com/python/cpython/blob/main/Lib/xmlrpc/server.py#L642)
calls the argument `request_text`, which is read from `sys.stdin` as
type `str` and then passed to `_marshaled_dispatch()`, which internally calls
[`xmlrpc.client.loads()`](https://github.com/python/cpython/blob/main/Lib/xmlrpc/server.py#L257)
to parse the XML using Expat, which accepts both `str` and `bytes`; the
later defaults to encoding `utf-8`, but other encodings can be
used when explicitly specified:

>>> xmlrpc.client.loads('<params><param><value><string>ä</string></value></param></params>')
(('ä',), None)
>>> xmlrpc.client.loads('<params><param><value><string>ä</string></value></param></params>'.encode("utf-8"))
(('ä',), None)
>>> xmlrpc.client.loads('<params><param><value><string>ä</string></value></param></params>'.encode("iso-8859-1"))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.11/xmlrpc/client.py", line 1029, in loads
    p.feed(data)
  File "/usr/lib/python3.11/xmlrpc/client.py", line 451, in feed
    self._parser.Parse(data, False)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 3, column 15
>>> xmlrpc.client.loads('<?xml version="1.0" encoding="utf-8"?><params><param><value><string>ä</string></value></param></params>'.encode("iso-8859-1"))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.11/xmlrpc/client.py", line 1029, in loads
    p.feed(data)
  File "/usr/lib/python3.11/xmlrpc/client.py", line 451, in feed
    self._parser.Parse(data, False)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column 68
>>> xmlrpc.client.loads('<?xml version="1.0" encoding="iso-8859-1"?><params><param><value><string>ä</string></value></param></params>'.encode("iso-8859-1"))
(('ä',), None)

Signed-off-by: Philipp Hahn <hahn@univention.de>
Reviewed-By: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2024-10-04 07:12:02 -07:00
sobolevn
d16fe74e1f Fix _csv.Dialect.__init__ (#12320) 2024-10-03 11:33:56 +02:00
Sebastian Rittau
848cf9103d Remove Pillow stubs (#12732) 2024-10-03 11:33:09 +02:00
jonathan-h-grebe
735942adb0 Add missing ssl related arguments to Redis from_url method (#12166) 2024-10-02 21:24:56 -07:00
danieleades
bdc4c8c618 add type annotations for 'docutils.parsers.rst.directives.admonitions' (#12396) 2024-10-02 20:41:50 -07:00
Sebastian Rittau
975760281c tarfile.open(): Handle all modes (#12181) 2024-10-02 20:35:56 -07:00
danieleades
8228faa87d add type annotations to docutils.writers (#12420)
Co-authored-by: daniel.eades <daniel.eades@seebyte.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com>
2024-10-02 20:31:35 -07:00
Sebastian Rittau
26b3c69ee4 Add option to keep tmp dir to stubtest script (#12151) 2024-10-02 19:48:52 -07:00
Sebastian Rittau
8acc85dbab dateutil: Enable failing test (#11612) 2024-10-02 16:39:30 -07:00
Alex Waygood
45f96fe343 Move multiprocessing test-case file to the right place (#12727) 2024-10-02 16:36:24 +01:00
Alex Waygood
061f562935 gevent: remove unused allowlist entry (#12726) 2024-10-02 16:28:06 +01:00
Sebastian Rittau
2bf4edd901 [icalendar] Update to 6.0.0 (#12706) 2024-10-02 16:49:26 +02:00
Sebastian Rittau
e4c84dfb11 Make email.policy classes generic (#12724) 2024-10-02 16:42:07 +02:00
Sebastian Rittau
f266dc226a Change RawIOBase return types from None to MaybeNone (#12686) 2024-10-02 07:11:23 -07:00
Robsdedude
e05f3f083f Fix: pytz: is_dst parameter (#12723) 2024-10-02 13:11:12 +02:00
Stephen Morton
719ddd1774 move re.error into re.pyi (#11188) 2024-10-02 11:26:44 +02:00
Sebastian Rittau
6ba6589144 Support environment markers in requires fields (#12711) 2024-10-02 10:14:33 +02:00
Jelle Zijlstra
213ca9eb81 Update vobject (#12721) 2024-10-02 08:27:21 +01:00
renovate[bot]
481230077b Update dependency pyright to v1.1.383 (#12722)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-02 07:33:36 +01:00
Pradeep Kumar
b54dcc6783 [str] Add LiteralString overload for __getitem__ (#12714)
In PEP 675, Graham Bleaney and I had specified a list of `LiteralString`-preserving [overloads](https://peps.python.org/pep-0675/#appendix-c-str-methods-that-preserve-literalstring) for `str`. However, we didn't specify an overload for `__getitem__` and didn't give any rationale either. IIRC this was an edge case we didn't want to take a strong decision on unless users wanted it.

Carl Meyer brought this up yesterday, so I think it's worth discussing.

Pro: `my_literal_string[i]` or `my_literal_string[i:j]` should technically be compatible with `LiteralString`, since it is a substring of a literal-derived string.

Con: The main downside is that an attacker might control the indexes and try to access a specific substring from a literal string in the code. For example, they might narrow down the string to `rm foo` or `SELECT *`.

It's true that `join` and other methods could also construct dangerous strings from `LiteralString`s, and we even call that out as an accepted tradeoff in the PEP:

> 4. Trivial functions could be constructed to convert a str to a LiteralString:
>
>     def make_literal(s: str) -> LiteralString:
>         letters: Dict[str, LiteralString] = {
>             "A": "A",
>             "B": "B",
>             ...
>         }
>         output: List[LiteralString] = [letters[c] for c in s]
>         return "".join(output)
>
> We could mitigate the above using linting, code review, etc., but ultimately a clever, malicious developer attempting to circumvent the protections offered by LiteralString will always succeed. The important thing to remember is that LiteralString is not intended to protect against malicious developers; it is meant to protect against benign developers accidentally using sensitive APIs in a dangerous way (without getting in their way otherwise).
>
> Without LiteralString, the best enforcement tool API authors have is documentation, which is easily ignored and often not seen. With LiteralString, API misuse requires conscious thought and artifacts in the code that reviewers and future developers can notice.
>
> -- [PEP 675 - Appendix B: Limitations](https://peps.python.org/pep-0675/#appendix-b-limitations)

`__getitem__`, however, seems a bit different, because it (and `split`, `zfill`, etc.) accept an index or width that could be used to construct a dangerous query or a humongous string. So, we need to clarify the intent a little.

What was the intent of these overloads? We wanted to forbid "arbitrary user-supplied strings" while allowing methods that preserved literal strings. We were not trying to prevent every possible exploit on the string. Since `__getitem__` forbids arbitrary user-supplied strings and preserves literal strings, I think we should add an overload for it.
2024-10-01 20:29:00 -07:00