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
@@ -17,30 +17,29 @@ from win32com.test.util import CheckClean
17
17
 
18
18
  # Test a few of the MSOffice components.
19
19
  def TestWord():
20
- # Try and load the object exposed by Word 8
21
- # Office 97 - _totally_ different object model!
22
20
  try:
23
- # NOTE - using "client.Dispatch" would return an msword8.py instance!
24
- print("Starting Word 8 for dynamic test")
25
- word = win32com.client.dynamic.Dispatch("Word.Application")
26
- TestWord8(word)
27
-
28
- word = None
29
- # Now we will test Dispatch without the new "lazy" capabilities
30
- print("Starting Word 8 for non-lazy dynamic test")
31
- dispatch = win32com.client.dynamic._GetGoodDispatch("Word.Application")
32
- typeinfo = dispatch.GetTypeInfo()
33
- attr = typeinfo.GetTypeAttr()
34
- olerepr = win32com.client.build.DispatchItem(typeinfo, attr, None, 0)
35
- word = win32com.client.dynamic.CDispatch(dispatch, olerepr)
36
- dispatch = typeinfo = attr = olerepr = None
37
- TestWord8(word)
38
-
39
- except pythoncom.com_error:
40
- print("Starting Word 7 for dynamic test")
41
- word = win32com.client.Dispatch("Word.Basic")
42
- TestWord7(word)
43
-
21
+ # Office 97 - _totally_ different object model!
22
+ word7 = win32com.client.Dispatch("Word.Basic")
23
+ # Check if any property needed by TestWord7 is not None
24
+ if word7.FileNew:
25
+ print("Starting Word 7 for dynamic test")
26
+ TestWord7(word7)
27
+ else:
28
+ # NOTE - using "client.Dispatch" would return an msword8.py instance!
29
+ print("Starting Word 8 for dynamic test")
30
+ word = win32com.client.dynamic.Dispatch("Word.Application")
31
+ TestWord8(word)
32
+
33
+ word = None
34
+ # Now we will test Dispatch without the new "lazy" capabilities
35
+ print("Starting Word 8 for non-lazy dynamic test")
36
+ dispatch = win32com.client.dynamic._GetGoodDispatch("Word.Application")
37
+ typeinfo = dispatch.GetTypeInfo()
38
+ attr = typeinfo.GetTypeAttr()
39
+ olerepr = win32com.client.build.DispatchItem(typeinfo, attr, None, 0)
40
+ word = win32com.client.dynamic.CDispatch(dispatch, olerepr)
41
+ dispatch = typeinfo = attr = olerepr = None
42
+ TestWord8(word)
44
43
  except Exception as e:
45
44
  print("Word dynamic tests failed", e)
46
45
  traceback.print_exc()
@@ -74,24 +73,24 @@ def TestWord8(word):
74
73
  doc = word.Documents.Add()
75
74
  wrange = doc.Range()
76
75
  for i in range(10):
77
- wrange.InsertAfter("Hello from Python %d\n" % i)
76
+ wrange.InsertAfter(f"Hello from Python {i + 1}\n")
78
77
  paras = doc.Paragraphs
79
- for i in range(len(paras)):
80
- # *sob* - in Word 2019, `p = paras(i+1)` seems to work to get a para
81
- # but `p.Font` then blows up.
82
- # p = paras[i]()
83
- p = paras(i + 1)
84
- p.Font.ColorIndex = i + 1
85
- p.Font.Size = 12 + (4 * i)
86
- # XXX - note that
87
- # for para in paras:
88
- # para().Font...
89
- # doesn't seem to work - no error, just doesn't work
90
- # Should check if it works for VB!
91
- doc.Close(SaveChanges=0)
78
+ if int(word.Version.split(".")[0]) >= 16:
79
+ # With Word 16 / Word 2019
80
+ for i, p in enumerate(paras):
81
+ p.Range.Font.ColorIndex = i + 1
82
+ p.Range.Font.Size = 12 + (4 * i)
83
+ else:
84
+ # NOTE: Iterating on paras doesn't seem to work - no error, just doesn't work
85
+ # for para in paras:
86
+ # para().Font...
87
+ for i in range(len(paras)):
88
+ p = paras(i + 1)
89
+ p.Font.ColorIndex = i + 1
90
+ p.Font.Size = 12 + (4 * i)
91
+ doc.Close(SaveChanges=False)
92
92
  word.Quit()
