py2docfx 0.1.9.dev1897607__py3-none-any.whl → 0.1.9.dev1917798__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 (363) hide show
  1. py2docfx/convert_prepare/environment.py +25 -6
  2. py2docfx/convert_prepare/tests/test_generate_document.py +4 -4
  3. py2docfx/convert_prepare/tests/test_get_source.py +6 -6
  4. py2docfx/convert_prepare/tests/test_params.py +1 -1
  5. py2docfx/convert_prepare/tests/test_sphinx_caller.py +3 -3
  6. py2docfx/venv/basevenv/Lib/site-packages/_distutils_hack/__init__.py +2 -3
  7. py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +2 -2
  8. py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +4 -4
  9. py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -0
  10. py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +145 -0
  11. py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +15 -9
  13. py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +83 -24
  14. py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +19 -8
  15. py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +78 -29
  16. py2docfx/venv/basevenv/Lib/site-packages/packaging/utils.py +33 -44
  17. py2docfx/venv/basevenv/Lib/site-packages/packaging/version.py +26 -7
  18. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +27 -32
  19. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
  20. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
  21. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +7 -9
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_importlib.py +1 -4
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +5 -8
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +2 -1
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +53 -0
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/archive_util.py +6 -4
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +23 -17
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/__init__.py +9 -1
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/alias.py +3 -4
  46. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
  47. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
  48. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +18 -45
  49. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build.py +3 -3
  50. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_clib.py +2 -9
  51. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +13 -12
  52. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_py.py +17 -16
  53. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +4 -4
  54. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/dist_info.py +3 -7
  55. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +55 -78
  56. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +19 -21
  57. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +29 -30
  58. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +31 -13
  59. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_egg_info.py +2 -2
  60. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_lib.py +10 -7
  61. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
  62. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/rotate.py +6 -6
  63. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +9 -8
  64. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/setopt.py +2 -2
  65. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
  66. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/expand.py +22 -16
  67. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/pyprojecttoml.py +25 -10
  68. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
  69. py2docfx/venv/basevenv/Lib/site-packages/setuptools/depends.py +26 -7
  70. py2docfx/venv/basevenv/Lib/site-packages/setuptools/discovery.py +21 -14
  71. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +48 -45
  72. py2docfx/venv/basevenv/Lib/site-packages/setuptools/errors.py +21 -26
  73. py2docfx/venv/basevenv/Lib/site-packages/setuptools/extension.py +18 -6
  74. py2docfx/venv/basevenv/Lib/site-packages/setuptools/glob.py +35 -15
  75. py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +6 -1
  76. py2docfx/venv/basevenv/Lib/site-packages/setuptools/launch.py +1 -1
  77. py2docfx/venv/basevenv/Lib/site-packages/setuptools/logging.py +2 -2
  78. py2docfx/venv/basevenv/Lib/site-packages/setuptools/modified.py +16 -6
  79. py2docfx/venv/basevenv/Lib/site-packages/setuptools/monkey.py +2 -2
  80. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +25 -14
  81. py2docfx/venv/basevenv/Lib/site-packages/setuptools/namespaces.py +2 -2
  82. py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +42 -43
  83. py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +19 -12
  84. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
  85. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
  86. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
  87. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +9 -2
  88. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
  89. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
  90. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
  91. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
  92. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
  93. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
  94. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
  95. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
  96. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
  97. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +3 -4
  98. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
  99. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  100. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
  101. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
  102. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
  103. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
  104. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
  105. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
  106. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
  107. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
  108. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
  109. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
  110. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
  111. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
  112. py2docfx/venv/basevenv/Lib/site-packages/setuptools/warnings.py +5 -2
  113. py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +4 -4
  114. py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
  115. py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
  116. py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +17 -2
  117. py2docfx/venv/basevenv/Lib/site-packages/wheel/cli/convert.py +280 -220
  118. py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -9
  119. py2docfx/venv/venv1/Lib/site-packages/_distutils_hack/__init__.py +2 -3
  120. py2docfx/venv/venv1/Lib/site-packages/azure/core/_enum_meta.py +1 -1
  121. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client.py +2 -2
  122. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client_async.py +5 -3
  123. py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
  124. py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +6 -1
  125. py2docfx/venv/venv1/Lib/site-packages/azure/core/exceptions.py +13 -5
  126. py2docfx/venv/venv1/Lib/site-packages/azure/core/messaging.py +3 -3
  127. py2docfx/venv/venv1/Lib/site-packages/azure/core/paging.py +1 -1
  128. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/__init__.py +16 -5
  129. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +15 -4
  130. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +20 -10
  131. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +3 -1
  132. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +55 -19
  133. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +46 -15
  134. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_custom_hook.py +8 -3
  135. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +9 -3
  136. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +9 -2
  137. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +4 -1
  138. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +27 -8
  139. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +6 -3
  140. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_sensitive_header_cleanup_policy.py +4 -1
  141. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +6 -10
  142. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_utils.py +101 -1
  143. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/__init__.py +1 -1
  144. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +9 -2
  145. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base.py +1 -1
  146. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +7 -5
  147. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +0 -1
  148. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_basic.py +11 -3
  149. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_trio.py +11 -3
  150. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_async_poller.py +5 -2
  151. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_poller.py +4 -1
  152. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/async_base_polling.py +3 -1
  153. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +47 -16
  154. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_helpers.py +3 -1
  155. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl.py +1 -1
  156. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_basic.py +3 -1
  157. py2docfx/venv/venv1/Lib/site-packages/azure/core/serialization.py +1 -1
  158. py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +15 -3
  159. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +15 -5
  160. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +1 -1
  161. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +12 -1
  162. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +24 -4
  163. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/__init__.py +119 -110
  164. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/_version.py +1 -1
  165. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +3 -1
  166. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +10 -1
  167. py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.py +41 -39
  168. py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.py +2 -2
  169. py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.py +2 -2
  170. py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.py +17 -11
  171. py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_options.py +17 -13
  172. py2docfx/venv/venv1/Lib/site-packages/google/api_core/protobuf_helpers.py +1 -3
  173. py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
  174. py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +4 -0
  175. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +1 -1
  176. py2docfx/venv/venv1/Lib/site-packages/google/auth/iam.py +25 -8
  177. py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +34 -16
  178. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_requests_base.py +2 -1
  179. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +2 -3
  180. py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
  181. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client.py +10 -2
  182. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/service_account.py +1 -0
  183. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +27 -32
  184. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
  185. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
  186. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
  187. py2docfx/venv/venv1/Lib/site-packages/proto/enums.py +3 -1
  188. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/repeated.py +7 -2
  189. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/compat.py +18 -21
  190. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/message.py +7 -3
  191. py2docfx/venv/venv1/Lib/site-packages/proto/message.py +6 -35
  192. py2docfx/venv/venv1/Lib/site-packages/proto/version.py +1 -1
  193. py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +7 -9
  194. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
  195. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
  196. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
  197. py2docfx/venv/venv1/Lib/site-packages/setuptools/_importlib.py +1 -4
  198. py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +5 -8
  199. py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +2 -1
  200. py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +53 -0
  201. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
  202. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
  203. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
  204. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
  205. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
  206. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
  207. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
  208. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
  209. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
  210. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
  211. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
  212. py2docfx/venv/venv1/Lib/site-packages/setuptools/archive_util.py +6 -4
  213. py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +23 -17
  214. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/__init__.py +9 -1
  215. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
  216. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/alias.py +3 -4
  217. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
  218. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
  219. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +18 -45
  220. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build.py +3 -3
  221. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_clib.py +2 -9
  222. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +13 -12
  223. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_py.py +17 -16
  224. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +4 -4
  225. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/dist_info.py +3 -7
  226. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +55 -78
  227. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +19 -21
  228. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +29 -30
  229. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +31 -13
  230. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_egg_info.py +2 -2
  231. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_lib.py +10 -7
  232. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
  233. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/rotate.py +6 -6
  234. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +9 -8
  235. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/setopt.py +2 -2
  236. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
  237. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/expand.py +22 -16
  238. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/pyprojecttoml.py +25 -10
  239. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
  240. py2docfx/venv/venv1/Lib/site-packages/setuptools/depends.py +26 -7
  241. py2docfx/venv/venv1/Lib/site-packages/setuptools/discovery.py +21 -14
  242. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +48 -45
  243. py2docfx/venv/venv1/Lib/site-packages/setuptools/errors.py +21 -26
  244. py2docfx/venv/venv1/Lib/site-packages/setuptools/extension.py +18 -6
  245. py2docfx/venv/venv1/Lib/site-packages/setuptools/glob.py +35 -15
  246. py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +6 -1
  247. py2docfx/venv/venv1/Lib/site-packages/setuptools/launch.py +1 -1
  248. py2docfx/venv/venv1/Lib/site-packages/setuptools/logging.py +2 -2
  249. py2docfx/venv/venv1/Lib/site-packages/setuptools/modified.py +16 -6
  250. py2docfx/venv/venv1/Lib/site-packages/setuptools/monkey.py +2 -2
  251. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +25 -14
  252. py2docfx/venv/venv1/Lib/site-packages/setuptools/namespaces.py +2 -2
  253. py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +42 -43
  254. py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +19 -12
  255. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
  256. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
  257. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
  258. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +9 -2
  259. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
  260. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
  261. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
  262. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
  263. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
  264. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
  265. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
  266. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
  267. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
  268. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +3 -4
  269. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
  270. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  271. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
  272. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
  273. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
  274. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
  275. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
  276. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
  277. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
  278. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
  279. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
  280. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
  281. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
  282. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
  283. py2docfx/venv/venv1/Lib/site-packages/setuptools/warnings.py +5 -2
  284. py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +4 -4
  285. py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
  286. py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
  287. py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +17 -2
  288. py2docfx/venv/venv1/Lib/site-packages/wheel/cli/convert.py +280 -220
  289. py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -9
  290. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/METADATA +1 -1
  291. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/RECORD +293 -353
  292. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/WHEEL +1 -1
  293. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  294. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
  295. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
  296. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
  297. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
  298. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  299. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
  300. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
  301. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
  302. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  303. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
  304. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
  305. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  306. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  307. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
  308. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  309. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
  310. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
  311. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  312. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  313. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  314. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  315. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  316. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
  317. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
  318. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
  319. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
  320. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
  321. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
  322. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
  323. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
  324. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
  325. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
  326. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
  327. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
  328. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  329. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
  330. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
  331. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
  332. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
  333. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  334. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
  335. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
  336. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
  337. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  338. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
  339. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
  340. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  341. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  342. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
  343. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  344. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
  345. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
  346. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  347. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  348. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  349. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  350. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  351. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
  352. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
  353. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
  354. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
  355. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
  356. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
  357. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
  358. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
  359. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
  360. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
  361. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
  362. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
  363. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1917798.dist-info}/top_level.txt +0 -0
