py2docfx 0.1.15rc2025477__py3-none-any.whl → 0.1.16.dev2052678__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 (604) hide show
  1. py2docfx/docfx_yaml/process_doctree.py +21 -34
  2. py2docfx/docfx_yaml/tests/test_method_arguments.py +1 -7
  3. py2docfx/docfx_yaml/tests/test_process_doctree.py +120 -0
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +13 -0
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  18. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  19. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  20. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +29 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +49 -11
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +168 -51
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +12 -3
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +42 -29
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +1 -1
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  46. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  47. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  48. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  49. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
  50. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
  51. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
  52. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
  53. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
  54. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
  55. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
  56. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
  57. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
  58. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
  59. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
  60. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  61. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
  62. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
  63. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
  64. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
  65. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
  66. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
  67. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
  68. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
  69. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
  70. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
  71. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
  72. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
  73. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
  74. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
  75. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
  76. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
  77. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
  78. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
  79. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
  80. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
  81. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
  82. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
  83. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
  84. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
  85. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
  86. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
  87. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
  88. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
  89. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
  90. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
  91. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
  92. py2docfx/venv/venv1/Lib/site-packages/pyasn1_modules/__init__.py +1 -1
  93. py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  94. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +13 -0
  95. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  96. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  97. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  98. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  99. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  107. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  108. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  109. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  110. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  111. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
  112. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  113. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  114. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  115. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  116. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  117. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  118. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  119. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  120. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  121. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  122. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +49 -11
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +168 -51
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +42 -29
  131. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +1 -1
  132. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  133. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  134. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  135. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  136. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  137. py2docfx/venv/venv1/Lib/site-packages/typing_extensions.py +999 -74
  138. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dev2052678.dist-info}/METADATA +1 -1
  139. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dev2052678.dist-info}/RECORD +141 -596
  140. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
  141. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
  142. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
  143. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
  144. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
  145. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
  146. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
  147. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
  148. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
  149. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
  150. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
  151. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
  152. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
  153. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
  154. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
  155. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
  156. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
  157. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
  158. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
  159. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
  160. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
  161. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
  162. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
  163. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
  164. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
  165. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
  166. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
  167. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
  168. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
  169. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
  170. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
  171. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
  172. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
  173. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
  174. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
  175. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
  176. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
  177. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
  178. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
  179. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
  180. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
  181. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
  182. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
  183. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
  184. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
  185. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
  186. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
  187. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
  188. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
  189. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
  190. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
  191. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
  192. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
  193. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
  194. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
  195. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
  196. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
  197. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
  198. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
  199. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
  200. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
  201. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
  202. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
  203. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
  204. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
  205. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
  206. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
  207. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
  208. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
  209. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
  210. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
  211. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
  212. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
  213. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
  214. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
  215. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
  216. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
  217. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
  218. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
  219. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
  220. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
  221. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
  222. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
  223. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
  224. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
  225. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
  226. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
  227. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
  228. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
  229. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
  230. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
  231. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
  232. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
  233. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
  234. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
  235. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
  236. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
  237. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
  238. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
  239. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
  240. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
  241. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
  242. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
  243. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
  244. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
  245. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
  246. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
  247. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
  248. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
  249. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
  250. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
  251. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
  252. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
  253. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
  254. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
  255. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
  256. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
  257. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
  258. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
  259. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
  260. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
  261. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
  262. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
  263. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
  264. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
  265. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
  266. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
  267. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
  268. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
  269. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
  270. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
  271. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
  272. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
  273. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
  274. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
  275. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
  276. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
  277. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
  278. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
  279. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
  280. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
  281. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
  282. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
  283. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
  284. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
  285. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
  286. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
  287. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
  288. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
  289. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
  290. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
  291. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
  292. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
  293. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
  294. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
  295. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
  296. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
  297. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
  298. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
  299. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
  300. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
  301. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
  302. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
  303. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
  304. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
  305. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
  306. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
  307. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
  308. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
  309. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
  310. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
  311. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
  312. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
  313. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
  314. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
  315. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
  316. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
  317. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
  318. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
  319. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
  320. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
  321. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
  322. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
  323. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
  324. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
  325. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
  326. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
  327. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
  328. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
  329. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
  330. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
  331. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
  332. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
  333. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
  334. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
  335. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
  336. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
  337. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
  338. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
  339. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
  340. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
  341. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
  342. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
  343. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
  344. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
  345. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
  346. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
  347. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
  348. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
  349. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
  350. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
  351. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
  352. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
  353. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
  354. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
  355. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
  356. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
  357. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
  358. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
  359. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
  360. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
  361. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
  362. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
  363. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
  364. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
  365. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
  366. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
  367. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
  368. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
  369. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
  370. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
  371. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
  372. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
  373. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
  374. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
  375. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
  376. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
  377. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
  378. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
  379. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
  380. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
  381. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
  382. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
  383. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
  384. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
  385. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
  386. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
  387. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
  388. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
  389. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
  390. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
  391. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
  392. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
  393. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
  394. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
  395. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
  396. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
  397. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
  398. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
  399. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
  400. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
  401. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
  402. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
  403. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
  404. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
  405. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
  406. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
  407. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
  408. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
  409. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
  410. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
  411. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
  412. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
  413. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
  414. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
  415. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
  416. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
  417. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
  418. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
  419. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
  420. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
  421. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
  422. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
  423. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
  424. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
  425. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
  426. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
  427. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
  428. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
  429. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
  430. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
  431. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
  432. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
  433. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
  434. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
  435. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
  436. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
  437. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
  438. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
  439. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
  440. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
  441. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
  442. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  443. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
  444. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
  445. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
  446. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
  447. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
  448. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
  449. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
  450. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
  451. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
  452. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
  453. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
  454. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
  455. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
  456. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
  457. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
  458. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
  459. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
  460. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
  461. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
  462. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
  463. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
  464. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
  465. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
  466. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
  467. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
  468. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  469. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
  470. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
  471. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
  472. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
  473. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
  474. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
  475. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
  476. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
  477. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
  478. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
  479. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
  480. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
  481. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
  482. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
  483. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
  484. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
  485. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
  486. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
  487. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
  488. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
  489. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
  490. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
  491. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
  492. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
  493. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
  494. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
  495. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
  496. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
  497. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
  498. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
  499. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
  500. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
  501. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
  502. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
  503. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
  504. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
  505. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
  506. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
  507. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
  508. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
  509. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
  510. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
  511. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
  512. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
  513. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
  514. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
  515. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
  516. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
  517. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
  518. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
  519. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
  520. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
  521. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
  522. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
  523. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
  524. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
  525. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
  526. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
  527. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
  528. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
  529. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
  530. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
  531. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
  532. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
  533. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
  534. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
  535. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
  536. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
  537. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
  538. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
  539. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
  540. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
  541. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
  542. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
  543. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
  544. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
  545. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
  546. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
  547. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  548. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
  549. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
  550. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
  551. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
  552. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
  553. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
  554. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
  555. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
  556. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
  557. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
  558. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
  559. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
  560. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
  561. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
  562. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
  563. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
  564. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
  565. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
  566. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
  567. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
  568. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
  569. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
  570. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
  571. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
  572. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
  573. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
  574. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
  575. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
  576. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
  577. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
  578. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
  579. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
  580. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
  581. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
  582. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
  583. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
  584. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
  585. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
  586. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
  587. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
  588. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
  589. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
  590. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
  591. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
  592. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
  593. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
  594. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
  595. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
  596. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
  597. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
  598. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
  599. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
  600. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
  601. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
  602. py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
  603. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dev2052678.dist-info}/WHEEL +0 -0
  604. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dev2052678.dist-info}/top_level.txt +0 -0
