py2docfx 0.1.13.dev2016723__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.dev2016723.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/METADATA +1 -1
  340. {py2docfx-0.1.13.dev2016723.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.dev2016723.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/WHEEL +0 -0
  346. {py2docfx-0.1.13.dev2016723.dist-info → py2docfx-0.1.13.dev2021865.dist-info}/top_level.txt +0 -0
@@ -1,402 +1,3 @@
1
- """distutils.unixccompiler
1
+ from .compilers.C import unix
2
2
 
3
- Contains the UnixCCompiler class, a subclass of CCompiler that handles
4
- the "typical" Unix-style command-line C compiler:
5
- * macros defined with -Dname[=value]
6
- * macros undefined with -Uname
7
- * include search directories specified with -Idir
8
- * libraries specified with -lllib
9
- * library search directories specified with -Ldir
10
- * compile handled by 'cc' (or similar) executable with -c option:
11
- compiles .c to .o
12
- * link static library handled by 'ar' command (possibly with 'ranlib')
13
- * link shared library handled by 'cc -shared'
14
- """
15
-
16
- from __future__ import annotations
17
-
18
- import itertools
19
- import os
20
- import re
21
- import shlex
22
- import sys
23
-
24
- from . import sysconfig
25
- from ._log import log
26
- from ._macos_compat import compiler_fixup
27
- from ._modified import newer
28
- from .ccompiler import CCompiler, gen_lib_options, gen_preprocess_options
29
- from .compat import consolidate_linker_args
30
- from .errors import CompileError, DistutilsExecError, LibError, LinkError
31
-
32
- # XXX Things not currently handled:
33
- # * optimization/debug/warning flags; we just use whatever's in Python's
34
- # Makefile and live with it. Is this adequate? If not, we might
35
- # have to have a bunch of subclasses GNUCCompiler, SGICCompiler,
36
- # SunCCompiler, and I suspect down that road lies madness.
37
- # * even if we don't know a warning flag from an optimization flag,
38
- # we need some way for outsiders to feed preprocessor/compiler/linker
39
- # flags in to us -- eg. a sysadmin might want to mandate certain flags
40
- # via a site config file, or a user might want to set something for
41
- # compiling this module distribution only via the setup.py command
42
- # line, whatever. As long as these options come from something on the
43
- # current system, they can be as system-dependent as they like, and we
44
- # should just happily stuff them into the preprocessor/compiler/linker
45
- # options and carry on.
46
-
47
-
48
- def _split_env(cmd):
49
- """
50
- For macOS, split command into 'env' portion (if any)
51
- and the rest of the linker command.
52
-
53
- >>> _split_env(['a', 'b', 'c'])
54
- ([], ['a', 'b', 'c'])
55
- >>> _split_env(['/usr/bin/env', 'A=3', 'gcc'])
56
- (['/usr/bin/env', 'A=3'], ['gcc'])
57
- """
58
- pivot = 0
59
- if os.path.basename(cmd[0]) == "env":
60
- pivot = 1
61
- while '=' in cmd[pivot]:
62
- pivot += 1
63
- return cmd[:pivot], cmd[pivot:]
64
-
65
-
66
- def _split_aix(cmd):
67
- """
68
- AIX platforms prefix the compiler with the ld_so_aix
69
- script, so split that from the linker command.
70
-
71
- >>> _split_aix(['a', 'b', 'c'])
72
- ([], ['a', 'b', 'c'])
73
- >>> _split_aix(['/bin/foo/ld_so_aix', 'gcc'])
74
- (['/bin/foo/ld_so_aix'], ['gcc'])
75
- """
76
- pivot = os.path.basename(cmd[0]) == 'ld_so_aix'
77
- return cmd[:pivot], cmd[pivot:]
78
-
79
-
80
- def _linker_params(linker_cmd, compiler_cmd):
81
- """
82
- The linker command usually begins with the compiler
83
- command (possibly multiple elements), followed by zero or more
84
- params for shared library building.
85
-
86
- If the LDSHARED env variable overrides the linker command,
87
- however, the commands may not match.
88
-
89
- Return the best guess of the linker parameters by stripping
90
- the linker command. If the compiler command does not
91
- match the linker command, assume the linker command is
92
- just the first element.
93
-
94
- >>> _linker_params('gcc foo bar'.split(), ['gcc'])
95
- ['foo', 'bar']
96
- >>> _linker_params('gcc foo bar'.split(), ['other'])
97
- ['foo', 'bar']
98
- >>> _linker_params('ccache gcc foo bar'.split(), 'ccache gcc'.split())
99
- ['foo', 'bar']
100
- >>> _linker_params(['gcc'], ['gcc'])
101
- []
102
- """
103
- c_len = len(compiler_cmd)
104
- pivot = c_len if linker_cmd[:c_len] == compiler_cmd else 1
105
- return linker_cmd[pivot:]
106
-
107
-
108
- class UnixCCompiler(CCompiler):
109
- compiler_type = 'unix'
110
-
111
- # These are used by CCompiler in two places: the constructor sets
112
- # instance attributes 'preprocessor', 'compiler', etc. from them, and
113
- # 'set_executable()' allows any of these to be set. The defaults here
114
- # are pretty generic; they will probably have to be set by an outsider
115
- # (eg. using information discovered by the sysconfig about building
116
- # Python extensions).
117
- executables = {
118
- 'preprocessor': None,
119
- 'compiler': ["cc"],
120
- 'compiler_so': ["cc"],
121
- 'compiler_cxx': ["c++"],
122
- 'compiler_so_cxx': ["c++"],
123
- 'linker_so': ["cc", "-shared"],
124
- 'linker_so_cxx': ["c++", "-shared"],
125
- 'linker_exe': ["cc"],
126
- 'linker_exe_cxx': ["c++", "-shared"],
127
- 'archiver': ["ar", "-cr"],
128
- 'ranlib': None,
129
- }
130
-
131
- if sys.platform[:6] == "darwin":
132
- executables['ranlib'] = ["ranlib"]
133
-
134
- # Needed for the filename generation methods provided by the base
135
- # class, CCompiler. NB. whoever instantiates/uses a particular
136
- # UnixCCompiler instance should set 'shared_lib_ext' -- we set a
137
- # reasonable common default here, but it's not necessarily used on all
138
- # Unices!
139
-
140
- src_extensions = [".c", ".C", ".cc", ".cxx", ".cpp", ".m"]
141
- obj_extension = ".o"
142
- static_lib_extension = ".a"
143
- shared_lib_extension = ".so"
144
- dylib_lib_extension = ".dylib"
145
- xcode_stub_lib_extension = ".tbd"
146
- static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s"
147
- xcode_stub_lib_format = dylib_lib_format
148
- if sys.platform == "cygwin":
149
- exe_extension = ".exe"
150
- shared_lib_extension = ".dll.a"
151
- dylib_lib_extension = ".dll"
152
- dylib_lib_format = "cyg%s%s"
153
-
154
- def preprocess(
155
- self,
156
- source,
157
- output_file=None,
158
- macros=None,
159
- include_dirs=None,
160
- extra_preargs=None,
161
- extra_postargs=None,
162
- ):
163
- fixed_args = self._fix_compile_args(None, macros, include_dirs)
164
- ignore, macros, include_dirs = fixed_args
165
- pp_opts = gen_preprocess_options(macros, include_dirs)
166
- pp_args = self.preprocessor + pp_opts
167
- if output_file:
168
- pp_args.extend(['-o', output_file])
169
- if extra_preargs:
170
- pp_args[:0] = extra_preargs
171
- if extra_postargs:
172
- pp_args.extend(extra_postargs)
173
- pp_args.append(source)
174
-
175
- # reasons to preprocess:
176
- # - force is indicated
177
- # - output is directed to stdout
178
- # - source file is newer than the target
179
- preprocess = self.force or output_file is None or newer(source, output_file)
180
- if not preprocess:
181
- return
182
-
183
- if output_file:
184
- self.mkpath(os.path.dirname(output_file))
185
-
186
- try:
187
- self.spawn(pp_args)
188
- except DistutilsExecError as msg:
189
- raise CompileError(msg)
190
-
191
- def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
192
- compiler_so = compiler_fixup(self.compiler_so, cc_args + extra_postargs)
193
- compiler_so_cxx = compiler_fixup(self.compiler_so_cxx, cc_args + extra_postargs)
194
- try:
195
- if self.detect_language(src) == 'c++':
196
- self.spawn(
197
- compiler_so_cxx + cc_args + [src, '-o', obj] + extra_postargs
198
- )
199
- else:
200
- self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs)
201
- except DistutilsExecError as msg:
202
- raise CompileError(msg)
203
-
204
- def create_static_lib(
205
- self, objects, output_libname, output_dir=None, debug=False, target_lang=None
206
- ):
207
- objects, output_dir = self._fix_object_args(objects, output_dir)
208
-
209
- output_filename = self.library_filename(output_libname, output_dir=output_dir)
210
-
211
- if self._need_link(objects, output_filename):
212
- self.mkpath(os.path.dirname(output_filename))
213
- self.spawn(self.archiver + [output_filename] + objects + self.objects)
214
-
215
- # Not many Unices required ranlib anymore -- SunOS 4.x is, I
216
- # think the only major Unix that does. Maybe we need some
217
- # platform intelligence here to skip ranlib if it's not
218
- # needed -- or maybe Python's configure script took care of
219
- # it for us, hence the check for leading colon.
220
- if self.ranlib:
221
- try:
222
- self.spawn(self.ranlib + [output_filename])
223
- except DistutilsExecError as msg:
224
- raise LibError(msg)
225
- else:
226
- log.debug("skipping %s (up-to-date)", output_filename)
227
-
228
- def link(
229
- self,
230
- target_desc,
231
- objects,
232
- output_filename,
233
- output_dir=None,
234
- libraries=None,
235
- library_dirs=None,
236
- runtime_library_dirs=None,
237
- export_symbols=None,
238
- debug=False,
239
- extra_preargs=None,
240
- extra_postargs=None,
241
- build_temp=None,
242
- target_lang=None,
243
- ):
244
- objects, output_dir = self._fix_object_args(objects, output_dir)
245
- fixed_args = self._fix_lib_args(libraries, library_dirs, runtime_library_dirs)
246
- libraries, library_dirs, runtime_library_dirs = fixed_args
247
-
248
- lib_opts = gen_lib_options(self, library_dirs, runtime_library_dirs, libraries)
249
- if not isinstance(output_dir, (str, type(None))):
250
- raise TypeError("'output_dir' must be a string or None")
251
- if output_dir is not None:
252
- output_filename = os.path.join(output_dir, output_filename)
253
-
254
- if self._need_link(objects, output_filename):
255
- ld_args = objects + self.objects + lib_opts + ['-o', output_filename]
256
- if debug:
257
- ld_args[:0] = ['-g']
258
- if extra_preargs:
259
- ld_args[:0] = extra_preargs
260
- if extra_postargs:
261
- ld_args.extend(extra_postargs)
262
- self.mkpath(os.path.dirname(output_filename))
263
- try:
264
- # Select a linker based on context: linker_exe when
265
- # building an executable or linker_so (with shared options)
266
- # when building a shared library.
267
- building_exe = target_desc == CCompiler.EXECUTABLE
268
- linker = (
269
- self.linker_exe
270
- if building_exe
271
- else (
272
- self.linker_so_cxx if target_lang == "c++" else self.linker_so
273
- )
274
- )[:]
275
-
276
- if target_lang == "c++" and self.compiler_cxx:
277
- env, linker_ne = _split_env(linker)
278
- aix, linker_na = _split_aix(linker_ne)
279
- _, compiler_cxx_ne = _split_env(self.compiler_cxx)
280
- _, linker_exe_ne = _split_env(self.linker_exe)
281
-
282
- params = _linker_params(linker_na, linker_exe_ne)
283
- linker = env + aix + compiler_cxx_ne + params
284
-
285
- linker = compiler_fixup(linker, ld_args)
286
-
287
- self.spawn(linker + ld_args)
288
- except DistutilsExecError as msg:
289
- raise LinkError(msg)
290
- else:
291
- log.debug("skipping %s (up-to-date)", output_filename)
292
-
293
- # -- Miscellaneous methods -----------------------------------------
294
- # These are all used by the 'gen_lib_options() function, in
295
- # ccompiler.py.
296
-
297
- def library_dir_option(self, dir):
298
- return "-L" + dir
299
-
300
- def _is_gcc(self):
301
- cc_var = sysconfig.get_config_var("CC")
302
- compiler = os.path.basename(shlex.split(cc_var)[0])
303
- return "gcc" in compiler or "g++" in compiler
304
-
305
- def runtime_library_dir_option(self, dir: str) -> str | list[str]:
306
- # XXX Hackish, at the very least. See Python bug #445902:
307
- # https://bugs.python.org/issue445902
308
- # Linkers on different platforms need different options to
309
- # specify that directories need to be added to the list of
310
- # directories searched for dependencies when a dynamic library
311
- # is sought. GCC on GNU systems (Linux, FreeBSD, ...) has to
312
- # be told to pass the -R option through to the linker, whereas
313
- # other compilers and gcc on other systems just know this.
314
- # Other compilers may need something slightly different. At
315
- # this time, there's no way to determine this information from
316
- # the configuration data stored in the Python installation, so
317
- # we use this hack.
318
- if sys.platform[:6] == "darwin":
319
- from distutils.util import get_macosx_target_ver, split_version
320
-
321
- macosx_target_ver = get_macosx_target_ver()
322
- if macosx_target_ver and split_version(macosx_target_ver) >= [10, 5]:
323
- return "-Wl,-rpath," + dir
324
- else: # no support for -rpath on earlier macOS versions
325
- return "-L" + dir
326
- elif sys.platform[:7] == "freebsd":
327
- return "-Wl,-rpath=" + dir
328
- elif sys.platform[:5] == "hp-ux":
329
- return [
330
- "-Wl,+s" if self._is_gcc() else "+s",
331
- "-L" + dir,
332
- ]
333
-
334
- # For all compilers, `-Wl` is the presumed way to pass a
335
- # compiler option to the linker
336
- if sysconfig.get_config_var("GNULD") == "yes":
337
- return consolidate_linker_args([
338
- # Force RUNPATH instead of RPATH
339
- "-Wl,--enable-new-dtags",
340
- "-Wl,-rpath," + dir,
341
- ])
342
- else:
343
- return "-Wl,-R" + dir
344
-
345
- def library_option(self, lib):
346
- return "-l" + lib
347
-
348
- @staticmethod
349
- def _library_root(dir):
350
- """
351
- macOS users can specify an alternate SDK using'-isysroot'.
352
- Calculate the SDK root if it is specified.
353
-
354
- Note that, as of Xcode 7, Apple SDKs may contain textual stub
355
- libraries with .tbd extensions rather than the normal .dylib
356
- shared libraries installed in /. The Apple compiler tool
357
- chain handles this transparently but it can cause problems
358
- for programs that are being built with an SDK and searching
359
- for specific libraries. Callers of find_library_file need to
360
- keep in mind that the base filename of the returned SDK library
361
- file might have a different extension from that of the library
362
- file installed on the running system, for example:
363
- /Applications/Xcode.app/Contents/Developer/Platforms/
364
- MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/
365
- usr/lib/libedit.tbd
366
- vs
367
- /usr/lib/libedit.dylib
368
- """
369
- cflags = sysconfig.get_config_var('CFLAGS')
370
- match = re.search(r'-isysroot\s*(\S+)', cflags)
371
-
372
- apply_root = (
373
- sys.platform == 'darwin'
374
- and match
375
- and (
376
- dir.startswith('/System/')
377
- or (dir.startswith('/usr/') and not dir.startswith('/usr/local/'))
378
- )
379
- )
380
-
381
- return os.path.join(match.group(1), dir[1:]) if apply_root else dir
382
-
383
- def find_library_file(self, dirs, lib, debug=False):
384
- """
385
- Second-guess the linker with not much hard
386
- data to go on: GCC seems to prefer the shared library, so
387
- assume that *all* Unix C compilers do,
388
- ignoring even GCC's "-static" option.
389
- """
390
- lib_names = (
391
- self.library_filename(lib, lib_type=type)
392
- for type in 'dylib xcode_stub shared static'.split()
393
- )
394
-
395
- roots = map(self._library_root, dirs)
396
-
397
- searched = itertools.starmap(os.path.join, itertools.product(roots, lib_names))
398
-
399
- found = filter(os.path.exists, searched)
400
-
401
- # Return None if it could not be found in any dir.
402
- return next(found, None)
3
+ UnixCCompiler = unix.Compiler
@@ -16,6 +16,8 @@ import subprocess
16
16
  import sys