93
- win32api.Sleep(1000) # Wait for word to close, else we
94
- # may get OA error.
93
+ win32api.Sleep(1000) # Wait for word to close, else we may get OA error.
95
94
 
96
95
 
97
96
  def TestWord8OldStyle():
@@ -107,10 +106,7 @@ def TextExcel(xl):
107
106
  xl.Visible = 1
108
107
  assert xl.Visible, "Visible property not true."
109
108
 
110
- if int(xl.Version.split(".")[0]) >= 8:
111
- xl.Workbooks.Add()
112
- else:
113
- xl.Workbooks().Add()
109
+ xl.Workbooks.Add()
114
110
 
115
111
  xl.Range("A1:C1").Value = (1, 2, 3)
116
112
  xl.Range("A2:C2").Value = ("x", "y", "z")
@@ -171,7 +167,7 @@ def TestAll():
171
167
  try:
172
168
  print("Starting Excel 8 for generated excel8.py test...")
173
169
  mod = gencache.EnsureModule(
174
- "{00020813-0000-0000-C000-000000000046}", 0, 1, 2, bForDemand=1
170
+ "{00020813-0000-0000-C000-000000000046}", 0, 1, 2, bForDemand=True
175
171
  )
176
172
  xl = win32com.client.Dispatch("Excel.Application")
177
173
  TextExcel(xl)
@@ -181,19 +177,6 @@ def TestAll():
181
177
  print("Generated Excel tests failed", e)
182
178
  traceback.print_exc()
183
179
 
184
- try:
185
- import xl5en32
186
-
187
- mod = gencache.EnsureModule("{00020813-0000-0000-C000-000000000046}", 9, 1, 0)
188
- xl = win32com.client.Dispatch("Excel.Application.5")
189
- print("Starting Excel 95 for makepy test...")
190
- TextExcel(xl)
191
- except ImportError:
192
- print("Could not import the generated Excel 95 wrapper")
193
- except Exception as e:
194
- print("Excel 95 tests failed", e)
195
- traceback.print_exc()
196
-
197
180
 
198
181
  if __name__ == "__main__":
199
182
  TestAll()
@@ -6,7 +6,7 @@ import time
6
6
  import types
7
7
 
8
8
  import pythoncom
9
- from win32com.client import Dispatch, DispatchWithEvents
9
+ from win32com.client import DispatchWithEvents
10
10
 
11
11
  stopEvent = threading.Event()
12
12
 
@@ -57,8 +57,8 @@ def TestExcel():
57
57
  book = e.Workbooks.Add()
58
58
  book = DispatchWithEvents(book, WorkbookEvents)
59
59
  print("Have book", book)
60
- # sheet = e.Worksheets(1)
61
- # sheet = DispatchWithEvents(sheet, WorksheetEvents)
60
+ # sheet = e.Worksheets(1)
61
+ # sheet = DispatchWithEvents(sheet, WorksheetEvents)
62
62
 
63
63
  print("Double-click in a few of the Excel cells...")
64
64
  print("Press any key when finished with Excel, or wait 10 seconds...")
@@ -42,8 +42,8 @@ class LockBytes:
42
42
  return result
43
43
 
44
44
  def WriteAt(self, offset, data):
45
- print("WriteAt " + str(offset))
46
- print("len " + str(len(data)))
45
+ print("WriteAt", offset)
46
+ print("len", len(data))
47
47
  print("data:")