@@ -1,117 +0,0 @@
1
- import textwrap
2
- import unittest
3
- import warnings
4
- import importlib
5
- import contextlib
6
-
7
- import importlib_resources as resources
8
- from ..abc import Traversable
9
- from . import data01
10
- from . import util
11
- from . import _path
12
- from .compat.py39 import os_helper
13
- from .compat.py312 import import_helper
14
-
15
-
16
- @contextlib.contextmanager
17
- def suppress_known_deprecation():
18
- with warnings.catch_warnings(record=True) as ctx:
19
- warnings.simplefilter('default', category=DeprecationWarning)
20
- yield ctx
21
-
22
-
23
- class FilesTests:
24
- def test_read_bytes(self):
25
- files = resources.files(self.data)
26
- actual = files.joinpath('utf-8.file').read_bytes()
27
- assert actual == b'Hello, UTF-8 world!\n'
28
-
29
- def test_read_text(self):
30
- files = resources.files(self.data)
31
- actual = files.joinpath('utf-8.file').read_text(encoding='utf-8')
32
- assert actual == 'Hello, UTF-8 world!\n'
33
-
34
- def test_traversable(self):
35
- assert isinstance(resources.files(self.data), Traversable)
36
-
37
- def test_joinpath_with_multiple_args(self):
38
- files = resources.files(self.data)
39
- binfile = files.joinpath('subdirectory', 'binary.file')
40
- self.assertTrue(binfile.is_file())
41
-
42
- def test_old_parameter(self):
43
- """
44
- Files used to take a 'package' parameter. Make sure anyone
45
- passing by name is still supported.
46
- """
47
- with suppress_known_deprecation():
48
- resources.files(package=self.data)
49
-
50
-
51
- class OpenDiskTests(FilesTests, unittest.TestCase):
52
- def setUp(self):
53
- self.data = data01
54
-
55
-
56
- class OpenZipTests(FilesTests, util.ZipSetup, unittest.TestCase):
57
- pass
58
-
59
-
60
- class OpenNamespaceTests(FilesTests, unittest.TestCase):
61
- def setUp(self):
62
- from . import namespacedata01
63
-
64
- self.data = namespacedata01
65
-
66
-
67
- class OpenNamespaceZipTests(FilesTests, util.ZipSetup, unittest.TestCase):
68
- ZIP_MODULE = 'namespacedata01'
69
-
70
-
71
- class SiteDir:
72
- def setUp(self):
73
- self.fixtures = contextlib.ExitStack()
74
- self.addCleanup(self.fixtures.close)
75
- self.site_dir = self.fixtures.enter_context(os_helper.temp_dir())
76
- self.fixtures.enter_context(import_helper.DirsOnSysPath(self.site_dir))
77
- self.fixtures.enter_context(import_helper.isolated_modules())
78
-
79
-
80
- class ModulesFilesTests(SiteDir, unittest.TestCase):
81
- def test_module_resources(self):
82
- """
83
- A module can have resources found adjacent to the module.
84
- """
85
- spec = {
86
- 'mod.py': '',
87
- 'res.txt': 'resources are the best',
88
- }
89
- _path.build(spec, self.site_dir)
90
- import mod
91
-
92
- actual = resources.files(mod).joinpath('res.txt').read_text(encoding='utf-8')
93
- assert actual == spec['res.txt']
94
-
95
-
96
- class ImplicitContextFilesTests(SiteDir, unittest.TestCase):
97
- def test_implicit_files(self):
98
- """
99
- Without any parameter, files() will infer the location as the caller.
100
- """
101
- spec = {
102
- 'somepkg': {
103
- '__init__.py': textwrap.dedent(
104
- """
105
- import importlib_resources as res
106
- val = res.files().joinpath('res.txt').read_text(encoding='utf-8')
107
- """
108
- ),
109
- 'res.txt': 'resources are the best',
110
- },
111
- }
112
- _path.build(spec, self.site_dir)
113
- assert importlib.import_module('somepkg').val == 'resources are the best'
114
-
115
-
116
- if __name__ == '__main__':
117
- unittest.main()
@@ -1,242 +0,0 @@
1
- import unittest
2
- import os
3
- import contextlib
4
-
5
- try:
6
- from test.support.warnings_helper import ignore_warnings, check_warnings
7
- except ImportError:
8
- # older Python versions
9
- from test.support import ignore_warnings, check_warnings
10
-
11
- import importlib_resources as resources
12
-
13
- # Since the functional API forwards to Traversable, we only test
14
- # filesystem resources here -- not zip files, namespace packages etc.
15
- # We do test for two kinds of Anchor, though.
16
-
17
-
18
- class StringAnchorMixin:
19
- anchor01 = 'importlib_resources.tests.data01'
20
- anchor02 = 'importlib_resources.tests.data02'
21
-
22
-
23
- class ModuleAnchorMixin:
24
- from . import data01 as anchor01
25
- from . import data02 as anchor02
26
-
27
-
28
- class FunctionalAPIBase:
29
- def _gen_resourcetxt_path_parts(self):
30
- """Yield various names of a text file in anchor02, each in a subTest"""
31
- for path_parts in (
32
- ('subdirectory', 'subsubdir', 'resource.txt'),
33
- ('subdirectory/subsubdir/resource.txt',),
34
- ('subdirectory/subsubdir', 'resource.txt'),
35
- ):
36
- with self.subTest(path_parts=path_parts):
37
- yield path_parts
38
-
39
- def test_read_text(self):
40
- self.assertEqual(
41
- resources.read_text(self.anchor01, 'utf-8.file'),
42
- 'Hello, UTF-8 world!\n',
43
- )
44
- self.assertEqual(
45
- resources.read_text(
46
- self.anchor02,
47
- 'subdirectory',
48
- 'subsubdir',
49
- 'resource.txt',
50
- encoding='utf-8',
51
- ),
52
- 'a resource',
53
- )
54
- for path_parts in self._gen_resourcetxt_path_parts():
55
- self.assertEqual(
56
- resources.read_text(
57
- self.anchor02,
58
- *path_parts,
59
- encoding='utf-8',
60
- ),
61
- 'a resource',
62
- )
63
- # Use generic OSError, since e.g. attempting to read a directory can
64
- # fail with PermissionError rather than IsADirectoryError
65
- with self.assertRaises(OSError):
66
- resources.read_text(self.anchor01)
67
- with self.assertRaises(OSError):
68
- resources.read_text(self.anchor01, 'no-such-file')
69
- with self.assertRaises(UnicodeDecodeError):
70
- resources.read_text(self.anchor01, 'utf-16.file')
71
- self.assertEqual(
72
- resources.read_text(
73
- self.anchor01,
74
- 'binary.file',
75
- encoding='latin1',
76
- ),
77
- '\x00\x01\x02\x03',
78
- )
79
- self.assertEqual(
80
- resources.read_text(
81
- self.anchor01,
82
- 'utf-16.file',
83
- errors='backslashreplace',
84
- ),
85
- 'Hello, UTF-16 world!\n'.encode('utf-16').decode(
86
- errors='backslashreplace',
87
- ),
88
- )
89
-
90
- def test_read_binary(self):
91
- self.assertEqual(
92
- resources.read_binary(self.anchor01, 'utf-8.file'),
93
- b'Hello, UTF-8 world!\n',
94
- )
95
- for path_parts in self._gen_resourcetxt_path_parts():
96
- self.assertEqual(
97
- resources.read_binary(self.anchor02, *path_parts),
98
- b'a resource',
99
- )
100
-
101
- def test_open_text(self):
102
- with resources.open_text(self.anchor01, 'utf-8.file') as f:
103
- self.assertEqual(f.read(), 'Hello, UTF-8 world!\n')
104
- for path_parts in self._gen_resourcetxt_path_parts():
105
- with resources.open_text(
106
- self.anchor02,
107
- *path_parts,
108
- encoding='utf-8',
109
- ) as f:
110
- self.assertEqual(f.read(), 'a resource')
111
- # Use generic OSError, since e.g. attempting to read a directory can
112
- # fail with PermissionError rather than IsADirectoryError
113
- with self.assertRaises(OSError):
114
- resources.open_text(self.anchor01)
115
- with self.assertRaises(OSError):
116
- resources.open_text(self.anchor01, 'no-such-file')
117
- with resources.open_text(self.anchor01, 'utf-16.file') as f:
118
- with self.assertRaises(UnicodeDecodeError):
119
- f.read()
120
- with resources.open_text(
121
- self.anchor01,
122
- 'binary.file',
123
- encoding='latin1',
124
- ) as f:
125
- self.assertEqual(f.read(), '\x00\x01\x02\x03')
126
- with resources.open_text(
127
- self.anchor01,
128
- 'utf-16.file',
129
- errors='backslashreplace',
130
- ) as f:
131
- self.assertEqual(
132
- f.read(),
133
- 'Hello, UTF-16 world!\n'.encode('utf-16').decode(
134
- errors='backslashreplace',
135
- ),
136
- )
137
-
138
- def test_open_binary(self):
139
- with resources.open_binary(self.anchor01, 'utf-8.file') as f:
140
- self.assertEqual(f.read(), b'Hello, UTF-8 world!\n')
141
- for path_parts in self._gen_resourcetxt_path_parts():
142
- with resources.open_binary(
143
- self.anchor02,
144
- *path_parts,
145
- ) as f:
146
- self.assertEqual(f.read(), b'a resource')
147
-
148
- def test_path(self):
149
- with resources.path(self.anchor01, 'utf-8.file') as path:
150
- with open(str(path), encoding='utf-8') as f:
151
- self.assertEqual(f.read(), 'Hello, UTF-8 world!\n')
152
- with resources.path(self.anchor01) as path:
153
- with open(os.path.join(path, 'utf-8.file'), encoding='utf-8') as f:
154
- self.assertEqual(f.read(), 'Hello, UTF-8 world!\n')
155
-
156
- def test_is_resource(self):
157
- is_resource = resources.is_resource
158
- self.assertTrue(is_resource(self.anchor01, 'utf-8.file'))
159
- self.assertFalse(is_resource(self.anchor01, 'no_such_file'))
160
- self.assertFalse(is_resource(self.anchor01))
161
- self.assertFalse(is_resource(self.anchor01, 'subdirectory'))
162
- for path_parts in self._gen_resourcetxt_path_parts():
163
- self.assertTrue(is_resource(self.anchor02, *path_parts))
164
-
165
- def test_contents(self):
166
- with check_warnings((".*contents.*", DeprecationWarning)):
167
- c = resources.contents(self.anchor01)
168
- self.assertGreaterEqual(
169
- set(c),
170
- {'utf-8.file', 'utf-16.file', 'binary.file', 'subdirectory'},
171
- )
172
- with contextlib.ExitStack() as cm:
173
- cm.enter_context(self.assertRaises(OSError))
174
- cm.enter_context(check_warnings((".*contents.*", DeprecationWarning)))
175
-
176
- list(resources.contents(self.anchor01, 'utf-8.file'))
177
-
178
- for path_parts in self._gen_resourcetxt_path_parts():
179
- with contextlib.ExitStack() as cm:
180
- cm.enter_context(self.assertRaises(OSError))
181
- cm.enter_context(check_warnings((".*contents.*", DeprecationWarning)))
182
-
183
- list(resources.contents(self.anchor01, *path_parts))
184
- with check_warnings((".*contents.*", DeprecationWarning)):
185
- c = resources.contents(self.anchor01, 'subdirectory')
186
- self.assertGreaterEqual(
187
- set(c),
188
- {'binary.file'},
189
- )
190
-
191
- @ignore_warnings(category=DeprecationWarning)
192
- def test_common_errors(self):
193
- for func in (
194
- resources.read_text,
195
- resources.read_binary,
196
- resources.open_text,
197
- resources.open_binary,
198
- resources.path,
199
- resources.is_resource,
200
- resources.contents,
201
- ):
202
- with self.subTest(func=func):
203
- # Rejecting None anchor
204
- with self.assertRaises(TypeError):
205
- func(None)
206
- # Rejecting invalid anchor type
207
- with self.assertRaises((TypeError, AttributeError)):
208
- func(1234)
209
- # Unknown module
210
- with self.assertRaises(ModuleNotFoundError):
211
- func('$missing module$')
212
-
213
- def test_text_errors(self):
214
- for func in (
215
- resources.read_text,
216
- resources.open_text,
217
- ):
218
- with self.subTest(func=func):
219
- # Multiple path arguments need explicit encoding argument.
220
- with self.assertRaises(TypeError):
221
- func(
222
- self.anchor02,
223
- 'subdirectory',
224
- 'subsubdir',
225
- 'resource.txt',
226
- )
227
-
228
-
229
- class FunctionalAPITest_StringAnchor(
230
- unittest.TestCase,
231
- FunctionalAPIBase,
232
- StringAnchorMixin,
233
- ):
234
- pass
235
-
236
-
237
- class FunctionalAPITest_ModuleAnchor(
238
- unittest.TestCase,
239
- FunctionalAPIBase,
240
- ModuleAnchorMixin,
241
- ):
242
- pass
@@ -1,89 +0,0 @@
1
- import unittest
2
-
3
- import importlib_resources as resources
4
- from . import data01
5
- from . import util
6
-
7
-
8
- class CommonBinaryTests(util.CommonTests, unittest.TestCase):
9
- def execute(self, package, path):
10
- target = resources.files(package).joinpath(path)
11
- with target.open('rb'):
12
- pass
13
-
14
-
15
- class CommonTextTests(util.CommonTests, unittest.TestCase):
16
- def execute(self, package, path):
17
- target = resources.files(package).joinpath(path)
18
- with target.open(encoding='utf-8'):
19
- pass
20
-
21
-
22
- class OpenTests:
23
- def test_open_binary(self):
24
- target = resources.files(self.data) / 'binary.file'
25
- with target.open('rb') as fp:
26
- result = fp.read()
27
- self.assertEqual(result, bytes(range(4)))
28
-
29
- def test_open_text_default_encoding(self):
30
- target = resources.files(self.data) / 'utf-8.file'
31
- with target.open(encoding='utf-8') as fp:
32
- result = fp.read()
33
- self.assertEqual(result, 'Hello, UTF-8 world!\n')
34
-
35
- def test_open_text_given_encoding(self):
36
- target = resources.files(self.data) / 'utf-16.file'
37
- with target.open(encoding='utf-16', errors='strict') as fp:
38
- result = fp.read()
39
- self.assertEqual(result, 'Hello, UTF-16 world!\n')
40
-
41
- def test_open_text_with_errors(self):
42
- """
43
- Raises UnicodeError without the 'errors' argument.
44
- """
45
- target = resources.files(self.data) / 'utf-16.file'
46
- with target.open(encoding='utf-8', errors='strict') as fp:
47
- self.assertRaises(UnicodeError, fp.read)
48
- with target.open(encoding='utf-8', errors='ignore') as fp:
49
- result = fp.read()
50
- self.assertEqual(
51
- result,
52
- 'H\x00e\x00l\x00l\x00o\x00,\x00 '
53
- '\x00U\x00T\x00F\x00-\x001\x006\x00 '
54
- '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00',
55
- )
56
-
57
- def test_open_binary_FileNotFoundError(self):
58
- target = resources.files(self.data) / 'does-not-exist'
59
- with self.assertRaises(FileNotFoundError):
60
- target.open('rb')
61
-
62
- def test_open_text_FileNotFoundError(self):
63
- target = resources.files(self.data) / 'does-not-exist'
64
- with self.assertRaises(FileNotFoundError):
65
- target.open(encoding='utf-8')
66
-
67
-
68
- class OpenDiskTests(OpenTests, unittest.TestCase):
69
- def setUp(self):
70
- self.data = data01
71
-
72
-
73
- class OpenDiskNamespaceTests(OpenTests, unittest.TestCase):
74
- def setUp(self):
75
- from . import namespacedata01
76
-
77
- self.data = namespacedata01
78
-
79
-
80
- class OpenZipTests(OpenTests, util.ZipSetup, unittest.TestCase):
81
- pass
82
-
83
-
84
- class OpenNamespaceZipTests(OpenTests, util.ZipSetup, unittest.TestCase):
85
- ZIP_MODULE = 'namespacedata01'
86
-
87
-
88
- if __name__ == '__main__':
89
- unittest.main()
@@ -1,65 +0,0 @@
1
- import io
2
- import pathlib
3
- import unittest
4
-
5
- import importlib_resources as resources
6
- from . import data01
7
- from . import util
8
-
9
-
10
- class CommonTests(util.CommonTests, unittest.TestCase):
11
- def execute(self, package, path):
12
- with resources.as_file(resources.files(package).joinpath(path)):
13
- pass
14
-
15
-
16
- class PathTests:
17
- def test_reading(self):
18
- """
19
- Path should be readable and a pathlib.Path instance.
20
- """
21
- target = resources.files(self.data) / 'utf-8.file'
22
- with resources.as_file(target) as path:
23
- self.assertIsInstance(path, pathlib.Path)
24
- self.assertTrue(path.name.endswith("utf-8.file"), repr(path))
25
- self.assertEqual('Hello, UTF-8 world!\n', path.read_text(encoding='utf-8'))
26
-
27
-
28
- class PathDiskTests(PathTests, unittest.TestCase):
29
- data = data01
30
-
31
- def test_natural_path(self):
32
- """
33
- Guarantee the internal implementation detail that
34
- file-system-backed resources do not get the tempdir
35
- treatment.
36
- """
37
- target = resources.files(self.data) / 'utf-8.file'
38
- with resources.as_file(target) as path:
39
- assert 'data' in str(path)
40
-
41
-
42
- class PathMemoryTests(PathTests, unittest.TestCase):
43
- def setUp(self):
44
- file = io.BytesIO(b'Hello, UTF-8 world!\n')
45
- self.addCleanup(file.close)
46
- self.data = util.create_package(
47
- file=file, path=FileNotFoundError("package exists only in memory")
48
- )
49
- self.data.__spec__.origin = None
50
- self.data.__spec__.has_location = False
51
-
52
-
53
- class PathZipTests(PathTests, util.ZipSetup, unittest.TestCase):
54
- def test_remove_in_context_manager(self):
55
- """
56
- It is not an error if the file that was temporarily stashed on the
57
- file system is removed inside the `with` stanza.
58
- """
59
- target = resources.files(self.data) / 'utf-8.file'
60
- with resources.as_file(target) as path:
61
- path.unlink()
62
-
63
-
64
- if __name__ == '__main__':
65
- unittest.main()
@@ -1,97 +0,0 @@
1
- import unittest
2
- import importlib_resources as resources
3
-
4
- from . import data01
5
- from . import util
6
- from importlib import import_module
7
-
8
-
9
- class CommonBinaryTests(util.CommonTests, unittest.TestCase):
10
- def execute(self, package, path):
11
- resources.files(package).joinpath(path).read_bytes()
12
-
13
-
14
- class CommonTextTests(util.CommonTests, unittest.TestCase):
15
- def execute(self, package, path):
16
- resources.files(package).joinpath(path).read_text(encoding='utf-8')
17
-
18
-
19
- class ReadTests:
20
- def test_read_bytes(self):
21
- result = resources.files(self.data).joinpath('binary.file').read_bytes()
22
- self.assertEqual(result, bytes(range(4)))
23
-
24
- def test_read_text_default_encoding(self):
25
- result = (
26
- resources.files(self.data)
27
- .joinpath('utf-8.file')
28
- .read_text(encoding='utf-8')
29
- )
30
- self.assertEqual(result, 'Hello, UTF-8 world!\n')
31
-
32
- def test_read_text_given_encoding(self):
33
- result = (
34
- resources.files(self.data)
35
- .joinpath('utf-16.file')
36
- .read_text(encoding='utf-16')
37
- )
38
- self.assertEqual(result, 'Hello, UTF-16 world!\n')
39
-
40
- def test_read_text_with_errors(self):
41
- """
42
- Raises UnicodeError without the 'errors' argument.
43
- """
44
- target = resources.files(self.data) / 'utf-16.file'
45
- self.assertRaises(UnicodeError, target.read_text, encoding='utf-8')
46
- result = target.read_text(encoding='utf-8', errors='ignore')
47
- self.assertEqual(
48
- result,
49
- 'H\x00e\x00l\x00l\x00o\x00,\x00 '
50
- '\x00U\x00T\x00F\x00-\x001\x006\x00 '
51
- '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00',
52
- )
53
-
54
-
55
- class ReadDiskTests(ReadTests, unittest.TestCase):
56
- data = data01
57
-
58
-
59
- class ReadZipTests(ReadTests, util.ZipSetup, unittest.TestCase):
60
- def test_read_submodule_resource(self):
61
- submodule = import_module('data01.subdirectory')
62
- result = resources.files(submodule).joinpath('binary.file').read_bytes()
63
- self.assertEqual(result, bytes(range(4, 8)))
64
-
65
- def test_read_submodule_resource_by_name(self):
66
- result = (
67
- resources.files('data01.subdirectory').joinpath('binary.file').read_bytes()
68
- )
69
- self.assertEqual(result, bytes(range(4, 8)))
70
-
71
-
72
- class ReadNamespaceTests(ReadTests, unittest.TestCase):
73
- def setUp(self):
74
- from . import namespacedata01
75
-
76
- self.data = namespacedata01
77
-
78
-
79
- class ReadNamespaceZipTests(ReadTests, util.ZipSetup, unittest.TestCase):
80
- ZIP_MODULE = 'namespacedata01'
81
-
82
- def test_read_submodule_resource(self):
83
- submodule = import_module('namespacedata01.subdirectory')
84
- result = resources.files(submodule).joinpath('binary.file').read_bytes()
85
- self.assertEqual(result, bytes(range(12, 16)))
86
-
87
- def test_read_submodule_resource_by_name(self):
88
- result = (
89
- resources.files('namespacedata01.subdirectory')
90
- .joinpath('binary.file')
91
- .read_bytes()
92
- )
93
- self.assertEqual(result, bytes(range(12, 16)))
94
-
95
-
96
- if __name__ == '__main__':
97
- unittest.main()