17
17
  import sysconfig
18
18
  import tempfile
19
+ from collections.abc import Callable, Iterable, Mapping
20
+ from typing import TYPE_CHECKING, AnyStr
19
21
 
20
22
  from jaraco.functools import pass_none
21
23
 
@@ -24,6 +26,11 @@ from ._modified import newer
24
26
  from .errors import DistutilsByteCompileError, DistutilsPlatformError
25
27
  from .spawn import spawn
26
28
 
29
+ if TYPE_CHECKING:
30
+ from typing_extensions import TypeVarTuple, Unpack
31
+
32
+ _Ts = TypeVarTuple("_Ts")
33
+
27
34
 
28
35
  def get_host_platform() -> str:
29
36
  """
@@ -39,7 +46,7 @@ def get_host_platform() -> str:
39
46
  return sysconfig.get_platform()
40
47
 
41
48
 
42
- def get_platform():
49
+ def get_platform() -> str:
43
50
  if os.name == 'nt':
44
51
  TARGET_TO_PLAT = {
45
52
  'x86': 'win32',
@@ -108,13 +115,13 @@ def get_macosx_target_ver():
108
115
  return syscfg_ver
109
116
 
110
117
 
111
- def split_version(s):
118
+ def split_version(s: str) -> list[int]:
112
119
  """Convert a dot-separated string into a list of numbers for comparisons"""
113
120
  return [int(n) for n in s.split('.')]
114
121
 
115
122
 
116
123
  @pass_none
117
- def convert_path(pathname: str | os.PathLike) -> str:
124
+ def convert_path(pathname: str | os.PathLike[str]) -> str:
118
125
  r"""