48
48
  # print(data)
49
49
  if len(self.data) >= offset:
@@ -56,13 +56,13 @@ class LockBytes:
56
56
  return len(data)
57
57
 
58
58
  def Flush(self, whatsthis=0):
59
- print("Flush" + str(whatsthis))
59
+ print("Flush", whatsthis)
60
60
  fname = os.path.join(win32api.GetTempPath(), "persist.doc")
61
61
  open(fname, "wb").write(self.data)
62
62
  return S_OK
63
63
 
64
64
  def SetSize(self, size):
65
- print("Set Size" + str(size))
65
+ print("Set Size", size)
66
66
  if size > len(self.data):
67
67
  self.data += b"\000" * (size - len(self.data))
68
68
  else:
@@ -76,7 +76,7 @@ class LockBytes:
76
76
  print("UnlockRegion")
77
77
 
78
78
  def Stat(self, statflag):
79
- print("returning Stat " + str(statflag))
79
+ print("returning Stat", statflag)
80
80
  return (
81
81
  "PyMemBytes",
82
82
  storagecon.STGTY_LOCKBYTES,
@@ -121,7 +121,7 @@ class OleClientSite:
121
121
  return S_OK
122
122
 
123
123
  def GetMoniker(self, dwAssign, dwWhichMoniker):
124
- print("GetMoniker " + str(dwAssign) + " " + str(dwWhichMoniker))
124
+ print("GetMoniker", dwAssign, dwWhichMoniker)
125
125
 
126
126
  def GetContainer(self):
127
127
  print("GetContainer")
@@ -130,7 +130,7 @@ class OleClientSite:
130
130
  print("ShowObject")
131
131
 
132
132
  def OnShowWindow(self, fShow):
133
- print("ShowObject" + str(fShow))
133
+ print("ShowObject", fShow)
134
134
 
135
135
  def RequestNewObjectLayout(self):
136
136
  print("RequestNewObjectLayout")
@@ -51,9 +51,8 @@ class PippoTester(unittest.TestCase):
51
51
  self._testArray(numpy.array([-3.14, -2, -0.1, 0.0, 1.1, 2.5, 3]))
52
52
 
53
53
  def testByteArrays(self):
54
- if "bytes" in dir(__builtins__):
55
- self._testArray(b"abcdef")
56
- self._testArray(bytearray(b"abcdef"))
54
+ self._testArray(b"abcdef")
55
+ self._testArray(bytearray(b"abcdef"))
57
56
 
58
57
  def _testArray(self, inArray):
59
58
  outArray = self.object.Method3(inArray)
@@ -11,18 +11,24 @@ import time
11
11
 
12
12
  import pythoncom
13
13
  import pywintypes
14
- import win32api
15
14
  import win32com
16
15
  import win32com.client.connect
16
+ import win32com.test.util
17
17
  import win32timezone
18
18
  import winerror
19
- from win32com.client import VARIANT, CastTo, DispatchBaseClass, constants
20
- from win32com.test.util import RegisterPythonServer
19
+ from win32com.client import (
20
+ VARIANT,
21
+ CastTo,
22
+ DispatchBaseClass,
23
+ Record,
24
+ constants,
25
+ register_record_class,
26
+ )
21
27
 
22
28
  importMsg = "**** PyCOMTest is not installed ***\n PyCOMTest is a Python test specific COM client and server.\n It is likely this server is not installed on this machine\n To install the server, you must get the win32com sources\n and build it using MS Visual C++"
23
29
 
24
30
  # This test uses a Python implemented COM server - ensure correctly registered.
25
- RegisterPythonServer(
31
+ win32com.test.util.RegisterPythonServer(
26
32
  os.path.join(os.path.dirname(__file__), "..", "servers", "test_pycomtest.py"),
27
33
  "Python.Test.PyCOMTest",
28
34
  )
@@ -45,6 +51,46 @@ universal.RegisterInterfaces("{6BCDCB60-5605-11D0-AE5F-CADD4C000000}", 0, 1, 1)
45
51
  verbose = 0
46
52
 
47
53
 
54
+ # Subclasses of pythoncom.com_record.
55
+ # Registration is performed in 'TestGenerated'.
56
+ class TestStruct1(pythoncom.com_record):
57
+ __slots__ = ()
58
+ TLBID = "{6BCDCB60-5605-11D0-AE5F-CADD4C000000}"
59
+ MJVER = 1
60
+ MNVER = 1
61
+ LCID = 0
62
+ GUID = "{7A4CE6A7-7959-4E85-A3C0-B41442FF0F67}"
63
+
64
+
65
+ class TestStruct2(pythoncom.com_record):
66
+ __slots__ = ()
67
+ TLBID = "{6BCDCB60-5605-11D0-AE5F-CADD4C000000}"
68
+ MJVER = 1
69
+ MNVER = 1
70
+ LCID = 0
71
+ GUID = "{78F0EA07-B7CF-42EA-A251-A4C6269F76AF}"
72
+
73
+
74
+ # We don't need to stick with the struct name in the TypeLibrry for the subclass name.
75
+ # The following class has the same GUID as TestStruct2 from the TypeLibrary.
76
+ class ArrayOfStructsTestStruct(pythoncom.com_record):
77
+ __slots__ = ()
78
+ TLBID = "{6BCDCB60-5605-11D0-AE5F-CADD4C000000}"
79
+ MJVER = 1
80
+ MNVER = 1
81
+ LCID = 0
82
+ GUID = "{78F0EA07-B7CF-42EA-A251-A4C6269F76AF}"
83
+
84
+
85
+ class NotInTypeLibraryTestStruct(pythoncom.com_record):
86
+ __slots__ = ()
87
+ TLBID = "{6BCDCB60-5605-11D0-AE5F-CADD4C000000}"
88
+ MJVER = 1
89
+ MNVER = 1
90
+ LCID = 0
91
+ GUID = "{79BB6AC3-12DE-4AC5-88AC-225C29A58043}"
92
+
93
+
48
94
  def check_get_set(func, arg):
49
95
  got = func(arg)
50
96
  assert got == arg, f"{func} failed - expected {arg!r}, got {got!r}"
@@ -250,9 +296,9 @@ def TestCommon(o, is_generated):
250
296
  ), f"Property value wrong - got {o.ULongProp} (expected {check})"
251
297
  TestApplyResult(o.Test, ("Unused", 99), 1) # A bool function
252
298
  TestApplyResult(o.Test, ("Unused", -1), 1) # A bool function
253
- TestApplyResult(o.Test, ("Unused", 1 == 1), 1) # A bool function
299
+ TestApplyResult(o.Test, ("Unused", True), 1) # A bool function
254
300
  TestApplyResult(o.Test, ("Unused", 0), 0)
255
- TestApplyResult(o.Test, ("Unused", 1 == 0), 0)
301
+ TestApplyResult(o.Test, ("Unused", False), 0)
256
302
 
257
303
  assert o.DoubleString("foo") == "foofoo"
258
304
 
@@ -397,6 +443,44 @@ def TestDynamic():
397
443
  # assert o.ParamProp(0) == 1, o.paramProp(0)
398
444
 
399
445
 
446
+ def TestStructByref(o, r):
447
+ progress("Checking struct byref as [ in, out ] parameter")
448
+ mod_r = o.ModifyStruct(r)
449
+ # If 'TestStruct1' was registered as an instantiable subclass
450
+ # of pythoncom.com_record, the return value should have this type.
451
+ if isinstance(r, TestStruct1):
452
+ assert type(mod_r) is TestStruct1
453
+ else:
454
+ assert type(mod_r) is pythoncom.com_record
455
+ # We expect the input value to stay unchanged
456
+ assert r.int_value == 99 and str(r.str_value) == "Hello from C++"
457
+ # and the return value to reflect the modifications performed on the COM server side
458
+ assert (
459
+ mod_r.int_value == 100
460
+ and str(mod_r.str_value) == "Nothing is as constant as change"
461
+ )
462
+
463
+
464
+ def TestArrayOfStructs(o, test_rec):
465
+ progress("Testing struct with SAFEARRAY(VT_RECORD) fields.")
466
+ rec_list = []
467
+ for i in range(3):
468
+ # If 'ArrayOfStructsTestStruct' and 'TestStruct1' were registered as instantiable
469
+ # subclasses of pythoncom.com_record, we expect to work with these types.
470
+ if isinstance(test_rec, ArrayOfStructsTestStruct):
471
+ rec = TestStruct1()
472
+ assert type(rec) is TestStruct1
473
+ else:
474
+ rec = Record("TestStruct1", o)
475
+ assert type(rec) is pythoncom.com_record
476
+ rec.str_value = "This is record number"
477
+ rec.int_value = i + 1
478
+ rec_list.append(rec)
479
+ test_rec.array_of_records = rec_list
480
+ test_rec.rec_count = i + 1
481
+ assert o.VerifyArrayOfStructs(test_rec)
482
+
483
+
400
484
  def TestGenerated():
401
485
  # Create an instance of the server.
402
486
  from win32com.client.gencache import EnsureDispatch
@@ -421,6 +505,58 @@ def TestGenerated():
421
505
  coclass = GetClass("{B88DD310-BAE8-11D0-AE86-76F2C1000000}")()
422
506
  TestCounter(coclass, True)
423
507
 
508
+ # Test plain pythoncom.com_record structs.
509
+ progress("Testing baseclass pythoncom.com_record structs.")
510
+ r = o.GetStruct()
511
+ assert type(r) is pythoncom.com_record
512
+ TestStructByref(o, r)
513
+ test_rec = Record("TestStruct2", o)
514
+ assert type(test_rec) is pythoncom.com_record
515
+ TestArrayOfStructs(o, test_rec)
516
+
517
+ progress("Testing registration of pythoncom.com_record subclasses.")
518
+ # Instantiating a pythoncom.com_record subclass, which has proper GUID attributes,
519
+ # does raise a TypeError, as long as we have not registered it.
520
+ try:
521
+ r_sub = TestStruct1()
522
+ except TypeError:
523
+ pass
524
+ except Exception as e:
525
+ raise AssertionError from e
526
+ else:
527
+ raise AssertionError
528
+ # Register the subclasses in pythoncom.
529
+ register_record_class(TestStruct1)
530
+ register_record_class(ArrayOfStructsTestStruct)
531
+ # Now the type of the instance is the registered subclass.
532
+ r_sub = TestStruct1()
533
+ assert type(r_sub) is TestStruct1
534
+ # Now also the 'Record' factory function returns an instance of the registered subtype.
535
+ r_sub = Record("TestStruct1", o)
536
+ assert type(r_sub) is TestStruct1
537
+ # It should not be possible to register multiple classes with the same GUID, e.g.
538
+ # 'TestStruct2' has the same GUID class attribute value as 'ArrayOfStructsTestStruct'.
539
+ check_get_set_raises(ValueError, register_record_class, TestStruct2)
540
+ # Also registering a class with a GUID that is not in the TypeLibrary should fail.
541
+ check_get_set_raises(TypeError, register_record_class, NotInTypeLibraryTestStruct)
542
+
543
+ # Perform the 'Byref' and 'ArrayOfStruct tests using the registered subclasses.
544
+ progress("Testing subclasses of pythoncom.com_record.")
545
+ r = o.GetStruct()
546
+ # After 'TestStruct1' was registered as an instantiable subclass
547
+ # of pythoncom.com_record, the return value should have this type.
548
+ assert type(r) is TestStruct1
549
+ TestStructByref(o, r)
550
+ test_rec = ArrayOfStructsTestStruct()
551
+ assert type(test_rec) is ArrayOfStructsTestStruct
552
+ TestArrayOfStructs(o, test_rec)
553
+
554
+ # Test initialization of registered pythoncom.com_record subclasses.
555
+ progress("Testing initialization of pythoncom.com_record subclasses.")
556
+ buf = o.GetStruct().__reduce__()[1][5]
557
+ test_rec = TestStruct1(buf)
558
+ assert test_rec.int_value == 99 and str(test_rec.str_value) == "Hello from C++"
559
+
424
560
  # XXX - this is failing in dynamic tests, but should work fine.
425
561
  i1, i2 = o.GetMultipleInterfaces()
426
562
  # Yay - is now an instance returned!
@@ -583,7 +719,7 @@ def TestPyVariant(o, is_generated):
583
719
 
584
720
  def TestCounter(counter, bIsGenerated):
585
721
  # Test random access into container
586
- progress("Testing counter", repr(counter))
722
+ progress(f"Testing counter {counter!r}")
587
723
  import random
588
724
 
589
725
  for i in range(50):
@@ -16,9 +16,8 @@ class InterpCase(win32com.test.util.TestCase):
16
16
  def setUp(self):
17
17
  # Ensure the correct version registered.
18
18
  from win32com.servers import interp
19
- from win32com.test.util import RegisterPythonServer
20
19
 
21
- RegisterPythonServer(interp.__file__, "Python.Interpreter")
20
+ win32com.test.util.RegisterPythonServer(interp.__file__, "Python.Interpreter")
22
21
 
23
22
  def _testInterp(self, interp):
24
23
  self.assertEqual(interp.Eval("1+1"), 2)
@@ -23,14 +23,13 @@ win32com.__path__[0] = win32com_src_dir
23
23
 
24
24
  import pythoncom
25
25
  import win32com.client
26
+ from pywin32_testutil import TestLoader, TestRunner
26
27
  from win32com.test.util import (
27
28
  CapturingFunctionTestCase,
28
29
  CheckClean,
29
30
  RegisterPythonServer,
30
31
  ShellTestCase,
31
32
  TestCase,
32
- TestLoader,
33
- TestRunner,
34
33
  )
35
34
 
36
35
  verbosity = 1 # default unittest verbosity.
@@ -4,7 +4,6 @@ import sys
4
4
  import traceback
5
5
 
6
6
  import pythoncom
7
- import win32api
8
7
  import win32com.test.util
9
8
  import winerror
10
9
  from win32com.client import gencache, makepy, selecttlb
@@ -40,7 +39,7 @@ def TestBuildAll(verbose=1):
40
39
  # interface manually
41
40
  tinfo = (info.clsid, info.lcid, info.major, info.minor)
42
41
  mod = gencache.EnsureModule(info.clsid, info.lcid, info.major, info.minor)
43
- for name in mod.NamesToIIDMap.keys():
42
+ for name in mod.NamesToIIDMap:
44
43
  makepy.GenerateChildFromTypeLibSpec(name, tinfo)
45
44
  return num
46
45
 
@@ -95,10 +95,13 @@ def TestVB(vbtest, bUseGenerated):
95
95
  vbtest.VariantProperty == "Hello from Python"
96
96
  ), "Could not set the variant string property correctly."
