py2docfx 0.1.15.dev2025736__py3-none-any.whl → 0.1.15.dev2038808__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 (600) hide show
  1. py2docfx/docfx_yaml/process_doctree.py +34 -21
  2. py2docfx/docfx_yaml/tests/test_method_arguments.py +7 -1
  3. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  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 +48 -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 +115 -9
  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/test_bdist_wheel.py +93 -8
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  46. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  47. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
  48. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
  49. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
  50. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
  51. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
  52. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
  53. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
  54. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
  55. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
  56. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
  57. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
  58. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  59. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
  60. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
  61. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
  62. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
  63. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
  64. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
  65. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
  66. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
  67. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
  68. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
  69. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
  70. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
  71. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
  72. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
  73. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
  74. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
  75. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
  76. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
  77. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
  78. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
  79. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
  80. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
  81. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
  82. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
  83. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
  84. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
  85. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
  86. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
  87. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
  88. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
  89. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
  90. py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  91. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  92. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  93. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  94. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  95. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  96. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  97. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  98. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  99. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  107. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  108. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  109. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
  110. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  111. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  112. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  113. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  114. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  115. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  116. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  117. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  118. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  119. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  120. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  121. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  122. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +115 -9
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  131. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  132. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  133. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/METADATA +1 -1
  134. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/RECORD +136 -593
  135. py2docfx/docfx_yaml/tests/test_process_doctree.py +0 -120
  136. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
  137. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
  138. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
  139. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
  140. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
  141. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
  142. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
  143. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
  144. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
  145. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
  146. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
  147. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
  148. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
  149. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
  150. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
  151. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
  152. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
  153. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
  154. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
  155. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
  156. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
  157. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
  158. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
  159. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
  160. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
  161. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
  162. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
  163. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
  164. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
  165. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
  166. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
  167. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
  168. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
  169. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
  170. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
  171. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
  172. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
  173. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
  174. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
  175. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
  176. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
  177. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
  178. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
  179. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
  180. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
  181. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
  182. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
  183. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
  184. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
  185. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
  186. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
  187. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
  188. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
  189. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
  190. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
  191. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
  192. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
  193. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
  194. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
  195. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
  196. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
  197. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
  198. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
  199. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
  200. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
  201. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
  202. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
  203. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
  204. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
  205. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
  206. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
  207. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
  208. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
  209. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
  210. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
  211. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
  212. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
  213. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
  214. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
  215. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
  216. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
  217. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
  218. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
  219. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
  220. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
  221. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
  222. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
  223. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
  224. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
  225. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
  226. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
  227. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
  228. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
  229. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
  230. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
  231. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
  232. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
  233. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
  234. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
  235. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
  236. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
  237. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
  238. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
  239. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
  240. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
  241. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
  242. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
  243. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
  244. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
  245. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
  246. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
  247. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
  248. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
  249. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
  250. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
  251. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
  252. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
  253. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
  254. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
  255. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
  256. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
  257. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
  258. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
  259. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
  260. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
  261. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
  262. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
  263. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
  264. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
  265. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
  266. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
  267. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
  268. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
  269. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
  270. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
  271. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
  272. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
  273. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
  274. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
  275. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
  276. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
  277. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
  278. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
  279. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
  280. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
  281. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
  282. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
  283. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
  284. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
  285. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
  286. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
  287. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
  288. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
  289. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
  290. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
  291. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
  292. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
  293. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
  294. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
  295. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
  296. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
  297. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
  298. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
  299. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
  300. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
  301. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
  302. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
  303. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
  304. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
  305. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
  306. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
  307. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
  308. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
  309. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
  310. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
  311. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
  312. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
  313. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
  314. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
  315. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
  316. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
  317. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
  318. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
  319. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
  320. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
  321. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
  322. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
  323. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
  324. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
  325. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
  326. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
  327. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
  328. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
  329. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
  330. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
  331. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
  332. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
  333. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
  334. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
  335. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
  336. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
  337. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
  338. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
  339. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
  340. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
  341. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
  342. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
  343. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
  344. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
  345. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
  346. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
  347. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
  348. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
  349. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
  350. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
  351. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
  352. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
  353. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
  354. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
  355. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
  356. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
  357. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
  358. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
  359. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
  360. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
  361. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
  362. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
  363. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
  364. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
  365. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
  366. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
  367. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
  368. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
  369. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
  370. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
  371. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
  372. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
  373. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
  374. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
  375. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
  376. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
  377. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
  378. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
  379. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
  380. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
  381. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
  382. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
  383. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
  384. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
  385. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
  386. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
  387. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
  388. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
  389. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
  390. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
  391. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
  392. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
  393. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
  394. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
  395. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
  396. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
  397. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
  398. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
  399. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
  400. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
  401. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
  402. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
  403. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
  404. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
  405. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
  406. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
  407. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
  408. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
  409. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
  410. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
  411. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
  412. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
  413. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
  414. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
  415. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
  416. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
  417. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
  418. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
  419. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
  420. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
  421. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
  422. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
  423. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
  424. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
  425. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
  426. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
  427. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
  428. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
  429. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
  430. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
  431. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
  432. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
  433. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
  434. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
  435. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
  436. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
  437. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
  438. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  439. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
  440. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
  441. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
  442. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
  443. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
  444. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
  445. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
  446. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
  447. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
  448. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
  449. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
  450. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
  451. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
  452. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
  453. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
  454. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
  455. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
  456. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
  457. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
  458. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
  459. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
  460. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
  461. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
  462. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
  463. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
  464. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  465. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
  466. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
  467. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
  468. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
  469. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
  470. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
  471. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
  472. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
  473. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
  474. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
  475. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
  476. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
  477. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
  478. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
  479. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
  480. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
  481. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
  482. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
  483. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
  484. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
  485. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
  486. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
  487. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
  488. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
  489. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
  490. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
  491. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
  492. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
  493. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
  494. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
  495. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
  496. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
  497. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
  498. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
  499. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
  500. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
  501. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
  502. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
  503. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
  504. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
  505. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
  506. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
  507. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
  508. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
  509. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
  510. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
  511. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
  512. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
  513. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
  514. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
  515. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
  516. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
  517. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
  518. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
  519. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
  520. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
  521. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
  522. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
  523. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
  524. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
  525. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
  526. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
  527. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
  528. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
  529. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
  530. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
  531. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
  532. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
  533. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
  534. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
  535. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
  536. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
  537. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
  538. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
  539. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
  540. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
  541. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
  542. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
  543. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  544. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
  545. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
  546. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
  547. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
  548. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
  549. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
  550. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
  551. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
  552. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
  553. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
  554. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
  555. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
  556. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
  557. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
  558. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
  559. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
  560. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
  561. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
  562. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
  563. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
  564. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
  565. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
  566. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
  567. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
  568. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
  569. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
  570. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
  571. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
  572. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
  573. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
  574. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
  575. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
  576. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
  577. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
  578. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
  579. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
  580. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
  581. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
  582. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
  583. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
  584. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
  585. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
  586. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
  587. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
  588. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
  589. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
  590. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
  591. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
  592. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
  593. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
  594. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
  595. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
  596. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
  597. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
  598. py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
  599. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/WHEEL +0 -0
  600. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/top_level.txt +0 -0