119
126
  Allow for pathlib.Path inputs, coax to a native path string.
120
127
 
@@ -132,7 +139,9 @@ def convert_path(pathname: str | os.PathLike) -> str:
132
139
  return os.fspath(pathlib.PurePath(pathname))
133
140
 
134
141
 
135
- def change_root(new_root, pathname):
142
+ def change_root(
143
+ new_root: AnyStr | os.PathLike[AnyStr], pathname: AnyStr | os.PathLike[AnyStr]
144
+ ) -> AnyStr:
136
145
  """Return 'pathname' with 'new_root' prepended. If 'pathname' is
137
146
  relative, this is equivalent to "os.path.join(new_root,pathname)".
138
147
  Otherwise, it requires making 'pathname' relative and then joining the
@@ -154,7 +163,7 @@ def change_root(new_root, pathname):
154
163
 
155
164
 
156
165
  @functools.lru_cache
157
- def check_environ():
166
+ def check_environ() -> None:
158
167
  """Ensure that 'os.environ' has all the environment variables we
159
168
  guarantee that users can use in config files, command-line options,
160
169
  etc. Currently this includes:
@@ -176,7 +185,7 @@ def check_environ():
176
185
  os.environ['PLAT'] = get_platform()
177
186
 
178
187
 
179
- def subst_vars(s, local_vars):
188
+ def subst_vars(s, local_vars: Mapping[str, object]) -> str:
180
189
  """
181
190
  Perform variable substitution on 'string'.
182
191
  Variables are indicated by format-style braces ("{var}").
@@ -215,7 +224,7 @@ def _subst_compat(s):
215
224
  return repl
216
225
 
217
226
 
218
- def grok_environment_error(exc, prefix="error: "):
227
+ def grok_environment_error(exc: object, prefix: str = "error: ") -> str:
219
228
  # Function kept for backward compatibility.
220
229
  # Used to try clever things with EnvironmentErrors,
221
230
  # but nowadays str(exception) produces good messages.
@@ -233,7 +242,7 @@ def _init_regex():
233
242
  _dquote_re = re.compile(r'"(?:[^"\\]|\\.)*"')
234
243
 
235
244
 
236
- def split_quoted(s):
245
+ def split_quoted(s: str) -> list[str]:
237
246
  """Split a string up according to Unix shell-like rules for quotes and
