pypa / setuptools

Official project repository for the Setuptools build system
https://pypi.org/project/setuptools/
MIT License
2.49k stars 1.19k forks source link

Add type hints to setuptools #2345

Open GergelyKalmar opened 4 years ago

GergelyKalmar commented 4 years ago

It seems that setuptools doesn't have type hints at the moment:

4: error: Skipping analyzing 'setuptools': found module but no type hints or library stubs
4: note: See https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports

I think that adding type hints at least to the most common entrypoints (e.g. setup) would be great to have, considering that setuptools is quite an important part of the official Python ecosystem.

jaraco commented 4 years ago

Sounds good to me. Would you be interested in contributing such hints? Maybe start at something modest, like setup() as you say.

McSinyx commented 4 years ago

I'm also interested in giving a hand, given this would take quite some work.

GergelyKalmar commented 4 years ago

Perhaps I could write it up, but it might take some more time then. As you're building on distutils I guess I would need to dig a bit to make sure my implementation makes sense, even if just for setup(). Although the distutils interface seems to be documented okay – I'm not sure what traps to look out for. On the bright side there's at least no need for Python 2-style type hints given that you're not supporting that anymore.

If someone else wants to immerse themselves into this, I wouldn't mind. I'm still a bit behind type hinting my own codebase first anyways.

GergelyKalmar commented 4 years ago

It's not a very friendly interface to type hint though with all the **attrs catch-alls (https://github.com/python/cpython/blob/master/Lib/distutils/core.py#L57).

antonagestam commented 3 years ago

It's not a very friendly interface to type hint though with all the **attrs catch-alls (https://github.com/python/cpython/blob/master/Lib/distutils/core.py#L57).

Perhaps it's a good idea to use a stub file and annotate the setup() function as if it had all the documented arguments?

GergelyKalmar commented 3 years ago

That would have been my idea too. I'm pretty busy at the moment though and so I'm not sure I'd get to it anytime soon!

jaraco commented 3 years ago

Late versions of the setuptools test suite will run mypy checks on the code, but there are many failed checks. To run the checks, use tox -- --mypy. Here's a sample run:

``` python develop-inst-noop: /Users/jaraco/code/public/pypa/setuptools python installed: alabaster==0.7.12,apipkg==1.5,appdirs==1.4.4,attrs==21.2.0,Babel==2.9.1,black==21.5b1,bootstrap==1.0,certifi==2020.12.5,chardet==4.0.0,click==8.0.1,contextlib2==0.6.0.post1,coverage==5.5,distlib==0.3.1,docutils==0.17.1,execnet==1.8.0,filelock==3.0.12,flake8==3.9.2,flake8-2020==1.6.0,idna==2.10,imagesize==1.2.0,importlib-metadata==4.0.1,iniconfig==1.1.1,jaraco.context==4.0.0,jaraco.envs==2.1.1,jaraco.functools==3.3.0,jaraco.path==3.3.1,Jinja2==2.11.3,MarkupSafe==1.1.1,mccabe==0.6.1,mock==4.0.3,more-itertools==8.7.0,mypy==0.812,mypy-extensions==0.4.3,packaging==20.9,path==15.1.2,path.py==12.5.0,pathspec==0.8.1,Paver==1.3.4,pep517==0.10.0,pluggy==0.13.1,py==1.10.0,pycodestyle==2.7.0,pyflakes==2.3.1,Pygments==2.9.0,pyobjc==7.2,pyobjc-core==7.2,pyobjc-framework-Accessibility==7.2,pyobjc-framework-Accounts==7.2,pyobjc-framework-AddressBook==7.2,pyobjc-framework-AdServices==7.2,pyobjc-framework-AdSupport==7.2,pyobjc-framework-AppleScriptKit==7.2,pyobjc-framework-AppleScriptObjC==7.2,pyobjc-framework-ApplicationServices==7.2,pyobjc-framework-AppTrackingTransparency==7.2,pyobjc-framework-AuthenticationServices==7.2,pyobjc-framework-AutomaticAssessmentConfiguration==7.2,pyobjc-framework-Automator==7.2,pyobjc-framework-AVFoundation==7.2,pyobjc-framework-AVKit==7.2,pyobjc-framework-BusinessChat==7.2,pyobjc-framework-CalendarStore==7.2,pyobjc-framework-CallKit==7.2,pyobjc-framework-CFNetwork==7.2,pyobjc-framework-ClassKit==7.2,pyobjc-framework-CloudKit==7.2,pyobjc-framework-Cocoa==7.2,pyobjc-framework-Collaboration==7.2,pyobjc-framework-ColorSync==7.2,pyobjc-framework-Contacts==7.2,pyobjc-framework-ContactsUI==7.2,pyobjc-framework-CoreAudio==7.2,pyobjc-framework-CoreAudioKit==7.2,pyobjc-framework-CoreBluetooth==7.2,pyobjc-framework-CoreData==7.2,pyobjc-framework-CoreHaptics==7.2,pyobjc-framework-CoreLocation==7.2,pyobjc-framework-CoreMedia==7.2,pyobjc-framework-CoreMediaIO==7.2,pyobjc-framework-CoreMIDI==7.2,pyobjc-framework-CoreML==7.2,pyobjc-framework-CoreMotion==7.2,pyobjc-framework-CoreServices==7.2,pyobjc-framework-CoreSpotlight==7.2,pyobjc-framework-CoreText==7.2,pyobjc-framework-CoreWLAN==7.2,pyobjc-framework-CryptoTokenKit==7.2,pyobjc-framework-DeviceCheck==7.2,pyobjc-framework-DictionaryServices==7.2,pyobjc-framework-DiscRecording==7.2,pyobjc-framework-DiscRecordingUI==7.2,pyobjc-framework-DiskArbitration==7.2,pyobjc-framework-DVDPlayback==7.2,pyobjc-framework-EventKit==7.2,pyobjc-framework-ExceptionHandling==7.2,pyobjc-framework-ExecutionPolicy==7.2,pyobjc-framework-ExternalAccessory==7.2,pyobjc-framework-FileProvider==7.2,pyobjc-framework-FileProviderUI==7.2,pyobjc-framework-FinderSync==7.2,pyobjc-framework-FSEvents==7.2,pyobjc-framework-GameCenter==7.2,pyobjc-framework-GameController==7.2,pyobjc-framework-GameKit==7.2,pyobjc-framework-GameplayKit==7.2,pyobjc-framework-ImageCaptureCore==7.2,pyobjc-framework-IMServicePlugIn==7.2,pyobjc-framework-InputMethodKit==7.2,pyobjc-framework-InstallerPlugins==7.2,pyobjc-framework-InstantMessage==7.2,pyobjc-framework-Intents==7.2,pyobjc-framework-IOSurface==7.2,pyobjc-framework-iTunesLibrary==7.2,pyobjc-framework-KernelManagement==7.2,pyobjc-framework-LatentSemanticMapping==7.2,pyobjc-framework-LaunchServices==7.2,pyobjc-framework-libdispatch==7.2,pyobjc-framework-LinkPresentation==7.2,pyobjc-framework-LocalAuthentication==7.2,pyobjc-framework-MapKit==7.2,pyobjc-framework-MediaAccessibility==7.2,pyobjc-framework-MediaLibrary==7.2,pyobjc-framework-MediaPlayer==7.2,pyobjc-framework-MediaToolbox==7.2,pyobjc-framework-Metal==7.2,pyobjc-framework-MetalKit==7.2,pyobjc-framework-MetalPerformanceShaders==7.2,pyobjc-framework-MetalPerformanceShadersGraph==7.2,pyobjc-framework-MLCompute==7.2,pyobjc-framework-ModelIO==7.2,pyobjc-framework-MultipeerConnectivity==7.2,pyobjc-framework-NaturalLanguage==7.2,pyobjc-framework-NetFS==7.2,pyobjc-framework-Network==7.2,pyobjc-framework-NetworkExtension==7.2,pyobjc-framework-NotificationCenter==7.2,pyobjc-framework-OpenDirectory==7.2,pyobjc-framework-OSAKit==7.2,pyobjc-framework-OSLog==7.2,pyobjc-framework-PassKit==7.2,pyobjc-framework-PencilKit==7.2,pyobjc-framework-Photos==7.2,pyobjc-framework-PhotosUI==7.2,pyobjc-framework-PreferencePanes==7.2,pyobjc-framework-PushKit==7.2,pyobjc-framework-Quartz==7.2,pyobjc-framework-QuickLookThumbnailing==7.2,pyobjc-framework-ReplayKit==7.2,pyobjc-framework-SafariServices==7.2,pyobjc-framework-SceneKit==7.2,pyobjc-framework-ScreenSaver==7.2,pyobjc-framework-ScreenTime==7.2,pyobjc-framework-ScriptingBridge==7.2,pyobjc-framework-SearchKit==7.2,pyobjc-framework-Security==7.2,pyobjc-framework-SecurityFoundation==7.2,pyobjc-framework-SecurityInterface==7.2,pyobjc-framework-ServiceManagement==7.2,pyobjc-framework-Social==7.2,pyobjc-framework-SoundAnalysis==7.2,pyobjc-framework-Speech==7.2,pyobjc-framework-SpriteKit==7.2,pyobjc-framework-StoreKit==7.2,pyobjc-framework-SyncServices==7.2,pyobjc-framework-SystemConfiguration==7.2,pyobjc-framework-SystemExtensions==7.2,pyobjc-framework-UniformTypeIdentifiers==7.2,pyobjc-framework-UserNotifications==7.2,pyobjc-framework-UserNotificationsUI==7.2,pyobjc-framework-VideoSubscriberAccount==7.2,pyobjc-framework-VideoToolbox==7.2,pyobjc-framework-Virtualization==7.2,pyobjc-framework-Vision==7.2,pyobjc-framework-WebKit==7.2,pyparsing==2.4.7,pytest==6.2.4,pytest-black==0.3.12,pytest-checkdocs==2.7.0,pytest-cov==2.12.0,pytest-enabler==1.2.0,pytest-fixture-config==1.7.0,pytest-flake8==1.0.7,pytest-forked==1.3.0,pytest-mypy==0.8.1,pytest-shutil==1.7.0,pytest-virtualenv==1.7.0,pytest-xdist==2.2.1,pytz==2021.1,regex==2021.4.4,requests==2.25.1,singledispatch==3.6.1,six==1.16.0,snowballstemmer==2.1.0,Sphinx==4.0.1,sphinxcontrib-applehelp==1.0.2,sphinxcontrib-devhelp==1.0.2,sphinxcontrib-htmlhelp==1.0.3,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-qthelp==1.0.3,sphinxcontrib-serializinghtml==1.1.4,termcolor==1.1.0,toml==0.10.2,tox==3.23.1,typed-ast==1.4.3,typing-extensions==3.10.0.0,urllib3==1.26.4,virtualenv==20.4.6,zipp==3.4.1 python run-test-pre: PYTHONHASHSEED='309040051' python run-test: commands[0] | pytest --mypy ============================= test session starts ============================== platform darwin -- Python 3.9.2, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 cachedir: .tox/python/.pytest_cache rootdir: /Users/jaraco/code/public/pypa/setuptools, configfile: pytest.ini plugins: flake8-1.0.7, cov-2.12.0, black-0.3.12, enabler-1.2.0, mypy-0.8.1, shutil-1.7.0, checkdocs-2.7.0, xdist-2.2.1, virtualenv-1.7.0, forked-1.3.0 gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I / gw6 I / gw7 I gw0 [951] / gw1 [951] / gw2 [951] / gw3 [951] / gw4 [951] / gw5 [951] / gw6 [951] / gw7 [951] sss..s.................sssssFs.....Fs.s.sFsFss...s..Fss.Fs..s.....s.F.s. [ 7%] ..F.sFsF...s....s...F..s.........F.s..F....s..sF.s.ssFs.ss.s....s.s.s..s [ 15%] F..s....ss......ss.s...F.s...ssss..s.s.s...s..sss..X.s.Fs...Fs.s.s.s..s. [ 22%] ss.s....s.s..........FsF.F..s..s....F..............F.F.F..FF.....s...... [ 30%] .........................s.................FF.s......................... [ 37%] ...........................................................ss........... [ 45%] ...........................................................x............ [ 52%] ....................................F................................... [ 60%] .............................x.......x....F............................. [ 68%] s.s..................................................................... [ 75%] .............ssss...................................F................... [ 83%] ......xx...x......x......................................F.............. [ 90%] ...........x...F.........................x......sss..................... [ 98%] ..........s.... [100%] =================================== FAILURES =================================== _________________________________ test session _________________________________ [gw1] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python mypy exited with status 1. __________________________ pkg_resources/__init__.py ___________________________ [gw4] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 48: error: Name '_imp' already defined (by an import) 72: error: Incompatible types in assignment (expression has type "None", variable has type Module) 74: error: Module 'pkg_resources.extern' has no attribute 'appdirs' 75: error: Module 'pkg_resources.extern' has no attribute 'packaging' __________________ pkg_resources/tests/test_pkg_resources.py ___________________ [gw5] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 15: error: Name 'mock' already defined (by an import) 46: error: Need type annotation for 'finalizers' (hint: "finalizers: List[] = ...") ____________________________ setuptools/sandbox.py _____________________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 22: error: Name 'file' is not defined 307: error: Argument 1 to "_mk_dual_path_wrapper" has incompatible type "str"; expected "AbstractSandbox" 320: error: Argument 1 to "_mk_single_path_wrapper" has incompatible type "str"; expected "AbstractSandbox" 321: error: Argument 1 to "_mk_single_path_wrapper" has incompatible type "str"; expected "AbstractSandbox" 328: error: Argument 1 to "_mk_single_path_wrapper" has incompatible type "str"; expected "AbstractSandbox" 343: error: Argument 1 to "_mk_single_with_return" has incompatible type "str"; expected "AbstractSandbox" 358: error: Argument 1 to "_mk_query" has incompatible type "str"; expected "AbstractSandbox" _______________________ setuptools/command/build_ext.py ________________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 5: error: Module 'distutils.command.build_ext' has no attribute 'build_ext' 25: error: Module 'distutils.sysconfig' has no attribute '_config_vars'; maybe "get_config_vars" or "get_config_var"? ________________________ setuptools/command/build_py.py ________________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 16: error: Name 'Mixin2to3' already defined (possibly by an import) ______________________ setuptools/command/easy_install.py ______________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 20: error: Module 'distutils.command.install' has no attribute 'INSTALL_SCHEMES' 22: error: Module 'distutils.command.build_scripts' has no attribute 'first_line_re' 1690: error: Cannot assign to a type 1936: error: All conditional function variants must have identical signatures 1954: error: Need type annotation for 'options' (hint: "options: List[] = ...") 1955: error: Need type annotation for 'split_args' (hint: "split_args: Dict[, ] = ...") ___________________________________ setup.py ___________________________________ [gw0] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 24: error: Module has no attribute "_name"; maybe "name", "uname", or "__name__"? 86: error: Need type annotation for 'setup_params' 99: error: Unsupported operand types for + ("List[]" and "List[str]") 104: error: "chdir" does not return a value ________________________ setuptools/command/egg_info.py ________________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 31: error: Module 'setuptools.extern' has no attribute 'packaging' ________________________ setuptools/command/install.py _________________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 18: error: "Type[install]" has no attribute "user_options" 23: error: "Type[install]" has no attribute "boolean_options" 124: error: Unsupported operand types for + ("List[Tuple[str, Optional[Callable[[Command], bool]]]]" and "List[Tuple[str, Callable[[Any], bool]]]") ______________________ setuptools/command/install_lib.py _______________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 7: error: Name 'orig.install_lib' is not defined ____________________ setuptools/command/install_scripts.py _____________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 10: error: Name 'orig.install_scripts' is not defined _______________________ setuptools/command/py36compat.py _______________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 131: error: Module has no attribute "sdist" 133: error: Name 'sdist_add_defaults' already defined on line 7 ________________________ setuptools/command/register.py ________________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 7: error: Name 'orig.register' is not defined _________________________ setuptools/command/rotate.py _________________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 20: error: Need type annotation for 'boolean_options' (hint: "boolean_options: List[] = ...") _________________________ setuptools/command/sdist.py __________________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 22: error: Name 'orig.sdist' is not defined 36: error: Need type annotation for 'negative_opt' (hint: "negative_opt: Dict[, ] = ...") _____________________________ setuptools/config.py _____________________________ [gw5] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 171: error: Need type annotation for 'aliases' (hint: "aliases: Dict[, ] = ...") 482: error: Incompatible types in assignment (expression has type "str", base class "ConfigHandler" defined the type as "None") 573: error: Incompatible types in assignment (expression has type "str", base class "ConfigHandler" defined the type as "None") ______________________ setuptools/tests/test_bdist_egg.py ______________________ [gw4] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 48: error: Argument 1 to "__call__" of "_XfailMarkDecorator" has incompatible type "Optional[str]"; expected "Union[str, bool]" ______________________ setuptools/command/upload_docs.py _______________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 50: error: List item 0 has incompatible type "Tuple[str, Callable[[upload_docs], Any]]"; expected "Tuple[str, Optional[Callable[[Command], bool]]]" _____________________________ setuptools/monkey.py _____________________________ [gw1] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 15: error: Need type annotation for '__all__' (hint: "__all__: List[] = ...") __________________________ setuptools/ssl_support.py ___________________________ [gw1] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 15: error: Incompatible types in assignment (expression has type "None", variable has type Module) 37: error: Incompatible types in assignment (expression has type "Type[object]", variable has type "Type[HTTPSHandler]") 37: error: Incompatible types in assignment (expression has type "Type[object]", variable has type "Type[HTTPSConnection]") 47: error: Incompatible import of "CertificateError" (imported name has type "Type[CertificateError]", local name has type "Type[SSLCertVerificationError]") 50: error: Cannot assign multiple types to name "CertificateError" without an explicit "Type[...]" annotation 50: error: Incompatible types in assignment (expression has type "None", variable has type "Type[SSLCertVerificationError]") 51: error: Incompatible types in assignment (expression has type "None", variable has type "Callable[[Union[Dict[str, Union[str, Tuple[Tuple[Tuple[str, str], ...], ...], Tuple[Tuple[str, str], ...]]], bytes, None], str], None]") 55: error: Name 'CertificateError' already defined (possibly by an import) _______________________ setuptools/command/bdist_rpm.py ________________________ [gw1] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 4: error: Name 'orig.bdist_rpm' is not defined ____________________ pkg_resources/tests/test_resources.py _____________________ [gw3] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 8: error: Module 'pkg_resources.extern' has no attribute 'packaging' ____________________________ setuptools/__init__.py ____________________________ [gw3] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 162: error: Variable "setuptools._Command" is not valid as a type 162: note: See https://mypy.readthedocs.io/en/latest/common_issues.html#variables-vs-type-aliases 162: error: Invalid base class "_Command" ______________________________ setuptools/dist.py ______________________________ [gw3] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 17: error: Module 'distutils.fancy_getopt' has no attribute 'translate_longopt' 30: error: Module 'setuptools.extern' has no attribute 'packaging' 31: error: Module 'setuptools.extern' has no attribute 'ordered_set' 366: error: Variable "setuptools.dist._Distribution" is not valid as a type 366: note: See https://mypy.readthedocs.io/en/latest/common_issues.html#variables-vs-type-aliases 366: error: Invalid base class "_Distribution" ______________________________ setuptools/msvc.py ______________________________ [gw3] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 42: error: Name 'winreg' already defined (by an import) 48: error: Incompatible types in assignment (expression has type "Dict[, ]", variable has type "_Environ[str]") ________________________ setuptools/command/__init__.py ________________________ [gw3] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 1: error: Module 'distutils.command.bdist' has no attribute 'bdist' _______________________ setuptools/command/build_clib.py _______________________ [gw3] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 7: error: Name 'orig.build_clib' is not defined ___________________________ setuptools/extension.py ____________________________ [gw7] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 30: error: Variable "setuptools.extension._Extension" is not valid as a type 30: note: See https://mypy.readthedocs.io/en/latest/common_issues.html#variables-vs-type-aliases 30: error: Invalid base class "_Extension" ___________________________ setuptools/lib2to3_ex.py ___________________________ [gw7] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 8: error: Module 'distutils.util' has no attribute 'Mixin2to3' ______________________ setuptools/tests/test_egg_info.py _______________________ [gw6] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 52: error: Incompatible return value type (got "Tuple[int, ...]", expected "Tuple[int, int]") _______________________ setuptools/tests/test_extern.py ________________________ [gw7] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 5: error: Module 'setuptools.extern' has no attribute 'ordered_set' ______________________ setuptools/tests/test_register.py _______________________ [gw4] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 8: error: Name 'mock' already defined (by an import) _______________________ setuptools/tests/test_upload.py ________________________ [gw2] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 8: error: Name 'mock' already defined (by an import) ______________________ setuptools/tests/test_manifest.py _______________________ [gw7] darwin -- Python 3.9.2 /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/python 139: error: No overload variant of "zip" matches argument types "Iterator[str]", "object" 139: note: Possible overload variant: 139: note: def [_T1, _T2] zip(Iterable[_T1], Iterable[_T2]) -> Iterator[Tuple[_T1, _T2]] 139: note: <5 more non-matching overloads not shown> ---------- coverage: platform darwin, python 3.9.2-final-0 ----------- Name Stmts Miss Cover Missing ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _distutils_hack/__init__.py 67 39 42% 17-23, 33-38, 50-57, 68-69, 74-79, 82-93, 100-103, 110-111, 121 _distutils_hack/override.py 1 0 100% bootstrap.py 3 0 100% conftest.py 8 2 75% 28-29 docs/conf.py 19 0 100% pavement.py 35 23 34% 9-10, 15-16, 23-30, 38, 46-58, 62-64, 68-70 pkg_resources/__init__.py 1562 206 87% 46-48, 52-53, 60-62, 71-72, 82, 180-182, 296, 300, 304-306, 309, 312, 345-347, 357-362, 369, 382-392, 445, 450-454, 468, 474, 479, 484, 567-572, 581-594, 647-651, 663, 840, 1074, 1080, 1085-1088, 1124, 1136, 1142, 1155-1178, 1197-1198, 1219, 1222-1230, 1272, 1385, 1388, 1420, 1431, 1434-1455, 1458, 1463, 1468, 1556, 1608, 1633, 1636, 1710, 1720, 1730, 1737-1738, 1754-1759, 1764, 1773, 1787-1802, 1815, 1827, 1859, 1884, 1891, 1901-1903, 1976, 1985-1988, 2108-2115, 2123, 2209, 2233-2234, 2268, 2271-2272, 2321, 2381-2382, 2419, 2435, 2459-2460, 2464, 2510, 2614, 2617, 2620, 2629, 2651-2674, 2837, 2843-2846, 2858, 2862, 2905, 2927-2929, 2936, 2943-2950, 3060-3061, 3149, 3170 pkg_resources/_vendor/__init__.py 0 0 100% pkg_resources/_vendor/appdirs.py 257 211 18% 29-39, 77-97, 131-163, 195-203, 236-254, 291-300, 306-308, 310, 345-353, 388-404, 411-415, 419, 424, 429, 434, 439, 444, 449, 460-476, 480-503, 507-530, 533-556, 559-571, 577-608 pkg_resources/_vendor/packaging/__about__.py 10 0 100% pkg_resources/_vendor/packaging/__init__.py 3 0 100% pkg_resources/_vendor/packaging/_compat.py 13 1 92% 22 pkg_resources/_vendor/packaging/_structures.py 41 8 80% 22, 30, 38, 42, 63, 71, 79, 83 pkg_resources/_vendor/packaging/_typing.py 4 1 75% 48 pkg_resources/_vendor/packaging/markers.py 133 9 93% 64, 68, 205, 224, 254, 264, 277-278, 312 pkg_resources/_vendor/packaging/requirements.py 79 4 95% 111, 115, 136, 145 pkg_resources/_vendor/packaging/specifiers.py 310 131 58% 124-130, 148-151, 153, 159-167, 195, 200, 204, 221, 231-260, 290-292, 296, 300, 304, 308, 312, 316, 327, 454-466, 477-498, 523, 553-554, 580-581, 586-587, 596, 605, 615, 620, 627, 635-642, 647-661, 690-696, 708-728, 733, 735, 741-746, 762-773, 778, 782, 795, 804, 822-863 pkg_resources/_vendor/packaging/utils.py 26 4 85% 22-23, 43, 63 pkg_resources/_vendor/packaging/version.py 214 29 86% 96, 101, 114, 118, 123, 128, 133, 138, 143, 148, 153, 158, 163, 168, 173, 222, 303, 378-387, 402, 407, 412, 417, 439, 441, 445 pkg_resources/_vendor/pyparsing.py 2533 1310 48% 96-97, 103-106, 110-114, 151-181, 189-193, 212-213, 226, 234-241, 244, 247, 252-257, 259, 309, 312, 320, 322, 381, 385, 392, 394, 418, 425-426, 440-442, 452, 455, 463-466, 469, 472, 485-504, 545-561, 580-583, 599-603, 617, 632-635, 641-642, 650-656, 659-661, 680-685, 688, 691, 699, 739-753, 770-825, 828-832, 856-869, 889-914, 937, 941, 948-958, 961, 964, 978-979, 991, 996-1001, 1004, 1007, 1010, 1014, 1053-1058, 1075-1090, 1097-1098, 1121, 1142, 1201, 1226-1227, 1237-1248, 1319-1320, 1335-1336, 1339-1349, 1353, 1375-1393, 1413-1425, 1436-1437, 1445, 1448-1453, 1457-1475, 1480-1533, 1543-1563, 1600-1606, 1640, 1646-1648, 1651, 1688-1727, 1746-1770, 1790-1797, 1812-1819, 1836-1838, 1848-1850, 1857-1863, 1869-1875, 1902, 1904-1909, 1914-1916, 1919, 1921, 1923, 1932-1935, 1940, 1946, 1953, 1955-1957, 1964-1970, 1977, 1979-1981, 1988-1994, 2000-2006, 2012-2018, 2076-2077, 2092-2100, 2106-2110, 2147-2151, 2157, 2165, 2171, 2179-2191, 2194-2199, 2202, 2205, 2208, 2211, 2226-2230, 2319-2361, 2388-2392, 2395, 2418-2421, 2459-2477, 2480-2491, 2494-2496, 2502, 2516-2520, 2523-2525, 2537, 2540-2543, 2571-2577, 2580-2603, 2658, 2671, 2676, 2693, 2701, 2704-2705, 2726, 2732, 2734-2735, 2740, 2785, 2794-2806, 2869-2870, 2875-2878, 2891-2892, 2903, 2909, 2911-2912, 2918-2921, 2944-2951, 2955, 2959, 2997, 3002, 3019-3030, 3040, 3073, 3078-3079, 3082-3094, 3109-3110, 3113-3119, 3122-3127, 3156-3158, 3170-3178, 3191-3192, 3208-3211, 3222-3224, 3227-3231, 3242-3245, 3248-3253, 3263, 3266, 3271, 3274-3277, 3281, 3284-3286, 3298-3307, 3310-3317, 3358-3361, 3386-3388, 3404-3405, 3407-3415, 3423-3425, 3428-3432, 3436, 3463, 3477-3480, 3490-3494, 3500, 3504-3506, 3510, 3518-3520, 3545, 3558-3561, 3569, 3572-3574, 3578, 3586-3588, 3646-3649, 3652-3698, 3701-3707, 3710-3712, 3725, 3741, 3751-3760, 3769-3773, 3776-3779, 3810-3811, 3814-3815, 3837-3839, 3843, 3856, 3864, 3869, 3875, 3877, 3916, 3947, 3956, 3959, 4008-4012, 4019, 4082-4092, 4095-4139, 4165, 4177, 4180-4181, 4191-4195, 4199, 4205-4212, 4218-4220, 4224, 4262-4266, 4340-4361, 4387, 4395-4396, 4398-4402, 4404, 4427-4445, 4465, 4487-4498, 4501-4507, 4522-4535, 4551-4563, 4596-4644, 4679, 4712-4713, 4723, 4745-4746, 4784-4785, 4792-4795, 4809, 4823, 4858, 4863-4864, 4878-4879, 4885-4886, 4930, 4982-4994, 5029-5030, 5097-5146, 5215-5245, 5325-5359, 5369, 5607-5612, 5629-5634, 5659, 5675-5740 pkg_resources/extern/__init__.py 37 4 89% 22, 41-44 pkg_resources/tests/__init__.py 0 0 100% pkg_resources/tests/test_find_distributions.py 31 0 100% pkg_resources/tests/test_markers.py 5 0 100% pkg_resources/tests/test_pkg_resources.py 219 10 95% 14-15, 32-34, 246, 395-397, 414-415 pkg_resources/tests/test_resources.py 472 2 99% 784-785 pkg_resources/tests/test_working_set.py 54 0 100% setup.py 36 1 97% 83 setuptools/__init__.py 105 5 95% 178-179, 181, 200, 202 setuptools/_deprecation_warning.py 1 0 100% setuptools/_imp.py 54 14 74% 42-44, 57-60, 65-66, 72-75, 81 setuptools/_vendor/__init__.py 0 0 100% setuptools/_vendor/ordered_set.py 144 84 42% 14-16, 35, 88-99, 113, 143, 178-186, 201-203, 220-226, 244-250, 256-257, 273, 276-278, 304-306, 324-327, 331, 347-353, 369-375, 389-391, 405-407, 424-427, 434-435, 452-455, 469-470, 484-486 setuptools/_vendor/packaging/__about__.py 10 0 100% setuptools/_vendor/packaging/__init__.py 3 0 100% setuptools/_vendor/packaging/_compat.py 13 1 92% 22 setuptools/_vendor/packaging/_structures.py 41 18 56% 10, 14, 18, 22, 26, 30, 34, 38, 42, 51, 55, 59, 63, 67, 71, 75, 79, 83 setuptools/_vendor/packaging/_typing.py 4 0 100% setuptools/_vendor/packaging/specifiers.py 310 177 43% 124-130, 148-151, 153, 159-167, 171-174, 178-180, 185, 190, 195, 200, 204, 210-226, 231-260, 290-292, 296, 300, 304, 308, 312, 316, 326-328, 454-466, 475-509, 514, 523, 532, 540-559, 567-592, 596, 604-622, 627, 635-642, 647-661, 690-696, 704, 708-728, 734-735, 741-746, 754, 762-773, 778, 782, 788-810, 822-863 setuptools/_vendor/packaging/tags.py 375 190 49% 93-96, 108, 112, 140-142, 152, 160, 186, 188-196, 200, 242, 272-274, 292-305, 345, 355-358, 369-383, 403, 407, 423-431, 437, 449-459, 467-493, 505-513, 521-524, 553-592, 597-602, 610-622, 627-633, 638-642, 647-675, 680, 690-693, 714-720, 726, 747-748 setuptools/_vendor/packaging/utils.py 26 5 81% 43, 51, 55, 59, 63 setuptools/_vendor/packaging/version.py 214 48 78% 72, 76, 80, 84, 88, 92, 96, 100-103, 114, 118, 123, 128, 133, 138, 143, 148, 153, 158, 163, 168, 173, 222, 226, 303, 311, 318, 322, 373, 378-387, 392, 397, 402, 407, 412, 417, 439, 441, 443, 445, 451-453, 511 setuptools/archive_util.py 100 20 80% 59, 108, 113, 116, 132-137, 146, 159, 165-166, 170, 173, 187-188, 198-200 setuptools/build_meta.py 124 6 95% 95, 178-180, 183, 188-191 setuptools/command/__init__.py 6 0 100% setuptools/command/alias.py 52 40 23% 8-13, 29-31, 34-36, 42-65, 69-78 setuptools/command/bdist_egg.py 286 78 73% 22, 26-30, 44-56, 117-138, 141, 163, 171-179, 182, 184, 199-205, 207-209, 216, 263, 292, 298-306, 329, 331, 336, 349, 367, 371, 382-383, 385-392, 399, 402, 404-405, 412-413, 454-455 setuptools/command/bdist_rpm.py 9 5 44% 15-17, 20-31 setuptools/command/build_clib.py 34 0 100% setuptools/command/build_ext.py 190 95 50% 19, 29-45, 54-59, 63, 72, 87-104, 116-117, 119-120, 136, 154, 156, 159-183, 187, 195, 198-199, 208-210, 213, 217-224, 227-230, 233-280, 291-320 setuptools/command/build_py.py 153 15 90% 14-17, 48, 127, 178, 193, 250-254, 260-270 setuptools/command/develop.py 120 42 65% 30-32, 47-49, 68, 100, 111-128, 139-140, 154-169, 174, 183-187 setuptools/command/dist_info.py 19 0 100% setuptools/command/easy_install.py 1229 503 59% 75, 88, 210-216, 223-227, 255, 286-287, 295-307, 317, 328, 332, 337-342, 347, 351, 363-369, 375-378, 405, 410-417, 433-434, 449-450, 464, 467-468, 472-473, 479, 482, 525, 532-587, 596, 613, 623-624, 643-645, 660-663, 686-690, 699-700, 710-714, 736-737, 748, 750, 755, 760, 762, 764, 768-788, 792, 802-803, 814-819, 831, 836, 861-862, 866, 874, 879, 887-888, 913, 915, 923-926, 928-929, 933, 948-950, 957-998, 1004-1052, 1062, 1064, 1104-1106, 1126-1128, 1136-1137, 1141, 1148, 1169, 1201, 1204-1210, 1214, 1225, 1234-1238, 1246-1262, 1265-1281, 1317-1323, 1377, 1380, 1383, 1395, 1400, 1408-1419, 1438-1478, 1486-1519, 1525-1556, 1571, 1578-1597, 1600, 1602, 1607, 1616, 1620-1622, 1646-1649, 1661-1662, 1670-1673, 1690, 1699, 1706-1711, 1812, 1841-1845, 1854, 1870, 1883-1886, 1900, 1905-1910, 1922, 1924, 1929, 1934-1937, 1944-1945, 2021, 2096, 2124, 2138, 2180-2191, 2199-2205, 2216-2217, 2226-2248, 2264-2269, 2273-2274 setuptools/command/egg_info.py 394 36 91% 90, 214-215, 242-244, 258-264, 281-283, 297, 314-322, 378-379, 482, 507-508, 521-522, 535, 568, 583, 646, 673-675, 725-729 setuptools/command/install.py 63 29 54% 42-43, 63-67, 80-91, 98-118 setuptools/command/install_egg_info.py 39 4 90% 36, 38, 47, 57 setuptools/command/install_lib.py 63 6 90% 78, 118-122 setuptools/command/install_scripts.py 49 4 92% 39-40, 43-44 setuptools/command/py36compat.py 75 57 24% 30-36, 48-53, 56-74, 77-80, 86-96, 100-113, 116-118, 121-123, 126-128 setuptools/command/register.py 8 0 100% setuptools/command/rotate.py 43 30 30% 23-25, 28-43, 46-64 setuptools/command/saveopts.py 13 9 31% 10-22 setuptools/command/sdist.py 108 19 82% 18-19, 58, 69, 91-92, 134-135, 155-156, 162-167, 181-183, 187 setuptools/command/setopt.py 79 41 48% 18-27, 45-46, 53-61, 92-94, 97-111, 129-133, 136-140, 143 setuptools/command/test.py 167 12 93% 39, 47-49, 65, 122-123, 224-225, 247, 257-259 setuptools/command/upload.py 8 0 100% setuptools/command/upload_docs.py 142 60 58% 64-68, 79-80, 91-101, 121, 143-202 setuptools/config.py 307 1 99% 249 setuptools/dep_util.py 11 1 91% 14 setuptools/depends.py 92 9 90% 62-63, 110-111, 113, 169-172 setuptools/dist.py 596 107 82% 43, 92, 137-139, 152-153, 228-232, 258, 264, 292-293, 330-331, 336, 438-439, 482-484, 491, 496-503, 633, 640, 648, 665-675, 700-702, 731, 734, 737, 752, 758-762, 812, 853-858, 861-866, 886, 929-930, 949-950, 1002-1006, 1029-1057, 1070, 1074, 1086, 1098-1108, 1128-1132 setuptools/errors.py 2 0 100% setuptools/extension.py 28 2 93% 18, 47 setuptools/extern/__init__.py 37 4 89% 22, 41-44 setuptools/glob.py 86 14 84% 43-44, 59, 101-102, 123-126, 152, 162-167 setuptools/installer.py 60 5 92% 17-18, 28-29, 56 setuptools/launch.py 15 11 27% 18-32, 36 setuptools/lib2to3_ex.py 44 6 86% 18, 59-60, 65, 67-68 setuptools/monkey.py 77 34 56% 32, 58-59, 71, 82-83, 95, 116-123, 127, 142-177 setuptools/msvc.py 674 507 25% 37-38, 86-104, 127-142, 147-172, 187-209, 222-256, 261-292, 314-318, 327-331, 340-368, 383, 395, 406, 417, 435, 457, 479-480, 501, 513, 525, 537, 549, 561, 573, 585, 597, 609, 627-628, 646-668, 690-696, 708-716, 727-747, 759-789, 806, 819-823, 835-841, 852-871, 882-891, 903-912, 924, 936-967, 980-1002, 1014-1015, 1028-1035, 1047, 1060, 1075-1081, 1094-1097, 1110-1113, 1125, 1137, 1154-1166, 1185-1191, 1219-1225, 1237, 1249, 1261-1269, 1281, 1294-1303, 1315-1317, 1329-1354, 1366-1374, 1386-1396, 1410-1434, 1446, 1457-1481, 1493-1494, 1506-1509, 1521-1538, 1550-1554, 1566-1569, 1581, 1593-1609, 1621-1624, 1636-1642, 1654-1658, 1670-1671, 1683-1686, 1698-1721, 1737-1771, 1796-1804, 1817-1828 setuptools/namespaces.py 55 9 84% 25-26, 32-37, 78 setuptools/package_index.py 652 197 70% 56-57, 91, 93, 114, 146, 176, 195-202, 227-231, 236-238, 263, 282, 321, 327, 336, 344-345, 352, 354, 357-358, 366, 383-391, 398-404, 407-414, 417-430, 442, 457-458, 462, 467-473, 480, 486-492, 499, 503, 510-516, 526-528, 547, 552, 556-563, 590, 596-597, 631-636, 649-651, 666, 683-686, 689-724, 739, 760, 773, 779, 783, 786, 792, 799-803, 812-814, 817, 828, 830, 841, 846-858, 865-877, 917-930, 1010-1011, 1014, 1051-1052, 1074-1076, 1079-1083, 1093-1096, 1114, 1122, 1131-1138, 1141 setuptools/py34compat.py 10 5 50% 5-6, 11-13 setuptools/sandbox.py 266 22 92% 18, 50, 256-257, 279, 286, 292-293, 320, 366, 374, 383, 415-418, 426, 456, 462, 467-469 setuptools/ssl_support.py 139 81 42% 14-15, 36-37, 45-51, 55-56, 61-152, 185-191, 200, 205-208, 235-249, 263-266 setuptools/tests/__init__.py 6 0 100% setuptools/tests/contexts.py 62 6 90% 39-40, 95-98 setuptools/tests/environment.py 36 11 69% 9-14, 34, 36-37, 52-53 setuptools/tests/fixtures.py 37 3 92% 58, 72-73 setuptools/tests/namespaces.py 23 0 100% setuptools/tests/script-with-bom.py 1 0 100% setuptools/tests/server.py 47 10 79% 27-29, 32-33, 39-43, 46-47 setuptools/tests/test_archive_util.py 21 0 100% setuptools/tests/test_bdist_egg.py 36 0 100% setuptools/tests/test_build_clib.py 38 0 100% setuptools/tests/test_build_ext.py 35 2 94% 44, 46 setuptools/tests/test_build_meta.py 180 0 100% setuptools/tests/test_build_py.py 30 0 100% setuptools/tests/test_config.py 356 0 100% setuptools/tests/test_dep_util.py 19 0 100% setuptools/tests/test_depends.py 8 0 100% setuptools/tests/test_develop.py 123 46 63% 38-42, 47-58, 70-100, 110-125, 254 setuptools/tests/test_dist.py 106 2 98% 268-269 setuptools/tests/test_dist_info.py 38 0 100% setuptools/tests/test_distutils_adoption.py 39 1 97% 43 setuptools/tests/test_easy_install.py 518 22 96% 54, 237-260, 268-278, 405-408, 411-413, 438, 584-585 setuptools/tests/test_egg_info.py 319 0 100% setuptools/tests/test_extern.py 13 0 100% setuptools/tests/test_find_packages.py 112 2 98% 21-22 setuptools/tests/test_glob.py 8 0 100% setuptools/tests/test_install_scripts.py 56 13 77% 56-62, 85-90 setuptools/tests/test_integration.py 67 4 94% 30-31, 37-38 setuptools/tests/test_manifest.py 297 10 97% 41-46, 338, 344, 470-473 setuptools/tests/test_msvc.py 79 71 10% 20-179 setuptools/tests/test_msvc14.py 47 36 23% 17-32, 35-50, 53-66, 69-82 setuptools/tests/test_namespaces.py 51 0 100% setuptools/tests/test_packageindex.py 169 7 96% 35, 54, 71, 93, 103-106 setuptools/tests/test_register.py 15 2 87% 7-8 setuptools/tests/test_sandbox.py 81 3 96% 20-21, 119 setuptools/tests/test_sdist.py 281 26 91% 56, 61-62, 74-75, 349-355, 378-384, 409-427 setuptools/tests/test_setopt.py 21 0 100% setuptools/tests/test_setuptools.py 198 5 97% 44, 48-49, 286-287 setuptools/tests/test_sphinx_upload_docs.py 17 0 100% setuptools/tests/test_test.py 81 0 100% setuptools/tests/test_unicode_utils.py 4 0 100% setuptools/tests/test_upload.py 15 2 87% 7-8 setuptools/tests/test_upload_docs.py 34 0 100% setuptools/tests/test_virtualenv.py 69 1 99% 28 setuptools/tests/test_wheel.py 112 0 100% setuptools/tests/test_windows_wrappers.py 59 34 42% 30-31, 43-51, 89-108, 121-149, 171-186 setuptools/tests/text.py 4 0 100% setuptools/tests/textwrap.py 3 0 100% setuptools/unicode_utils.py 27 11 59% 7-15, 33-34 setuptools/version.py 5 2 60% 5-6 setuptools/wheel.py 122 4 97% 48-49, 121, 184 setuptools/windows_support.py 16 9 44% 8, 20-29 tools/finalize.py 37 22 41% 36-38, 42-49, 56-60, 64-65, 72, 80-82, 90-94 tools/ppc64le-patch.py 10 5 50% 15-25 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_wheel_build_backend0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_wheel_build_backend1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_wheel_build_backend2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_with_empty_setuppy_0/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_with_empty_setuppy_1/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_with_empty_setuppy_2/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_with_empty_setuppy_3/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_with_empty_setuppy_4/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_with_empty_setuppy_5/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_with_empty_setuppy_6/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_build_with_empty_setuppy_7/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_get_requires_for_build_sd0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_get_requires_for_build_sd1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_get_requires_for_build_sd2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_get_requires_for_build_wh0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_get_requires_for_build_wh1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw0/test_get_requires_for_build_wh2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_build_sdist_builds_targz_0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_build_sdist_pyproject_tom0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_build_sdist_setup_py_exis0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_build_sdist_setup_py_mani0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_False___fo0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_False__foo0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_False__foo1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True____Ha0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True___foo0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True___foo1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True___foo2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True__foo_0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True__foo_1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True__foo_2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True__foo_3/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True__foo_4/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True__foo_5/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw1/test_setup_requires_True__foo_6/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_builds_targz_0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_explicit_dist0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_explicit_dist1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_explicit_dist2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_pyproject_tom0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_relative_path0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_setup_py_exis0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_setup_py_mani0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_version_chang0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_version_chang1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_build_sdist_version_chang2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_license0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_license_escape0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_license_file_attr_pkg_inf0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_long_description0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_long_description_content_0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_metadata_version0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_prepare_metadata_for_buil0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_prepare_metadata_for_buil1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_prepare_metadata_for_buil2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_project_urls0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_python_requires_egg_info0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_cfg_license_file_li0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_cfg_license_file_li1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_cfg_license_file_li2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_cfg_license_file_li3/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_cfg_license_file_li4/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_cfg_license_file_li5/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_cfg_license_file_li6/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_cfg_license_file_li7/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_cfg_license_file_li8/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_requires_True___foo0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_requires_True__foo_0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_requires_True__foo_1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw2/test_setup_requires_True__foo_2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_sdist_relative_path0/hello.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_sdist_relative_path0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_with_empty_setuppy_0/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_with_empty_setuppy_1/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_with_empty_setuppy_2/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_with_empty_setuppy_3/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_with_empty_setuppy_4/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_with_empty_setuppy_5/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_with_empty_setuppy_6/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_build_with_empty_setuppy_7/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_dont_install_setup_requir0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_setup_requires_False____H0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_setup_requires_False___fo0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_setup_requires_False___fo1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_setup_requires_False__foo0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_setup_requires_False__foo1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_setup_requires_False__foo2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_setup_requires_False__foo3/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_setup_requires_False__foo4/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_setup_requires_with_pytho0/test_pkg/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_test0/build/lib/name/__init__.py 5 3 40% 5-7 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_test0/build/lib/name/space/__init__.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_test0/build/lib/name/space/tests/__init__.py 5 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_tests_are_run_once0/dummy/__init__.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw3/test_tests_are_run_once0/dummy/test_dummy.py 4 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_sdist_build_backend0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_sdist_build_backend1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_sdist_build_backend2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_sdist_explicit_dist0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_sdist_explicit_dist1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_sdist_explicit_dist2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_sdist_version_chang0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_sdist_version_chang1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_sdist_version_chang2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_with_existing_file_0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_build_with_existing_file_1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_deprecation_stderr0/build/lib/name/__init__.py 5 3 40% 5-7 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_deprecation_stderr0/build/lib/name/space/__init__.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_deprecation_stderr0/build/lib/name/space/tests/__init__.py 5 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_doesnt_provides_extra0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_prepare_metadata_for_buil0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_prepare_metadata_for_buil1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_prepare_metadata_for_buil2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_file_fi0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_file_fi1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_file_fi2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_file_fi3/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_file_gl0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_d0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f3/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f4/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f5/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f6/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f7/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f8/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_f9/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_cfg_license_files_n0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_setup_py_with_CRLF0/setup.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_warns_deprecation0/build/lib/name/__init__.py 5 3 40% 5-7 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_warns_deprecation0/build/lib/name/space/__init__.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw4/test_warns_deprecation0/build/lib/name/space/tests/__init__.py 5 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_build_ext_config_handling0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_build_sdist_build_backend0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_build_sdist_build_backend1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_build_sdist_build_backend2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_build_wheel_build_backend0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_build_wheel_build_backend1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_build_wheel_build_backend2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_build_with_existing_file_0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_build_with_existing_file_1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_extras_require_with_inval0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_extras_require_with_inval1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_get_requires_for_build_sd0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_get_requires_for_build_sd1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_get_requires_for_build_sd2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_get_requires_for_build_wh0/setup.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_get_requires_for_build_wh1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_get_requires_for_build_wh2/setup.py 5 1 80% 3 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_install_requires_unordere0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_provides_extra0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w3/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w4/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w5/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w6/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w7/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w8/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_extras_require_w9/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_install_requires0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_setup_requires_w0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_setup_requires_w1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_tests_require_wi0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_requires_tests_require_wi1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_two_levels_deep0/site-pkgs/pkg1/__init__.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw5/test_two_levels_deep0/site-pkgs/pkg1/pkg2/__init__.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_dont_install_setup_requir0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_expected_files_produced0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_license_is_a_string0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_manifest_template_is_read0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_mixed_site_and_non_site0/path-packages/myns/pkgB.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_mixed_site_and_non_site0/site-packages/myns/pkgA.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_mixed_site_and_non_site0/site-packages/sitecustomize.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_namespace_package_install0/myns.pkgA/myns/pkgA.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_namespace_package_install0/packages/sitecustomize.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_packages_in_the_same_name0/myns.pkgB/myns/pkgB.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_packages_in_the_same_name0/packages/myns/pkgA.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_packages_in_the_same_name0/packages/sitecustomize.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_path_order0/site-pkgs/nspkg/__init__.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_path_order0/site-pkgs/nspkg/subpkg/__init__.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_pkg_resources_import0/packages/sitecustomize.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_rebuilt0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_requires_install_requires0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_requires_install_requires1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_requires_install_requires2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_requires_install_requires3/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_requires_install_requires4/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_requires_install_requires5/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_requires_install_requires6/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_requires_install_requires7/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_requires_install_requires8/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False____H0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False___fo0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False___fo1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False___fo2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False__foo0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False__foo1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False__foo2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False__foo3/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False__foo4/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False__foo5/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_False__foo6/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_True____Ha0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_True___foo0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_True___foo1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_True__foo_0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_True__foo_1/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_True__foo_2/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_setup_requires_True__foo_3/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw6/test_sys_argv_passthrough0/setup.py 6 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_editable_prefix0/prefix/bin/sample 18 5 72% 11-15 /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_editable_prefix0/prefix/lib/python3.9/site-packages/sitecustomize.py 4 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_editable_prefix0/sampleproject/setup.py 5 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_editable_prefix0/sampleproject/src/sample/__init__.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_egg_info_tag_only_once0/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_namespace_package_importa0/myns.pkgB/myns/pkgB.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_namespace_package_importa0/myns.pkgB/setup.py 2 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_namespace_package_importa0/packages/myns/pkgA.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_namespace_package_importa0/packages/sitecustomize.py 1 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_sys_argv_passthrough0/setup.py 6 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_version0/fake_package/__init__.py 4 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_version0/fake_package/subpkg_a/__init__.py 0 0 100% /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pytest-of-jaraco/pytest-29/popen-gw7/test_version0/fake_package/subpkg_b/__init__.py 0 0 100% ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- TOTAL 18844 5063 73% ===================================== mypy ===================================== Found 73 errors in 34 files (checked 111 source files) =========================== short test summary info ============================ SKIPPED [1] setuptools/tests/test_msvc.py:17: could not import 'distutils.msvc9compiler': No module named 'winreg' SKIPPED [74] .tox/python/lib/python3.9/site-packages/pytest_flake8.py:116: file(s) previously passed FLAKE8 checks SKIPPED [3] pkg_resources/tests/test_pkg_resources.py:399: Testing systems using backslashes as path separators. SKIPPED [1] pkg_resources/tests/test_pkg_resources.py:382: Testing case-insensitive filesystems. SKIPPED [1] setuptools/tests/test_develop.py:65: Cannot run when invoked in a virtualenv or venv SKIPPED [1] setuptools/tests/test_develop.py:107: TODO: needs a fixture to cause 'develop' to be invoked without mutating environment. SKIPPED [1] setuptools/tests/test_install_scripts.py:50: Windows only SKIPPED [1] setuptools/tests/test_install_scripts.py:78: Windows only SKIPPED [1] setuptools/tests/test_msvc14.py:16: These tests are only for win32 SKIPPED [1] setuptools/tests/test_msvc14.py:34: These tests are only for win32 SKIPPED [1] setuptools/tests/test_msvc14.py:52: These tests are only for win32 SKIPPED [1] setuptools/tests/test_msvc14.py:68: These tests are only for win32 SKIPPED [1] setuptools/tests/test_windows_wrappers.py:69: Windows only SKIPPED [1] setuptools/tests/test_windows_wrappers.py:110: Windows only SKIPPED [1] setuptools/tests/test_windows_wrappers.py:169: Windows only SKIPPED [1] setuptools/tests/test_easy_install.py:262: Test can only be run on Linux XFAIL setuptools/tests/test_dist.py::test_read_metadata[Metadata Version 2.1: Provides Extra-attrs9] provides_extras not read XFAIL setuptools/tests/test_dist.py::test_read_metadata[Metadata Version 1.2: Project-Url-attrs5] Issue #1578: project_urls not read XFAIL setuptools/tests/test_egg_info.py::TestEggInfo::test_requires[extras_require_with_marker_in_setup_cfg] XFAIL setuptools/tests/test_integration.py::test_virtualenvwrapper XFAIL setuptools/tests/test_sdist.py::TestSdistTest::test_sdist_with_utf8_encoded_filename System does not support latin-1 filenames XFAIL setuptools/tests/test_sdist.py::TestSdistTest::test_sdist_with_latin1_encoded_filename System does not support latin-1 filenames XFAIL setuptools/tests/test_sdist.py::TestSdistTest::test_read_manifest_skips_non_utf8_filenames System does not support latin-1 filenames XFAIL setuptools/tests/test_integration.py::test_python_novaclient XFAIL setuptools/tests/test_virtualenv.py::test_pip_upgrade_from_source[pip==19.3.1] pypa/pip#6599 XPASS setuptools/tests/test_archive_util.py::test_unicode_files #710 and #712 = 35 failed, 816 passed, 91 skipped, 9 xfailed, 1 xpassed in 162.58s (0:02:42) = ERROR: InvocationError for command /Users/jaraco/code/public/pypa/setuptools/.tox/python/bin/pytest --mypy (exited with code 1) ___________________________________ summary ____________________________________ ERROR: python: commands failed ```
GergelyKalmar commented 3 years ago

