py2docfx 0.1.15.dev2025501__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 (597) hide show
  1. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  2. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  3. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  18. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  19. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  20. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +29 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +115 -9
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +12 -3
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  44. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  45. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
  46. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
  47. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
  48. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
  49. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
  50. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
  51. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
  52. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
  53. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
  54. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
  55. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
  56. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  57. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
  58. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
  59. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
  60. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
  61. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
  62. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
  63. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
  64. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
  65. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
  66. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
  67. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
  68. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
  69. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
  70. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
  71. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
  72. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
  73. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
  74. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
  75. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
  76. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
  77. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
  78. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
  79. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
  80. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
  81. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
  82. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
  83. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
  84. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
  85. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
  86. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
  87. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
  88. py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  89. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  90. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  91. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  92. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  93. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  94. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  95. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  96. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  97. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  98. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  99. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  107. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
  108. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  109. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  110. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  111. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  112. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  113. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  114. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  115. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  116. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  117. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  118. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  119. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  120. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  121. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  122. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +115 -9
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  131. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/METADATA +1 -1
  132. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/RECORD +134 -590
  133. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
  134. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
  135. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
  136. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
  137. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
  138. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
  139. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
  140. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
  141. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
  142. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
  143. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
  144. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
  145. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
  146. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
  147. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
  148. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
  149. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
  150. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
  151. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
  152. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
  153. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
  154. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
  155. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
  156. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
  157. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
  158. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
  159. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
  160. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
  161. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
  162. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
  163. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
  164. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
  165. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
  166. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
  167. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
  168. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
  169. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
  170. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
  171. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
  172. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
  173. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
  174. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
  175. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
  176. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
  177. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
  178. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
  179. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
  180. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
  181. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
  182. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
  183. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
  184. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
  185. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
  186. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
  187. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
  188. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
  189. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
  190. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
  191. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
  192. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
  193. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
  194. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
  195. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
  196. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
  197. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
  198. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
  199. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
  200. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
  201. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
  202. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
  203. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
  204. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
  205. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
  206. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
  207. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
  208. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
  209. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
  210. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
  211. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
  212. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
  213. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
  214. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
  215. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
  216. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
  217. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
  218. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
  219. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
  220. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
  221. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
  222. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
  223. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
  224. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
  225. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
  226. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
  227. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
  228. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
  229. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
  230. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
  231. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
  232. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
  233. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
  234. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
  235. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
  236. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
  237. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
  238. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
  239. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
  240. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
  241. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
  242. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
  243. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
  244. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
  245. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
  246. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
  247. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
  248. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
  249. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
  250. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
  251. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
  252. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
  253. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
  254. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
  255. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
  256. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
  257. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
  258. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
  259. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
  260. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
  261. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
  262. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
  263. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
  264. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
  265. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
  266. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
  267. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
  268. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
  269. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
  270. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
  271. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
  272. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
  273. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
  274. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
  275. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
  276. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
  277. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
  278. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
  279. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
  280. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
  281. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
  282. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
  283. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
  284. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
  285. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
  286. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
  287. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
  288. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
  289. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
  290. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
  291. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
  292. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
  293. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
  294. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
  295. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
  296. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
  297. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
  298. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
  299. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
  300. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
  301. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
  302. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
  303. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
  304. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
  305. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
  306. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
  307. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
  308. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
  309. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
  310. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
  311. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
  312. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
  313. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
  314. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
  315. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
  316. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
  317. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
  318. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
  319. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
  320. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
  321. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
  322. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
  323. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
  324. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
  325. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
  326. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
  327. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
  328. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
  329. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
  330. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
  331. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
  332. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
  333. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
  334. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
  335. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
  336. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
  337. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
  338. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
  339. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
  340. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
  341. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
  342. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
  343. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
  344. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
  345. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
  346. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
  347. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
  348. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
  349. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
  350. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
  351. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
  352. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
  353. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
  354. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
  355. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
  356. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
  357. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
  358. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
  359. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
  360. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
  361. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
  362. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
  363. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
  364. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
  365. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
  366. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
  367. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
  368. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
  369. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
  370. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
  371. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
  372. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
  373. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
  374. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
  375. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
  376. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
  377. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
  378. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
  379. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
  380. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
  381. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
  382. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
  383. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
  384. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
  385. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
  386. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
  387. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
  388. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
  389. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
  390. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
  391. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
  392. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
  393. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
  394. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
  395. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
  396. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
  397. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
  398. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
  399. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
  400. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
  401. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
  402. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
  403. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
  404. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
  405. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
  406. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
  407. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
  408. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
  409. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
  410. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
  411. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
  412. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
  413. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
  414. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
  415. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
  416. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
  417. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
  418. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
  419. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
  420. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
  421. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
  422. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
  423. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
  424. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
  425. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
  426. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
  427. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
  428. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
  429. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
  430. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
  431. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
  432. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
  433. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
  434. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
  435. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  436. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
  437. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
  438. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
  439. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
  440. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
  441. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
  442. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
  443. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
  444. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
  445. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
  446. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
  447. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
  448. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
  449. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
  450. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
  451. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
  452. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
  453. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
  454. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
  455. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
  456. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
  457. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
  458. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
  459. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
  460. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
  461. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  462. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
  463. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
  464. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
  465. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
  466. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
  467. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
  468. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
  469. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
  470. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
  471. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
  472. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
  473. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
  474. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
  475. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
  476. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
  477. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
  478. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
  479. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
  480. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
  481. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
  482. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
  483. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
  484. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
  485. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
  486. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
  487. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
  488. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
  489. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
  490. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
  491. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
  492. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
  493. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
  494. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
  495. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
  496. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
  497. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
  498. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
  499. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
  500. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
  501. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
  502. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
  503. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
  504. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
  505. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
  506. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
  507. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
  508. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
  509. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
  510. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
  511. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
  512. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
  513. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
  514. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
  515. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
  516. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
  517. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
  518. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
  519. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
  520. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
  521. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
  522. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
  523. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
  524. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
  525. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
  526. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
  527. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
  528. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
  529. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
  530. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
  531. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
  532. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
  533. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
  534. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
  535. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
  536. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
  537. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
  538. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
  539. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
  540. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  541. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
  542. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
  543. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
  544. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
  545. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
  546. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
  547. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
  548. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
  549. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
  550. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
  551. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
  552. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
  553. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
  554. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
  555. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
  556. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
  557. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
  558. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
  559. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
  560. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
  561. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
  562. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
  563. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
  564. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
  565. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
  566. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
  567. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
  568. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
  569. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
  570. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
  571. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
  572. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
  573. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
  574. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
  575. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
  576. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
  577. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
  578. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
  579. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
  580. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
  581. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
  582. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
  583. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
  584. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
  585. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
  586. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
  587. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
  588. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
  589. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
  590. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
  591. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
  592. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
  593. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
  594. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
  595. py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
  596. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/WHEEL +0 -0
  597. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/top_level.txt +0 -0
