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
@@ -4,12 +4,16 @@ Implements the Distutils 'build_ext' command, for building extension
4
4
  modules (currently limited to C extensions, should accommodate C++
5
5
  extensions ASAP)."""
6
6
 
7
+ from __future__ import annotations
8
+
7
9
  import contextlib
8
10
  import os
9
11
  import re
10
12
  import sys
13
+ from collections.abc import Callable
11
14
  from distutils._log import log
12
15
  from site import USER_BASE
16
+ from typing import ClassVar
13
17
 
14
18
  from .._modified import newer_group
15
19
  from ..core import Command
@@ -98,9 +102,15 @@ class build_ext(Command):
98
102
  ('user', None, "add user include, library and rpath"),
99
103
  ]
100
104
 
101
- boolean_options = ['inplace', 'debug', 'force', 'swig-cpp', 'user']
105
+ boolean_options: ClassVar[list[str]] = [
106
+ 'inplace',
107
+ 'debug',
108
+ 'force',
109
+ 'swig-cpp',
110
+ 'user',
111
+ ]
102
112
 
103
- help_options = [
113
+ help_options: ClassVar[list[tuple[str, str | None, str, Callable[[], object]]]] = [
104
114
  ('help-compiler', None, "list available compilers", show_compilers),
105
115
  ]
106
116
 
@@ -153,7 +163,7 @@ class build_ext(Command):
153
163
  # building third party extensions
154
164
  yield sysconfig.get_config_var('LIBDIR')
155
165
 
156
- def finalize_options(self): # noqa: C901
166
+ def finalize_options(self) -> None: # noqa: C901
157
167
  from distutils import sysconfig
158
168
 
159
169
  self.set_undefined_options(
@@ -292,7 +302,7 @@ class build_ext(Command):
292
302
  except ValueError:
293
303
  raise DistutilsOptionError("parallel should be an integer")
294
304
 
295
- def run(self): # noqa: C901
305
+ def run(self) -> None: # noqa: C901
296
306
  from ..ccompiler import new_compiler
297
307
 
298
308
  # 'self.extensions', as supplied by setup.py, is a list of
@@ -364,7 +374,7 @@ class build_ext(Command):
364
374
  # Now actually compile and link everything.
365
375
  self.build_extensions()
366
376
 
367
- def check_extensions_list(self, extensions): # noqa: C901
377
+ def check_extensions_list(self, extensions) -> None: # noqa: C901
368
378
  """Ensure that the list of extensions (presumably provided as a
369
379
  command option 'extensions') is valid, i.e. it is a list of
370
380
  Extension objects. We also support the old-style list of 2-tuples,
@@ -472,7 +482,7 @@ class build_ext(Command):
472
482
  # "build" tree.
473
483
  return [self.get_ext_fullpath(ext.name) for ext in self.extensions]
474
484
 
475
- def build_extensions(self):
485
+ def build_extensions(self) -> None:
476
486
  # First, sanity-check the 'extensions' list
477
487
  self.check_extensions_list(self.extensions)
478
488
  if self.parallel:
@@ -515,7 +525,7 @@ class build_ext(Command):
515
525
  raise
516
526
  self.warn(f'building extension "{ext.name}" failed: {e}')
517
527
 
518
- def build_extension(self, ext):
528
+ def build_extension(self, ext) -> None:
519
529
  sources = ext.sources
520
530
  if sources is None or not isinstance(sources, (list, tuple)):