97
97
  vbtest.VariantProperty = (1.0, 2.0, 3.0)
98
- assert vbtest.VariantProperty == (
99
- 1.0,
100
- 2.0,
101
- 3.0,
98
+ assert (
99
+ vbtest.VariantProperty
100
+ == (
101
+ 1.0,
102
+ 2.0,
103
+ 3.0,
104
+ )
102
105
  ), f"Could not set the variant property to an array of floats correctly - '{vbtest.VariantProperty}'."
103
106
 
104
107
  TestArrays(vbtest, bUseGenerated)
@@ -195,8 +198,8 @@ def _DoTestCollection(vbtest, col_name, expected):
195
198
  check = []
196
199
  for item in i:
197
200
  check.append(item)
198
- assert check == list(
199
- expected
201
+ assert (
202
+ check == list(expected)
200
203
  ), f"Collection iterator {col_name} didn't have {expected!r} 2nd time around (had {check!r})"
201
204
  # but an iterator is not restartable
202
205
  check = []
@@ -484,9 +487,10 @@ def TestStructs(vbtest):
484
487
  s.sub_val,
485
488
  )
486
489
  )
487
- if repr(s) != expected:
490
+ repr_s = repr(s)
491
+ if repr_s != expected:
488
492
  print("Expected repr:", expected)