@@ -164,12 +164,15 @@ class _TroveClassifier:
164
164
  """
165
165
 
166
166
  downloaded: typing.Union[None, "Literal[False]", typing.Set[str]]
167
+ """
168
+ None => not cached yet
169
+ False => unavailable
170
+ set => cached values
171
+ """
167
172
 
168
173
  def __init__(self) -> None:
169
174
  self.downloaded = None
170
175
  self._skip_download = False
171
- # None => not cached yet
172
- # False => cache not available
173
176
  self.__name__ = "trove_classifier" # Emulate a public function
174
177
 
175
178
  def _disable_download(self) -> None:
@@ -351,7 +354,7 @@ def python_entrypoint_reference(value: str) -> bool:
351
354
  obj = rest
352
355
 
353
356
  module_parts = module.split(".")
354
- identifiers = _chain(module_parts, obj.split(".")) if rest else module_parts
357
+ identifiers = _chain(module_parts, obj.split(".")) if rest else iter(module_parts)
355
358
  return all(python_identifier(i.strip()) for i in identifiers)
356
359
 
357
360
 
@@ -373,3 +376,27 @@ def uint(value: builtins.int) -> bool:
373
376
  def int(value: builtins.int) -> bool:
374
377
  r"""Signed 64-bit integer (:math:`-2^{63} \leq x < 2^{63}`)"""
375
378
  return -(2**63) <= value < 2**63
379
+
380
+
381
+ try:
382
+ from packaging import licenses as _licenses
383
+
384
+ def SPDX(value: str) -> bool:
385
+ """See :ref:`PyPA's License-Expression specification
386
+ <pypa:core-metadata-license-expression>` (added in :pep:`639`).
387
+ """
388
+ try:
389
+ _licenses.canonicalize_license_expression(value)
390
+ return True
391
+ except _licenses.InvalidLicenseExpression:
392
+ return False
393
+
394
+ except ImportError: # pragma: no cover
395
+ _logger.warning(
396
+ "Could not find an up-to-date installation of `packaging`. "
397
+ "License expressions might not be validated. "
398
+ "To enforce validation, please install `packaging>=24.2`."
399
+ )
400
+
401
+ def SPDX(value: str) -> bool:
402
+ return True
@@ -6,8 +6,8 @@ import numbers
6
6
  import os
7
7
  import re
8
8
  import sys
9
- from collections.abc import Iterable, MutableMapping, Sequence
10
- from glob import iglob
9
+ from collections.abc import Iterable, Iterator, MutableMapping, Sequence
10
+ from glob import glob
11
11
  from pathlib import Path
12
12
  from typing import TYPE_CHECKING, Any, Union
13
13
 
@@ -23,10 +23,12 @@ from . import (
23
23
  command as _, # noqa: F401 # imported for side-effects
24
24
  )
25
25
  from ._importlib import metadata
26
+ from ._normalization import _canonicalize_license_expression
26
27
  from ._path import StrPath
27
28
  from ._reqs import _StrOrIter
28
29
  from .config import pyprojecttoml, setupcfg
29
30
  from .discovery import ConfigDiscovery
31
+ from .errors import InvalidConfigError
30
32
  from .monkey import get_unpatched
31
33
  from .warnings import InformationOnly, SetuptoolsDeprecationWarning
32
34
 
@@ -288,6 +290,7 @@ class Distribution(_Distribution):
288
290
  'long_description_content_type': lambda: None,
289
291
  'project_urls': dict,
290
292
  'provides_extras': dict, # behaves like an ordered set
293
+ 'license_expression': lambda: None,
291
294
  'license_file': lambda: None,
292
295
  'license_files': lambda: None,
293
296
  'install_requires': list,
@@ -402,6 +405,46 @@ class Distribution(_Distribution):
402
405
  (k, list(map(str, _reqs.parse(v or [])))) for k, v in extras_require.items()
403
406
  )
404
407
 
408
+ def _finalize_license_expression(self) -> None:
409
+ """
410
+ Normalize license and license_expression.
411
+ >>> dist = Distribution({"license_expression": _static.Str("mit aNd gpl-3.0-OR-later")})
412
+ >>> _static.is_static(dist.metadata.license_expression)
413
+ True
414
+ >>> dist._finalize_license_expression()
415
+ >>> _static.is_static(dist.metadata.license_expression) # preserve "static-ness"
416
+ True
417
+ >>> print(dist.metadata.license_expression)
418
+ MIT AND GPL-3.0-or-later
419
+ """
420
+ classifiers = self.metadata.get_classifiers()
421
+ license_classifiers = [cl for cl in classifiers if cl.startswith("License :: ")]
422
+
423
+ license_expr = self.metadata.license_expression
424
+ if license_expr:
425
+ str_ = _static.Str if _static.is_static(license_expr) else str
426
+ normalized = str_(_canonicalize_license_expression(license_expr))
427
+ if license_expr != normalized:
428
+ InformationOnly.emit(f"Normalizing '{license_expr}' to '{normalized}'")
429
+ self.metadata.license_expression = normalized
430
+ if license_classifiers:
431
+ raise InvalidConfigError(
432
+ "License classifiers have been superseded by license expressions "
433
+ "(see https://peps.python.org/pep-0639/). Please remove:\n\n"
434
+ + "\n".join(license_classifiers),
435
+ )
436
+ elif license_classifiers:
437
+ pypa_guides = "guides/writing-pyproject-toml/#license"
438
+ SetuptoolsDeprecationWarning.emit(
439
+ "License classifiers are deprecated.",
440
+ "Please consider removing the following classifiers in favor of a "
441
+ "SPDX license expression:\n\n" + "\n".join(license_classifiers),
442
+ see_url=f"https://packaging.python.org/en/latest/{pypa_guides}",
443
+ # Warning introduced on 2025-02-17
444
+ # TODO: Should we add a due date? It may affect old/unmaintained
445
+ # packages in the ecosystem and cause problems...
446
+ )
447
+
405
448
  def _finalize_license_files(self) -> None:
406
449
  """Compute names of all license files which should be included."""
407
450
  license_files: list[str] | None = self.metadata.license_files
@@ -416,26 +459,88 @@ class Distribution(_Distribution):
416
459
  # See https://wheel.readthedocs.io/en/stable/user_guide.html
417
460
  # -> 'Including license files in the generated wheel file'
418
461
  patterns = ['LICEN[CS]E*', 'COPYING*', 'NOTICE*', 'AUTHORS*']
462
+ files = self._expand_patterns(patterns, enforce_match=False)
463
+ else: # Patterns explicitly given by the user
464
+ files = self._expand_patterns(patterns, enforce_match=True)
419
465
 
420
- self.metadata.license_files = list(
421
- unique_everseen(self._expand_patterns(patterns))
422
- )
466
+ self.metadata.license_files = list(unique_everseen(files))
423
467
 
424
- @staticmethod
425
- def _expand_patterns(patterns):
468
+ @classmethod
469
+ def _expand_patterns(
470
+ cls, patterns: list[str], enforce_match: bool = True
471
+ ) -> Iterator[str]:
426
472
  """