521
531
  raise DistutilsSetupError(
@@ -676,7 +686,7 @@ class build_ext(Command):
676
686
 
677
687
  # -- Name generators -----------------------------------------------
678
688
  # (extension names, filenames, whatever)
679
- def get_ext_fullpath(self, ext_name):
689
+ def get_ext_fullpath(self, ext_name: str) -> str:
680
690
  """Returns the path of the filename for a given extension.
681
691
 
682
692
  The file is located in `build_lib` or directly in the package
@@ -703,7 +713,7 @@ class build_ext(Command):
703
713
  # package_dir/filename
704
714
  return os.path.join(package_dir, filename)
705
715
 
706
- def get_ext_fullname(self, ext_name):
716
+ def get_ext_fullname(self, ext_name: str) -> str:
707
717
  """Returns the fullname of a given extension name.
708
718
 
709
719
  Adds the `package.` prefix"""
@@ -712,7 +722,7 @@ class build_ext(Command):
712
722
  else:
713
723
  return self.package + '.' + ext_name
714
724
 
715
- def get_ext_filename(self, ext_name):
725
+ def get_ext_filename(self, ext_name: str) -> str:
716
726
  r"""Convert the name of an extension (eg. "foo.bar") into the name
717
727
  of the file from which it will be loaded (eg. "foo/bar.so", or
718
728
  "foo\bar.pyd").
@@ -723,13 +733,13 @@ class build_ext(Command):
723
733
  ext_suffix = get_config_var('EXT_SUFFIX')
724
734
  return os.path.join(*ext_path) + ext_suffix
725
735
 
726
- def get_export_symbols(self, ext):
736
+ def get_export_symbols(self, ext: Extension) -> list[str]:
727
737
  """Return the list of symbols that a shared extension has to
728
738
  export. This either uses 'ext.export_symbols' or, if it's not
729
739
  provided, "PyInit_" + module_name. Only relevant on Windows, where
730
740
  the .pyd file (DLL) must export the module "PyInit_" function.
731
741
  """
732
- name = ext.name.split('.')[-1]
742
+ name = self._get_module_name_for_symbol(ext)
733
743
  try:
734
744
  # Unicode module name support as defined in PEP-489
735
745
  # https://peps.python.org/pep-0489/#export-hook-name
@@ -744,7 +754,16 @@ class build_ext(Command):
744
754
  ext.export_symbols.append(initfunc_name)
745
755
  return ext.export_symbols
746
756
 
747
- def get_libraries(self, ext): # noqa: C901
757
+ def _get_module_name_for_symbol(self, ext):
758
+ # Package name should be used for `__init__` modules
759
+ # https://github.com/python/cpython/issues/80074
760
+ # https://github.com/pypa/setuptools/issues/4826
761
+ parts = ext.name.split(".")
762
+ if parts[-1] == "__init__" and len(parts) >= 2:
763
+ return parts[-2]
764
+ return parts[-1]
765
+
766
+ def get_libraries(self, ext: Extension) -> list[str]: # noqa: C901
748
767
  """Return the list of libraries to link against when building a
749
768
  shared extension. On most platforms, this is just 'ext.libraries';
750
769
  on Windows, we add the Python library (eg. python20.dll).
@@ -7,6 +7,7 @@ import importlib.util
7
7
  import os
8
8
  import sys
9
9
  from distutils._log import log
10
+ from typing import ClassVar
10
11
 
11
12
  from ..core import Command
12
13
  from ..errors import DistutilsFileError, DistutilsOptionError
@@ -29,8 +30,8 @@ class build_py(Command):
29
30
  ('force', 'f', "forcibly build everything (ignore file timestamps)"),
30
31
  ]
31
32
 
32
- boolean_options = ['compile', 'force']
33
- negative_opt = {'no-compile': 'compile'}
33
+ boolean_options: ClassVar[list[str]] = ['compile', 'force']
34
+ negative_opt: ClassVar[dict[str, str]] = {'no-compile': 'compile'}
34
35
 
35
36
  def initialize_options(self):
36
37
  self.build_lib = None
@@ -42,7 +43,7 @@ class build_py(Command):
42
43
  self.optimize = 0
43
44
  self.force = None
44
45
 
45
- def finalize_options(self):
46
+ def finalize_options(self) -> None:
46
47
  self.set_undefined_options(
47
48
  'build', ('build_lib', 'build_lib'), ('force', 'force')
48
49
  )
@@ -67,7 +68,7 @@ class build_py(Command):
67
68
  except (ValueError, AssertionError):
68
69
  raise DistutilsOptionError("optimize must be 0, 1, or 2")
69
70
 
70
- def run(self):
71
+ def run(self) -> None:
71
72
  # XXX copy_file by default preserves atime and mtime. IMHO this is
72
73
  # the right thing to do, but perhaps it should be an option -- in
73
74
  # particular, a site administrator might want installed files to
@@ -134,7 +135,7 @@ class build_py(Command):
134
135
  ])
135
136
  return files
136
137
 
137
- def build_package_data(self):
138
+ def build_package_data(self) -> None:
138
139
  """Copy data files into build directory"""
139
140
  for _package, src_dir, build_dir, filenames in self.data_files:
140
141
  for filename in filenames:
@@ -306,7 +307,7 @@ class build_py(Command):
306
307
  outfile_path = [build_dir] + list(package) + [module + ".py"]
307
308
  return os.path.join(*outfile_path)
308
309
 
309
- def get_outputs(self, include_bytecode=True):
310
+ def get_outputs(self, include_bytecode: bool = True) -> list[str]:
310
311
  modules = self.find_all_modules()
311
312
  outputs = []
312
313
  for package, module, _module_file in modules:
@@ -349,7 +350,7 @@ class build_py(Command):
349
350
  self.mkpath(dir)
350
351
  return self.copy_file(module_file, outfile, preserve_mode=False)
351
352
 
352
- def build_modules(self):
353
+ def build_modules(self) -> None:
353
354
  modules = self.find_modules()
354
355
  for package, module, module_file in modules:
355
356
  # Now "build" the module -- ie. copy the source file to
@@ -358,7 +359,7 @@ class build_py(Command):
358
359
  # under self.build_lib.)
359
360
  self.build_module(module, module_file, package)
360
361
 
361
- def build_packages(self):
362
+ def build_packages(self) -> None:
362
363
  for package in self.packages:
363
364
  # Get list of (package, module, module_file) tuples based on
364
365
  # scanning the package directory. 'package' is only included
@@ -378,7 +379,7 @@ class build_py(Command):
378
379
  assert package == package_
379
380
  self.build_module(module, module_file, package)
380
381
 
381
- def byte_compile(self, files):
382
+ def byte_compile(self, files) -> None:
382
383
  if sys.dont_write_bytecode:
383
384
  self.warn('byte-compiling is disabled, skipping.')
384
385
  return
@@ -5,7 +5,6 @@ Implements the Distutils 'build_scripts' command."""
5
5
  import os
6
6
  import re
7
7
  import tokenize
8
- from distutils import sysconfig
9
8
  from distutils._log import log
10
9
  from stat import ST_MODE
11
10
  from typing import ClassVar
@@ -32,7 +31,7 @@ class build_scripts(Command):
32
31
  ('executable=', 'e', "specify final destination interpreter path"),
33
32
  ]