489
- print("Actual repr :", repr(s))
493
+ print("Actual repr :", repr_s)
490
494
  raise AssertionError("repr() of record object failed")
491
495
 
492
496
  print("Struct/Record tests passed")
@@ -1,4 +1,3 @@
1
- import gc
2
1
  import logging
3
2
  import os
4
3
  import sys
@@ -13,7 +12,6 @@ import win32api
13
12
  import win32com
14
13
  import winerror
15
14
  from pythoncom import _GetGatewayCount, _GetInterfaceCount
16
- from pywin32_testutil import LeakTestCase, TestLoader, TestResult, TestRunner
17
15
 
18
16
 
19
17
  def CheckClean():
@@ -213,7 +211,7 @@ TestCase = unittest.TestCase
213
211
 
214
212
  def CapturingFunctionTestCase(*args, **kw):
215
213
  real_test = _CapturingFunctionTestCase(*args, **kw)
216
- return LeakTestCase(real_test)
214
+ return pywin32_testutil.LeakTestCase(real_test)
217
215
 
218
216
 
219
217
  class _CapturingFunctionTestCase(unittest.FunctionTestCase): # , TestCaseMixin):
@@ -58,9 +58,7 @@ def RegisterInterfaces(typelibGUID, lcid, major, minor, interface_names=None):
58
58
  ret.append((dispid, invkind, names[0]))
