py2docfx 0.1.15rc2025477__py3-none-any.whl → 0.1.16__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.dist-info}/METADATA +1 -1
  139. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.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.dist-info}/WHEEL +0 -0
  604. {py2docfx-0.1.15rc2025477.dist-info → py2docfx-0.1.16.dist-info}/top_level.txt +0 -0
@@ -1,569 +0,0 @@
1
- import abc
2
- import atexit
3
- import contextlib
4
- import logging
5
- import os
6
- import pathlib
7
- import random
8
- import tempfile
9
- import time
10
- import typing
11
- import warnings
12
-
13
- from . import constants, exceptions, portalocker
14
-
15
- logger = logging.getLogger(__name__)
16
-
17
- DEFAULT_TIMEOUT = 5
18
- DEFAULT_CHECK_INTERVAL = 0.25
19
- DEFAULT_FAIL_WHEN_LOCKED = False
20
- LOCK_METHOD = constants.LockFlags.EXCLUSIVE | constants.LockFlags.NON_BLOCKING
21
-
22
- __all__ = [
23
- 'Lock',
24
- 'open_atomic',
25
- ]
26
-
27
- Filename = typing.Union[str, pathlib.Path]
28
-
29
-
30
- def coalesce(*args: typing.Any, test_value: typing.Any = None) -> typing.Any:
31
- '''Simple coalescing function that returns the first value that is not
32
- equal to the `test_value`. Or `None` if no value is valid. Usually this
33
- means that the last given value is the default value.
34
-
35
- Note that the `test_value` is compared using an identity check
36
- (i.e. `value is not test_value`) so changing the `test_value` won't work
37
- for all values.
38
-
39
- >>> coalesce(None, 1)
40
- 1
41
- >>> coalesce()
42
-
43
- >>> coalesce(0, False, True)
44
- 0
45
- >>> coalesce(0, False, True, test_value=0)
46
- False
47
-
48
- # This won't work because of the `is not test_value` type testing:
49
- >>> coalesce([], dict(spam='eggs'), test_value=[])
50
- []
51
- '''
52
- return next((arg for arg in args if arg is not test_value), None)
53
-
54
-
55
- @contextlib.contextmanager
56
- def open_atomic(
57
- filename: Filename,
58
- binary: bool = True,
59
- ) -> typing.Iterator[typing.IO]:
60
- '''Open a file for atomic writing. Instead of locking this method allows
61
- you to write the entire file and move it to the actual location. Note that
62
- this makes the assumption that a rename is atomic on your platform which
63
- is generally the case but not a guarantee.
64
-
65
- http://docs.python.org/library/os.html#os.rename
66
-
67
- >>> filename = 'test_file.txt'
68
- >>> if os.path.exists(filename):
69
- ... os.remove(filename)
70
-
71
- >>> with open_atomic(filename) as fh:
72
- ... written = fh.write(b'test')
73
- >>> assert os.path.exists(filename)
74
- >>> os.remove(filename)
75
-
76
- >>> import pathlib
77
- >>> path_filename = pathlib.Path('test_file.txt')
78
-
79
- >>> with open_atomic(path_filename) as fh:
80
- ... written = fh.write(b'test')
81
- >>> assert path_filename.exists()
82
- >>> path_filename.unlink()
83
- '''
84
- # `pathlib.Path` cast in case `path` is a `str`
85
- path: pathlib.Path = pathlib.Path(filename)
86
-
87
- assert not path.exists(), f'{path!r} exists'
88
-
89
- # Create the parent directory if it doesn't exist
90
- path.parent.mkdir(parents=True, exist_ok=True)
91
-
92
- temp_fh = tempfile.NamedTemporaryFile(
93
- mode=binary and 'wb' or 'w',
94
- dir=str(path.parent),
95
- delete=False,
96
- )
97
- yield temp_fh
98
- temp_fh.flush()
99
- os.fsync(temp_fh.fileno())
100
- temp_fh.close()
101
- try:
102
- os.rename(temp_fh.name, path)
103
- finally:
104
- with contextlib.suppress(Exception):
105
- os.remove(temp_fh.name)
106
-
107
-
108
- class LockBase(abc.ABC): # pragma: no cover
109
- #: timeout when trying to acquire a lock
110
- timeout: float
111
- #: check interval while waiting for `timeout`
112
- check_interval: float
113
- #: skip the timeout and immediately fail if the initial lock fails
114
- fail_when_locked: bool
115
-
116
- def __init__(
117
- self,
118
- timeout: typing.Optional[float] = None,
119
- check_interval: typing.Optional[float] = None,
120
- fail_when_locked: typing.Optional[bool] = None,
121
- ):
122
- self.timeout = coalesce(timeout, DEFAULT_TIMEOUT)
123
- self.check_interval = coalesce(check_interval, DEFAULT_CHECK_INTERVAL)
124
- self.fail_when_locked = coalesce(
125
- fail_when_locked,
126
- DEFAULT_FAIL_WHEN_LOCKED,
127
- )
128
-
129
- @abc.abstractmethod
130
- def acquire(
131
- self,
132
- timeout: typing.Optional[float] = None,
133
- check_interval: typing.Optional[float] = None,
134
- fail_when_locked: typing.Optional[bool] = None,
135
- ) -> typing.IO[typing.AnyStr]: ...
136
-
137
- def _timeout_generator(
138
- self,
139
- timeout: typing.Optional[float],
140
- check_interval: typing.Optional[float],
141
- ) -> typing.Iterator[int]:
142
- f_timeout = coalesce(timeout, self.timeout, 0.0)
143
- f_check_interval = coalesce(check_interval, self.check_interval, 0.0)
144
-
145
- yield 0
146
- i = 0
147
-
148
- start_time = time.perf_counter()
149
- while start_time + f_timeout > time.perf_counter():
150
- i += 1
151
- yield i
152
-
153
- # Take low lock checks into account to stay within the interval
154
- since_start_time = time.perf_counter() - start_time
155
- time.sleep(max(0.001, (i * f_check_interval) - since_start_time))
156
-
157
- @abc.abstractmethod
158
- def release(self): ...
159
-
160
- def __enter__(self) -> typing.IO[typing.AnyStr]:
161
- return self.acquire()
162
-
163
- def __exit__(
164
- self,
165
- exc_type: typing.Optional[typing.Type[BaseException]],
166
- exc_value: typing.Optional[BaseException],
167
- traceback: typing.Any, # Should be typing.TracebackType
168
- ) -> typing.Optional[bool]:
169
- self.release()
170
- return None
171
-
172
- def __delete__(self, instance):
173
- instance.release()
174
-
175
-
176
- class Lock(LockBase):
177
- '''Lock manager with built-in timeout
178
-
179
- Args:
180
- filename: filename
181
- mode: the open mode, 'a' or 'ab' should be used for writing. When mode
182
- contains `w` the file will be truncated to 0 bytes.
183
- timeout: timeout when trying to acquire a lock
184
- check_interval: check interval while waiting
185
- fail_when_locked: after the initial lock failed, return an error
186
- or lock the file. This does not wait for the timeout.
187
- **file_open_kwargs: The kwargs for the `open(...)` call
188
-
189
- fail_when_locked is useful when multiple threads/processes can race
190
- when creating a file. If set to true than the system will wait till
191
- the lock was acquired and then return an AlreadyLocked exception.
192
-
193
- Note that the file is opened first and locked later. So using 'w' as
194
- mode will result in truncate _BEFORE_ the lock is checked.
195
- '''
196
-
197
- def __init__(
198
- self,
199
- filename: Filename,
200
- mode: str = 'a',
201
- timeout: typing.Optional[float] = None,
202
- check_interval: float = DEFAULT_CHECK_INTERVAL,
203
- fail_when_locked: bool = DEFAULT_FAIL_WHEN_LOCKED,
204
- flags: constants.LockFlags = LOCK_METHOD,
205
- **file_open_kwargs,
206
- ):
207
- if 'w' in mode:
208
- truncate = True
209
- mode = mode.replace('w', 'a')
210
- else:
211
- truncate = False
212
-
213
- if timeout is None:
214
- timeout = DEFAULT_TIMEOUT
215
- elif not (flags & constants.LockFlags.NON_BLOCKING):
216
- warnings.warn(
217
- 'timeout has no effect in blocking mode',
218
- stacklevel=1,
219
- )
220
-
221
- self.fh: typing.Optional[typing.IO] = None
222
- self.filename: str = str(filename)
223
- self.mode: str = mode
224
- self.truncate: bool = truncate
225
- self.timeout: float = timeout
226
- self.check_interval: float = check_interval
227
- self.fail_when_locked: bool = fail_when_locked
228
- self.flags: constants.LockFlags = flags
229
- self.file_open_kwargs = file_open_kwargs
230
-
231
- def acquire(
232
- self,
233
- timeout: typing.Optional[float] = None,
234
- check_interval: typing.Optional[float] = None,
235
- fail_when_locked: typing.Optional[bool] = None,
236
- ) -> typing.IO[typing.AnyStr]:
237
- '''Acquire the locked filehandle'''
238
-
239
- fail_when_locked = coalesce(fail_when_locked, self.fail_when_locked)
240
-
241
- if (
242
- not (self.flags & constants.LockFlags.NON_BLOCKING)
243
- and timeout is not None
244
- ):
245
- warnings.warn(
246
- 'timeout has no effect in blocking mode',
247
- stacklevel=1,
248
- )
249
-
250
- # If we already have a filehandle, return it
251
- fh: typing.Optional[typing.IO] = self.fh
252
- if fh:
253
- return fh
254
-
255
- # Get a new filehandler
256
- fh = self._get_fh()
257
-
258
- def try_close(): # pragma: no cover
259
- # Silently try to close the handle if possible, ignore all issues
260
- if fh is not None:
261
- with contextlib.suppress(Exception):
262
- fh.close()
263
-
264
- exception = None
265
- # Try till the timeout has passed
266
- for _ in self._timeout_generator(timeout, check_interval):
267
- exception = None
268
- try:
269
- # Try to lock
270
- fh = self._get_lock(fh)
271
- break
272
- except exceptions.LockException as exc:
273
- # Python will automatically remove the variable from memory
274
- # unless you save it in a different location
275
- exception = exc
276
-
277
- # We already tried to the get the lock
278
- # If fail_when_locked is True, stop trying
279
- if fail_when_locked:
280
- try_close()
281
- raise exceptions.AlreadyLocked(exception) from exc
282
- except Exception as exc:
283
- # Something went wrong with the locking mechanism.
284
- # Wrap in a LockException and re-raise:
285
- try_close()
286
- raise exceptions.LockException(exc) from exc
287
-
288
- # Wait a bit
289
-
290
- if exception:
291
- try_close()
292
- # We got a timeout... reraising
293
- raise exception
294
-
295
- # Prepare the filehandle (truncate if needed)
296
- fh = self._prepare_fh(fh)
297
-
298
- self.fh = fh
299
- return fh
300
-
301
- def __enter__(self) -> typing.IO[typing.AnyStr]:
302
- return self.acquire()
303
-
304
- def release(self):
305
- '''Releases the currently locked file handle'''
306
- if self.fh:
307
- portalocker.unlock(self.fh)
308
- self.fh.close()
309
- self.fh = None
310
-
311
- def _get_fh(self) -> typing.IO:
312
- '''Get a new filehandle'''
313
- return open( # noqa: SIM115
314
- self.filename,
315
- self.mode,
316
- **self.file_open_kwargs,
317
- )
318
-
319
- def _get_lock(self, fh: typing.IO) -> typing.IO:
320
- '''
321
- Try to lock the given filehandle
322
-
323
- returns LockException if it fails'''
324
- portalocker.lock(fh, self.flags)
325
- return fh
326
-
327
- def _prepare_fh(self, fh: typing.IO) -> typing.IO:
328
- '''
329
- Prepare the filehandle for usage
330
-
331
- If truncate is a number, the file will be truncated to that amount of
332
- bytes
333
- '''
334
- if self.truncate:
335
- fh.seek(0)
336
- fh.truncate(0)
337
-
338
- return fh
339
-
340
-
341
- class RLock(Lock):
342
- '''
343
- A reentrant lock, functions in a similar way to threading.RLock in that it
344
- can be acquired multiple times. When the corresponding number of release()
345
- calls are made the lock will finally release the underlying file lock.
346
- '''
347
-
348
- def __init__(
349
- self,
350
- filename,
351
- mode='a',
352
- timeout=DEFAULT_TIMEOUT,
353
- check_interval=DEFAULT_CHECK_INTERVAL,
354
- fail_when_locked=False,
355
- flags=LOCK_METHOD,
356
- ):
357
- super().__init__(
358
- filename,
359
- mode,
360
- timeout,
361
- check_interval,
362
- fail_when_locked,
363
- flags,
364
- )
365
- self._acquire_count = 0
366
-
367
- def acquire(
368
- self,
369
- timeout: typing.Optional[float] = None,
370
- check_interval: typing.Optional[float] = None,
371
- fail_when_locked: typing.Optional[bool] = None,
372
- ) -> typing.IO:
373
- if self._acquire_count >= 1:
374
- fh = self.fh
375
- else:
376
- fh = super().acquire(timeout, check_interval, fail_when_locked)
377
- self._acquire_count += 1
378
- assert fh
379
- return fh
380
-
381
- def release(self):
382
- if self._acquire_count == 0:
383
- raise exceptions.LockException(
384
- 'Cannot release more times than acquired',
385
- )
386
-
387
- if self._acquire_count == 1:
388
- super().release()
389
- self._acquire_count -= 1
390
-
391
-
392
- class TemporaryFileLock(Lock):
393
- def __init__(
394
- self,
395
- filename='.lock',
396
- timeout=DEFAULT_TIMEOUT,
397
- check_interval=DEFAULT_CHECK_INTERVAL,
398
- fail_when_locked=True,
399
- flags=LOCK_METHOD,
400
- ):
401
- Lock.__init__(
402
- self,
403
- filename=filename,
404
- mode='w',
405
- timeout=timeout,
406
- check_interval=check_interval,
407
- fail_when_locked=fail_when_locked,
408
- flags=flags,
409
- )
410
- atexit.register(self.release)
411
-
412
- def release(self):
413
- Lock.release(self)
414
- if os.path.isfile(self.filename): # pragma: no branch
415
- os.unlink(self.filename)
416
-
417
-
418
- class BoundedSemaphore(LockBase):
419
- '''
420
- Bounded semaphore to prevent too many parallel processes from running
421
-
422
- This method is deprecated because multiple processes that are completely
423
- unrelated could end up using the same semaphore. To prevent this,
424
- use `NamedBoundedSemaphore` instead. The
425
- `NamedBoundedSemaphore` is a drop-in replacement for this class.
426
-
427
- >>> semaphore = BoundedSemaphore(2, directory='')
428
- >>> str(semaphore.get_filenames()[0])
429
- 'bounded_semaphore.00.lock'
430
- >>> str(sorted(semaphore.get_random_filenames())[1])
431
- 'bounded_semaphore.01.lock'
432
- '''
433
-
434
- lock: typing.Optional[Lock]
435
-
436
- def __init__(
437
- self,
438
- maximum: int,
439
- name: str = 'bounded_semaphore',
440
- filename_pattern: str = '{name}.{number:02d}.lock',
441
- directory: str = tempfile.gettempdir(),
442
- timeout: typing.Optional[float] = DEFAULT_TIMEOUT,
443
- check_interval: typing.Optional[float] = DEFAULT_CHECK_INTERVAL,
444
- fail_when_locked: typing.Optional[bool] = True,
445
- ):
446
- self.maximum = maximum
447
- self.name = name
448
- self.filename_pattern = filename_pattern
449
- self.directory = directory
450
- self.lock: typing.Optional[Lock] = None
451
- super().__init__(
452
- timeout=timeout,
453
- check_interval=check_interval,
454
- fail_when_locked=fail_when_locked,
455
- )
456
-
457
- if not name or name == 'bounded_semaphore':
458
- warnings.warn(
459
- '`BoundedSemaphore` without an explicit `name` '
460
- 'argument is deprecated, use NamedBoundedSemaphore',
461
- DeprecationWarning,
462
- stacklevel=1,
463
- )
464
-
465
- def get_filenames(self) -> typing.Sequence[pathlib.Path]:
466
- return [self.get_filename(n) for n in range(self.maximum)]
467
-
468
- def get_random_filenames(self) -> typing.Sequence[pathlib.Path]:
469
- filenames = list(self.get_filenames())
470
- random.shuffle(filenames)
471
- return filenames
472
-
473
- def get_filename(self, number) -> pathlib.Path:
474
- return pathlib.Path(self.directory) / self.filename_pattern.format(
475
- name=self.name,
476
- number=number,
477
- )
478
-
479
- def acquire( # type: ignore[override]
480
- self,
481
- timeout: typing.Optional[float] = None,
482
- check_interval: typing.Optional[float] = None,
483
- fail_when_locked: typing.Optional[bool] = None,
484
- ) -> typing.Optional[Lock]:
485
- assert not self.lock, 'Already locked'
486
-
487
- filenames = self.get_filenames()
488
-
489
- for n in self._timeout_generator(timeout, check_interval): # pragma:
490
- logger.debug('trying lock (attempt %d) %r', n, filenames)
491
- # no branch
492
- if self.try_lock(filenames): # pragma: no branch
493
- return self.lock # pragma: no cover
494
-
495
- if fail_when_locked := coalesce(
496
- fail_when_locked,
497
- self.fail_when_locked,
498
- ):
499
- raise exceptions.AlreadyLocked()
500
-
501
- return None
502
-
503
- def try_lock(self, filenames: typing.Sequence[Filename]) -> bool:
504
- filename: Filename
505
- for filename in filenames:
506
- logger.debug('trying lock for %r', filename)
507
- self.lock = Lock(filename, fail_when_locked=True)
508
- try:
509
- self.lock.acquire()
510
- except exceptions.AlreadyLocked:
511
- self.lock = None
512
- else:
513
- logger.debug('locked %r', filename)
514
- return True
515
-
516
- return False
517
-
518
- def release(self): # pragma: no cover
519
- if self.lock is not None:
520
- self.lock.release()
521
- self.lock = None
522
-
523
-
524
- class NamedBoundedSemaphore(BoundedSemaphore):
525
- '''
526
- Bounded semaphore to prevent too many parallel processes from running
527
-
528
- It's also possible to specify a timeout when acquiring the lock to wait
529
- for a resource to become available. This is very similar to
530
- `threading.BoundedSemaphore` but works across multiple processes and across
531
- multiple operating systems.
532
-
533
- Because this works across multiple processes it's important to give the
534
- semaphore a name. This name is used to create the lock files. If you
535
- don't specify a name, a random name will be generated. This means that
536
- you can't use the same semaphore in multiple processes unless you pass the
537
- semaphore object to the other processes.
538
-
539
- >>> semaphore = NamedBoundedSemaphore(2, name='test')
540
- >>> str(semaphore.get_filenames()[0])
541
- '...test.00.lock'
542
-
543
- >>> semaphore = NamedBoundedSemaphore(2)
544
- >>> 'bounded_semaphore' in str(semaphore.get_filenames()[0])
545
- True
546
-
547
- '''
548
-
549
- def __init__(
550
- self,
551
- maximum: int,
552
- name: typing.Optional[str] = None,
553
- filename_pattern: str = '{name}.{number:02d}.lock',
554
- directory: str = tempfile.gettempdir(),
555
- timeout: typing.Optional[float] = DEFAULT_TIMEOUT,
556
- check_interval: typing.Optional[float] = DEFAULT_CHECK_INTERVAL,
557
- fail_when_locked: typing.Optional[bool] = True,
558
- ):
559
- if name is None:
560
- name = 'bounded_semaphore.%d' % random.randint(0, 1000000)
561
- super().__init__(
562
- maximum,
563
- name,
564
- filename_pattern,
565
- directory,
566
- timeout,
567
- check_interval,
568
- fail_when_locked,
569
- )
@@ -1,4 +0,0 @@
1
- # Magic utility that "redirects" to pythoncomXX.dll
2
- import pywintypes
3
-
4
- pywintypes.__import_pywin32_system_module__("pythoncom", globals())