34
33
 
35
- boolean_options = ['force']
34
+ boolean_options: ClassVar[list[str]] = ['force']
36
35
 
37
36
  def initialize_options(self):
38
37
  self.build_dir = None
@@ -76,7 +75,7 @@ class build_scripts(Command):
76
75
 
77
76
  return outfiles, updated_files
78
77
 
79
- def _copy_script(self, script, outfiles, updated_files): # noqa: C901
78
+ def _copy_script(self, script, outfiles, updated_files):
80
79
  shebang_match = None
81
80
  script = convert_path(script)
82
81
  outfile = os.path.join(self.build_dir, os.path.basename(script))
@@ -106,18 +105,8 @@ class build_scripts(Command):
106
105
  if shebang_match:
107
106
  log.info("copying and adjusting %s -> %s", script, self.build_dir)
108
107
  if not self.dry_run:
109
- if not sysconfig.python_build:
110
- executable = self.executable
111
- else:
112
- executable = os.path.join(
113
- sysconfig.get_config_var("BINDIR"),
114
- "python{}{}".format(
115
- sysconfig.get_config_var("VERSION"),
116
- sysconfig.get_config_var("EXE"),
117
- ),
118
- )
119
108
  post_interp = shebang_match.group(1) or ''
120
- shebang = "#!" + executable + post_interp + "\n"
109
+ shebang = f"#!python{post_interp}\n"
121
110
  self._validate_shebang(shebang, f.encoding)