59
59
  else:
60
60
  # Cool - can used cached info.
61
- if not interface_names:
62
- interface_names = list(mod.VTablesToClassMap.values())
63
- for name in interface_names:
61
+ for name in interface_names or mod.VTablesToClassMap.values():
64
62
  try:
65
63
  iid = mod.NamesToIIDMap[name]
66
64
  except KeyError:
@@ -1,6 +1,6 @@
1
1
  """General utility functions common to client and server.
2
2
 
3
- This module contains a collection of general purpose utility functions.
3
+ This module contains a collection of general purpose utility functions.
4
4
  """
5
5
 
6
6
  import pythoncom
@@ -419,7 +419,7 @@ def main():
419
419
  "--test",
420
420
  action="store_true",
421
421
  help="Execute a mini-test suite, providing defaults for most options and args",
422
- ),
422
+ )
423
423
 
424
424
  parser.add_option(
425
425
  "",
@@ -1,6 +1,5 @@
1
1
  import pythoncom
2
2
  import pywintypes
3
- import win32security
4
3
  from win32com.adsi import adsi, adsicon
5
4
  from win32com.adsi.adsicon import *
6
5
 
@@ -1,6 +1,5 @@
1
1
  import os
2
2
 
3
- import ntsecuritycon
4
3
  import pythoncom
5
4
  import win32api
6
5
  import win32com.server.policy
@@ -12,43 +11,21 @@ from ntsecuritycon import (
12
11
  FILE_GENERIC_EXECUTE,
13
12
  FILE_GENERIC_READ,
14
13
  FILE_GENERIC_WRITE,
15
- FILE_READ_ATTRIBUTES,
16
- FILE_READ_DATA,
17
- FILE_READ_EA,
18
- FILE_WRITE_ATTRIBUTES,
19
14
  FILE_WRITE_DATA,
20
- FILE_WRITE_EA,
21
- PSPCB_SI_INITDIALOG,
22
15
  READ_CONTROL,
23
- SI_ACCESS_CONTAINER,
24
16
  SI_ACCESS_GENERAL,
25
- SI_ACCESS_PROPERTY,
26
17
  SI_ACCESS_SPECIFIC,
27
18
  SI_ADVANCED,
28
19
  SI_CONTAINER,
29
20
  SI_EDIT_ALL,
30
- SI_EDIT_AUDITS,
31
- SI_EDIT_PROPERTIES,
32
- SI_PAGE_ADVPERM,
33
- SI_PAGE_AUDIT,
34
- SI_PAGE_OWNER,
35
- SI_PAGE_PERM,
36
21
  SI_PAGE_TITLE,
37
22
  SI_RESET,
38
- STANDARD_RIGHTS_EXECUTE,
39
- STANDARD_RIGHTS_READ,
40
- STANDARD_RIGHTS_WRITE,
41
- SYNCHRONIZE,
42
23
  WRITE_DAC,
43
24
  WRITE_OWNER,
44
25
  )
45
26
  from pythoncom import IID_NULL
46
27
  from win32com.authorization import authorization
47
- from win32com.shell.shellcon import ( # # Msg parameter to PropertySheetPageCallback
48
- PSPCB_CREATE,
49
- PSPCB_RELEASE,
50
- )
51
- from win32security import CONTAINER_INHERIT_ACE, INHERIT_ONLY_ACE, OBJECT_INHERIT_ACE
28
+ from win32security import CONTAINER_INHERIT_ACE, OBJECT_INHERIT_ACE
52
29
 
53
30
 
54
31
  class SecurityInformation(win32com.server.policy.DesignatedWrapPolicy):
@@ -6,9 +6,7 @@ or as a remote service of the form \\machinename\service
6
6
 
7
7
  import os
8
8
 
9
- import ntsecuritycon
10
9
  import pythoncom
11
- import win32api
12
10
  import win32com.server.policy
13
11
  import win32con
14
12
  import win32security
@@ -30,35 +28,17 @@ SERVICE_GENERIC_READ = (
30
28
  SERVICE_GENERIC_WRITE = win32service.SERVICE_CHANGE_CONFIG
31
29
 
32
30
  from ntsecuritycon import (
33
- PSPCB_SI_INITDIALOG,
34
31
  READ_CONTROL,
35
- SI_ACCESS_CONTAINER,
36
32
  SI_ACCESS_GENERAL,
37
- SI_ACCESS_PROPERTY,
38
33
  SI_ACCESS_SPECIFIC,
39
34
  SI_ADVANCED,
40
- SI_CONTAINER,
41
35
  SI_EDIT_ALL,
42
- SI_EDIT_AUDITS,
43
- SI_EDIT_PROPERTIES,
44
- SI_PAGE_ADVPERM,
45
- SI_PAGE_AUDIT,
46
- SI_PAGE_OWNER,
47
- SI_PAGE_PERM,
48
36
  SI_PAGE_TITLE,
49
37
  SI_RESET,
50
- STANDARD_RIGHTS_EXECUTE,
51
- STANDARD_RIGHTS_READ,
52
- STANDARD_RIGHTS_WRITE,
53
38
  WRITE_DAC,
54
39
  WRITE_OWNER,
55
40
  )
56
41
  from pythoncom import IID_NULL
57
- from win32com.shell.shellcon import ( # # Msg parameter to PropertySheetPageCallback
58
- PSPCB_CREATE,
59
- PSPCB_RELEASE,
60
- )
61
- from win32security import CONTAINER_INHERIT_ACE, INHERIT_ONLY_ACE, OBJECT_INHERIT_ACE
62
42
 
63
43
 
64
44
  class ServiceSecurity(win32com.server.policy.DesignatedWrapPolicy):