427
473
  >>> list(Distribution._expand_patterns(['LICENSE']))
428
474
  ['LICENSE']
429
475
  >>> list(Distribution._expand_patterns(['pyproject.toml', 'LIC*']))
430
476
  ['pyproject.toml', 'LICENSE']
477
+ >>> list(Distribution._expand_patterns(['setuptools/**/pyprojecttoml.py']))
478
+ ['setuptools/config/pyprojecttoml.py']
431
479
  """
432
480
  return (
433
- path
481
+ path.replace(os.sep, "/")
434
482
  for pattern in patterns
435
- for path in sorted(iglob(pattern))
483
+ for path in sorted(cls._find_pattern(pattern, enforce_match))
436
484
  if not path.endswith('~') and os.path.isfile(path)
437
485
  )
438
486
 
487
+ @staticmethod
488
+ def _find_pattern(pattern: str, enforce_match: bool = True) -> list[str]:
489
+ r"""
490
+ >>> Distribution._find_pattern("LICENSE")
491
+ ['LICENSE']
492
+ >>> Distribution._find_pattern("/LICENSE.MIT")
493
+ Traceback (most recent call last):
494
+ ...
495
+ setuptools.errors.InvalidConfigError: Pattern '/LICENSE.MIT' should be relative...
496
+ >>> Distribution._find_pattern("../LICENSE.MIT")
497
+ Traceback (most recent call last):
498
+ ...
499
+ setuptools.warnings.SetuptoolsDeprecationWarning: ...Pattern '../LICENSE.MIT' cannot contain '..'...
500
+ >>> Distribution._find_pattern("LICEN{CSE*")
501
+ Traceback (most recent call last):
502
+ ...
503
+ setuptools.warnings.SetuptoolsDeprecationWarning: ...Pattern 'LICEN{CSE*' contains invalid characters...
504
+ """
505
+ pypa_guides = "specifications/glob-patterns/"
506
+ if ".." in pattern:
507
+ SetuptoolsDeprecationWarning.emit(
508
+ f"Pattern {pattern!r} cannot contain '..'",
509
+ """
510
+ Please ensure the files specified are contained by the root
511
+ of the Python package (normally marked by `pyproject.toml`).
512
+ """,
513
+ see_url=f"https://packaging.python.org/en/latest/{pypa_guides}",
514
+ due_date=(2026, 3, 20), # Introduced in 2025-03-20
515
+ # Replace with InvalidConfigError after deprecation
516
+ )
517
+ if pattern.startswith((os.sep, "/")) or ":\\" in pattern:
518
+ raise InvalidConfigError(
519
+ f"Pattern {pattern!r} should be relative and must not start with '/'"
520
+ )
521
+ if re.match(r'^[\w\-\.\/\*\?\[\]]+$', pattern) is None:
522
+ SetuptoolsDeprecationWarning.emit(
523
+ "Please provide a valid glob pattern.",
524
+ "Pattern {pattern!r} contains invalid characters.",
525
+ pattern=pattern,
526
+ see_url=f"https://packaging.python.org/en/latest/{pypa_guides}",
527
+ due_date=(2026, 3, 20), # Introduced in 2025-02-20
528
+ )
529
+
530
+ found = glob(pattern, recursive=True)
531
+
532
+ if enforce_match and not found:
533
+ SetuptoolsDeprecationWarning.emit(
534
+ "Cannot find any files for the given pattern.",
535
+ "Pattern {pattern!r} did not match any files.",
536
+ pattern=pattern,
537
+ due_date=(2026, 3, 20), # Introduced in 2025-02-20
538
+ # PEP 639 requires us to error, but as a transition period
539
+ # we will only issue a warning to give people time to prepare.
540
+ # After the transition, this should raise an InvalidConfigError.
541
+ )
542
+ return found
543
+
439
544
  # FIXME: 'Distribution._parse_config_files' is too complex (14)
440
545
  def _parse_config_files(self, filenames=None): # noqa: C901
441
546
  """