122
111
  with open(outfile, "w", encoding=f.encoding) as outf:
123
112
  outf.write(shebang)
@@ -52,7 +52,7 @@ class check(Command):
52
52
  ('strict', 's', 'Will exit with an error if a check fails'),
53
53
  ]
54
54
 
55
- boolean_options = ['metadata', 'restructuredtext', 'strict']
55
+ boolean_options: ClassVar[list[str]] = ['metadata', 'restructuredtext', 'strict']
56
56
 
57
57
  def initialize_options(self):
58
58
  """Sets default values for options."""
@@ -6,6 +6,7 @@ Implements the Distutils 'clean' command."""
6
6
 
7
7
  import os
8
8
  from distutils._log import log
9
+ from typing import ClassVar
9
10
 
10
11
  from ..core import Command
11
12
  from ..dir_util import remove_tree
@@ -30,7 +31,7 @@ class clean(Command):
30
31
  ('all', 'a', "remove all build output, not just temporary by-products"),
31
32
  ]
32
33
 
33
- boolean_options = ['all']
34
+ boolean_options: ClassVar[list[str]] = ['all']
34
35
 
35
36
  def initialize_options(self):
36
37
  self.build_base = None
@@ -17,6 +17,7 @@ import re
17
17
  from collections.abc import Sequence
18
18
  from distutils._log import log
19
19
 
20
+ from ..ccompiler import CCompiler, CompileError, LinkError, new_compiler
20
21
  from ..core import Command
21
22
  from ..errors import DistutilsExecError
22
23
  from ..sysconfig import customize_compiler
@@ -90,8 +91,6 @@ class config(Command):
90
91
  """
91
92
  # We do this late, and only on-demand, because this is an expensive
92
93
  # import.
93
- from ..ccompiler import CCompiler, new_compiler
94
-
95
94
  if not isinstance(self.compiler, CCompiler):