238
247
  backslashes. In short: words are delimited by spaces, as long as those
239
248
  spaces are not escaped by a backslash, or inside a quoted string.
@@ -299,7 +308,13 @@ def split_quoted(s):
299
308
  # split_quoted ()
300
309
 
301
310
 
302
- def execute(func, args, msg=None, verbose=False, dry_run=False):
311
+ def execute(
312
+ func: Callable[[Unpack[_Ts]], object],
313
+ args: tuple[Unpack[_Ts]],
314
+ msg: object = None,
315
+ verbose: bool = False,
316
+ dry_run: bool = False,
317
+ ) -> None:
303
318
  """Perform some action that affects the outside world (eg. by
304
319
  writing to the filesystem). Such actions are special because they
305
320
  are disabled by the 'dry_run' flag. This method takes care of all
@@ -318,7 +333,7 @@ def execute(func, args, msg=None, verbose=False, dry_run=False):
318
333
  func(*args)
319
334
 
320
335
 
321
- def strtobool(val):
336
+ def strtobool(val: str) -> bool:
322
337
  """Convert a string representation of truth to true (1) or false (0).
323
338
 
324
339
  True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values
@@ -327,23 +342,23 @@ def strtobool(val):
327
342
  """
328
343
  val = val.lower()
329
344
  if val in ('y', 'yes', 't', 'true', 'on', '1'):
330
- return 1
345
+ return True
331
346
  elif val in ('n', 'no', 'f', 'false', 'off', '0'):
332
- return 0
347
+ return False
333
348
  else:
334
349
  raise ValueError(f"invalid truth value {val!r}")
335
350
 
336
351
 
337
352
  def byte_compile( # noqa: C901
338
- py_files,
339
- optimize=0,
340
- force=False,
341
- prefix=None,
342
- base_dir=None,
343
- verbose=True,
344
- dry_run=False,
345
- direct=None,
346
- ):
353
+ py_files: Iterable[str],
354
+ optimize: int = 0,
355
+ force: bool = False,
356
+ prefix: str | None = None,
357
+ base_dir: str | None = None,
358
+ verbose: bool = True,
359
+ dry_run: bool = False,
360
+ direct: bool | None = None,
361
+ ) -> None:
347
362
  """Byte-compile a collection of Python source files to .pyc
348
363
  files in a __pycache__ subdirectory. 'py_files' is a list
349
364
  of files to compile; any files that don't end in ".py" are silently
@@ -473,7 +488,7 @@ byte_compile(files, optimize={optimize!r}, force={force!r},
473
488
  log.debug("skipping byte-compilation of %s to %s", file, cfile_base)
474
489
 
475
490
 
476
- def rfc822_escape(header):
491
+ def rfc822_escape(header: str) -> str:
477
492
  """Return a version of the string escaped for inclusion in an
478
493
  RFC-822 header, by ensuring there are 8 spaces space after each newline.
479
494
  """
@@ -488,7 +503,7 @@ def rfc822_escape(header):
488
503
  return indent.join(lines) + suffix
489
504
 
490
505
 
491
- def is_mingw():
506
+ def is_mingw() -> bool:
492
507
  """Returns True if the current platform is mingw.
493
508
 
494
509
  Python compiled with Mingw-w64 has sys.platform == 'win32' and