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,1017 +0,0 @@
1
- """Utilities for makegw - Parse a header file to build an interface
2
-
3
- This module contains the core code for parsing a header file describing a
4
- COM interface, and building it into an "Interface" structure.
5
-
6
- Each Interface has methods, and each method has arguments.
7
-
8
- Each argument knows how to use Py_BuildValue or Py_ParseTuple to
9
- exchange itself with Python.
10
-
11
- See the @win32com.makegw@ module for information in building a COM
12
- interface
13
- """
14
-
15
- from __future__ import annotations
16
-
17
- import re
18
- import traceback
19
-
20
-
21
- class error_not_found(Exception):
22
- def __init__(self, msg="The requested item could not be found"):
23
- super().__init__(msg)
24
-
25
-
26
- class error_not_supported(Exception):
27
- def __init__(self, msg="The required functionality is not supported"):
28
- super().__init__(msg)
29
-
30
-
31
- VERBOSE = 0
32
- DEBUG = 0
33
-
34
- ## NOTE : For interfaces as params to work correctly, you must
35
- ## make sure any PythonCOM extensions which expose the interface are loaded
36
- ## before generating.
37
-
38
-
39
- class ArgFormatter:
40
- """An instance for a specific type of argument. Knows how to convert itself"""
41
-
42
- def __init__(self, arg, builtinIndirection, declaredIndirection=0):
43
- # print("init:", arg.name, builtinIndirection, declaredIndirection, arg.indirectionLevel)
44
- self.arg = arg
45
- self.builtinIndirection = builtinIndirection
46
- self.declaredIndirection = declaredIndirection
47
- self.gatewayMode = 0
48
-
49
- def _IndirectPrefix(self, indirectionFrom, indirectionTo):
50
- """Given the indirection level I was declared at (0=Normal, 1=*, 2=**)
51
- return a string prefix so I can pass to a function with the
52
- required indirection (where the default is the indirection of the method's param.
53
-
54
- eg, assuming my arg has indirection level of 2, if this function was passed 1
55
- it would return "&", so that a variable declared with indirection of 1
56
- can be prefixed with this to turn it into the indirection level required of 2
57
- """
58
- dif = indirectionFrom - indirectionTo
59
- if dif == 0:
60
- return ""
61
- elif dif == -1:
62
- return "&"
63
- elif dif == 1:
64
- return "*"
65
- else:
66
- return "?? (%d)" % (dif,)
67
- raise error_not_supported("Can't indirect this far - please fix me :-)")
68
-
69
- def GetIndirectedArgName(self, indirectFrom, indirectionTo):
70
- # print(
71
- # "get:",
72
- # self.arg.name,
73
- # indirectFrom,
74
- # self._GetDeclaredIndirection() + self.builtinIndirection,
75
- # indirectionTo,
76
- # self.arg.indirectionLevel,
77
- # )
78
-
79
- if indirectFrom is None:
80
- ### ACK! this does not account for [in][out] variables.
81
- ### when this method is called, we need to know which
82
- indirectFrom = self._GetDeclaredIndirection() + self.builtinIndirection
83
-
84
- return self._IndirectPrefix(indirectFrom, indirectionTo) + self.arg.name
85
-
86
- def GetBuildValueArg(self):
87
- "Get the argument to be passes to Py_BuildValue"
88
- return self.arg.name
89
-
90
- def GetParseTupleArg(self):
91
- "Get the argument to be passed to PyArg_ParseTuple"
92
- if self.gatewayMode:
93
- # use whatever they were declared with
94
- return self.GetIndirectedArgName(None, 1)
95
- # local declarations have just their builtin indirection
96
- return self.GetIndirectedArgName(self.builtinIndirection, 1)
97
-
98
- def GetInterfaceCppObjectInfo(self):
99
- """Provide information about the C++ object used.
100
-
101
- Simple variables (such as integers) can declare their type (eg an integer)
102
- and use it as the target of both PyArg_ParseTuple and the COM function itself.
103
-
104
- More complex types require a PyObject * declared as the target of PyArg_ParseTuple,
105
- then some conversion routine to the C++ object which is actually passed to COM.
106
-
107
- This method provides the name, and optionally the type of that C++ variable.
108
- If the type if provided, the caller will likely generate a variable declaration.
109
- The name must always be returned.
110
-
111
- Result is a tuple of (variableName, [DeclareType|None|""])
112
- """
113
-
114
- # the first return element is the variable to be passed as
115
- # an argument to an interface method. the variable was
116
- # declared with only its builtin indirection level. when
117
- # we pass it, we'll need to pass in whatever amount of
118
- # indirection was applied (plus the builtin amount)
119
- # the second return element is the variable declaration; it
120
- # should simply be builtin indirection
121
- return (
122
- self.GetIndirectedArgName(
123
- self.builtinIndirection,
124
- self.arg.indirectionLevel + self.builtinIndirection,
125
- ),
126
- f"{self.GetUnconstType()} {self.arg.name}",
127
- )
128
-
129
- def GetInterfaceArgCleanup(self):
130
- "Return cleanup code for C++ args passed to the interface method."
131
- if DEBUG:
132
- return "/* GetInterfaceArgCleanup output goes here: %s */\n" % self.arg.name
133
- else:
134
- return ""
135
-
136
- def GetInterfaceArgCleanupGIL(self):
137
- """Return cleanup code for C++ args passed to the interface
138
- method that must be executed with the GIL held"""
139
- if DEBUG:
140
- return (
141
- "/* GetInterfaceArgCleanup (GIL held) output goes here: %s */\n"
142
- % self.arg.name
143
- )
144
- else:
145
- return ""
146
-
147
- def GetUnconstType(self):
148
- return self.arg.unc_type
149
-
150
- def SetGatewayMode(self):
151
- self.gatewayMode = 1
152
-
153
- def _GetDeclaredIndirection(self):
154
- return self.arg.indirectionLevel
155
- print("declared:", self.arg.name, self.gatewayMode)
156
- if self.gatewayMode:
157
- return self.arg.indirectionLevel
158
- else:
159
- return self.declaredIndirection
160
-
161
- def DeclareParseArgTupleInputConverter(self):
162
- "Declare the variable used as the PyArg_ParseTuple param for a gateway"
163
- # Only declare it??
164
- # if self.arg.indirectionLevel==0:
165
- # return "\t%s %s;\n" % (self.arg.type, self.arg.name)
166
- # else:
167
- if DEBUG:
168
- return (
169
- "/* Declare ParseArgTupleInputConverter goes here: %s */\n"
170
- % self.arg.name
171
- )
172
- else:
173
- return ""
174
-
175
- def GetParsePostCode(self):
176
- "Get a string of C++ code to be executed after (ie, to finalise) the PyArg_ParseTuple conversion"
177
- if DEBUG:
178
- return "/* GetParsePostCode code goes here: %s */\n" % self.arg.name
179
- else:
180
- return ""
181
-
182
- def GetBuildForInterfacePreCode(self):
183
- "Get a string of C++ code to be executed before (ie, to initialise) the Py_BuildValue conversion for Interfaces"
184
- if DEBUG:
185
- return "/* GetBuildForInterfacePreCode goes here: %s */\n" % self.arg.name
186
- else:
187
- return ""
188
-
189
- def GetBuildForGatewayPreCode(self):
190
- "Get a string of C++ code to be executed before (ie, to initialise) the Py_BuildValue conversion for Gateways"
191
- s = self.GetBuildForInterfacePreCode() # Usually the same
192
- if DEBUG:
193
- if s[:4] == "/* G":
194
- s = "/* GetBuildForGatewayPreCode goes here: %s */\n" % self.arg.name
195
- return s
196
-
197
- def GetBuildForInterfacePostCode(self):
198
- "Get a string of C++ code to be executed after (ie, to finalise) the Py_BuildValue conversion for Interfaces"
199
- if DEBUG:
200
- return "/* GetBuildForInterfacePostCode goes here: %s */\n" % self.arg.name
201
- return ""
202
-
203
- def GetBuildForGatewayPostCode(self):
204
- "Get a string of C++ code to be executed after (ie, to finalise) the Py_BuildValue conversion for Gateways"
205
- s = self.GetBuildForInterfacePostCode() # Usually the same
206
- if DEBUG:
207
- if s[:4] == "/* G":
208
- s = "/* GetBuildForGatewayPostCode goes here: %s */\n" % self.arg.name
209
- return s
210
-
211
- def GetAutoduckString(self):
212
- return "// @pyparm {}|{}||Description for {}".format(
213
- self._GetPythonTypeDesc(),
214
- self.arg.name,
215
- self.arg.name,
216
- )
217
-
218
- def _GetPythonTypeDesc(self):
219
- "Returns a string with the description of the type. Used for doco purposes"
220
- return None
221
-
222
- def NeedUSES_CONVERSION(self):
223
- "Determines if this arg forces a USES_CONVERSION macro"
224
- return 0
225
-
226
-
227
- # Special formatter for floats since they're smaller than Python floats.
228
- class ArgFormatterFloat(ArgFormatter):
229
- def GetFormatChar(self):
230
- return "f"
231
-
232
- def DeclareParseArgTupleInputConverter(self):
233
- # Declare a double variable
234
- return "\tdouble dbl%s;\n" % self.arg.name
235
-
236
- def GetParseTupleArg(self):
237
- return "&dbl" + self.arg.name
238
-
239
- def _GetPythonTypeDesc(self):
240
- return "float"
241
-
242
- def GetBuildValueArg(self):
243
- return "&dbl" + self.arg.name
244
-
245
- def GetBuildForInterfacePreCode(self):
246
- return "\tdbl" + self.arg.name + " = " + self.arg.name + ";\n"
247
-
248
- def GetBuildForGatewayPreCode(self):
249
- return (
250
- "\tdbl%s = " % self.arg.name
251
- + self._IndirectPrefix(self._GetDeclaredIndirection(), 0)
252
- + self.arg.name
253
- + ";\n"
254
- )
255
-
256
- def GetParsePostCode(self):
257
- s = "\t"
258
- if self.gatewayMode:
259
- s += self._IndirectPrefix(self._GetDeclaredIndirection(), 0)
260
- s += self.arg.name
261
- s += " = (float)dbl%s;\n" % self.arg.name
262
- return s
263
-
264
-
265
- # Special formatter for Shorts because they're
266
- # a different size than Python ints!
267
- class ArgFormatterShort(ArgFormatter):
268
- def GetFormatChar(self):
269
- return "i"
270
-
271
- def DeclareParseArgTupleInputConverter(self):
272
- # Declare a double variable
273
- return "\tINT i%s;\n" % self.arg.name
274
-
275
- def GetParseTupleArg(self):
276
- return "&i" + self.arg.name
277
-
278
- def _GetPythonTypeDesc(self):
279
- return "int"
280
-
281
- def GetBuildValueArg(self):
282
- return "&i" + self.arg.name
283
-
284
- def GetBuildForInterfacePreCode(self):
285
- return "\ti" + self.arg.name + " = " + self.arg.name + ";\n"
286
-
287
- def GetBuildForGatewayPreCode(self):
288
- return (
289
- "\ti%s = " % self.arg.name
290
- + self._IndirectPrefix(self._GetDeclaredIndirection(), 0)
291
- + self.arg.name
292
- + ";\n"
293
- )
294
-
295
- def GetParsePostCode(self):
296
- s = "\t"
297
- if self.gatewayMode:
298
- s += self._IndirectPrefix(self._GetDeclaredIndirection(), 0)
299
- s += self.arg.name
300
- s += " = i%s;\n" % self.arg.name
301
- return s
302
-
303
-
304
- # for types which are 64bits on AMD64 - eg, HWND
305
- class ArgFormatterLONG_PTR(ArgFormatter):
306
- def GetFormatChar(self):
307
- return "O"
308
-
309
- def DeclareParseArgTupleInputConverter(self):
310
- # Declare a PyObject variable
311
- return "\tPyObject *ob%s;\n" % self.arg.name
312
-
313
- def GetParseTupleArg(self):
314
- return "&ob" + self.arg.name
315
-
316
- def _GetPythonTypeDesc(self):
317
- return "int/long"
318
-
319
- def GetBuildValueArg(self):
320
- return "ob" + self.arg.name
321
-
322
- def GetBuildForInterfacePostCode(self):
323
- return "\tPy_XDECREF(ob%s);\n" % self.arg.name
324
-
325
- def GetParsePostCode(self):
326
- return "\tif (bPythonIsHappy && !PyWinLong_AsULONG_PTR(ob{}, (ULONG_PTR *){})) bPythonIsHappy = FALSE;\n".format(
327
- self.arg.name, self.GetIndirectedArgName(None, 2)
328
- )
329
-
330
- def GetBuildForInterfacePreCode(self):
331
- notdirected = self.GetIndirectedArgName(None, 1)
332
- return f"\tob{self.arg.name} = PyWinObject_FromULONG_PTR({notdirected});\n"
333
-
334
- def GetBuildForGatewayPostCode(self):
335
- return "\tPy_XDECREF(ob%s);\n" % self.arg.name
336
-
337
-
338
- class ArgFormatterPythonCOM(ArgFormatter):
339
- """An arg formatter for types exposed in the PythonCOM module"""
340
-
341
- def GetFormatChar(self):
342
- return "O"
343
-
344
- # def GetInterfaceCppObjectInfo(self):
345
- # return ArgFormatter.GetInterfaceCppObjectInfo(self)[0], \
346
- # "%s %s%s" % (self.arg.unc_type, "*" * self._GetDeclaredIndirection(), self.arg.name)
347
- def DeclareParseArgTupleInputConverter(self):
348
- # Declare a PyObject variable
349
- return "\tPyObject *ob%s;\n" % self.arg.name
350
-
351
- def GetParseTupleArg(self):
352
- return "&ob" + self.arg.name
353
-
354
- def _GetPythonTypeDesc(self):
355
- return "<o Py%s>" % self.arg.type
356
-
357
- def GetBuildValueArg(self):
358
- return "ob" + self.arg.name
359
-
360
- def GetBuildForInterfacePostCode(self):
361
- return "\tPy_XDECREF(ob%s);\n" % self.arg.name
362
-
363
-
364
- class ArgFormatterBSTR(ArgFormatterPythonCOM):
365
- def _GetPythonTypeDesc(self):
366
- return "<o unicode>"
367
-
368
- def GetParsePostCode(self):
369
- return "\tif (bPythonIsHappy && !PyWinObject_AsBstr(ob{}, {})) bPythonIsHappy = FALSE;\n".format(
370
- self.arg.name, self.GetIndirectedArgName(None, 2)
371
- )
372
-
373
- def GetBuildForInterfacePreCode(self):
374
- notdirected = self.GetIndirectedArgName(None, 1)
375
- return f"\tob{self.arg.name} = MakeBstrToObj({notdirected});\n"
376
-
377
- def GetBuildForInterfacePostCode(self):
378
- return (
379
- f"\tSysFreeString({self.arg.name});\n"
380
- + ArgFormatterPythonCOM.GetBuildForInterfacePostCode(self)
381
- )
382
-
383
- def GetBuildForGatewayPostCode(self):
384
- return "\tPy_XDECREF(ob%s);\n" % self.arg.name
385
-
386
-
387
- class ArgFormatterOLECHAR(ArgFormatterPythonCOM):
388
- def _GetPythonTypeDesc(self):
389
- return "<o unicode>"
390
-
391
- def GetUnconstType(self):
392
- if self.arg.type[:3] == "LPC":
393
- return self.arg.type[:2] + self.arg.type[3:]
394
- else:
395
- return self.arg.unc_type
396
-
397
- def GetParsePostCode(self):
398
- return "\tif (bPythonIsHappy && !PyWinObject_AsBstr(ob{}, {})) bPythonIsHappy = FALSE;\n".format(
399
- self.arg.name, self.GetIndirectedArgName(None, 2)
400
- )
401
-
402
- def GetInterfaceArgCleanup(self):
403
- return "\tSysFreeString(%s);\n" % self.GetIndirectedArgName(None, 1)
404
-
405
- def GetBuildForInterfacePreCode(self):
406
- # the variable was declared with just its builtin indirection
407
- notdirected = self.GetIndirectedArgName(self.builtinIndirection, 1)
408
- return f"\tob{self.arg.name} = MakeOLECHARToObj({notdirected});\n"
409
-
410
- def GetBuildForInterfacePostCode(self):
411
- # memory returned into an OLECHAR should be freed
412
- return (
413
- f"\tCoTaskMemFree({self.arg.name});\n"
414
- + ArgFormatterPythonCOM.GetBuildForInterfacePostCode(self)
415
- )
416
-
417
- def GetBuildForGatewayPostCode(self):
418
- return "\tPy_XDECREF(ob%s);\n" % self.arg.name
419
-
420
-
421
- class ArgFormatterTCHAR(ArgFormatterPythonCOM):
422
- def _GetPythonTypeDesc(self):
423
- return "string/<o unicode>"
424
-
425
- def GetUnconstType(self):
426
- if self.arg.type[:3] == "LPC":
427
- return self.arg.type[:2] + self.arg.type[3:]
428
- else:
429
- return self.arg.unc_type
430
-
431
- def GetParsePostCode(self):
432
- return "\tif (bPythonIsHappy && !PyWinObject_AsTCHAR(ob{}, {})) bPythonIsHappy = FALSE;\n".format(
433
- self.arg.name, self.GetIndirectedArgName(None, 2)
434
- )
435
-
436
- def GetInterfaceArgCleanup(self):
437
- return "\tPyWinObject_FreeTCHAR(%s);\n" % self.GetIndirectedArgName(None, 1)
438
-
439
- def GetBuildForInterfacePreCode(self):
440
- # the variable was declared with just its builtin indirection
441
- notdirected = self.GetIndirectedArgName(self.builtinIndirection, 1)
442
- return f"\tob{self.arg.name} = PyWinObject_FromTCHAR({notdirected});\n"
443
-
444
- def GetBuildForInterfacePostCode(self):
445
- return "// ??? - TCHAR post code\n"
446
-
447
- def GetBuildForGatewayPostCode(self):
448
- return "\tPy_XDECREF(ob%s);\n" % self.arg.name
449
-
450
-
451
- class ArgFormatterIID(ArgFormatterPythonCOM):
452
- def _GetPythonTypeDesc(self):
453
- return "<o PyIID>"
454
-
455
- def GetParsePostCode(self):
456
- return "\tif (!PyWinObject_AsIID(ob{}, &{})) bPythonIsHappy = FALSE;\n".format(
457
- self.arg.name,
458
- self.arg.name,
459
- )
460
-
461
- def GetBuildForInterfacePreCode(self):
462
- # notdirected = self.GetIndirectedArgName(self.arg.indirectionLevel, 0)
463
- notdirected = self.GetIndirectedArgName(None, 0)
464
- return f"\tob{self.arg.name} = PyWinObject_FromIID({notdirected});\n"
465
-
466
- def GetInterfaceCppObjectInfo(self):
467
- return self.arg.name, "IID %s" % (self.arg.name)
468
-
469
-
470
- class ArgFormatterTime(ArgFormatterPythonCOM):
471
- def __init__(self, arg, builtinIndirection, declaredIndirection=0):
472
- # we don't want to declare LPSYSTEMTIME / LPFILETIME objects
473
- if arg.indirectionLevel == 0 and arg.unc_type[:2] == "LP":
474
- arg.unc_type = arg.unc_type[2:]
475
- # reduce the builtin and increment the declaration
476
- arg.indirectionLevel += 1
477
- builtinIndirection = 0
478
- ArgFormatterPythonCOM.__init__(
479
- self, arg, builtinIndirection, declaredIndirection
480
- )
481
-
482
- def _GetPythonTypeDesc(self):
483
- return "<o PyDateTime>"
484
-
485
- def GetParsePostCode(self):
486
- # variable was declared with only the builtinIndirection
487
- ### NOTE: this is an [in] ... so use only builtin
488
- return '\tif (!PyTime_Check(ob{})) {{\n\t\tPyErr_SetString(PyExc_TypeError, "The argument must be a PyTime object");\n\t\tbPythonIsHappy = FALSE;\n\t}}\n\tif (!((PyTime *)ob{})->GetTime({})) bPythonIsHappy = FALSE;\n'.format(
489
- self.arg.name,
490
- self.arg.name,
491
- self.GetIndirectedArgName(self.builtinIndirection, 1),
492
- )
493
-
494
- def GetBuildForInterfacePreCode(self):
495
- ### use just the builtinIndirection again...
496
- notdirected = self.GetIndirectedArgName(self.builtinIndirection, 0)
497
- return f"\tob{self.arg.name} = new PyTime({notdirected});\n"
498
-
499
- def GetBuildForInterfacePostCode(self):
500
- ### hack to determine if we need to free stuff
501
- ret = ""
502
- if self.builtinIndirection + self.arg.indirectionLevel > 1:
503
- # memory returned into an OLECHAR should be freed
504
- ret = "\tCoTaskMemFree(%s);\n" % self.arg.name
505
- return ret + ArgFormatterPythonCOM.GetBuildForInterfacePostCode(self)
506
-
507
-
508
- class ArgFormatterSTATSTG(ArgFormatterPythonCOM):
509
- def _GetPythonTypeDesc(self):
510
- return "<o STATSTG>"
511
-
512
- def GetParsePostCode(self):
513
- return "\tif (!PyCom_PyObjectAsSTATSTG(ob{}, {}, 0/*flags*/)) bPythonIsHappy = FALSE;\n".format(
514
- self.arg.name, self.GetIndirectedArgName(None, 1)
515
- )
516
-
517
- def GetBuildForInterfacePreCode(self):
518
- notdirected = self.GetIndirectedArgName(None, 1)
519
- return "\tob{} = PyCom_PyObjectFromSTATSTG({});\n\t// STATSTG doco says our responsibility to free\n\tif (({}).pwcsName) CoTaskMemFree(({}).pwcsName);\n".format(
520
- self.arg.name,
521
- self.GetIndirectedArgName(None, 1),
522
- notdirected,
523
- notdirected,
524
- )
525
-
526
-
527
- class ArgFormatterGeneric(ArgFormatterPythonCOM):
528
- def _GetPythonTypeDesc(self):
529
- return "<o %s>" % self.arg.type
530
-
531
- def GetParsePostCode(self):
532
- return "\tif (!PyObject_As{}(ob{}, &{}) bPythonIsHappy = FALSE;\n".format(
533
- self.arg.type,
534
- self.arg.name,
535
- self.GetIndirectedArgName(None, 1),
536
- )
537
-
538
- def GetInterfaceArgCleanup(self):
539
- return f"\tPyObject_Free{self.arg.type}({self.arg.name});\n"
540
-
541
- def GetBuildForInterfacePreCode(self):
542
- notdirected = self.GetIndirectedArgName(None, 1)
543
- return "\tob{} = PyObject_From{}({});\n".format(
544
- self.arg.name,
545
- self.arg.type,
546
- self.GetIndirectedArgName(None, 1),
547
- )
548
-
549
-
550
- class ArgFormatterIDLIST(ArgFormatterPythonCOM):
551
- def _GetPythonTypeDesc(self):
552
- return "<o PyIDL>"
553
-
554
- def GetParsePostCode(self):
555
- return "\tif (bPythonIsHappy && !PyObject_AsPIDL(ob{}, &{})) bPythonIsHappy = FALSE;\n".format(
556
- self.arg.name, self.GetIndirectedArgName(None, 1)
557
- )
558
-
559
- def GetInterfaceArgCleanup(self):
560
- return f"\tPyObject_FreePIDL({self.arg.name});\n"
561
-
562
- def GetBuildForInterfacePreCode(self):
563
- notdirected = self.GetIndirectedArgName(None, 1)
564
- return "\tob{} = PyObject_FromPIDL({});\n".format(
565
- self.arg.name,
566
- self.GetIndirectedArgName(None, 1),
567
- )
568
-
569
-
570
- class ArgFormatterHANDLE(ArgFormatterPythonCOM):
571
- def _GetPythonTypeDesc(self):
572
- return "<o PyHANDLE>"
573
-
574
- def GetParsePostCode(self):
575
- return "\tif (!PyWinObject_AsHANDLE(ob{}, &{}, FALSE) bPythonIsHappy = FALSE;\n".format(
576
- self.arg.name, self.GetIndirectedArgName(None, 1)
577
- )
578
-
579
- def GetBuildForInterfacePreCode(self):
580
- notdirected = self.GetIndirectedArgName(None, 1)
581
- return "\tob{} = PyWinObject_FromHANDLE({});\n".format(
582
- self.arg.name,
583
- self.GetIndirectedArgName(None, 0),
584
- )
585
-
586
-
587
- class ArgFormatterLARGE_INTEGER(ArgFormatterPythonCOM):
588
- def GetKeyName(self):
589
- return "LARGE_INTEGER"
590
-
591
- def _GetPythonTypeDesc(self):
592
- return "<o %s>" % self.GetKeyName()
593
-
594
- def GetParsePostCode(self):
595
- return "\tif (!PyWinObject_As{}(ob{}, {})) bPythonIsHappy = FALSE;\n".format(
596
- self.GetKeyName(),
597
- self.arg.name,
598
- self.GetIndirectedArgName(None, 1),
599
- )
600
-
601
- def GetBuildForInterfacePreCode(self):
602
- notdirected = self.GetIndirectedArgName(None, 0)
603
- return "\tob{} = PyWinObject_From{}({});\n".format(
604
- self.arg.name,
605
- self.GetKeyName(),
606
- notdirected,
607
- )
608
-
609
-
610
- class ArgFormatterULARGE_INTEGER(ArgFormatterLARGE_INTEGER):
611
- def GetKeyName(self):
612
- return "ULARGE_INTEGER"
613
-
614
-
615
- class ArgFormatterInterface(ArgFormatterPythonCOM):
616
- def GetInterfaceCppObjectInfo(self):
617
- return self.GetIndirectedArgName(
618
- 1, self.arg.indirectionLevel
619
- ), "{} * {}".format(
620
- self.GetUnconstType(),
621
- self.arg.name,
622
- )
623
-
624
- def GetParsePostCode(self):
625
- # This gets called for out params in gateway mode
626
- if self.gatewayMode:
627
- sArg = self.GetIndirectedArgName(None, 2)
628
- else:
629
- # vs. in params for interface mode.
630
- sArg = self.GetIndirectedArgName(1, 2)
631
- return "\tif (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(ob{}, IID_{}, (void **){}, TRUE /* bNoneOK */))\n\t\t bPythonIsHappy = FALSE;\n".format(
632
- self.arg.name, self.arg.type, sArg
633
- )
634
-
635
- def GetBuildForInterfacePreCode(self):
636
- return "\tob{} = PyCom_PyObjectFromIUnknown({}, IID_{}, FALSE);\n".format(
637
- self.arg.name,
638
- self.arg.name,
639
- self.arg.type,
640
- )
641
-
642
- def GetBuildForGatewayPreCode(self):
643
- sPrefix = self._IndirectPrefix(self._GetDeclaredIndirection(), 1)
644
- return "\tob{} = PyCom_PyObjectFromIUnknown({}{}, IID_{}, TRUE);\n".format(
645
- self.arg.name,
646
- sPrefix,
647
- self.arg.name,
648
- self.arg.type,
649
- )
650
-
651
- def GetInterfaceArgCleanup(self):
652
- return f"\tif ({self.arg.name}) {self.arg.name}->Release();\n"
653
-
654
-
655
- class ArgFormatterVARIANT(ArgFormatterPythonCOM):
656
- def GetParsePostCode(self):
657
- return "\tif ( !PyCom_VariantFromPyObject(ob{}, {}) )\n\t\tbPythonIsHappy = FALSE;\n".format(
658
- self.arg.name, self.GetIndirectedArgName(None, 1)
659
- )
660
-
661
- def GetBuildForGatewayPreCode(self):
662
- notdirected = self.GetIndirectedArgName(None, 1)
663
- return f"\tob{self.arg.name} = PyCom_PyObjectFromVariant({notdirected});\n"
664
-
665
- def GetBuildForGatewayPostCode(self):
666
- return "\tPy_XDECREF(ob%s);\n" % self.arg.name
667
-
668
- # Key : , Python Type Description, ParseTuple format char
669
-
670
-
671
- ConvertSimpleTypes = {
672
- "BOOL": ("BOOL", "int", "i"),
673
- "UINT": ("UINT", "int", "i"),
674
- "BYTE": ("BYTE", "int", "i"),
675
- "INT": ("INT", "int", "i"),
676
- "DWORD": ("DWORD", "int", "l"),
677
- "HRESULT": ("HRESULT", "int", "l"),
678
- "ULONG": ("ULONG", "int", "l"),
679
- "LONG": ("LONG", "int", "l"),
680
- "int": ("int", "int", "i"),
681
- "long": ("long", "int", "l"),
682
- "DISPID": ("DISPID", "long", "l"),
683
- "APPBREAKFLAGS": ("int", "int", "i"),
684
- "BREAKRESUMEACTION": ("int", "int", "i"),
685
- "ERRORRESUMEACTION": ("int", "int", "i"),
686
- "BREAKREASON": ("int", "int", "i"),
687
- "BREAKPOINT_STATE": ("int", "int", "i"),
688
- "BREAKRESUME_ACTION": ("int", "int", "i"),
689
- "SOURCE_TEXT_ATTR": ("int", "int", "i"),
690
- "TEXT_DOC_ATTR": ("int", "int", "i"),
691
- "QUERYOPTION": ("int", "int", "i"),
692
- "PARSEACTION": ("int", "int", "i"),
693
- }
694
-
695
-
696
- class ArgFormatterSimple(ArgFormatter):
697
- """An arg formatter for simple integer etc types"""
698
-
699
- def GetFormatChar(self):
700
- return ConvertSimpleTypes[self.arg.type][2]
701
-
702
- def _GetPythonTypeDesc(self):
703
- return ConvertSimpleTypes[self.arg.type][1]
704
-
705
-
706
- AllConverters: dict[
707
- str, tuple[type[ArgFormatter], int, int] | tuple[type[ArgFormatter], int]
708
- ] = {
709
- "const OLECHAR": (ArgFormatterOLECHAR, 0, 1),
710
- "WCHAR": (ArgFormatterOLECHAR, 0, 1),
711
- "OLECHAR": (ArgFormatterOLECHAR, 0, 1),
712
- "LPCOLESTR": (ArgFormatterOLECHAR, 1, 1),
713
- "LPOLESTR": (ArgFormatterOLECHAR, 1, 1),
714
- "LPCWSTR": (ArgFormatterOLECHAR, 1, 1),
715
- "LPWSTR": (ArgFormatterOLECHAR, 1, 1),
716
- "LPCSTR": (ArgFormatterOLECHAR, 1, 1),
717
- "LPTSTR": (ArgFormatterTCHAR, 1, 1),
718
- "LPCTSTR": (ArgFormatterTCHAR, 1, 1),
719
- "HANDLE": (ArgFormatterHANDLE, 0),
720
- "BSTR": (ArgFormatterBSTR, 1, 0),
721
- "const IID": (ArgFormatterIID, 0),
722
- "CLSID": (ArgFormatterIID, 0),
723
- "IID": (ArgFormatterIID, 0),
724
- "GUID": (ArgFormatterIID, 0),
725
- "const GUID": (ArgFormatterIID, 0),
726
- "const IID": (ArgFormatterIID, 0),
727
- "REFCLSID": (ArgFormatterIID, 0),
728
- "REFIID": (ArgFormatterIID, 0),
729
- "REFGUID": (ArgFormatterIID, 0),
730
- "const FILETIME": (ArgFormatterTime, 0),
731
- "const SYSTEMTIME": (ArgFormatterTime, 0),
732
- "const LPSYSTEMTIME": (ArgFormatterTime, 1, 1),
733
- "LPSYSTEMTIME": (ArgFormatterTime, 1, 1),
734
- "FILETIME": (ArgFormatterTime, 0),
735
- "SYSTEMTIME": (ArgFormatterTime, 0),
736
- "STATSTG": (ArgFormatterSTATSTG, 0),
737
- "LARGE_INTEGER": (ArgFormatterLARGE_INTEGER, 0),
738
- "ULARGE_INTEGER": (ArgFormatterULARGE_INTEGER, 0),
739
- "VARIANT": (ArgFormatterVARIANT, 0),
740
- "float": (ArgFormatterFloat, 0),
741
- "single": (ArgFormatterFloat, 0),
742
- "short": (ArgFormatterShort, 0),
743
- "WORD": (ArgFormatterShort, 0),
744
- "VARIANT_BOOL": (ArgFormatterShort, 0),
745
- "HWND": (ArgFormatterLONG_PTR, 1),
746
- "HMENU": (ArgFormatterLONG_PTR, 1),
747
- "HOLEMENU": (ArgFormatterLONG_PTR, 1),
748
- "HICON": (ArgFormatterLONG_PTR, 1),
749
- "HDC": (ArgFormatterLONG_PTR, 1),
750
- "LPARAM": (ArgFormatterLONG_PTR, 1),
751
- "WPARAM": (ArgFormatterLONG_PTR, 1),
752
- "LRESULT": (ArgFormatterLONG_PTR, 1),
753
- "UINT": (ArgFormatterShort, 0),
754
- "SVSIF": (ArgFormatterShort, 0),
755
- "Control": (ArgFormatterInterface, 0, 1),
756
- "DataObject": (ArgFormatterInterface, 0, 1),
757
- "_PropertyBag": (ArgFormatterInterface, 0, 1),
758
- "AsyncProp": (ArgFormatterInterface, 0, 1),
759
- "DataSource": (ArgFormatterInterface, 0, 1),
760
- "DataFormat": (ArgFormatterInterface, 0, 1),
761
- "void **": (ArgFormatterInterface, 2, 2),
762
- "ITEMIDLIST": (ArgFormatterIDLIST, 0, 0),
763
- "LPITEMIDLIST": (ArgFormatterIDLIST, 0, 1),
764
- "LPCITEMIDLIST": (ArgFormatterIDLIST, 0, 1),
765
- "const ITEMIDLIST": (ArgFormatterIDLIST, 0, 1),
766
- "PITEMID_CHILD": (ArgFormatterIDLIST, 1),
767
- "const PITEMID_CHILD": (ArgFormatterIDLIST, 0),
768
- "PCITEMID_CHILD": (ArgFormatterIDLIST, 0),
769
- "PUITEMID_CHILD": (ArgFormatterIDLIST, 1),
770
- "PCUITEMID_CHILD": (ArgFormatterIDLIST, 0),
771
- "const PUITEMID_CHILD": (ArgFormatterIDLIST, 0),
772
- "PCUITEMID_CHILD_ARRAY": (ArgFormatterIDLIST, 2),
773
- "const PCUITEMID_CHILD_ARRAY": (ArgFormatterIDLIST, 2),
774
- # Auto-add all the simple types
775
- **{key: (ArgFormatterSimple, 0) for key in ConvertSimpleTypes},
776
- }
777
-
778
-
779
- def make_arg_converter(arg):
780
- try:
781
- clz = AllConverters[arg.type][0]
782
- bin = AllConverters[arg.type][1]
783
- decl = 0
784
- if len(AllConverters[arg.type]) > 2:
785
- decl = AllConverters[arg.type][2]
786
- return clz(arg, bin, decl)
787
- except KeyError:
788
- if arg.type[0] == "I":
789
- return ArgFormatterInterface(arg, 0, 1)
790
-
791
- raise error_not_supported(f"The type '{arg.type}' ({arg.name}) is unknown.")
792
-
793
-
794
- #############################################################
795
- #
796
- # The instances that represent the args, methods and interface
797
- class Argument:
798
- """A representation of an argument to a COM method
799
-
800
- This class contains information about a specific argument to a method.
801
- In addition, methods exist so that an argument knows how to convert itself
802
- to/from Python arguments.
803
- """
804
-
805
- # in,out type name [ ]
806
- # -------------- -------- ------------ ------
807
- regex = re.compile(r"/\* \[([^\]]*.*?)] \*/[ \t](.*[* ]+)(\w+)(\[ *])?[\),]")
808
-
809
- @classmethod
810
- def drop_rpc_metadata(cls, type_):
811
- return " ".join(e for e in type_.split(" ") if not e.startswith("__RPC_"))
812
-
813
- def __init__(self, good_interface_names):
814
- self.good_interface_names = good_interface_names
815
- self.inout = None
816
- self.name = None
817
- self.type = None
818
- self.raw_type = None
819
- self.unc_type = None
820
- self.const = 0
821
- self.arrayDecl = 0
822
- self.indirectionLevel = 0
823
-
824
- def BuildFromFile(self, file):
825
- """Parse and build my data from a file
826
-
827
- Reads the next line in the file, and matches it as an argument
828
- description. If not a valid argument line, an error_not_found exception
829
- is raised.
830
- """
831
- line = file.readline()
832
- mo = self.regex.search(line)
833
- if not mo:
834
- raise error_not_found
835
- self.name = mo.group(3)
836
- self.inout = mo.group(1).split("][")
837
- typ = mo.group(2).strip()
838
- self.raw_type = typ
839
- if mo.group(4): # Has "[ ]" decl
840
- self.arrayDecl = 1
841
- typ_no_rpc = self.drop_rpc_metadata(typ)
842
- if typ != typ_no_rpc:
843
- self.indirectionLevel += 1
844
-
845
- typ = self.drop_rpc_metadata(typ)
846
- while 1:
847
- try:
848
- pos = typ.rindex("*")
849
- self.indirectionLevel += 1
850
- typ = typ[:pos].strip()
851
- except ValueError:
852
- break
853
- self.type = typ
854
- if self.type[:6] == "const ":
855
- self.unc_type = self.type[6:]
856
- else:
857
- self.unc_type = self.type
858
-
859
- if VERBOSE:
860
- print(
861
- " Arg {} of type {}{} ({})".format(
862
- self.name, self.type, "*" * self.indirectionLevel, self.inout
863
- )
864
- )
865
-
866
- def HasAttribute(self, typ):
867
- """Determines if the argument has the specific attribute.
868
-
869
- Argument attributes are specified in the header file, such as
870
- "[in][out][retval]" etc. You can pass a specific string (eg "out")
871
- to find if this attribute was specified for the argument
872
- """
873
- return typ in self.inout
874
-
875
- def GetRawDeclaration(self):
876
- ret = f"{self.raw_type} {self.name}"
877
- if self.arrayDecl:
878
- ret += "[]"
879
- return ret
880
-
881
-
882
- class Method:
883
- """A representation of a C++ method on a COM interface
884
-
885
- This class contains information about a specific method, as well as
886
- a list of all @Argument@s
887
- """
888
-
889
- # options ret type callconv name
890
- # ----------------- -------- -------- --------
891
- regex = re.compile(r"virtual (/\*.*?\*/ )?(.*?) (.*?) (.*?)\(\w?")
892
-
893
- def __init__(self, good_interface_names):
894
- self.good_interface_names = good_interface_names
895
- self.name = self.result = self.callconv = None
896
- self.args = []
897
-
898
- def BuildFromFile(self, file):
899
- """Parse and build my data from a file
900
-
901
- Reads the next line in the file, and matches it as a method
902
- description. If not a valid method line, an error_not_found exception
903
- is raised.
904
- """
905
- line = file.readline()
906
- mo = self.regex.search(line)
907
- if not mo:
908
- raise error_not_found
909
- self.name = mo.group(4)
910
- self.result = mo.group(2)
911
- if self.result != "HRESULT":
912
- if self.result == "DWORD": # DWORD is for old old stuff?
913
- print(
914
- "Warning: Old style interface detected - compilation errors likely!"
915
- )
916
- else:
917
- print(
918
- "Method %s - Only HRESULT return types are supported." % self.name
919
- )
920
- # raise error_not_supported, if VERBOSE:
921
- print(f" Method {self.result} {self.name}(")
922
- while 1:
923
- arg = Argument(self.good_interface_names)
924
- try:
925
- arg.BuildFromFile(file)
926
- self.args.append(arg)
927
- except error_not_found:
928
- break
929
-
930
-
931
- class Interface:
932
- """A representation of a C++ COM Interface
933
-
934
- This class contains information about a specific interface, as well as
935
- a list of all @Method@s
936
- """
937
-
938
- # name base
939
- # -------- --------
940
- regex = re.compile(r"(interface|) ([^ ]*) : public (.*)$")
941
-
942
- def __init__(self, mo):
943
- self.methods = []
944
- self.name = mo.group(2)
945
- self.base = mo.group(3)
946
- if VERBOSE:
947
- print(f"Interface {self.name} : public {self.base}")
948
-
949
- def BuildMethods(self, file):
950
- """Build all sub-methods for this interface"""
951
- # skip the next 2 lines.
952
- file.readline()
953
- file.readline()
954
- while 1:
955
- try:
956
- method = Method([self.name])
957
- method.BuildFromFile(file)
958
- self.methods.append(method)
959
- except error_not_found:
960
- break
961
-
962
-
963
- def find_interface(interfaceName, file):
964
- """Find and return an interface in a file
965
-
966
- Given an interface name and file, search for the specified interface.
967
-
968
- Upon return, the interface itself has been built,
969
- but not the methods.
970
- """
971
- interface = None
972
- line = file.readline()
973
- while line:
974
- mo = Interface.regex.search(line)
975
- if mo:
976
- name = mo.group(2)
977
- print(name)
978
- AllConverters[name] = (ArgFormatterInterface, 0, 1)
979
- if name == interfaceName:
980
- interface = Interface(mo)
981
- interface.BuildMethods(file)
982
- line = file.readline()
983
- if interface:
984
- return interface
985
- raise error_not_found
986
-
987
-
988
- def parse_interface_info(interfaceName, file):
989
- """Find, parse and return an interface in a file
990
-
991
- Given an interface name and file, search for the specified interface.
992
-
993
- Upon return, the interface itself is fully built,
994
- """
995
- try:
996
- return find_interface(interfaceName, file)
997
- except re.error:
998
- traceback.print_exc()
999
- print("The interface could not be built, as the regular expression failed!")
1000
-
1001
-
1002
- def test():
1003
- f = open("d:\\msdev\\include\\objidl.h")
1004
- try:
1005
- parse_interface_info("IPersistStream", f)
1006
- finally:
1007
- f.close()
1008
-
1009
-
1010
- def test_regex(r, text):
1011
- res = r.search(text, 0)
1012
- if res == -1:
1013
- print("** Not found")
1014
- else:
1015
- print(
1016
- "%d\n%s\n%s\n%s\n%s" % (res, r.group(1), r.group(2), r.group(3), r.group(4))
1017
- )