96
95
  self.compiler = new_compiler(
97
96
  compiler=self.compiler, dry_run=self.dry_run, force=True
@@ -177,8 +176,6 @@ class config(Command):
177
176
  preprocessor succeeded, false if there were any errors.
178
177
  ('body' probably isn't of much use, but what the heck.)
179
178
  """
180
- from ..ccompiler import CompileError
181
-
182
179
  self._check_compiler()
183
180
  ok = True
184
181
  try:
@@ -213,8 +210,6 @@ class config(Command):
213
210
  """Try to compile a source file built from 'body' and 'headers'.
214
211
  Return true on success, false otherwise.
215
212
  """
216
- from ..ccompiler import CompileError
217
-
218
213
  self._check_compiler()
219
214
  try:
220
215
  self._compile(body, headers, include_dirs, lang)
@@ -239,8 +234,6 @@ class config(Command):
239
234
  'headers', to executable form. Return true on success, false
240
235
  otherwise.
241
236
  """
242
- from ..ccompiler import CompileError, LinkError
243
-
244
237
  self._check_compiler()
245
238
  try:
246
239
  self._link(body, headers, include_dirs, libraries, library_dirs, lang)
@@ -2,6 +2,8 @@
2
2
 
3
3
  Implements the Distutils 'install' command."""
4
4
 
5
+ from __future__ import annotations
6
+
5
7
  import contextlib
6
8
  import itertools
7
9
  import os
@@ -9,6 +11,7 @@ import sys
9
11
  import sysconfig
10
12
  from distutils._log import log
11
13
  from site import USER_BASE, USER_SITE
14
+ from typing import ClassVar
12
15
 
13
16
  import jaraco.collections
14
17
 
@@ -238,7 +241,7 @@ class install(Command):
238
241
  ('record=', None, "filename in which to record list of installed files"),
239
242
  ]
240
243
 
241
- boolean_options = ['compile', 'force', 'skip-build']
244
+ boolean_options: ClassVar[list[str]] = ['compile', 'force', 'skip-build']
242
245
 
243
246
  if HAS_USER_SITE:
244
247
  user_options.append((
@@ -248,15 +251,15 @@ class install(Command):
248
251
  ))
249
252
  boolean_options.append('user')
250
253
 
251
- negative_opt = {'no-compile': 'compile'}
254
+ negative_opt: ClassVar[dict[str, str]] = {'no-compile': 'compile'}
252
255
 
253
- def initialize_options(self):
256
+ def initialize_options(self) -> None:
254
257
  """Initializes options."""
255
258
  # High-level options: these select both an installation base
256
259
  # and scheme.
257
- self.prefix = None
258
- self.exec_prefix = None
259
- self.home = None
260
+ self.prefix: str | None = None
261
+ self.exec_prefix: str | None = None
262
+ self.home: str | None = None
260
263
  self.user = False
261
264
 
262
265
  # These select only the installation base; it's up to the user to
@@ -264,7 +267,7 @@ class install(Command):
264
267
  # the --install-{platlib,purelib,scripts,data} options).
265
268
  self.install_base = None
266
269
  self.install_platbase = None
267
- self.root = None
270
+ self.root: str | None = None
268
271
 
269
272
  # These options are the actual installation directories; if not
270
273
  # supplied by the user, they are filled in using the installation
@@ -273,7 +276,7 @@ class install(Command):
273
276
  self.install_purelib = None # for pure module distributions
274
277
  self.install_platlib = None # non-pure (dists w/ extensions)
275
278
  self.install_headers = None # for C/C++ headers
276
- self.install_lib = None # set to either purelib or platlib
279
+ self.install_lib: str | None = None # set to either purelib or platlib
277
280
  self.install_scripts = None
278
281
  self.install_data = None
279
282
  self.install_userbase = USER_BASE
@@ -327,7 +330,7 @@ class install(Command):
327
330
  # party Python modules on various platforms given a wide
328
331
  # array of user input is decided. Yes, it's quite complex!)
329
332
 
330
- def finalize_options(self): # noqa: C901
333
+ def finalize_options(self) -> None: # noqa: C901
331
334
  """Finalizes options."""
332
335
  # This method (and its helpers, like 'finalize_unix()',
333
336
  # 'finalize_other()', and 'select_scheme()') is where the default
@@ -510,7 +513,7 @@ class install(Command):
510
513
  # Punt on doc directories for now -- after all, we're punting on
511
514
  # documentation completely!
512
515
 
513
- def dump_dirs(self, msg):
516
+ def dump_dirs(self, msg) -> None:
514
517
  """Dumps the list of user options."""
515
518
  if not DEBUG:
516
519
  return
@@ -530,7 +533,7 @@ class install(Command):
530
533
  val = getattr(self, opt_name)
531
534
  log.debug(" %s: %s", opt_name, val)
532
535
 
533
- def finalize_unix(self):
536
+ def finalize_unix(self) -> None:
534
537
  """Finalizes options for posix platforms."""
535
538
  if self.install_base is not None or self.install_platbase is not None:
536
539
  incomplete_scheme = (
@@ -579,7 +582,7 @@ class install(Command):
579
582
  self.install_platbase = self.exec_prefix
580
583
  self.select_scheme("posix_prefix")
581
584
 
582
- def finalize_other(self):
585
+ def finalize_other(self) -> None:
583
586
  """Finalizes options for non-posix platforms"""
584
587
  if self.user:
585
588
  if self.install_userbase is None:
@@ -601,7 +604,7 @@ class install(Command):
601
604
  f"I don't know how to install stuff on '{os.name}'"
602
605
  )
603
606
 
604
- def select_scheme(self, name):
607
+ def select_scheme(self, name) -> None:
605
608
  _select_scheme(self, name)
606
609
 
607
610
  def _expand_attrs(self, attrs):
@@ -613,12 +616,12 @@ class install(Command):
613
616
  val = subst_vars(val, self.config_vars)
614
617
  setattr(self, attr, val)
615
618
 
616
- def expand_basedirs(self):
619
+ def expand_basedirs(self) -> None:
617
620
  """Calls `os.path.expanduser` on install_base, install_platbase and
618
621
  root."""
619
622
  self._expand_attrs(['install_base', 'install_platbase', 'root'])
620
623
 
621
- def expand_dirs(self):
624
+ def expand_dirs(self) -> None:
622
625
  """Calls `os.path.expanduser` on install dirs."""
623
626
  self._expand_attrs([
624
627
  'install_purelib',
@@ -629,13 +632,13 @@ class install(Command):
629
632
  'install_data',
630
633
  ])
631
634
 
632
- def convert_paths(self, *names):
635
+ def convert_paths(self, *names) -> None:
633
636
  """Call `convert_path` over `names`."""
634
637
  for name in names:
635
638
  attr = "install_" + name
636
639
  setattr(self, attr, convert_path(getattr(self, attr)))
637
640
 
638
- def handle_extra_path(self):
641
+ def handle_extra_path(self) -> None:
639
642
  """Set `path_file` and `extra_dirs` using `extra_path`."""
640
643
  if self.extra_path is None:
641
644
  self.extra_path = self.distribution.extra_path
@@ -670,13 +673,13 @@ class install(Command):
670
673
  self.path_file = path_file
671
674
  self.extra_dirs = extra_dirs
672
675
 
673
- def change_roots(self, *names):
676
+ def change_roots(self, *names) -> None:
674
677
  """Change the install directories pointed by name using root."""
675
678
  for name in names:
676
679
  attr = "install_" + name
677
680
  setattr(self, attr, change_root(self.root, getattr(self, attr)))
678
681
 
679
- def create_home_path(self):
682
+ def create_home_path(self) -> None:
680
683
  """Create directories under ~."""
681
684
  if not self.user:
682
685
  return
@@ -10,6 +10,7 @@ from __future__ import annotations
10
10
  import functools
11
11
  import os
12
12
  from collections.abc import Iterable
13
+ from typing import ClassVar
13
14
 
14
15
  from ..core import Command
15
16
  from ..util import change_root, convert_path
@@ -28,7 +29,7 @@ class install_data(Command):
28
29
  ('force', 'f', "force installation (overwrite existing files)"),
29
30
  ]
30
31
 
31
- boolean_options = ['force']
32
+ boolean_options: ClassVar[list[str]] = ['force']
32
33
 
33
34
  def initialize_options(self):
34
35
  self.install_dir = None
@@ -38,7 +39,7 @@ class install_data(Command):
38
39
  self.data_files = self.distribution.data_files
39
40
  self.warn_dir = True
40
41
 
41
- def finalize_options(self):
42
+ def finalize_options(self) -> None:
42
43
  self.set_undefined_options(
43
44
  'install',
44
45
  ('install_data', 'install_dir'),
@@ -46,7 +47,7 @@ class install_data(Command):
46
47
  ('force', 'force'),
47
48
  )
48
49
 
49
- def run(self):
50
+ def run(self) -> None:
50
51
  self.mkpath(self.install_dir)
51
52
  for f in self.data_files:
52
53
  self._copy(f)
@@ -17,7 +17,7 @@ class install_headers(Command):
17
17
  ('force', 'f', "force installation (overwrite existing files)"),
18
18
  ]
19
19
 
20
- boolean_options = ['force']
20
+ boolean_options: ClassVar[list[str]] = ['force']
21
21
 
22
22
  def initialize_options(self):
23
23
  self.install_dir = None
@@ -3,9 +3,12 @@
3
3
  Implements the Distutils 'install_lib' command
4
4
  (install all Python modules)."""
5
5
 
6
+ from __future__ import annotations
7
+
6
8
  import importlib.util
7
9
  import os
8
10
  import sys
11
+ from typing import Any, ClassVar
9
12
 
10
13
  from ..core import Command
11
14
  from ..errors import DistutilsOptionError
@@ -47,8 +50,8 @@ class install_lib(Command):
47
50
  ('skip-build', None, "skip the build steps"),
48
51
  ]
49
52
 
50
- boolean_options = ['force', 'compile', 'skip-build']
51
- negative_opt = {'no-compile': 'compile'}
53
+ boolean_options: ClassVar[list[str]] = ['force', 'compile', 'skip-build']
54
+ negative_opt: ClassVar[dict[str, str]] = {'no-compile': 'compile'}
52
55
 
53
56
  def initialize_options(self):
54
57
  # let the 'install' command dictate our installation directory
@@ -59,7 +62,7 @@ class install_lib(Command):
59
62
  self.optimize = None
60
63
  self.skip_build = None
61
64
 
62
- def finalize_options(self):
65
+ def finalize_options(self) -> None:
63
66
  # Get all the information we need to install pure Python modules
64
67
  # from the umbrella 'install' command -- build (source) directory,
65
68
  # install (target) directory, and whether to compile .py files.
@@ -86,7 +89,7 @@ class install_lib(Command):
86
89
  if self.optimize not in (0, 1, 2):
87
90
  raise DistutilsOptionError("optimize must be 0, 1, or 2")
88
91
 
89
- def run(self):
92
+ def run(self) -> None:
90
93
  # Make sure we have built everything we need first
91
94
  self.build()
92
95
 
@@ -102,14 +105,15 @@ class install_lib(Command):
102
105
  # -- Top-level worker functions ------------------------------------
103
106
  # (called from 'run()')
104
107
 
105
- def build(self):
108
+ def build(self) -> None:
106
109
  if not self.skip_build:
107
110
  if self.distribution.has_pure_modules():
108
111
  self.run_command('build_py')
109
112
  if self.distribution.has_ext_modules():
110
113
  self.run_command('build_ext')
111
114
 
112
- def install(self):
115
+ # Any: https://typing.readthedocs.io/en/latest/guides/writing_stubs.html#the-any-trick
116
+ def install(self) -> list[str] | Any:
113
117
  if os.path.isdir(self.build_dir):
114
118
  outfiles = self.copy_tree(self.build_dir, self.install_dir)
115
119
  else:
@@ -119,7 +123,7 @@ class install_lib(Command):
119
123
  return
120
124
  return outfiles
121
125
 
122
- def byte_compile(self, files):
126
+ def byte_compile(self, files) -> None:
123
127
  if sys.dont_write_bytecode:
124
128
  self.warn('byte-compiling is disabled, skipping.')
125
129
  return
@@ -8,6 +8,7 @@ Python scripts."""
8
8
  import os
9
9
  from distutils._log import log
10
10
  from stat import ST_MODE
11
+ from typing import ClassVar
11
12
 
12
13
  from ..core import Command
13
14
 
@@ -22,7 +23,7 @@ class install_scripts(Command):
22
23
  ('skip-build', None, "skip the build steps"),
23
24
  ]
24
25
 
25
- boolean_options = ['force', 'skip-build']
26
+ boolean_options: ClassVar[list[str]] = ['force', 'skip-build']
26
27
 
27
28
  def initialize_options(self):
28
29
  self.install_dir = None
@@ -30,7 +31,7 @@ class install_scripts(Command):
30
31
  self.build_dir = None
31
32
  self.skip_build = None
32
33
 
33
- def finalize_options(self):
34
+ def finalize_options(self) -> None:
34
35
  self.set_undefined_options('build', ('build_scripts', 'build_dir'))
35
36
  self.set_undefined_options(
36
37
  'install',
@@ -39,7 +40,7 @@ class install_scripts(Command):
39
40
  ('skip_build', 'skip_build'),
40
41
  )
41
42
 
42
- def run(self):
43
+ def run(self) -> None:
43
44
  if not self.skip_build:
44
45
  self.run_command('build_scripts')
45
46
  self.outfiles = self.copy_tree(self.build_dir, self.install_dir)