py2docfx 0.1.13.dev2016838__py3-none-any.whl → 0.1.13.dev2021865__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_modified.py +26 -4
  2. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -603
  3. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/archive_util.py +48 -18
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +17 -1257
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/cmd.py +133 -41
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/bdist.py +19 -8
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +2 -1
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +6 -5
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +8 -4
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +8 -7
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +32 -13
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_py.py +10 -9
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +3 -14
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/clean.py +2 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +1 -8
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +22 -19
  18. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install_data.py +4 -3
  19. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install_headers.py +1 -1
  20. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install_lib.py +11 -7
  21. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +4 -3
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/sdist.py +22 -16
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/__init__.py +6 -1
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +1391 -0
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/cygwin.py +340 -0
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/errors.py +24 -0
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +614 -0
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/{tests/test_ccompiler.py → compilers/C/tests/test_base.py} +9 -19
  29. py2docfx/venv/{venv1/Lib/site-packages/setuptools/_distutils/tests/test_cygwinccompiler.py → basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_cygwin.py} +7 -12
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/{tests/test_mingwccompiler.py → compilers/C/tests/test_mingw.py} +12 -20
  31. py2docfx/venv/{venv1/Lib/site-packages/setuptools/_distutils/tests/test_msvccompiler.py → basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_msvc.py} +11 -12
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/{tests/test_unixccompiler.py → compilers/C/tests/test_unix.py} +5 -5
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +409 -0
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/zos.py +230 -0
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +20 -328
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +148 -80
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/errors.py +11 -27
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/extension.py +19 -16
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/filelist.py +80 -15
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/spawn.py +22 -5
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +32 -7
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +13 -0
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +1 -1
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +2 -401
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +38 -23
  46. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/zosccompiler.py +2 -228
  47. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_static.py +1 -1
  48. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +3 -3
  49. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +1 -1
  50. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +2 -0
  51. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_py.py +1 -1
  52. py2docfx/venv/basevenv/Lib/site-packages/setuptools/unicode_utils.py +1 -1
  53. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +2 -1
  54. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +3 -1
  55. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +22 -26
  56. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +3 -4
  57. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +1 -1
  58. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +1 -1
  59. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +7 -7
  60. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +2 -2
  61. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +21 -73
  62. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +1 -1
  63. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +11 -17
  64. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +2 -1
  65. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +8 -11
  66. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +1 -1
  67. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +1 -1
  68. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +2 -1
  69. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +1 -0
  70. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +1 -0
  71. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +1 -1
  72. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +1 -3
  73. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +1 -3
  74. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +2 -5
  75. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +14 -41
  76. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +1 -1
  77. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +1 -3
  78. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +1 -1
  79. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +1 -2
  80. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +1 -2
  81. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +3 -3
  82. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +57 -12
  83. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -1
  84. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +1 -1
  85. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -1
  86. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +7 -8
  87. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +1 -1
  88. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +7 -10
  89. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +11 -8
  90. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -1
  91. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -1
  92. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +19 -22
  93. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +2 -3
  94. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +1 -1
  95. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +3 -1
  96. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -1
  97. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +6 -6
  98. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +2 -2
  99. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +2 -1
  100. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +1 -1
  101. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +5 -7
  102. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +7 -2
  103. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +4 -6
  104. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +13 -22
  105. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +1 -1
  106. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +1 -0
  107. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -2
  108. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +3 -3
  109. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +1 -3
  110. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +1 -2
  111. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +7 -10
  112. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +1 -5
  113. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +4 -2
  114. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +3 -5
  115. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +2 -3
  116. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +1 -1
  117. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +3 -3
  118. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +2 -2
  119. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +1178 -78
  120. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +17 -21
  121. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +6 -18
  122. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +2 -2
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_modified.py +26 -4
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -603
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/archive_util.py +48 -18
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +17 -1257
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/cmd.py +133 -41
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/bdist.py +19 -8
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +2 -1
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +6 -5
  131. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +8 -4
  132. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +8 -7
  133. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +32 -13
  134. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_py.py +10 -9
  135. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +3 -14
  136. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  137. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/clean.py +2 -1
  138. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +1 -8
  139. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +22 -19
  140. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install_data.py +4 -3
  141. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install_headers.py +1 -1
  142. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install_lib.py +11 -7
  143. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +4 -3
  144. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/sdist.py +22 -16
  145. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/__init__.py +6 -1
  146. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +1391 -0
  147. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/cygwin.py +340 -0
  148. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/errors.py +24 -0
  149. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +614 -0
  150. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/{tests/test_ccompiler.py → compilers/C/tests/test_base.py} +9 -19
  151. py2docfx/venv/{basevenv/Lib/site-packages/setuptools/_distutils/tests/test_cygwinccompiler.py → venv1/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_cygwin.py} +7 -12
  152. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/{tests/test_mingwccompiler.py → compilers/C/tests/test_mingw.py} +12 -20
  153. py2docfx/venv/{basevenv/Lib/site-packages/setuptools/_distutils/tests/test_msvccompiler.py → venv1/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_msvc.py} +11 -12
  154. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/{tests/test_unixccompiler.py → compilers/C/tests/test_unix.py} +5 -5
  155. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +409 -0
  156. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/zos.py +230 -0
  157. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +20 -328
  158. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +148 -80
  159. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/errors.py +11 -27
  160. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/extension.py +19 -16
  161. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/filelist.py +80 -15
  162. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/spawn.py +22 -5
  163. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +32 -7
  164. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +13 -0
  165. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +1 -1
  166. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +2 -401
  167. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +38 -23
  168. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/zosccompiler.py +2 -228
  169. py2docfx/venv/venv1/Lib/site-packages/setuptools/_static.py +1 -1
  170. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +3 -3
  171. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +1 -1
  172. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +2 -0
  173. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_py.py +1 -1
  174. py2docfx/venv/venv1/Lib/site-packages/setuptools/unicode_utils.py +1 -1
  175. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +1 -1
  176. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +8 -1
  177. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +8 -8
  178. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +1 -1
  179. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +1 -1
  180. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +1 -1
  181. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +1 -1
  182. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +2 -2
  183. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +4 -6
  184. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +4 -4
  185. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -2
  186. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -1
  187. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -3
  188. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -2
  189. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +7 -2
  190. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +1 -1
  191. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +1 -2
  192. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -1
  193. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -3
  194. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -1
  195. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -1
  196. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -1
  197. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +3 -3
  198. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +3 -3
  199. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +1 -2
  200. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +10 -9
  201. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +6 -3
  202. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +17 -5
  203. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +32 -2
  204. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +1 -4
  205. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -1
  206. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +60 -5
  207. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +1 -1
  208. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +2 -5
  209. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +1 -1
  210. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +1 -1
  211. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +1 -1
  212. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +8 -10
  213. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +2 -10
  214. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +2 -2
  215. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +1 -1
  216. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +1 -1
  217. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +3 -3
  218. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +14 -7
  219. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +16 -35
  220. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +1 -4
  221. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +1 -2
  222. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +6 -6
  223. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +10 -11
  224. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +5 -5
  225. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +1 -0
  226. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +4 -6
  227. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +304 -121
  228. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +1 -1
  229. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +4926 -604
  230. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +1 -1
  231. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +194 -0
  232. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +733 -0
  233. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +120 -0
  234. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +4 -7
  235. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +1 -1
  236. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +13 -5
  237. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +12 -1
  238. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +1 -1
  239. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +8 -4
  240. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +2 -3
  241. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -1
  242. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +16 -3
  243. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +24 -8
  244. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -1
  245. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +2 -5
  246. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +23 -6
  247. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -1
  248. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +19 -0
  249. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +3 -11
  250. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +3 -1
  251. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +97 -65
  252. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +24 -24
  253. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +17 -33
  254. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +14 -14
  255. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +30 -12
  256. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +50 -98
  257. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +12 -8
  258. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +3 -4
  259. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +1 -1
  260. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +1 -1
  261. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +1 -1
  262. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +1 -1
  263. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -3
  264. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +1 -1
  265. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +1 -3
  266. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +48 -56
  267. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +2 -6
  268. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +9 -11
  269. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +1 -1
  270. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +2 -2
  271. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +20 -24
  272. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +8 -8
  273. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +4 -18
  274. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +5 -6
  275. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +2 -5
  276. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +7 -7
  277. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -1
  278. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +2 -4
  279. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +3 -3
  280. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +1 -4
  281. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +1 -1
  282. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +1 -2
  283. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +4 -3
  284. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +3 -5
  285. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +2 -7
  286. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +1 -1
  287. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +1 -1
  288. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +40 -57
  289. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +3 -3
  290. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +7 -7
  291. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +2 -3
  292. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +143 -7
  293. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +1 -2
  294. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +1 -2
  295. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +1 -2
  296. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +12 -8
  297. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +1 -3
  298. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +1 -3
  299. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +1 -1
  300. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +1 -1
  301. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -1
  302. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +1 -24
  303. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -20
  304. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +2 -8
  305. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +16 -12
  306. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +1 -3
  307. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +2 -2
  308. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +2 -3
  309. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +2 -4
  310. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +2 -2
  311. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +7 -14
  312. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +2 -14
  313. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +4 -5
  314. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +5 -5
  315. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -1
  316. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +5 -10
  317. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +3 -4
  318. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +1 -2
  319. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +2 -3
  320. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -3
  321. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +3 -3
  322. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +1 -1
  323. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +1 -1
  324. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +1 -0
  325. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +1 -3
  326. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +2 -2
  327. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +1 -1
  328. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +1 -1
  329. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +5 -3
  330. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -1
  331. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +1 -1
  332. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +1 -1
  333. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +2 -2
  334. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +1 -2
  335. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +4 -5
  336. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -1
  337. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +77 -122
  338. py2docfx/venv/venv1/Scripts/pywin32_testall.py +4 -9
  339. {py2docfx-0.1.13.dev2016838.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/METADATA +1 -1
  340. {py2docfx-0.1.13.dev2016838.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/RECORD +342 -330
  341. py2docfx/venv/venv1/Lib/site-packages/docs/conf.py +0 -384
  342. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/__init__.py +0 -0
  343. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/mdi_pychecker.py +0 -850
  344. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testNetscape.py +0 -24
  345. {py2docfx-0.1.13.dev2016838.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/WHEEL +0 -0
  346. {py2docfx-0.1.13.dev2016838.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/top_level.txt +0 -0
@@ -13,9 +13,18 @@ import pathlib
13
13
  import re
14
14
  import sys
15
15
  import warnings
16
- from collections.abc import Iterable
16
+ from collections.abc import Iterable, MutableMapping
17
17
  from email import message_from_file
18
- from typing import TYPE_CHECKING, Literal, TypeVar, overload
18
+ from typing import (
19
+ IO,
20
+ TYPE_CHECKING,
21
+ Any,
22
+ ClassVar,
23
+ Literal,
24
+ TypeVar,
25
+ Union,
26
+ overload,
27
+ )
19
28
 
20
29
  from packaging.utils import canonicalize_name, canonicalize_version
21
30
 
@@ -31,10 +40,17 @@ from .fancy_getopt import FancyGetopt, translate_longopt
31
40
  from .util import check_environ, rfc822_escape, strtobool
32
41
 
33
42
  if TYPE_CHECKING:
43
+ from _typeshed import SupportsWrite
44
+ from typing_extensions import TypeAlias
45
+
34
46
  # type-only import because of mutual dependence between these modules
35
47
  from .cmd import Command
36
48
 
37
49
  _CommandT = TypeVar("_CommandT", bound="Command")
50
+ _OptionsList: TypeAlias = list[
51
+ Union[tuple[str, Union[str, None], str, int], tuple[str, Union[str, None], str]]
52
+ ]
53
+
38
54
 
39
55
  # Regex to define acceptable Distutils command names. This is not *quite*
40
56
  # the same as a Python NAME -- I don't allow leading underscores. The fact
@@ -43,7 +59,7 @@ _CommandT = TypeVar("_CommandT", bound="Command")
43
59
  command_re = re.compile(r'^[a-zA-Z]([a-zA-Z0-9_]*)$')
44
60
 
45
61
 
46
- def _ensure_list(value, fieldname):
62
+ def _ensure_list(value: str | Iterable[str], fieldname) -> str | list[str]:
47
63
  if isinstance(value, str):
48
64
  # a string containing comma separated values is okay. It will
49
65
  # be converted to a list by Distribution.finalize_options().
@@ -80,7 +96,7 @@ class Distribution:
80
96
  # don't want to pollute the commands with too many options that they
81
97
  # have minimal control over.
82
98
  # The fourth entry for verbose means that it can be repeated.
83
- global_options = [
99
+ global_options: ClassVar[_OptionsList] = [
84
100
  ('verbose', 'v', "run verbosely (default)", 1),
85
101
  ('quiet', 'q', "run quietly (turns verbosity off)"),
86
102
  ('dry-run', 'n', "don't actually do anything"),
@@ -90,7 +106,7 @@ class Distribution:
90
106
 
91
107
  # 'common_usage' is a short (2-3 line) string describing the common
92
108
  # usage of the setup script.
93
- common_usage = """\
109
+ common_usage: ClassVar[str] = """\
94
110
  Common commands: (see '--help-commands' for more)
95
111
 
96
112
  setup.py build will build the package underneath 'build/'
@@ -98,7 +114,7 @@ Common commands: (see '--help-commands' for more)
98
114
  """
99
115
 
100
116
  # options that are not propagated to the commands
101
- display_options = [
117
+ display_options: ClassVar[_OptionsList] = [
102
118
  ('help-commands', None, "list all available commands"),
103
119
  ('name', None, "print package name"),
104
120
  ('version', 'V', "print package version"),
@@ -125,14 +141,17 @@ Common commands: (see '--help-commands' for more)
125
141
  ('requires', None, "print the list of packages/modules required"),
126
142
  ('obsoletes', None, "print the list of packages/modules made obsolete"),
127
143
  ]
128
- display_option_names = [translate_longopt(x[0]) for x in display_options]
144
+ display_option_names: ClassVar[list[str]] = [
145
+ translate_longopt(x[0]) for x in display_options
146
+ ]
129
147
 
130
148
  # negative options are options that exclude other options
131
- negative_opt = {'quiet': 'verbose'}
149
+ negative_opt: ClassVar[dict[str, str]] = {'quiet': 'verbose'}
132
150
 
133
151
  # -- Creation/initialization methods -------------------------------
134
152
 
135
- def __init__(self, attrs=None): # noqa: C901
153
+ # Can't Unpack a TypedDict with optional properties, so using Any instead
154
+ def __init__(self, attrs: MutableMapping[str, Any] | None = None) -> None: # noqa: C901
136
155
  """Construct a new Distribution instance: initialize all the
137
156
  attributes of a Distribution, and then use 'attrs' (a dictionary
138
157
  mapping attribute names to values) to assign some of those
@@ -172,12 +191,12 @@ Common commands: (see '--help-commands' for more)
172
191
  # named here. This list is searched from the left; an error
173
192
  # is raised if no named package provides the command being
174
193
  # searched for. (Always access using get_command_packages().)
175
- self.command_packages = None
194
+ self.command_packages: str | list[str] | None = None
176
195
 
177
196
  # 'script_name' and 'script_args' are usually set to sys.argv[0]
178
197
  # and sys.argv[1:], but they can be overridden when the caller is
179
198
  # not necessarily a setup script run from the command-line.
180
- self.script_name = None
199
+ self.script_name: str | os.PathLike[str] | None = None
181
200
  self.script_args: list[str] | None = None
182
201
 
183
202
  # 'command_options' is where we store command options between
@@ -185,7 +204,7 @@ Common commands: (see '--help-commands' for more)
185
204
  # they are actually needed -- ie. when the command in question is
186
205
  # instantiated. It is a dictionary of dictionaries of 2-tuples:
187
206
  # command_options = { command_name : { option : (source, value) } }
188
- self.command_options = {}
207
+ self.command_options: dict[str, dict[str, tuple[str, str]]] = {}
189
208
 
190
209
  # 'dist_files' is the list of (command, pyversion, file) that
191
210
  # have been created by any dist commands run so far. This is
@@ -196,13 +215,13 @@ Common commands: (see '--help-commands' for more)
196
215
  # file. pyversion should not be used to specify minimum or
197
216
  # maximum required Python versions; use the metainfo for that
198
217
  # instead.
199
- self.dist_files = []
218
+ self.dist_files: list[tuple[str, str, str]] = []
200
219
 
201
220
  # These options are really the business of various commands, rather
202
221
  # than of the Distribution itself. We provide aliases for them in
203
222
  # Distribution as a convenience to the developer.
204
223
  self.packages = None
205
- self.package_data = {}
224
+ self.package_data: dict[str, list[str]] = {}
206
225
  self.package_dir = None
207
226
  self.py_modules = None
208
227
  self.libraries = None
@@ -219,7 +238,7 @@ Common commands: (see '--help-commands' for more)
219
238
  # the caller at all. 'command_obj' maps command names to
220
239
  # Command instances -- that's how we enforce that every command
221
240
  # class is a singleton.
222
- self.command_obj = {}
241
+ self.command_obj: dict[str, Command] = {}
223
242
 
224
243
  # 'have_run' maps command names to boolean values; it keeps track
225
244
  # of whether we have actually run a particular command, to make it
@@ -231,7 +250,7 @@ Common commands: (see '--help-commands' for more)
231
250
  # command object is created, and replaced with a true value when
232
251
  # the command is successfully run. Thus it's probably best to use
233
252
  # '.get()' rather than a straight lookup.
234
- self.have_run = {}
253
+ self.have_run: dict[str, bool] = {}
235
254
 
236
255
  # Now we'll use the attrs dictionary (ultimately, keyword args from
237
256
  # the setup script) to possibly override any or all of these
@@ -300,7 +319,7 @@ Common commands: (see '--help-commands' for more)
300
319
  dict = self.command_options[command] = {}
301
320
  return dict
302
321
 
303
- def dump_option_dicts(self, header=None, commands=None, indent=""):
322
+ def dump_option_dicts(self, header=None, commands=None, indent: str = "") -> None:
304
323
  from pprint import pformat
305
324
 
306
325
  if commands is None: # dump all command option dicts
@@ -615,7 +634,7 @@ Common commands: (see '--help-commands' for more)
615
634
 
616
635
  return args
617
636
 
618
- def finalize_options(self):
637
+ def finalize_options(self) -> None:
619
638
  """Set final values for all the options on the Distribution
620
639
  instance, analogous to the .finalize_options() method of Command
621
640
  objects.
@@ -718,7 +737,7 @@ Common commands: (see '--help-commands' for more)
718
737
 
719
738
  return any_display_options
720
739
 
721
- def print_command_list(self, commands, header, max_length):
740
+ def print_command_list(self, commands, header, max_length) -> None:
722
741
  """Print a subset of the list of all commands -- used by
723
742
  'print_commands()'.
724
743
  """
@@ -735,7 +754,7 @@ Common commands: (see '--help-commands' for more)
735
754
 
736
755
  print(f" {cmd:<{max_length}} {description}")
737
756
 
738
- def print_commands(self):
757
+ def print_commands(self) -> None:
739
758
  """Print out a help message listing all available commands with a
740
759
  description of each. The list is divided into "standard commands"
741
760
  (listed in distutils.command.__all__) and "extra commands"
@@ -802,7 +821,7 @@ Common commands: (see '--help-commands' for more)
802
821
  self.command_packages = pkgs
803
822
  return pkgs
804
823
 
805
- def get_command_class(self, command):
824
+ def get_command_class(self, command: str) -> type[Command]:
806
825
  """Return the class that implements the Distutils command named by
807
826
  'command'. First we check the 'cmdclass' dictionary; if the
808
827
  command is mentioned there, we fetch the class object from the
@@ -971,10 +990,10 @@ Common commands: (see '--help-commands' for more)
971
990
 
972
991
  # -- Methods that operate on the Distribution ----------------------
973
992
 
974
- def announce(self, msg, level=logging.INFO):
993
+ def announce(self, msg, level: int = logging.INFO) -> None:
975
994
  log.log(level, msg)
976
995
 
977
- def run_commands(self):
996
+ def run_commands(self) -> None:
978
997
  """Run each command that was seen on the setup script command line.
979
998
  Uses the list of commands found and cache of command objects
980
999
  created by 'get_command_obj()'.
@@ -984,7 +1003,7 @@ Common commands: (see '--help-commands' for more)
984
1003
 
985
1004
  # -- Methods that operate on its Commands --------------------------
986
1005
 
987
- def run_command(self, command):
1006
+ def run_command(self, command: str) -> None:
988
1007
  """Do whatever it takes to run a command (including nothing at all,
989
1008
  if the command has already been run). Specifically: if we have
990
1009
  already created and run the command named by 'command', return
@@ -1004,28 +1023,28 @@ Common commands: (see '--help-commands' for more)
1004
1023
 
1005
1024
  # -- Distribution query methods ------------------------------------
1006
1025
 
1007
- def has_pure_modules(self):
1026
+ def has_pure_modules(self) -> bool:
1008
1027
  return len(self.packages or self.py_modules or []) > 0
1009
1028
 
1010
- def has_ext_modules(self):
1029
+ def has_ext_modules(self) -> bool:
1011
1030
  return self.ext_modules and len(self.ext_modules) > 0
1012
1031
 
1013
- def has_c_libraries(self):
1032
+ def has_c_libraries(self) -> bool:
1014
1033
  return self.libraries and len(self.libraries) > 0
1015
1034
 
1016
- def has_modules(self):
1035
+ def has_modules(self) -> bool:
1017
1036
  return self.has_pure_modules() or self.has_ext_modules()
1018
1037
 
1019
- def has_headers(self):
1038
+ def has_headers(self) -> bool:
1020
1039
  return self.headers and len(self.headers) > 0
1021
1040
 
1022
- def has_scripts(self):
1041
+ def has_scripts(self) -> bool:
1023
1042
  return self.scripts and len(self.scripts) > 0
1024
1043
 
1025
- def has_data_files(self):
1044
+ def has_data_files(self) -> bool:
1026
1045
  return self.data_files and len(self.data_files) > 0
1027
1046
 
1028
- def is_pure(self):
1047
+ def is_pure(self) -> bool:
1029
1048
  return (
1030
1049
  self.has_pure_modules()
1031
1050
  and not self.has_ext_modules()
@@ -1038,6 +1057,53 @@ Common commands: (see '--help-commands' for more)
1038
1057
  # they are defined in a sneaky way: the constructor binds self.get_XXX
1039
1058
  # to self.metadata.get_XXX. The actual code is in the
1040
1059
  # DistributionMetadata class, below.
1060
+ if TYPE_CHECKING:
1061
+ # Unfortunately this means we need to specify them manually or not expose statically
1062
+ def _(self) -> None:
1063
+ self.get_name = self.metadata.get_name
1064
+ self.get_version = self.metadata.get_version
1065
+ self.get_fullname = self.metadata.get_fullname
1066
+ self.get_author = self.metadata.get_author
1067
+ self.get_author_email = self.metadata.get_author_email
1068
+ self.get_maintainer = self.metadata.get_maintainer
1069
+ self.get_maintainer_email = self.metadata.get_maintainer_email
1070
+ self.get_contact = self.metadata.get_contact
1071
+ self.get_contact_email = self.metadata.get_contact_email
1072
+ self.get_url = self.metadata.get_url
1073
+ self.get_license = self.metadata.get_license
1074
+ self.get_licence = self.metadata.get_licence
1075
+ self.get_description = self.metadata.get_description
1076
+ self.get_long_description = self.metadata.get_long_description
1077
+ self.get_keywords = self.metadata.get_keywords
1078
+ self.get_platforms = self.metadata.get_platforms
1079
+ self.get_classifiers = self.metadata.get_classifiers
1080
+ self.get_download_url = self.metadata.get_download_url
1081
+ self.get_requires = self.metadata.get_requires
1082
+ self.get_provides = self.metadata.get_provides
1083
+ self.get_obsoletes = self.metadata.get_obsoletes
1084
+
1085
+ # Default attributes generated in __init__ from self.display_option_names
1086
+ help_commands: bool
1087
+ name: str | Literal[False]
1088
+ version: str | Literal[False]
1089
+ fullname: str | Literal[False]
1090
+ author: str | Literal[False]
1091
+ author_email: str | Literal[False]
1092
+ maintainer: str | Literal[False]
1093
+ maintainer_email: str | Literal[False]
1094
+ contact: str | Literal[False]
1095
+ contact_email: str | Literal[False]
1096
+ url: str | Literal[False]
1097
+ license: str | Literal[False]
1098
+ licence: str | Literal[False]
1099
+ description: str | Literal[False]
1100
+ long_description: str | Literal[False]
1101
+ platforms: str | list[str] | Literal[False]
1102
+ classifiers: str | list[str] | Literal[False]
1103
+ keywords: str | list[str] | Literal[False]
1104
+ provides: list[str] | Literal[False]
1105
+ requires: list[str] | Literal[False]
1106
+ obsoletes: list[str] | Literal[False]
1041
1107
 
1042
1108
 
1043
1109
  class DistributionMetadata:
@@ -1069,34 +1135,36 @@ class DistributionMetadata:
1069
1135
  "obsoletes",
1070
1136
  )
1071
1137
 
1072
- def __init__(self, path=None):
1138
+ def __init__(
1139
+ self, path: str | bytes | os.PathLike[str] | os.PathLike[bytes] | None = None
1140
+ ) -> None:
1073
1141
  if path is not None:
1074
1142
  self.read_pkg_file(open(path))
1075
1143
  else:
1076
- self.name = None
1077
- self.version = None
1078
- self.author = None
1079
- self.author_email = None
1080
- self.maintainer = None
1081
- self.maintainer_email = None
1082
- self.url = None
1083
- self.license = None
1084
- self.description = None
1085
- self.long_description = None
1086
- self.keywords = None
1087
- self.platforms = None
1088
- self.classifiers = None
1089
- self.download_url = None
1144
+ self.name: str | None = None
1145
+ self.version: str | None = None
1146
+ self.author: str | None = None
1147
+ self.author_email: str | None = None
1148
+ self.maintainer: str | None = None
1149
+ self.maintainer_email: str | None = None
1150
+ self.url: str | None = None
1151
+ self.license: str | None = None
1152
+ self.description: str | None = None
1153
+ self.long_description: str | None = None
1154
+ self.keywords: str | list[str] | None = None
1155
+ self.platforms: str | list[str] | None = None
1156
+ self.classifiers: str | list[str] | None = None
1157
+ self.download_url: str | None = None
1090
1158
  # PEP 314
1091
- self.provides = None
1092
- self.requires = None
1093
- self.obsoletes = None
1159
+ self.provides: str | list[str] | None = None
1160
+ self.requires: str | list[str] | None = None
1161
+ self.obsoletes: str | list[str] | None = None
1094
1162
 
1095
- def read_pkg_file(self, file):
1163
+ def read_pkg_file(self, file: IO[str]) -> None:
1096
1164
  """Reads the metadata values from a file object."""
1097
1165
  msg = message_from_file(file)
1098
1166
 
1099
- def _read_field(name):
1167
+ def _read_field(name: str) -> str | None:
1100
1168
  value = msg[name]
1101
1169
  if value and value != "UNKNOWN":
1102
1170
  return value
@@ -1143,14 +1211,14 @@ class DistributionMetadata:
1143
1211
  self.provides = None
1144
1212
  self.obsoletes = None
1145
1213
 
1146
- def write_pkg_info(self, base_dir):
1214
+ def write_pkg_info(self, base_dir: str | os.PathLike[str]) -> None:
1147
1215
  """Write the PKG-INFO file into the release tree."""
1148
1216
  with open(
1149
1217
  os.path.join(base_dir, 'PKG-INFO'), 'w', encoding='UTF-8'
1150
1218
  ) as pkg_info:
1151
1219
  self.write_pkg_file(pkg_info)
1152
1220
 
1153
- def write_pkg_file(self, file):
1221
+ def write_pkg_file(self, file: SupportsWrite[str]) -> None:
1154
1222
  """Write the PKG-INFO format data to a file object."""
1155
1223
  version = '1.0'
1156
1224
  if (
@@ -1196,13 +1264,13 @@ class DistributionMetadata:
1196
1264
 
1197
1265
  # -- Metadata query methods ----------------------------------------
1198
1266
 
1199
- def get_name(self):
1267
+ def get_name(self) -> str:
1200
1268
  return self.name or "UNKNOWN"
1201
1269
 
1202
- def get_version(self):
1270
+ def get_version(self) -> str:
1203
1271
  return self.version or "0.0.0"
1204
1272
 
1205
- def get_fullname(self):
1273
+ def get_fullname(self) -> str:
1206
1274
  return self._fullname(self.get_name(), self.get_version())
1207
1275
 
1208
1276
  @staticmethod
@@ -1224,74 +1292,74 @@ class DistributionMetadata:
1224
1292
  canonicalize_version(version, strip_trailing_zero=False),
1225
1293
  )
1226
1294
 
1227
- def get_author(self):
1295
+ def get_author(self) -> str | None:
1228
1296
  return self.author
1229
1297
 
1230
- def get_author_email(self):
1298
+ def get_author_email(self) -> str | None:
1231
1299
  return self.author_email
1232
1300
 
1233
- def get_maintainer(self):
1301
+ def get_maintainer(self) -> str | None:
1234
1302
  return self.maintainer
1235
1303
 
1236
- def get_maintainer_email(self):
1304
+ def get_maintainer_email(self) -> str | None:
1237
1305
  return self.maintainer_email
1238
1306
 
1239
- def get_contact(self):
1307
+ def get_contact(self) -> str | None:
1240
1308
  return self.maintainer or self.author
1241
1309
 
1242
- def get_contact_email(self):
1310
+ def get_contact_email(self) -> str | None:
1243
1311
  return self.maintainer_email or self.author_email
1244
1312
 
1245
- def get_url(self):
1313
+ def get_url(self) -> str | None:
1246
1314
  return self.url
1247
1315
 
1248
- def get_license(self):
1316
+ def get_license(self) -> str | None:
1249
1317
  return self.license
1250
1318
 
1251
1319
  get_licence = get_license
1252
1320
 
1253
- def get_description(self):
1321
+ def get_description(self) -> str | None:
1254
1322
  return self.description
1255
1323
 
1256
- def get_long_description(self):
1324
+ def get_long_description(self) -> str | None:
1257
1325
  return self.long_description
1258
1326
 
1259
- def get_keywords(self):
1327
+ def get_keywords(self) -> str | list[str]:
1260
1328
  return self.keywords or []
1261
1329
 
1262
- def set_keywords(self, value):
1330
+ def set_keywords(self, value: str | Iterable[str]) -> None:
1263
1331
  self.keywords = _ensure_list(value, 'keywords')
1264
1332
 
1265
- def get_platforms(self):
1333
+ def get_platforms(self) -> str | list[str] | None:
1266
1334
  return self.platforms
1267
1335
 
1268
- def set_platforms(self, value):
1336
+ def set_platforms(self, value: str | Iterable[str]) -> None:
1269
1337
  self.platforms = _ensure_list(value, 'platforms')
1270
1338
 
1271
- def get_classifiers(self):
1339
+ def get_classifiers(self) -> str | list[str]:
1272
1340
  return self.classifiers or []
1273
1341
 
1274
- def set_classifiers(self, value):
1342
+ def set_classifiers(self, value: str | Iterable[str]) -> None:
1275
1343
  self.classifiers = _ensure_list(value, 'classifiers')
1276
1344
 
1277
- def get_download_url(self):
1345
+ def get_download_url(self) -> str | None:
1278
1346
  return self.download_url
1279
1347
 
1280
1348
  # PEP 314
1281
- def get_requires(self):
1349
+ def get_requires(self) -> str | list[str]:
1282
1350
  return self.requires or []
1283
1351
 
1284
- def set_requires(self, value):
1352
+ def set_requires(self, value: Iterable[str]) -> None:
1285
1353
  import distutils.versionpredicate
1286
1354
 
1287
1355
  for v in value:
1288
1356
  distutils.versionpredicate.VersionPredicate(v)
1289
1357
  self.requires = list(value)
1290
1358
 
1291
- def get_provides(self):
1359
+ def get_provides(self) -> str | list[str]:
1292
1360
  return self.provides or []
1293
1361
 
1294
- def set_provides(self, value):
1362
+ def set_provides(self, value: Iterable[str]) -> None:
1295
1363
  value = [v.strip() for v in value]
1296
1364
  for v in value:
1297
1365
  import distutils.versionpredicate
@@ -1299,10 +1367,10 @@ class DistributionMetadata:
1299
1367
  distutils.versionpredicate.split_provision(v)
1300
1368
  self.provides = value
1301
1369
 
1302
- def get_obsoletes(self):
1370
+ def get_obsoletes(self) -> str | list[str]:
1303
1371
  return self.obsoletes or []
1304
1372
 
1305
- def set_obsoletes(self, value):
1373
+ def set_obsoletes(self, value: Iterable[str]) -> None:
1306
1374
  import distutils.versionpredicate
1307
1375
 
1308
1376
  for v in value:
@@ -5,6 +5,17 @@ Distutils modules may raise these or standard exceptions,
5
5
  including :exc:`SystemExit`.
6
6
  """
7
7
 
8
+ # compiler exceptions aliased for compatibility
9
+ from .compilers.C.errors import CompileError as CompileError
10
+ from .compilers.C.errors import Error as _Error
11
+ from .compilers.C.errors import LibError as LibError
12
+ from .compilers.C.errors import LinkError as LinkError
13
+ from .compilers.C.errors import PreprocessError as PreprocessError
14
+ from .compilers.C.errors import UnknownFileType as _UnknownFileType
15
+
16
+ CCompilerError = _Error
17
+ UnknownFileError = _UnknownFileType
18
+
8
19
 
9
20
  class DistutilsError(Exception):
10
21
  """The root of all Distutils evil."""
@@ -95,30 +106,3 @@ class DistutilsTemplateError(DistutilsError):
95
106
 
96
107
  class DistutilsByteCompileError(DistutilsError):
97
108
  """Byte compile error."""
98
-
99
-
100
- # Exception classes used by the CCompiler implementation classes
101
- class CCompilerError(Exception):
102
- """Some compile/link operation failed."""
103
-
104
-
105
- class PreprocessError(CCompilerError):
106
- """Failure to preprocess one or more C/C++ files."""
107
-
108
-
109
- class CompileError(CCompilerError):
110
- """Failure to compile one or more C/C++ source files."""
111
-
112
-
113
- class LibError(CCompilerError):
114
- """Failure to create a static library from one or more C/C++ object
115
- files."""
116
-
117
-
118
- class LinkError(CCompilerError):
119
- """Failure to link one or more C/C++ object files into an executable
120
- or shared library file."""
121
-
122
-
123
- class UnknownFileError(CCompilerError):
124
- """Attempt to process an unknown file type."""
@@ -3,8 +3,11 @@
3
3
  Provides the Extension class, used to describe C/C++ extension
4
4
  modules in setup scripts."""
5
5
 
6
+ from __future__ import annotations
7
+
6
8
  import os
7
9
  import warnings
10
+ from collections.abc import Iterable
8
11
 
9
12
  # This class is really only used by the "build_ext" command, so it might
10
13
  # make sense to put it in distutils.command.build_ext. However, that
@@ -88,22 +91,22 @@ class Extension:
88
91
  # setup_keywords in core.py.
89
92
  def __init__(
90
93
  self,
91
- name,
92
- sources,
93
- include_dirs=None,
94
- define_macros=None,
95
- undef_macros=None,
96
- library_dirs=None,
97
- libraries=None,
98
- runtime_library_dirs=None,
99
- extra_objects=None,
100
- extra_compile_args=None,
101
- extra_link_args=None,
102
- export_symbols=None,
103
- swig_opts=None,
104
- depends=None,
105
- language=None,
106
- optional=None,
94
+ name: str,
95
+ sources: Iterable[str | os.PathLike[str]],
96
+ include_dirs: list[str] | None = None,
97
+ define_macros: list[tuple[str, str | None]] | None = None,
98
+ undef_macros: list[str] | None = None,
99
+ library_dirs: list[str] | None = None,
100
+ libraries: list[str] | None = None,
101
+ runtime_library_dirs: list[str] | None = None,
102
+ extra_objects: list[str] | None = None,
103
+ extra_compile_args: list[str] | None = None,
104
+ extra_link_args: list[str] | None = None,
105
+ export_symbols: list[str] | None = None,
106
+ swig_opts: list[str] | None = None,
107
+ depends: list[str] | None = None,
108
+ language: str | None = None,
109
+ optional: bool | None = None,
107
110
  **kw, # To catch unknown keywords
108
111
  ):
109
112
  if not isinstance(name, str):