@@ -1,413 +0,0 @@
1
- """
2
- Helper classes for SSPI authentication via the win32security module.
3
-
4
- SSPI authentication involves a token-exchange "dance", the exact details
5
- of which depends on the authentication provider used. There are also
6
- a number of complex flags and constants that need to be used - in most
7
- cases, there are reasonable defaults.
8
-
9
- These classes attempt to hide these details from you until you really need
10
- to know. They are not designed to handle all cases, just the common ones.
11
- If you need finer control than offered here, just use the win32security
12
- functions directly.
13
- """
14
-
15
- # Based on Roger Upole's sspi demos.
16
- # $Id$
17
- import sspicon
18
- import win32security
19
-
20
- error = win32security.error # Re-exported alias
21
-
22
-
23
- class _BaseAuth:
24
- def __init__(self):
25
- self.reset()
26
-
27
- def reset(self):
28
- """Reset everything to an unauthorized state"""
29
- self.ctxt: win32security.PyCtxtHandleType | None = None
30
- self.authenticated = False
31
- self.initiator_name = None
32
- self.service_name = None
33
-
34
- # The next seq_num for an encrypt/sign operation
35
- self.next_seq_num = 0
36
-
37
- def _get_next_seq_num(self):
38
- """Get the next sequence number for a transmission. Default
39
- implementation is to increment a counter
40
- """
41
- ret = self.next_seq_num
42
- self.next_seq_num += 1
43
- return ret
44
-
45
- def encrypt(self, data):
46
- """Encrypt a string, returning a tuple of (encrypted_data, trailer).
47
- These can be passed to decrypt to get back the original string.
48
- """
49
- pkg_size_info = self.ctxt.QueryContextAttributes(sspicon.SECPKG_ATTR_SIZES)
50
- trailersize = pkg_size_info["SecurityTrailer"]
51
-
52
- encbuf = win32security.PySecBufferDescType()
53
- encbuf.append(win32security.PySecBufferType(len(data), sspicon.SECBUFFER_DATA))
54
- encbuf.append(
55
- win32security.PySecBufferType(trailersize, sspicon.SECBUFFER_TOKEN)
56
- )
57
- encbuf[0].Buffer = data
58
- self.ctxt.EncryptMessage(0, encbuf, self._get_next_seq_num())
59
- return encbuf[0].Buffer, encbuf[1].Buffer
60
-
61
- def decrypt(self, data, trailer):
62
- """Decrypt a previously encrypted string, returning the orignal data"""
63
- encbuf = win32security.PySecBufferDescType()
64
- encbuf.append(win32security.PySecBufferType(len(data), sspicon.SECBUFFER_DATA))
65
- encbuf.append(
66
- win32security.PySecBufferType(len(trailer), sspicon.SECBUFFER_TOKEN)
67
- )
68
- encbuf[0].Buffer = data
69
- encbuf[1].Buffer = trailer
70
- self.ctxt.DecryptMessage(encbuf, self._get_next_seq_num())
71
- return encbuf[0].Buffer
72
-
73
- def sign(self, data):
74
- """sign a string suitable for transmission, returning the signature.
75
- Passing the data and signature to verify will determine if the data
76
- is unchanged.
77
- """
78
- pkg_size_info = self.ctxt.QueryContextAttributes(sspicon.SECPKG_ATTR_SIZES)
79
- sigsize = pkg_size_info["MaxSignature"]
80
- sigbuf = win32security.PySecBufferDescType()
81
- sigbuf.append(win32security.PySecBufferType(len(data), sspicon.SECBUFFER_DATA))
82
- sigbuf.append(win32security.PySecBufferType(sigsize, sspicon.SECBUFFER_TOKEN))
83
- sigbuf[0].Buffer = data
84
-
85
- self.ctxt.MakeSignature(0, sigbuf, self._get_next_seq_num())
86
- return sigbuf[1].Buffer
87
-
88
- def verify(self, data, sig):
89
- """Verifies data and its signature. If verification fails, an sspi.error
90
- will be raised.
91
- """
92
- sigbuf = win32security.PySecBufferDescType()
93
- sigbuf.append(win32security.PySecBufferType(len(data), sspicon.SECBUFFER_DATA))
94
- sigbuf.append(win32security.PySecBufferType(len(sig), sspicon.SECBUFFER_TOKEN))
95
-
96
- sigbuf[0].Buffer = data
97
- sigbuf[1].Buffer = sig
98
- self.ctxt.VerifySignature(sigbuf, self._get_next_seq_num())
99
-
100
- def unwrap(self, token):
101
- """
102
- GSSAPI's unwrap with SSPI.
103
- https://learn.microsoft.com/en-us/windows/win32/secauthn/sspi-kerberos-interoperability-with-gssapi
104
-
105
- Usable mainly with Kerberos SSPI package, but this is not enforced.
106
-
107
- Return the clear text, and a boolean that is True if the token was encrypted.
108
- """
109
- buffer = win32security.PySecBufferDescType()
110
- # This buffer will contain a "stream", which is the token coming from the other side
111
- buffer.append(
112
- win32security.PySecBufferType(len(token), sspicon.SECBUFFER_STREAM)
113
- )
114
- buffer[0].Buffer = token
115
-
116
- # This buffer will receive the clear, or just unwrapped text if no encryption was used.
117
- # Will be resized by the lib.
118
- buffer.append(win32security.PySecBufferType(0, sspicon.SECBUFFER_DATA))
119
-
120
- pfQOP = self.ctxt.DecryptMessage(buffer, self._get_next_seq_num())
121
-
122
- r = buffer[1].Buffer
123
- return r, not (pfQOP == sspicon.SECQOP_WRAP_NO_ENCRYPT)
124
-
125
- def wrap(self, msg, encrypt=False):
126
- """
127
- GSSAPI's wrap with SSPI.
128
- https://learn.microsoft.com/en-us/windows/win32/secauthn/sspi-kerberos-interoperability-with-gssapi
129
-
130
- Usable mainly with Kerberos SSPI package, but this is not enforced.
131
-
132
- Wrap a message to be sent to the other side. Encrypted if encrypt is True.
133
- """
134
-
135
- size_info = self.ctxt.QueryContextAttributes(sspicon.SECPKG_ATTR_SIZES)
136
- trailer_size = size_info["SecurityTrailer"]
137
- block_size = size_info["BlockSize"]
138
-
139
- buffer = win32security.PySecBufferDescType()
140
-
141
- # This buffer will contain unencrypted data to wrap, and maybe encrypt.
142
- buffer.append(win32security.PySecBufferType(len(msg), sspicon.SECBUFFER_DATA))
143
- buffer[0].Buffer = msg
144
-
145
- # Will receive the token that forms the beginning of the msg
146
- buffer.append(
147
- win32security.PySecBufferType(trailer_size, sspicon.SECBUFFER_TOKEN)
148
- )
149
-
150
- # The trailer is needed in case of block encryption
151
- buffer.append(
152
- win32security.PySecBufferType(block_size, sspicon.SECBUFFER_PADDING)
153
- )
154
-
155
- fQOP = 0 if encrypt else sspicon.SECQOP_WRAP_NO_ENCRYPT
156
- self.ctxt.EncryptMessage(fQOP, buffer, self._get_next_seq_num())
157
-
158
- # Sec token, then data, then padding
159
- r = buffer[1].Buffer + buffer[0].Buffer + buffer[2].Buffer
160
- return r
161
-
162
- def _amend_ctx_name(self):
163
- """Adds initiator and service names in the security context for ease of use"""
164
- if not self.authenticated:
165
- raise ValueError("Sec context is not completely authenticated")
166
-
167
- try:
168
- names = self.ctxt.QueryContextAttributes(sspicon.SECPKG_ATTR_NATIVE_NAMES)
169
- except error:
170
- # The SSP doesn't provide these attributes.
171
- pass
172
- else:
173
- self.initiator_name, self.service_name = names
174
-
175
-
176
- class ClientAuth(_BaseAuth):
177
- """Manages the client side of an SSPI authentication handshake"""
178
-
179
- def __init__(
180
- self,
181
- pkg_name, # Name of the package to used.
182
- client_name=None, # User for whom credentials are used.
183
- auth_info=None, # or a tuple of (username, domain, password)
184
- targetspn=None, # Target security context provider name.
185
- scflags=None, # security context flags
186
- datarep=sspicon.SECURITY_NETWORK_DREP,
187
- ):
188
- if scflags is None:
189
- scflags = (
190
- sspicon.ISC_REQ_INTEGRITY
191
- | sspicon.ISC_REQ_SEQUENCE_DETECT
192
- | sspicon.ISC_REQ_REPLAY_DETECT
193
- | sspicon.ISC_REQ_CONFIDENTIALITY
194
- )
195
- self.scflags = scflags
196
- self.datarep = datarep
197
- self.targetspn = targetspn
198
- self.pkg_info = win32security.QuerySecurityPackageInfo(pkg_name)
199
- (
200
- self.credentials,
201
- self.credentials_expiry,
202
- ) = win32security.AcquireCredentialsHandle(
203
- client_name,
204
- self.pkg_info["Name"],
205
- sspicon.SECPKG_CRED_OUTBOUND,
206
- None,
207
- auth_info,
208
- )
209
- _BaseAuth.__init__(self)
210
-
211
- def authorize(self, sec_buffer_in):
212
- """Perform *one* step of the client authentication process. Pass None for the first round"""
213
- if sec_buffer_in is not None and not isinstance(
214
- sec_buffer_in, win32security.PySecBufferDescType
215
- ):
216
- # User passed us the raw data - wrap it into a SecBufferDesc
217
- sec_buffer_new = win32security.PySecBufferDescType()
218
- tokenbuf = win32security.PySecBufferType(
219
- self.pkg_info["MaxToken"], sspicon.SECBUFFER_TOKEN
220
- )
221
- tokenbuf.Buffer = sec_buffer_in
222
- sec_buffer_new.append(tokenbuf)
223
- sec_buffer_in = sec_buffer_new
224
- sec_buffer_out = win32security.PySecBufferDescType()
225
- tokenbuf = win32security.PySecBufferType(
226
- self.pkg_info["MaxToken"], sspicon.SECBUFFER_TOKEN
227
- )
228
- sec_buffer_out.append(tokenbuf)
229
- ## input context handle should be NULL on first call
230
- ctxtin = self.ctxt
231
- if self.ctxt is None:
232
- self.ctxt = win32security.PyCtxtHandleType()
233
- err, attr, exp = win32security.InitializeSecurityContext(
234
- self.credentials,
235
- ctxtin,
236
- self.targetspn,
237
- self.scflags,
238
- self.datarep,
239
- sec_buffer_in,
240
- self.ctxt,
241
- sec_buffer_out,
242
- )
243
- # Stash these away incase someone needs to know the state from the
244
- # final call.
245
- self.ctxt_attr = attr
246
- self.ctxt_expiry = exp
247
-
248
- if err in (sspicon.SEC_I_COMPLETE_NEEDED, sspicon.SEC_I_COMPLETE_AND_CONTINUE):
249
- self.ctxt.CompleteAuthToken(sec_buffer_out)
250
-
251
- self.authenticated = err == 0
252
- if self.authenticated:
253
- self._amend_ctx_name()
254
-
255
- return err, sec_buffer_out
256
-
257
-
258
- class ServerAuth(_BaseAuth):
259
- """Manages the server side of an SSPI authentication handshake"""
260
-
261
- def __init__(
262
- self, pkg_name, spn=None, scflags=None, datarep=sspicon.SECURITY_NETWORK_DREP
263
- ):
264
- self.spn = spn
265
- self.datarep = datarep
266
-
267
- if scflags is None:
268
- scflags = (
269
- sspicon.ASC_REQ_INTEGRITY
270
- | sspicon.ASC_REQ_SEQUENCE_DETECT
271
- | sspicon.ASC_REQ_REPLAY_DETECT
272
- | sspicon.ASC_REQ_CONFIDENTIALITY
273
- )
274
- # Should we default to sspicon.KerbAddExtraCredentialsMessage
275
- # if pkg_name=='Kerberos'?
276
- self.scflags = scflags
277
-
278
- self.pkg_info = win32security.QuerySecurityPackageInfo(pkg_name)
279
-
280
- (
281
- self.credentials,
282
- self.credentials_expiry,
283
- ) = win32security.AcquireCredentialsHandle(
284
- spn, self.pkg_info["Name"], sspicon.SECPKG_CRED_INBOUND, None, None
285
- )
286
- _BaseAuth.__init__(self)
287
-
288
- def authorize(self, sec_buffer_in):
289
- """Perform *one* step of the server authentication process."""
290
- if sec_buffer_in is not None and not isinstance(
291
- sec_buffer_in, win32security.PySecBufferDescType
292
- ):
293
- # User passed us the raw data - wrap it into a SecBufferDesc
294
- sec_buffer_new = win32security.PySecBufferDescType()
295
- tokenbuf = win32security.PySecBufferType(
296
- self.pkg_info["MaxToken"], sspicon.SECBUFFER_TOKEN
297
- )
298
- tokenbuf.Buffer = sec_buffer_in
299
- sec_buffer_new.append(tokenbuf)
300
- sec_buffer_in = sec_buffer_new
301
-
302
- sec_buffer_out = win32security.PySecBufferDescType()
303
- tokenbuf = win32security.PySecBufferType(
304
- self.pkg_info["MaxToken"], sspicon.SECBUFFER_TOKEN
305
- )
306
- sec_buffer_out.append(tokenbuf)
307
- ## input context handle is None initially, then handle returned from last call thereafter
308
- ctxtin = self.ctxt
309
- if self.ctxt is None:
310
- self.ctxt = win32security.PyCtxtHandleType()
311
- err, attr, exp = win32security.AcceptSecurityContext(
312
- self.credentials,
313
- ctxtin,
314
- sec_buffer_in,
315
- self.scflags,
316
- self.datarep,
317
- self.ctxt,
318
- sec_buffer_out,
319
- )
320
-
321
- # Stash these away incase someone needs to know the state from the
322
- # final call.
323
- self.ctxt_attr = attr
324
- self.ctxt_expiry = exp
325
-
326
- if err in (sspicon.SEC_I_COMPLETE_NEEDED, sspicon.SEC_I_COMPLETE_AND_CONTINUE):
327
- self.ctxt.CompleteAuthToken(sec_buffer_out)
328
-
329
- self.authenticated = err == 0
330
- if self.authenticated:
331
- self._amend_ctx_name()
332
-
333
- return err, sec_buffer_out
334
-
335
-
336
- if __name__ == "__main__":
337
- # This is the security package (the security support provider / the security backend)
338
- # we want to use for this example.
339
- ssp = "Kerberos" # or "NTLM" or "Negotiate" which enable negotiation between
340
- # Kerberos (prefered) and NTLM (if not supported on the other side).
341
-
342
- flags = (
343
- sspicon.ISC_REQ_MUTUAL_AUTH
344
- | sspicon.ISC_REQ_INTEGRITY # mutual authentication
345
- | sspicon.ISC_REQ_SEQUENCE_DETECT # check for integrity
346
- | sspicon.ISC_REQ_CONFIDENTIALITY # enable out-of-order messages
347
- | sspicon.ISC_REQ_REPLAY_DETECT # request confidentiality # request replay detection
348
- )
349
-
350
- # Get our identity, mandatory for the Kerberos case *for this example*
351
- # Kerberos cannot be used if we don't tell it the target we want
352
- # to authenticate to.
353
- cred_handle, exp = win32security.AcquireCredentialsHandle(
354
- None, ssp, sspicon.SECPKG_CRED_INBOUND, None, None
355
- )
356
- cred = cred_handle.QueryCredentialsAttributes(sspicon.SECPKG_CRED_ATTR_NAMES)
357
- print("We are:", cred)
358
-
359
- # Setup the 2 contexts. In real life, only one is needed: the other one is
360
- # created in the process we want to communicate with.
361
- sspiclient = ClientAuth(ssp, scflags=flags, targetspn=cred)
362
- sspiserver = ServerAuth(ssp, scflags=flags)
363
-
364
- print(
365
- "SSP : {} ({})".format(
366
- sspiclient.pkg_info["Name"], sspiclient.pkg_info["Comment"]
367
- )
368
- )
369
-
370
- # Perform the authentication dance, each loop exchanging more information
371
- # on the way to completing authentication.
372
- sec_buffer = None
373
- client_step = 0
374
- server_step = 0
375
- while not sspiclient.authenticated or (sec_buffer and len(sec_buffer[0].Buffer)):
376
- client_step += 1
377
- err, sec_buffer = sspiclient.authorize(sec_buffer)
378
- print("Client step %s" % client_step)
379
- if sspiserver.authenticated and len(sec_buffer[0].Buffer) == 0:
380
- break
381
-
382
- server_step += 1
383
- err, sec_buffer = sspiserver.authorize(sec_buffer)
384
- print("Server step %s" % server_step)
385
-
386
- # Authentication process is finished.
387
- print("Initiator name from the service side:", sspiserver.initiator_name)
388
- print("Service name from the client side: ", sspiclient.service_name)
389
-
390
- data = b"hello"
391
-
392
- # Simple signature, not compatible with GSSAPI.
393
- sig = sspiclient.sign(data)
394
- sspiserver.verify(data, sig)
395
-
396
- # Encryption
397
- encrypted, sig = sspiclient.encrypt(data)
398
- decrypted = sspiserver.decrypt(encrypted, sig)
399
- assert decrypted == data
400
-
401
- # GSSAPI wrapping, no encryption (NTLM always encrypts)
402
- wrapped = sspiclient.wrap(data)
403
- unwrapped, was_encrypted = sspiserver.unwrap(wrapped)
404
- print("encrypted ?", was_encrypted)
405
- assert data == unwrapped
406
-
407
- # GSSAPI wrapping, with encryption
408
- wrapped = sspiserver.wrap(data, encrypt=True)
409
- unwrapped, was_encrypted = sspiclient.unwrap(wrapped)
410
- print("encrypted ?", was_encrypted)
411
- assert data == unwrapped
412
-
413
- print("cool!")