@@ -652,6 +757,7 @@ class Distribution(_Distribution):
652
757
  pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
653
758
 
654
759
  self._finalize_requires()
760
+ self._finalize_license_expression()
655
761
  self._finalize_license_files()
656
762
 
657
763
  def fetch_build_eggs(
@@ -1024,6 +1024,16 @@ class EnvironmentInfo:
1024
1024
  ------
1025
1025
  list of str
1026
1026
  paths
1027
+
1028
+ When host CPU is ARM, the tools should be found for ARM.
1029
+
1030
+ >>> getfixture('windows_only')
1031
+ >>> mp = getfixture('monkeypatch')
1032
+ >>> mp.setattr(PlatformInfo, 'current_cpu', 'arm64')
1033
+ >>> ei = EnvironmentInfo(arch='irrelevant')
1034
+ >>> paths = ei.VCTools
1035
+ >>> any('HostARM64' in path for path in paths)
1036
+ True
1027
1037
  """
1028
1038
  si = self.si
1029
1039
  tools = [os.path.join(si.VCInstallDir, 'VCPackages')]
@@ -1038,9 +1048,8 @@ class EnvironmentInfo:
1038
1048
  tools += [os.path.join(si.VCInstallDir, path)]
1039
1049
 
1040
1050
  elif self.vs_ver >= 15.0:
1041
- host_dir = (
1042
- r'bin\HostX86%s' if self.pi.current_is_x86() else r'bin\HostX64%s'
1043
- )
1051
+ host_id = self.pi.current_cpu.replace('amd64', 'x64').upper()
1052
+ host_dir = os.path.join('bin', f'Host{host_id}%s')
1044
1053
  tools += [
1045
1054
  os.path.join(si.VCInstallDir, host_dir % self.pi.target_dir(x64=True))
1046
1055
  ]
@@ -23,7 +23,8 @@ from setuptools.command.egg_info import write_requirements
23
23
  from setuptools.config import expand, pyprojecttoml, setupcfg
24
24
  from setuptools.config._apply_pyprojecttoml import _MissingDynamic, _some_attrgetter
25
25
  from setuptools.dist import Distribution
26
- from setuptools.errors import RemovedConfigError
26
+ from setuptools.errors import InvalidConfigError, RemovedConfigError
27
+ from setuptools.warnings import InformationOnly, SetuptoolsDeprecationWarning
27
28
 
28
29
  from .downloads import retrieve_file, urls_from_file
29
30
 
@@ -35,11 +36,22 @@ def makedist(path, **attrs):
35
36
  return Distribution({"src_root": path, **attrs})
36
37
 
37
38
 
39
+ def _mock_expand_patterns(patterns, *_, **__):
40
+ """
41
+ Allow comparing the given patterns for 2 dist objects.
42
+ We need to strip special chars to avoid errors when validating.
43
+ """
44
+ return [re.sub("[^a-z0-9]+", "", p, flags=re.I) or "empty" for p in patterns]
45
+
46
+
38
47
  @pytest.mark.parametrize("url", urls_from_file(HERE / EXAMPLES_FILE))
39
48
  @pytest.mark.filterwarnings("ignore")
40
49
  @pytest.mark.uses_network
41
50
  def test_apply_pyproject_equivalent_to_setupcfg(url, monkeypatch, tmp_path):
42
51
  monkeypatch.setattr(expand, "read_attr", Mock(return_value="0.0.1"))
52
+ monkeypatch.setattr(
53
+ Distribution, "_expand_patterns", Mock(side_effect=_mock_expand_patterns)
54
+ )
43
55
  setupcfg_example = retrieve_file(url)
44
56
  pyproject_example = Path(tmp_path, "pyproject.toml")
45
57
  setupcfg_text = setupcfg_example.read_text(encoding="utf-8")
@@ -92,7 +104,7 @@ version = "2020.0.0"
92
104
  description = "Lovely Spam! Wonderful Spam!"
93
105
  readme = "README.rst"
94
106
  requires-python = ">=3.8"
95
- license = {file = "LICENSE.txt"}
107
+ license-files = ["LICENSE.txt"] # Updated to be PEP 639 compliant
96
108
  keywords = ["egg", "bacon", "sausage", "tomatoes", "Lobster Thermidor"]
97
109
  authors = [
98
110
  {email = "hi@pradyunsg.me"},
@@ -156,6 +168,32 @@ def main_gui(): pass
156
168
  def main_tomatoes(): pass
157
169
  """
158
170
 
171
+ PEP639_LICENSE_TEXT = """\
172
+ [project]
173
+ name = "spam"
174
+ version = "2020.0.0"
175
+ authors = [
176
+ {email = "hi@pradyunsg.me"},
177
+ {name = "Tzu-Ping Chung"}
178
+ ]
179
+ license = {text = "MIT"}
180
+ """
181
+
182
+ PEP639_LICENSE_EXPRESSION = """\
183
+ [project]
184
+ name = "spam"
185
+ version = "2020.0.0"
186
+ authors = [
187
+ {email = "hi@pradyunsg.me"},
188
+ {name = "Tzu-Ping Chung"}
189
+ ]
190
+ license = "mit or apache-2.0" # should be normalized in metadata
191
+ classifiers = [
192
+ "Development Status :: 5 - Production/Stable",
193
+ "Programming Language :: Python",
194
+ ]
195
+ """
196
+
159
197
 
160
198
  def _pep621_example_project(
161
199
  tmp_path,
@@ -179,7 +217,6 @@ def test_pep621_example(tmp_path):
179
217
  """Make sure the example in PEP 621 works"""
180
218
  pyproject = _pep621_example_project(tmp_path)
181
219
  dist = pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
182
- assert dist.metadata.license == "--- LICENSE stub ---"
183
220
  assert set(dist.metadata.license_files) == {"LICENSE.txt"}
184
221
 
185
222
 
@@ -251,22 +288,132 @@ def test_utf8_maintainer_in_metadata( # issue-3663
251
288
  assert f"Maintainer-email: {expected_maintainers_meta_value}" in content
252
289
 
253
290
 
254
- class TestLicenseFiles:
255
- # TODO: After PEP 639 is accepted, we have to move the license-files
256
- # to the `project` table instead of `tool.setuptools`
291
+ @pytest.mark.parametrize(
292
+ (
293
+ 'pyproject_text',
294
+ 'license',
295
+ 'license_expression',
296
+ 'content_str',
297
+ 'not_content_str',
298
+ ),
299
+ (
300
+ pytest.param(
301
+ PEP639_LICENSE_TEXT,
302
+ 'MIT',
303
+ None,
304
+ 'License: MIT',
305
+ 'License-Expression: ',
306
+ id='license-text',
307
+ marks=[
308
+ pytest.mark.filterwarnings(
309
+ "ignore:.project.license. as a TOML table is deprecated",
310
+ )
311
+ ],
312
+ ),
313
+ pytest.param(
314
+ PEP639_LICENSE_EXPRESSION,
315
+ None,
316
+ 'MIT OR Apache-2.0',
317
+ 'License-Expression: MIT OR Apache-2.0',
318
+ 'License: ',
319
+ id='license-expression',
320
+ ),
321
+ ),
322
+ )
323
+ def test_license_in_metadata(
324
+ license,
325
+ license_expression,
326
+ content_str,
327
+ not_content_str,
328
+ pyproject_text,
329
+ tmp_path,
330
+ ):
331
+ pyproject = _pep621_example_project(
332
+ tmp_path,
333
+ "README",
334
+ pyproject_text=pyproject_text,
335
+ )
336
+ dist = pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
337
+ assert dist.metadata.license == license
338
+ assert dist.metadata.license_expression == license_expression
339
+ pkg_file = tmp_path / "PKG-FILE"
340
+ with open(pkg_file, "w", encoding="utf-8") as fh:
341
+ dist.metadata.write_pkg_file(fh)
342
+ content = pkg_file.read_text(encoding="utf-8")
343
+ assert "Metadata-Version: 2.4" in content
344
+ assert content_str in content
345
+ assert not_content_str not in content
346
+
347
+
348
+ def test_license_classifier_with_license_expression(tmp_path):
349
+ text = PEP639_LICENSE_EXPRESSION.rsplit("\n", 2)[0]
350
+ pyproject = _pep621_example_project(
351
+ tmp_path,
352
+ "README",
353
+ f"{text}\n \"License :: OSI Approved :: MIT License\"\n]",
354
+ )
355
+ msg = "License classifiers have been superseded by license expressions"
356
+ with pytest.raises(InvalidConfigError, match=msg) as exc:
357
+ pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
358
+
359
+ assert "License :: OSI Approved :: MIT License" in str(exc.value)
360
+
361
+
362
+ def test_license_classifier_without_license_expression(tmp_path):
363
+ text = """\
364
+ [project]
365
+ name = "spam"
366
+ version = "2020.0.0"
367
+ license = {text = "mit or apache-2.0"}
368
+ classifiers = ["License :: OSI Approved :: MIT License"]
369
+ """
370
+ pyproject = _pep621_example_project(tmp_path, "README", text)
371
+
372
+ msg1 = "License classifiers are deprecated(?:.|\n)*MIT License"
373
+ msg2 = ".project.license. as a TOML table is deprecated"
374
+ with (
375
+ pytest.warns(SetuptoolsDeprecationWarning, match=msg1),
376
+ pytest.warns(SetuptoolsDeprecationWarning, match=msg2),
377
+ ):
378
+ dist = pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
379
+
380
+ # Check license classifier is still included
381
+ assert dist.metadata.get_classifiers() == ["License :: OSI Approved :: MIT License"]
257
382
 
258
- def base_pyproject(self, tmp_path, additional_text):
259
- pyproject = _pep621_example_project(tmp_path, "README")
260
- text = pyproject.read_text(encoding="utf-8")
383
+
384
+ class TestLicenseFiles:
385
+ def base_pyproject(
386
+ self,
387
+ tmp_path,
388
+ additional_text="",
389
+ license_toml='license = {file = "LICENSE.txt"}\n',
390
+ ):
391
+ text = PEP639_LICENSE_EXPRESSION
261
392
 
262
393
  # Sanity-check
263
- assert 'license = {file = "LICENSE.txt"}' in text
394
+ assert 'license = "mit or apache-2.0"' in text
395
+ assert 'license-files' not in text
264
396
  assert "[tool.setuptools]" not in text
265
397
 
398
+ text = re.sub(
399
+ r"(license = .*)\n",
400
+ license_toml,
401
+ text,
402
+ count=1,
403
+ )
404
+ assert license_toml in text # sanity check
266
405
  text = f"{text}\n{additional_text}\n"
267
- pyproject.write_text(text, encoding="utf-8")
406
+ pyproject = _pep621_example_project(tmp_path, "README", pyproject_text=text)
268
407
  return pyproject
269
408
 
409
+ def base_pyproject_license_pep639(self, tmp_path, additional_text=""):
410
+ return self.base_pyproject(
411
+ tmp_path,
412
+ additional_text=additional_text,
413
+ license_toml='license = "licenseref-Proprietary"'
414
+ '\nlicense-files = ["_FILE*"]\n',
415
+ )
416
+
270
417
  def test_both_license_and_license_files_defined(self, tmp_path):
271
418
  setuptools_config = '[tool.setuptools]\nlicense-files = ["_FILE*"]'
272
419
  pyproject = self.base_pyproject(tmp_path, setuptools_config)
@@ -279,14 +426,44 @@ class TestLicenseFiles:
279
426
  license = tmp_path / "LICENSE.txt"
280
427
  license.write_text("LicenseRef-Proprietary\n", encoding="utf-8")
281
428
 
282
- dist = pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
429
+ msg1 = "'tool.setuptools.license-files' is deprecated in favor of 'project.license-files'"
430
+ msg2 = ".project.license. as a TOML table is deprecated"
431
+ with (
432
+ pytest.warns(SetuptoolsDeprecationWarning, match=msg1),
433
+ pytest.warns(SetuptoolsDeprecationWarning, match=msg2),
434
+ ):
435
+ dist = pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
283
436
  assert set(dist.metadata.license_files) == {"_FILE.rst", "_FILE.txt"}
284
437
  assert dist.metadata.license == "LicenseRef-Proprietary\n"
285
438
 
439
+ def test_both_license_and_license_files_defined_pep639(self, tmp_path):
440
+ # Set license and license-files
441
+ pyproject = self.base_pyproject_license_pep639(tmp_path)
442
+
443
+ (tmp_path / "_FILE.txt").touch()
444
+ (tmp_path / "_FILE.rst").touch()
445
+
446
+ msg = "Normalizing.*LicenseRef"
447
+ with pytest.warns(InformationOnly, match=msg):
448
+ dist = pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
449
+
450
+ assert set(dist.metadata.license_files) == {"_FILE.rst", "_FILE.txt"}
451
+ assert dist.metadata.license is None
452
+ assert dist.metadata.license_expression == "LicenseRef-Proprietary"
453
+
454
+ def test_license_files_defined_twice(self, tmp_path):
455
+ # Set project.license-files and tools.setuptools.license-files
456
+ setuptools_config = '[tool.setuptools]\nlicense-files = ["_FILE*"]'
457
+ pyproject = self.base_pyproject_license_pep639(tmp_path, setuptools_config)
458
+
459
+ msg = "'project.license-files' is defined already. Remove 'tool.setuptools.license-files'"
460
+ with pytest.raises(InvalidConfigError, match=msg):
461
+ pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
462
+
286
463
  def test_default_patterns(self, tmp_path):
287
464
  setuptools_config = '[tool.setuptools]\nzip-safe = false'
288
465
  # ^ used just to trigger section validation
289
- pyproject = self.base_pyproject(tmp_path, setuptools_config)
466
+ pyproject = self.base_pyproject(tmp_path, setuptools_config, license_toml="")
290
467
 
291
468
  license_files = "LICENCE-a.html COPYING-abc.txt AUTHORS-xyz NOTICE,def".split()
292
469
 
@@ -294,9 +471,39 @@ class TestLicenseFiles:
294
471
  (tmp_path / fname).write_text(f"{fname}\n", encoding="utf-8")
295
472
 
296
473
  dist = pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
474
+
297
475
  assert (tmp_path / "LICENSE.txt").exists() # from base example
298
476
  assert set(dist.metadata.license_files) == {*license_files, "LICENSE.txt"}
299
477
 
478
+ def test_missing_patterns(self, tmp_path):
479
+ pyproject = self.base_pyproject_license_pep639(tmp_path)
480
+ assert list(tmp_path.glob("_FILE*")) == [] # sanity check
481
+
482
+ msg1 = "Cannot find any files for the given pattern.*"
483
+ msg2 = "Normalizing 'licenseref-Proprietary' to 'LicenseRef-Proprietary'"
484
+ with (
485
+ pytest.warns(SetuptoolsDeprecationWarning, match=msg1),
486
+ pytest.warns(InformationOnly, match=msg2),
487
+ ):
488
+ pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
489
+
490
+ def test_deprecated_file_expands_to_text(self, tmp_path):
491
+ """Make sure the old example with ``license = {text = ...}`` works"""
492
+
493
+ assert 'license-files = ["LICENSE.txt"]' in PEP621_EXAMPLE # sanity check
494
+ text = PEP621_EXAMPLE.replace(
495
+ 'license-files = ["LICENSE.txt"]',
496
+ 'license = {file = "LICENSE.txt"}',
497
+ )
498
+ pyproject = _pep621_example_project(tmp_path, pyproject_text=text)
499
+
500
+ msg = ".project.license. as a TOML table is deprecated"
501
+ with pytest.warns(SetuptoolsDeprecationWarning, match=msg):
502
+ dist = pyprojecttoml.apply_configuration(makedist(tmp_path), pyproject)
503
+
504
+ assert dist.metadata.license == "--- LICENSE stub ---"
505
+ assert set(dist.metadata.license_files) == {"LICENSE.txt"} # auto-filled
506
+
300
507
 
301
508
  class TestPyModules:
302
509
  # https://github.com/pypa/setuptools/issues/4316
@@ -373,6 +580,11 @@ class TestPresetField:
373
580
  @pytest.mark.parametrize(
374
581
  ("attr", "field", "value"),
375
582
  [
583
+ ("license_expression", "license", "MIT"),
584
+ pytest.param(
585
+ *("license", "license", "Not SPDX"),
586
+ marks=[pytest.mark.filterwarnings("ignore:.*license. overwritten")],
587
+ ),
376
588
  ("classifiers", "classifiers", ["Private :: Classifier"]),
377
589
  ("entry_points", "scripts", {"console_scripts": ["foobar=foobar:main"]}),
378
590
  ("entry_points", "gui-scripts", {"gui_scripts": ["bazquux=bazquux:main"]}),
@@ -398,6 +610,7 @@ class TestPresetField:
398
610
  @pytest.mark.parametrize(
399
611
  ("attr", "field", "value"),
400
612
  [
613
+ ("license_expression", "license", "MIT"),
401
614
  ("install_requires", "dependencies", []),
402
615
  ("extras_require", "optional-dependencies", {}),
403
616
  ("install_requires", "dependencies", ["six"]),
@@ -411,6 +624,26 @@ class TestPresetField:
411
624
  dist_value = _some_attrgetter(f"metadata.{attr}", attr)(dist)
412
625
  assert dist_value == value
413
626
 
627
+ def test_license_files_exempt_from_dynamic(self, monkeypatch, tmp_path):
628
+ """
629
+ license-file is currently not considered in the context of dynamic.
630
+ As per 2025-02-19, https://packaging.python.org/en/latest/specifications/pyproject-toml/#license-files
631
+ allows setuptools to fill-in `license-files` the way it sees fit:
632
+
633
+ > If the license-files key is not defined, tools can decide how to handle license files.
634
+ > For example they can choose not to include any files or use their own
635
+ > logic to discover the appropriate files in the distribution.
636
+
637
+ Using license_files from setup.py to fill-in the value is in accordance
638
+ with this rule.
639
+ """
640
+ monkeypatch.chdir(tmp_path)
641
+ pyproject = self.pyproject(tmp_path, [])
642
+ dist = makedist(tmp_path, license_files=["LIC*"])
643
+ (tmp_path / "LIC1").write_text("42", encoding="utf-8")
644
+ dist = pyprojecttoml.apply_configuration(dist, pyproject)
645
+ assert dist.metadata.license_files == ["LIC1"]
646
+
414
647
  def test_warning_overwritten_dependencies(self, tmp_path):
415
648
  src = "[project]\nname='pkg'\nversion='0.1'\ndependencies=['click']\n"
416
649
  pyproject = tmp_path / "pyproject.toml"