It might be useful to add that in the meantime stubs were developed in typeshed: https://github.com/python/typeshed/pull/5762

It seems to be ready to be released, once it is released I think the issue can be closed.

Avasam commented 1 year ago

With Python 3.12 dropping disutils, setuptools' oldest python supported version now being 3.8 and the typeshed's setuptools stubs having matured a lot, what do you think about setuptools providing its own typing information?

This is the general [precise and continuously updated] plan I would suggest:

  1. Fix all immediately fixable typing errors seen by mypy with non-strict type checking, targeting only public API.
    • Configure/disable errors that cannot be dealt with at this time, like missing imports, untyped references, etc. #3979
    • Enforce mypy in the CI to prevent errors from coming back. #4257
  2. Do the same with pyright https://github.com/pypa/setuptools/pull/4192
  3. Merge pkg_resources stubs from typeshed 3.1. First exclude return-type, overload and TypeVar annotations #4246 3.2. Add overloads, TypeVars, required return types to pass type-checking, etc., from typeshed #4355 & #4390 3.3. Add explicit return types for public methods where incorrectly inferred by pyright (including partially Any) #4391
  4. Enforce return types for annotated public functions so mypy doesn't infer as Any #4409
  5. Publish pkg_resources as py.typed (typeshed will remove the package 6 months later). https://github.com/pypa/setuptools/commit/08bd31115732ece3cca50bd93f338e1b90dead34 We don't need to be fully typed, just to be on par with typeshed.
  6. Merge setuptools stubs from typeshed 6.1. First exclude return-type annotations (this may mean disabling ANN2 for setuptools module) https://github.com/pypa/setuptools/pull/4504 6.2. Add overloads, TypeVars, return types, etc., from typeshed: https://github.com/pypa/setuptools/pull/4506 & TODO 6.3. Enable ANN2 and add explicit return types for public methods where incorrectly inferred (including partially Any)
  7. Publish setuptools as py.typed (typeshed will mark the stubs as "obsolete" for 6 months before removal). We don't need to be fully typed, just to be on par with typeshed.
  8. Enable rules in checkers (mypy/pyright/ruff) to ensure that no type annotations are missing (function definitions, return types, class members, etc) 8.1 Start by allowing inferred return types, just to reduce the scope, and make this step easier for complex return types/overloads 8.2 Add and enforce function return types
  9. Start type-checking private/internal (non-vendored) modules and symbols as well
  10. Turn on strict typing in mypy & pyright. Disable every rule that fails.
  11. Progressively re-enable relevant rules and fix them in code.