@@ -1,918 +0,0 @@
1
- # NOTE - Still seems to be a leak here somewhere
2
- # gateway count doesn't hit zero. Hence the print statements!
3
-
4
- import sys
5
-
6
- sys.coinit_flags = 0 # Must be free-threaded!
7
- import datetime
8
- import decimal
9
- import os
10
- import time
11
-
12
- import pythoncom
13
- import pywintypes
14
- import win32com
15
- import win32com.client.connect
16
- import win32com.test.util
17
- import win32timezone
18
- import winerror
19
- from win32com.client import (
20
- VARIANT,
21
- CastTo,
22
- DispatchBaseClass,
23
- Record,
24
- constants,
25
- register_record_class,
26
- )
27
-
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++"
29
-
30
- # This test uses a Python implemented COM server - ensure correctly registered.
31
- win32com.test.util.RegisterPythonServer(
32
- os.path.join(os.path.dirname(__file__), "..", "servers", "test_pycomtest.py"),
33
- "Python.Test.PyCOMTest",
34
- )
35
-
36
- from win32com.client import gencache
37
-
38
- try:
39
- gencache.EnsureModule("{6BCDCB60-5605-11D0-AE5F-CADD4C000000}", 0, 1, 1)
40
- except pythoncom.com_error:
41
- print("The PyCOMTest module can not be located or generated.")
42
- print(importMsg)
43
- raise RuntimeError(importMsg)
44
-
45
- # We had a bg where RegisterInterfaces would fail if gencache had
46
- # already been run - exercise that here
47
- from win32com import universal
48
-
49
- universal.RegisterInterfaces("{6BCDCB60-5605-11D0-AE5F-CADD4C000000}", 0, 1, 1)
50
-
51
- verbose = 0
52
-
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
-
94
- def check_get_set(func, arg):
95
- got = func(arg)
96
- assert got == arg, f"{func} failed - expected {arg!r}, got {got!r}"
97
-
98
-
99
- def check_get_set_raises(exc, func, arg):
100
- try:
101
- got = func(arg)
102
- except exc as e:
103
- pass # what we expect!
104
- else:
105
- raise AssertionError(
106
- f"{func} with arg {arg!r} didn't raise {exc} - returned {got!r}"
107
- )
108
-
109
-
110
- def progress(*args):
111
- if verbose:
112
- for arg in args:
113
- print(arg, end=" ")
114
- print()
115
-
116
-
117
- def TestApplyResult(fn, args, result):
118
- try:
119
- fnName = str(fn).split()[1]
120
- except:
121
- fnName = str(fn)
122
- progress("Testing ", fnName)
123
- pref = "function " + fnName
124
- rc = fn(*args)
125
- assert rc == result, f"{pref} failed - result not {result!r} but {rc!r}"
126
-
127
-
128
- def TestConstant(constName, pyConst):
129
- try:
130
- comConst = getattr(constants, constName)
131
- except:
132
- raise AssertionError(f"Constant {constName} missing")
133
- assert (
134
- comConst == pyConst
135
- ), f"Constant value wrong for {constName} - got {comConst}, wanted {pyConst}"
136
-
137
-
138
- # Simple handler class. This demo only fires one event.
139
- class RandomEventHandler:
140
- def _Init(self):
141
- self.fireds = {}
142
-
143
- def OnFire(self, no):
144
- try:
145
- self.fireds[no] += 1
146
- except KeyError:
147
- self.fireds[no] = 0
148
-
149
- def OnFireWithNamedParams(self, no, a_bool, out1, out2):
150
- # This test exists mainly to help with an old bug, where named
151
- # params would come in reverse.
152
- Missing = pythoncom.Missing
153
- if no is not Missing:
154
- # We know our impl called 'OnFire' with the same ID
155
- assert no in self.fireds
156
- assert no + 1 == out1, "expecting 'out1' param to be ID+1"
157
- assert no + 2 == out2, "expecting 'out2' param to be ID+2"
158
- # The middle must be a boolean.
159
- assert a_bool is Missing or isinstance(a_bool, bool), "middle param not a bool"
160
- return out1 + 2, out2 + 2
161
-
162
- def _DumpFireds(self):
163
- if not self.fireds:
164
- print("ERROR: Nothing was received!")
165
- for firedId, no in self.fireds.items():
166
- progress("ID %d fired %d times" % (firedId, no))
167
-
168
-
169
- # Test everything which can be tested using both the "dynamic" and "generated"
170
- # COM objects (or when there are very subtle differences)
171
- def TestCommon(o, is_generated):
172
- progress("Getting counter")
173
- counter = o.GetSimpleCounter()
174
- TestCounter(counter, is_generated)
175
-
176
- progress("Checking default args")
177
- rc = o.TestOptionals()
178
- assert rc[:-1] == ("def", 0, 1) and abs(rc[-1] - 3.14) <= 0.01, (
179
- "Did not get the optional values correctly",
180
- rc,
181
- )
182
- rc = o.TestOptionals("Hi", 2, 3, 1.1)
183
- assert rc[:-1] == ("Hi", 2, 3) and abs(rc[-1] - 1.1) <= 0.01, (
184
- "Did not get the specified optional values correctly",
185
- rc,
186
- )
187
- rc = o.TestOptionals2(0)
188
- assert rc == (0, "", 1), ("Did not get the optional2 values correctly", rc)
189
- rc = o.TestOptionals2(1.1, "Hi", 2)
190
- assert rc[1:] == ("Hi", 2) and abs(rc[0] - 1.1) <= 0.01, (
191
- "Did not get the specified optional2 values correctly",
192
- rc,
193
- )
194
-
195
- progress("Checking getting/passing IUnknown")
196
- check_get_set(o.GetSetUnknown, o)
197
- progress("Checking getting/passing IDispatch")
198
- # This might be called with either the interface or the CoClass - but these
199
- # functions always return from the interface.
200
- expected_class = o.__class__
201
- # CoClass instances have `default_interface`
202
- expected_class = getattr(expected_class, "default_interface", expected_class)
203
- assert isinstance(
204
- o.GetSetDispatch(o), expected_class
205
- ), f"GetSetDispatch failed: {o.GetSetDispatch(o)!r}"
206
- progress("Checking getting/passing IDispatch of known type")
207
- expected_class = o.__class__
208
- expected_class = getattr(expected_class, "default_interface", expected_class)
209
- assert o.GetSetInterface(o).__class__ == expected_class, "GetSetDispatch failed"
210
-
211
- progress("Checking misc args")
212
- check_get_set(o.GetSetVariant, 4)
213
- check_get_set(o.GetSetVariant, "foo")
214
- check_get_set(o.GetSetVariant, o)
215
-
216
- # signed/unsigned.
217
- check_get_set(o.GetSetInt, 0)
218
- check_get_set(o.GetSetInt, -1)
219
- check_get_set(o.GetSetInt, 1)
220
-
221
- check_get_set(o.GetSetUnsignedInt, 0)
222
- check_get_set(o.GetSetUnsignedInt, 1)
223
- check_get_set(o.GetSetUnsignedInt, 0x80000000)
224
- # -1 is a special case - we accept a negative int (silently converting to unsigned)
225
- # but when getting it back we convert it to a long.
226
- assert o.GetSetUnsignedInt(-1) == 0xFFFFFFFF, "unsigned -1 failed"
227
-
228
- check_get_set(o.GetSetLong, 0)
229
- check_get_set(o.GetSetLong, -1)
230
- check_get_set(o.GetSetLong, 1)
231
-
232
- check_get_set(o.GetSetUnsignedLong, 0)
233
- check_get_set(o.GetSetUnsignedLong, 1)
234
- check_get_set(o.GetSetUnsignedLong, 0x80000000)
235
- # -1 is a special case - see above.
236
- assert o.GetSetUnsignedLong(-1) == 0xFFFFFFFF, "unsigned -1 failed"
237
-
238
- # We want to explicitly test > 32 bits.
239
- # 'maxsize+1' is no good on 64bit platforms as it's 65 bits!
240
- big = 2147483647
241
- for l in big, big + 1, 1 << 65:
242
- check_get_set(o.GetSetVariant, l)
243
-
244
- progress("Checking structs")
245
- r = o.GetStruct()
246
- assert r.int_value == 99 and str(r.str_value) == "Hello from C++"
247
- assert o.DoubleString("foo") == "foofoo"
248
-
249
- progress("Checking var args")
250
- o.SetVarArgs("Hi", "There", "From", "Python", 1)
251
- assert o.GetLastVarArgs() == (
252
- "Hi",
253
- "There",
254
- "From",
255
- "Python",
256
- 1,
257
- ), f"VarArgs failed -{o.GetLastVarArgs()}"
258
-
259
- progress("Checking arrays")
260
- l = []
261
- TestApplyResult(o.SetVariantSafeArray, (l,), len(l))
262
- l = [1, 2, 3, 4]
263
- TestApplyResult(o.SetVariantSafeArray, (l,), len(l))
264
- TestApplyResult(
265
- o.CheckVariantSafeArray,
266
- (
267
- (
268
- 1,
269
- 2,
270
- 3,
271
- 4,
272
- ),
273
- ),
274
- 1,
275
- )
276
-
277
- # and binary
278
- TestApplyResult(o.SetBinSafeArray, (memoryview(b"foo\0bar"),), 7)
279
-
280
- progress("Checking properties")
281
- o.LongProp = 3
282
- assert (
283
- o.LongProp == o.IntProp == 3
284
- ), f"Property value wrong - got {o.LongProp}/{o.IntProp}"
285
- o.LongProp = o.IntProp = -3
286
- assert (
287
- o.LongProp == o.IntProp == -3
288
- ), f"Property value wrong - got {o.LongProp}/{o.IntProp}"
289
- # This number fits in an unsigned long. Attempting to set it to a normal
290
- # long will involve overflow, which is to be expected. But we do
291
- # expect it to work in a property explicitly a VT_UI4.
292
- check = 3 * 10**9
293
- o.ULongProp = check
294
- assert (
295
- o.ULongProp == check
296
- ), f"Property value wrong - got {o.ULongProp} (expected {check})"
297
- TestApplyResult(o.Test, ("Unused", 99), 1) # A bool function
298
- TestApplyResult(o.Test, ("Unused", -1), 1) # A bool function
299
- TestApplyResult(o.Test, ("Unused", True), 1) # A bool function
300
- TestApplyResult(o.Test, ("Unused", 0), 0)
301
- TestApplyResult(o.Test, ("Unused", False), 0)
302
-
303
- assert o.DoubleString("foo") == "foofoo"
304
-
305
- TestConstant("ULongTest1", 0xFFFFFFFF)
306
- TestConstant("ULongTest2", 0x7FFFFFFF)
307
- TestConstant("LongTest1", -0x7FFFFFFF)
308
- TestConstant("LongTest2", 0x7FFFFFFF)
309
- TestConstant("UCharTest", 255)
310
- TestConstant("CharTest", -1)
311
- # 'Hello World', but the 'r' is the "Registered" sign (\xae)
312
- TestConstant("StringTest", "Hello Wo\xaeld")
313
-
314
- progress("Checking dates and times")
315
- # For now *all* times passed must be tz-aware.
316
- now = win32timezone.now()
317
- # but conversion to and from a VARIANT loses sub-second...
318
- now = now.replace(microsecond=0)
319
- later = now + datetime.timedelta(seconds=1)
320
- TestApplyResult(o.EarliestDate, (now, later), now)
321
-
322
- # The below used to fail with `ValueError: microsecond must be in 0..999999` - see #1655
323
- # https://planetcalc.com/7027/ says that float is: Sun, 25 Mar 1951 7:23:49 am
324
- assert o.MakeDate(18712.308206013888) == datetime.datetime.fromisoformat(
325
- "1951-03-25 07:23:49+00:00"
326
- )
327
-
328
- progress("Checking currency")
329
- # currency.
330
- pythoncom.__future_currency__ = 1
331
- assert o.CurrencyProp == 0, f"Expecting 0, got {o.CurrencyProp!r}"
332
- for val in ("1234.5678", "1234.56", "1234"):
333
- o.CurrencyProp = decimal.Decimal(val)
334
- assert o.CurrencyProp == decimal.Decimal(val), f"{val} got {o.CurrencyProp!r}"
335
- v1 = decimal.Decimal("1234.5678")
336
- TestApplyResult(o.DoubleCurrency, (v1,), v1 * 2)
337
-
338
- v2 = decimal.Decimal("9012.3456")
339
- TestApplyResult(o.AddCurrencies, (v1, v2), v1 + v2)
340
-
341
- TestTrickyTypesWithVariants(o, is_generated)
342
- progress("Checking win32com.client.VARIANT")
343
- TestPyVariant(o, is_generated)
344
-
345
-
346
- def TestTrickyTypesWithVariants(o, is_generated):
347
- # Test tricky stuff with type handling and generally only works with
348
- # "generated" support but can be worked around using VARIANT.
349
- if is_generated:
350
- got = o.TestByRefVariant(2)
351
- else:
352
- v = VARIANT(pythoncom.VT_BYREF | pythoncom.VT_VARIANT, 2)
353
- o.TestByRefVariant(v)
354
- got = v.value
355
- assert got == 4, "TestByRefVariant failed"
356
-
357
- if is_generated:
358
- got = o.TestByRefString("Foo")
359
- else:
360
- v = VARIANT(pythoncom.VT_BYREF | pythoncom.VT_BSTR, "Foo")
361
- o.TestByRefString(v)
362
- got = v.value
363
- assert got == "FooFoo", "TestByRefString failed"
364
-
365
- # check we can pass ints as a VT_UI1
366
- vals = [1, 2, 3, 4]
367
- if is_generated:
368
- arg = vals
369
- else:
370
- arg = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_UI1, vals)
371
- TestApplyResult(o.SetBinSafeArray, (arg,), len(vals))
372
-
373
- # safearrays of doubles and floats
374
- vals = [0, 1.1, 2.2, 3.3]
375
- if is_generated:
376
- arg = vals
377
- else:
378
- arg = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, vals)
379
- TestApplyResult(o.SetDoubleSafeArray, (arg,), len(vals))
380
-
381
- if is_generated:
382
- arg = vals
383
- else:
384
- arg = VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R4, vals)
385
- TestApplyResult(o.SetFloatSafeArray, (arg,), len(vals))
386
-
387
- vals = [1.1, 2.2, 3.3, 4.4]
388
- expected = (1.1 * 2, 2.2 * 2, 3.3 * 2, 4.4 * 2)
389
- if is_generated:
390
- TestApplyResult(o.ChangeDoubleSafeArray, (vals,), expected)
391
- else:
392
- arg = VARIANT(pythoncom.VT_BYREF | pythoncom.VT_ARRAY | pythoncom.VT_R8, vals)
393
- o.ChangeDoubleSafeArray(arg)
394
- assert arg.value == expected, "ChangeDoubleSafeArray got the wrong value"
395
-
396
- if is_generated:
397
- got = o.DoubleInOutString("foo")
398
- else:
399
- v = VARIANT(pythoncom.VT_BYREF | pythoncom.VT_BSTR, "foo")
400
- o.DoubleInOutString(v)
401
- got = v.value
402
- assert got == "foofoo", got
403
-
404
- val = decimal.Decimal("1234.5678")
405
- if is_generated:
406
- got = o.DoubleCurrencyByVal(val)
407
- else:
408
- v = VARIANT(pythoncom.VT_BYREF | pythoncom.VT_CY, val)
409
- o.DoubleCurrencyByVal(v)
410
- got = v.value
411
- assert got == val * 2
412
-
413
-
414
- def TestDynamic():
415
- progress("Testing Dynamic")
416
- import win32com.client.dynamic
417
-
418
- o = win32com.client.dynamic.DumbDispatch("PyCOMTest.PyCOMTest")
419
- TestCommon(o, False)
420
-
421
- counter = win32com.client.dynamic.DumbDispatch("PyCOMTest.SimpleCounter")
422
- TestCounter(counter, False)
423
-
424
- # Dynamic doesn't know this should be an int, so we get a COM
425
- # TypeMismatch error.
426
- try:
427
- check_get_set_raises(ValueError, o.GetSetInt, "foo")
428
- raise AssertionError("no exception raised")
429
- except pythoncom.com_error as exc:
430
- if exc.hresult != winerror.DISP_E_TYPEMISMATCH:
431
- raise
432
-
433
- arg1 = VARIANT(pythoncom.VT_R4 | pythoncom.VT_BYREF, 2.0)
434
- arg2 = VARIANT(pythoncom.VT_BOOL | pythoncom.VT_BYREF, True)
435
- arg3 = VARIANT(pythoncom.VT_I4 | pythoncom.VT_BYREF, 4)
436
- o.TestInOut(arg1, arg2, arg3)
437
- assert arg1.value == 4.0, arg1
438
- assert arg2.value == False
439
- assert arg3.value == 8
440
-
441
- # damn - props with params don't work for dynamic objects :(
442
- # o.SetParamProp(0, 1)
443
- # assert o.ParamProp(0) == 1, o.paramProp(0)
444
-
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
-
484
- def TestGenerated():
485
- # Create an instance of the server.
486
- from win32com.client.gencache import EnsureDispatch
487
-
488
- o = EnsureDispatch("PyCOMTest.PyCOMTest")
489
- TestCommon(o, True)
490
-
491
- counter = EnsureDispatch("PyCOMTest.SimpleCounter")
492
- TestCounter(counter, True)
493
-
494
- # This dance lets us get a CoClass even though it's not explicitly registered.
495
- # This is `CoPyComTest`
496
- from win32com.client.CLSIDToClass import GetClass
497
-
498
- coclass_o = GetClass("{8EE0C520-5605-11D0-AE5F-CADD4C000000}")()
499
- TestCommon(coclass_o, True)
500
-
501
- # Test the regression reported in #1753
502
- assert bool(coclass_o)
503
-
504
- # This is `CoSimpleCounter` and the counter tests should work.
505
- coclass = GetClass("{B88DD310-BAE8-11D0-AE86-76F2C1000000}")()
506
- TestCounter(coclass, True)
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
-
560
- # XXX - this is failing in dynamic tests, but should work fine.
561
- i1, i2 = o.GetMultipleInterfaces()
562
- # Yay - is now an instance returned!
563
- assert isinstance(i1, DispatchBaseClass) and isinstance(
564
- i2, DispatchBaseClass
565
- ), f"GetMultipleInterfaces did not return instances - got '{i1}', '{i2}'"
566
- del i1
567
- del i2
568
-
569
- # Generated knows to only pass a 32bit int, so should fail.
570
- check_get_set_raises(OverflowError, o.GetSetInt, 0x80000000)
571
- check_get_set_raises(OverflowError, o.GetSetLong, 0x80000000)
572
-
573
- # Generated knows this should be an int, so raises ValueError
574
- check_get_set_raises(ValueError, o.GetSetInt, "foo")
575
- check_get_set_raises(ValueError, o.GetSetLong, "foo")
576
-
577
- # Pass some non-sequence objects to our array decoder, and watch it fail.
578
- try:
579
- o.SetVariantSafeArray("foo")
580
- raise AssertionError("Expected a type error")
581
- except TypeError:
582
- pass
583
- try:
584
- o.SetVariantSafeArray(666)
585
- raise AssertionError("Expected a type error")
586
- except TypeError:
587
- pass
588
-
589
- o.GetSimpleSafeArray(None)
590
- TestApplyResult(o.GetSimpleSafeArray, (None,), tuple(range(10)))
591
- resultCheck = tuple(range(5)), tuple(range(10)), tuple(range(20))
592
- TestApplyResult(o.GetSafeArrays, (None, None, None), resultCheck)
593
-
594
- l = []
595
- TestApplyResult(o.SetIntSafeArray, (l,), len(l))
596
- l = [1, 2, 3, 4]
597
- TestApplyResult(o.SetIntSafeArray, (l,), len(l))
598
- ll = [1, 2, 3, 0x100000000]
599
- TestApplyResult(o.SetLongLongSafeArray, (ll,), len(ll))
600
- TestApplyResult(o.SetULongLongSafeArray, (ll,), len(ll))
601
-
602
- # Tell the server to do what it does!
603
- TestApplyResult(o.Test2, (constants.Attr2,), constants.Attr2)
604
- TestApplyResult(o.Test3, (constants.Attr2,), constants.Attr2)
605
- TestApplyResult(o.Test4, (constants.Attr2,), constants.Attr2)
606
- TestApplyResult(o.Test5, (constants.Attr2,), constants.Attr2)
607
-
608
- TestApplyResult(o.Test6, (constants.WideAttr1,), constants.WideAttr1)
609
- TestApplyResult(o.Test6, (constants.WideAttr2,), constants.WideAttr2)
610
- TestApplyResult(o.Test6, (constants.WideAttr3,), constants.WideAttr3)
611
- TestApplyResult(o.Test6, (constants.WideAttr4,), constants.WideAttr4)
612
- TestApplyResult(o.Test6, (constants.WideAttr5,), constants.WideAttr5)
613
-
614
- TestApplyResult(o.TestInOut, (2.0, True, 4), (4.0, False, 8))
615
-
616
- o.SetParamProp(0, 1)
617
- assert o.ParamProp(0) == 1, o.paramProp(0)
618
-
619
- # Make sure CastTo works - even though it is only casting it to itself!
620
- o2 = CastTo(o, "IPyCOMTest")
621
- assert o == o2, "CastTo should have returned the same object"
622
-
623
- # Do the connection point thing...
624
- # Create a connection object.
625
- progress("Testing connection points")
626
- o2 = win32com.client.DispatchWithEvents(o, RandomEventHandler)
627
- TestEvents(o2, o2)
628
- # and a plain "WithEvents".
629
- handler = win32com.client.WithEvents(o, RandomEventHandler)
630
- TestEvents(o, handler)
631
- progress("Finished generated .py test.")
632
-
633
-
634
- def TestEvents(o, handler):
635
- sessions = []
636
- handler._Init()
637
- try:
638
- for i in range(3):
639
- session = o.Start()
640
- sessions.append(session)
641
- time.sleep(0.5)
642
- finally:
643
- # Stop the servers
644
- for session in sessions:
645
- o.Stop(session)
646
- handler._DumpFireds()
647
- handler.close()
648
-
649
-
650
- def _TestPyVariant(o, is_generated, val, checker=None):
651
- if is_generated:
652
- vt, got = o.GetVariantAndType(val)
653
- else:
654
- # Gotta supply all 3 args with the last 2 being explicit variants to
655
- # get the byref behaviour.
656
- var_vt = VARIANT(pythoncom.VT_UI2 | pythoncom.VT_BYREF, 0)
657
- var_result = VARIANT(pythoncom.VT_VARIANT | pythoncom.VT_BYREF, 0)
658
- o.GetVariantAndType(val, var_vt, var_result)
659
- vt = var_vt.value
660
- got = var_result.value
661
- if checker is not None:
662
- checker(got)
663
- return
664
- # default checking.
665
- assert vt == val.varianttype, (vt, val.varianttype)
666
- # Handle our safe-array test - if the passed value is a list of variants,
667
- # compare against the actual values.
668
- if isinstance(val.value, (tuple, list)):
669
- check = [v.value if isinstance(v, VARIANT) else v for v in val.value]
670
- # pythoncom always returns arrays as tuples.
671
- got = list(got)
672
- else:
673
- check = val.value
674
- assert type(check) == type(got), (type(check), type(got))
675
- assert check == got, (check, got)
676
-
677
-
678
- def _TestPyVariantFails(o, is_generated, val, exc):
679
- try:
680
- _TestPyVariant(o, is_generated, val)
681
- raise AssertionError(f"Setting {val!r} didn't raise {exc}")
682
- except exc:
683
- pass
684
-
685
-
686
- def TestPyVariant(o, is_generated):
687
- _TestPyVariant(o, is_generated, VARIANT(pythoncom.VT_UI1, 1))
688
- _TestPyVariant(
689
- o, is_generated, VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_UI4, [1, 2, 3])
690
- )
691
- _TestPyVariant(o, is_generated, VARIANT(pythoncom.VT_BSTR, "hello"))
692
- _TestPyVariant(
693
- o,
694
- is_generated,
695
- VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_BSTR, ["hello", "there"]),
696
- )
697
-
698
- def check_dispatch(got):
699
- assert isinstance(got._oleobj_, pythoncom.TypeIIDs[pythoncom.IID_IDispatch])
700
-
701
- _TestPyVariant(o, is_generated, VARIANT(pythoncom.VT_DISPATCH, o), check_dispatch)
702
- _TestPyVariant(
703
- o, is_generated, VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, [o])
704
- )
705
- # an array of variants each with a specific type.
706
- v = VARIANT(
707
- pythoncom.VT_ARRAY | pythoncom.VT_VARIANT,
708
- [
709
- VARIANT(pythoncom.VT_UI4, 1),
710
- VARIANT(pythoncom.VT_UI4, 2),
711
- VARIANT(pythoncom.VT_UI4, 3),
712
- ],
713
- )
714
- _TestPyVariant(o, is_generated, v)
715
-
716
- # and failures
717
- _TestPyVariantFails(o, is_generated, VARIANT(pythoncom.VT_UI1, "foo"), ValueError)
718
-
719
-
720
- def TestCounter(counter, bIsGenerated):
721
- # Test random access into container
722
- progress(f"Testing counter {counter!r}")
723
- import random
724
-
725
- for i in range(50):
726
- num = int(random.random() * len(counter))
727
- try:
728
- # XXX - this appears broken by commit 08a14d4deb374eaa06378509cf44078ad467b9dc -
729
- # We shouldn't need to do generated differently than dynamic.
730
- if bIsGenerated:
731
- ret = counter.Item(num + 1)
732
- else:
733
- ret = counter[num]
734
- assert (
735
- ret == num + 1
736
- ), f"Random access into element {num} failed - return was {ret!r}"
737
- except IndexError:
738
- raise AssertionError(f"** IndexError accessing collection element {num}")
739
-
740
- num = 0
741
- if bIsGenerated:
742
- counter.SetTestProperty(1)
743
- counter.TestProperty = 1 # Note this has a second, default arg.
744
- counter.SetTestProperty(1, 2)
745
- assert counter.TestPropertyWithDef == 0, "Unexpected property set value!"
746
- assert counter.TestPropertyNoDef(1) == 1, "Unexpected property set value!"
747
- else:
748
- pass
749
- # counter.TestProperty = 1
750
-
751
- counter.LBound = 1
752
- counter.UBound = 10
753
- if counter.LBound != 1 or counter.UBound != 10:
754
- print("** Error - counter did not keep its properties")
755
-
756
- if bIsGenerated:
757
- bounds = counter.GetBounds()
758
- assert (
759
- bounds[0] == 1 and bounds[1] == 10
760
- ), "** Error - counter did not give the same properties back"
761
- counter.SetBounds(bounds[0], bounds[1])
762
-
763
- for item in counter:
764
- num += 1
765
- assert num == len(
766
- counter
767
- ), "*** Length of counter and loop iterations don't match ***"
768
- assert num == 10, "*** Unexpected number of loop iterations ***"
769
-
770
- try:
771
- counter = iter(counter)._iter_.Clone() # Test Clone() and enum directly
772
- except AttributeError:
773
- # *sob* - sometimes this is a real iterator and sometimes not :/
774
- progress("Finished testing counter (but skipped the iterator stuff")
775
- return
776
- counter.Reset()
777
- num = 0
778
- for item in counter:
779
- num += 1
780
- assert num == 10, f"*** Unexpected number of loop iterations - got {num} ***"
781
- progress("Finished testing counter")
782
-
783
-
784
- def TestLocalVTable(ob):
785
- # Python doesn't fully implement this interface.
786
- assert ob.DoubleString("foo") == "foofoo", "couldn't foofoo"
787
-
788
-
789
- ###############################
790
- ##
791
- ## Some vtable tests of the interface
792
- ##
793
- def TestVTable(clsctx=pythoncom.CLSCTX_ALL):
794
- # Any vtable interfaces marked as dual *should* be able to be
795
- # correctly implemented as IDispatch.
796
- ob = win32com.client.Dispatch("Python.Test.PyCOMTest")
797
- TestLocalVTable(ob)
798
- # Now test it via vtable - use some C++ code to help here as Python can't do it directly yet.
799
- tester = win32com.client.Dispatch("PyCOMTest.PyCOMTest")
800
- testee = pythoncom.CoCreateInstance(
801
- "Python.Test.PyCOMTest", None, clsctx, pythoncom.IID_IUnknown
802
- )
803
- # check we fail gracefully with None passed.
804
- try:
805
- tester.TestMyInterface(None)
806
- except pythoncom.com_error as details:
807
- pass
808
- # and a real object.
809
- tester.TestMyInterface(testee)
810
-
811
-
812
- def TestVTable2():
813
- # We once crashed creating our object with the native interface as
814
- # the first IID specified. We must do it _after_ the tests, so that
815
- # Python has already had the gateway registered from last run.
816
- ob = win32com.client.Dispatch("Python.Test.PyCOMTest")
817
- iid = pythoncom.InterfaceNames["IPyCOMTest"]
818
- clsid = "Python.Test.PyCOMTest"
819
- clsctx = pythoncom.CLSCTX_SERVER
820
- try:
821
- testee = pythoncom.CoCreateInstance(clsid, None, clsctx, iid)
822
- except TypeError:
823
- # Python can't actually _use_ this interface yet, so this is
824
- # "expected". Any COM error is not.
825
- pass
826
-
827
-
828
- def TestVTableMI():
829
- clsctx = pythoncom.CLSCTX_SERVER
830
- ob = pythoncom.CoCreateInstance(
831
- "Python.Test.PyCOMTestMI", None, clsctx, pythoncom.IID_IUnknown
832
- )
833
- # This inherits from IStream.
834
- ob.QueryInterface(pythoncom.IID_IStream)
835
- # This implements IStorage, specifying the IID as a string
836
- ob.QueryInterface(pythoncom.IID_IStorage)
837
- # IDispatch should always work
838
- ob.QueryInterface(pythoncom.IID_IDispatch)
839
-
840
- iid = pythoncom.InterfaceNames["IPyCOMTest"]
841
- try:
842
- ob.QueryInterface(iid)
843
- except TypeError:
844
- # Python can't actually _use_ this interface yet, so this is
845
- # "expected". Any COM error is not.
846
- pass
847
-
848
-
849
- def TestQueryInterface(long_lived_server=0, iterations=5):
850
- tester = win32com.client.Dispatch("PyCOMTest.PyCOMTest")
851
- if long_lived_server:
852
- # Create a local server
853
- t0 = win32com.client.Dispatch(
854
- "Python.Test.PyCOMTest", clsctx=pythoncom.CLSCTX_LOCAL_SERVER
855
- )
856
- # Request custom interfaces a number of times
857
- prompt = [
858
- "Testing QueryInterface without long-lived local-server #%d of %d...",
859
- "Testing QueryInterface with long-lived local-server #%d of %d...",
860
- ]
861
-
862
- for i in range(iterations):
863
- progress(prompt[long_lived_server != 0] % (i + 1, iterations))
864
- tester.TestQueryInterface()
865
-
866
-
867
- class Tester(win32com.test.util.TestCase):
868
- def testVTableInProc(self):
869
- # We used to crash running this the second time - do it a few times
870
- for i in range(3):
871
- progress("Testing VTables in-process #%d..." % (i + 1))
872
- TestVTable(pythoncom.CLSCTX_INPROC_SERVER)
873
-
874
- def testVTableLocalServer(self):
875
- for i in range(3):
876
- progress("Testing VTables out-of-process #%d..." % (i + 1))
877
- TestVTable(pythoncom.CLSCTX_LOCAL_SERVER)
878
-
879
- def testVTable2(self):
880
- for i in range(3):
881
- TestVTable2()
882
-
883
- def testVTableMI(self):
884
- for i in range(3):
885
- TestVTableMI()
886
-
887
- def testMultiQueryInterface(self):
888
- TestQueryInterface(0, 6)
889
- # When we use the custom interface in the presence of a long-lived
890
- # local server, i.e. a local server that is already running when
891
- # we request an instance of our COM object, and remains afterwards,
892
- # then after repeated requests to create an instance of our object
893
- # the custom interface disappears -- i.e. QueryInterface fails with
894
- # E_NOINTERFACE. Set the upper range of the following test to 2 to
895
- # pass this test, i.e. TestQueryInterface(1,2)
896
- TestQueryInterface(1, 6)
897
-
898
- def testDynamic(self):
899
- TestDynamic()
900
-
901
- def testGenerated(self):
902
- TestGenerated()
903
-
904
-
905
- if __name__ == "__main__":
906
- # XXX - todo - Complete hack to crank threading support.
907
- # Should NOT be necessary
908
- def NullThreadFunc():
909
- pass
910
-
911
- import _thread
912
-
913
- _thread.start_new(NullThreadFunc, ())
914
-
915
- if "-v" in sys.argv:
916
- verbose = 1
917
-
918
- win32com.test.util.testmain()