android-notify 1.60.0__py3-none-any.whl → 1.60.2__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.

Potentially problematic release.


This version of android-notify might be problematic. Click here for more details.

Files changed (375) hide show
  1. android_notify/config.py +1 -1
  2. {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/METADATA +4 -4
  3. {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/RECORD +375 -6
  4. venv/Lib/site-packages/_distutils_hack/__init__.py +239 -0
  5. venv/Lib/site-packages/_distutils_hack/override.py +1 -0
  6. venv/Lib/site-packages/pkg_resources/__init__.py +3713 -0
  7. venv/Lib/site-packages/pkg_resources/py.typed +0 -0
  8. venv/Lib/site-packages/pkg_resources/tests/__init__.py +0 -0
  9. venv/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +7 -0
  10. venv/Lib/site-packages/pkg_resources/tests/test_find_distributions.py +56 -0
  11. venv/Lib/site-packages/pkg_resources/tests/test_integration_zope_interface.py +54 -0
  12. venv/Lib/site-packages/pkg_resources/tests/test_markers.py +8 -0
  13. venv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +485 -0
  14. venv/Lib/site-packages/pkg_resources/tests/test_resources.py +869 -0
  15. venv/Lib/site-packages/pkg_resources/tests/test_working_set.py +505 -0
  16. venv/Lib/site-packages/setuptools/__init__.py +248 -0
  17. venv/Lib/site-packages/setuptools/_core_metadata.py +337 -0
  18. venv/Lib/site-packages/setuptools/_discovery.py +33 -0
  19. venv/Lib/site-packages/setuptools/_distutils/__init__.py +14 -0
  20. venv/Lib/site-packages/setuptools/_distutils/_log.py +3 -0
  21. venv/Lib/site-packages/setuptools/_distutils/_macos_compat.py +12 -0
  22. venv/Lib/site-packages/setuptools/_distutils/_modified.py +95 -0
  23. venv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +16 -0
  24. venv/Lib/site-packages/setuptools/_distutils/archive_util.py +294 -0
  25. venv/Lib/site-packages/setuptools/_distutils/ccompiler.py +26 -0
  26. venv/Lib/site-packages/setuptools/_distutils/cmd.py +554 -0
  27. venv/Lib/site-packages/setuptools/_distutils/command/__init__.py +23 -0
  28. venv/Lib/site-packages/setuptools/_distutils/command/_framework_compat.py +54 -0
  29. venv/Lib/site-packages/setuptools/_distutils/command/bdist.py +167 -0
  30. venv/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +141 -0
  31. venv/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +598 -0
  32. venv/Lib/site-packages/setuptools/_distutils/command/build.py +156 -0
  33. venv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +201 -0
  34. venv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +812 -0
  35. venv/Lib/site-packages/setuptools/_distutils/command/build_py.py +407 -0
  36. venv/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +160 -0
  37. venv/Lib/site-packages/setuptools/_distutils/command/check.py +152 -0
  38. venv/Lib/site-packages/setuptools/_distutils/command/clean.py +77 -0
  39. venv/Lib/site-packages/setuptools/_distutils/command/config.py +358 -0
  40. venv/Lib/site-packages/setuptools/_distutils/command/install.py +805 -0
  41. venv/Lib/site-packages/setuptools/_distutils/command/install_data.py +94 -0
  42. venv/Lib/site-packages/setuptools/_distutils/command/install_egg_info.py +91 -0
  43. venv/Lib/site-packages/setuptools/_distutils/command/install_headers.py +46 -0
  44. venv/Lib/site-packages/setuptools/_distutils/command/install_lib.py +238 -0
  45. venv/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +62 -0
  46. venv/Lib/site-packages/setuptools/_distutils/command/sdist.py +521 -0
  47. venv/Lib/site-packages/setuptools/_distutils/compat/__init__.py +18 -0
  48. venv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  49. venv/Lib/site-packages/setuptools/_distutils/compat/py39.py +66 -0
  50. venv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +1394 -0
  51. venv/Lib/site-packages/setuptools/_distutils/compilers/C/cygwin.py +340 -0
  52. venv/Lib/site-packages/setuptools/_distutils/compilers/C/errors.py +24 -0
  53. venv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +614 -0
  54. venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_base.py +83 -0
  55. venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_cygwin.py +76 -0
  56. venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_mingw.py +48 -0
  57. venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_msvc.py +136 -0
  58. venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +413 -0
  59. venv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +422 -0
  60. venv/Lib/site-packages/setuptools/_distutils/compilers/C/zos.py +230 -0
  61. venv/Lib/site-packages/setuptools/_distutils/core.py +289 -0
  62. venv/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +31 -0
  63. venv/Lib/site-packages/setuptools/_distutils/debug.py +5 -0
  64. venv/Lib/site-packages/setuptools/_distutils/dep_util.py +14 -0
  65. venv/Lib/site-packages/setuptools/_distutils/dir_util.py +244 -0
  66. venv/Lib/site-packages/setuptools/_distutils/dist.py +1386 -0
  67. venv/Lib/site-packages/setuptools/_distutils/errors.py +108 -0
  68. venv/Lib/site-packages/setuptools/_distutils/extension.py +258 -0
  69. venv/Lib/site-packages/setuptools/_distutils/fancy_getopt.py +471 -0
  70. venv/Lib/site-packages/setuptools/_distutils/file_util.py +236 -0
  71. venv/Lib/site-packages/setuptools/_distutils/filelist.py +431 -0
  72. venv/Lib/site-packages/setuptools/_distutils/log.py +56 -0
  73. venv/Lib/site-packages/setuptools/_distutils/spawn.py +134 -0
  74. venv/Lib/site-packages/setuptools/_distutils/sysconfig.py +598 -0
  75. venv/Lib/site-packages/setuptools/_distutils/tests/__init__.py +42 -0
  76. venv/Lib/site-packages/setuptools/_distutils/tests/compat/__init__.py +0 -0
  77. venv/Lib/site-packages/setuptools/_distutils/tests/compat/py39.py +40 -0
  78. venv/Lib/site-packages/setuptools/_distutils/tests/support.py +134 -0
  79. venv/Lib/site-packages/setuptools/_distutils/tests/test_archive_util.py +353 -0
  80. venv/Lib/site-packages/setuptools/_distutils/tests/test_bdist.py +47 -0
  81. venv/Lib/site-packages/setuptools/_distutils/tests/test_bdist_dumb.py +78 -0
  82. venv/Lib/site-packages/setuptools/_distutils/tests/test_bdist_rpm.py +127 -0
  83. venv/Lib/site-packages/setuptools/_distutils/tests/test_build.py +49 -0
  84. venv/Lib/site-packages/setuptools/_distutils/tests/test_build_clib.py +134 -0
  85. venv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +628 -0
  86. venv/Lib/site-packages/setuptools/_distutils/tests/test_build_py.py +196 -0
  87. venv/Lib/site-packages/setuptools/_distutils/tests/test_build_scripts.py +96 -0
  88. venv/Lib/site-packages/setuptools/_distutils/tests/test_check.py +194 -0
  89. venv/Lib/site-packages/setuptools/_distutils/tests/test_clean.py +45 -0
  90. venv/Lib/site-packages/setuptools/_distutils/tests/test_cmd.py +107 -0
  91. venv/Lib/site-packages/setuptools/_distutils/tests/test_config_cmd.py +87 -0
  92. venv/Lib/site-packages/setuptools/_distutils/tests/test_core.py +130 -0
  93. venv/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +139 -0
  94. venv/Lib/site-packages/setuptools/_distutils/tests/test_dist.py +552 -0
  95. venv/Lib/site-packages/setuptools/_distutils/tests/test_extension.py +117 -0
  96. venv/Lib/site-packages/setuptools/_distutils/tests/test_file_util.py +95 -0
  97. venv/Lib/site-packages/setuptools/_distutils/tests/test_filelist.py +336 -0
  98. venv/Lib/site-packages/setuptools/_distutils/tests/test_install.py +245 -0
  99. venv/Lib/site-packages/setuptools/_distutils/tests/test_install_data.py +74 -0
  100. venv/Lib/site-packages/setuptools/_distutils/tests/test_install_headers.py +33 -0
  101. venv/Lib/site-packages/setuptools/_distutils/tests/test_install_lib.py +110 -0
  102. venv/Lib/site-packages/setuptools/_distutils/tests/test_install_scripts.py +52 -0
  103. venv/Lib/site-packages/setuptools/_distutils/tests/test_log.py +12 -0
  104. venv/Lib/site-packages/setuptools/_distutils/tests/test_modified.py +126 -0
  105. venv/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +470 -0
  106. venv/Lib/site-packages/setuptools/_distutils/tests/test_spawn.py +141 -0
  107. venv/Lib/site-packages/setuptools/_distutils/tests/test_sysconfig.py +319 -0
  108. venv/Lib/site-packages/setuptools/_distutils/tests/test_text_file.py +127 -0
  109. venv/Lib/site-packages/setuptools/_distutils/tests/test_util.py +243 -0
  110. venv/Lib/site-packages/setuptools/_distutils/tests/test_version.py +80 -0
  111. venv/Lib/site-packages/setuptools/_distutils/tests/test_versionpredicate.py +0 -0
  112. venv/Lib/site-packages/setuptools/_distutils/tests/unix_compat.py +17 -0
  113. venv/Lib/site-packages/setuptools/_distutils/text_file.py +286 -0
  114. venv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +9 -0
  115. venv/Lib/site-packages/setuptools/_distutils/util.py +518 -0
  116. venv/Lib/site-packages/setuptools/_distutils/version.py +348 -0
  117. venv/Lib/site-packages/setuptools/_distutils/versionpredicate.py +175 -0
  118. venv/Lib/site-packages/setuptools/_distutils/zosccompiler.py +3 -0
  119. venv/Lib/site-packages/setuptools/_entry_points.py +94 -0
  120. venv/Lib/site-packages/setuptools/_imp.py +87 -0
  121. venv/Lib/site-packages/setuptools/_importlib.py +9 -0
  122. venv/Lib/site-packages/setuptools/_itertools.py +23 -0
  123. venv/Lib/site-packages/setuptools/_normalization.py +177 -0
  124. venv/Lib/site-packages/setuptools/_path.py +93 -0
  125. venv/Lib/site-packages/setuptools/_reqs.py +42 -0
  126. venv/Lib/site-packages/setuptools/_scripts.py +361 -0
  127. venv/Lib/site-packages/setuptools/_shutil.py +59 -0
  128. venv/Lib/site-packages/setuptools/_static.py +188 -0
  129. venv/Lib/site-packages/setuptools/_vendor/autocommand/__init__.py +27 -0
  130. venv/Lib/site-packages/setuptools/_vendor/autocommand/autoasync.py +142 -0
  131. venv/Lib/site-packages/setuptools/_vendor/autocommand/autocommand.py +70 -0
  132. venv/Lib/site-packages/setuptools/_vendor/autocommand/automain.py +59 -0
  133. venv/Lib/site-packages/setuptools/_vendor/autocommand/autoparse.py +333 -0
  134. venv/Lib/site-packages/setuptools/_vendor/autocommand/errors.py +23 -0
  135. venv/Lib/site-packages/setuptools/_vendor/backports/__init__.py +1 -0
  136. venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/__init__.py +2937 -0
  137. venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/__main__.py +5 -0
  138. venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/__init__.py +0 -0
  139. venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/py38.py +24 -0
  140. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/__init__.py +1083 -0
  141. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py +83 -0
  142. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_collections.py +30 -0
  143. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_compat.py +57 -0
  144. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_functools.py +104 -0
  145. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py +73 -0
  146. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_meta.py +67 -0
  147. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_text.py +99 -0
  148. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/__init__.py +0 -0
  149. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py +22 -0
  150. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py +36 -0
  151. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/diagnose.py +21 -0
  152. venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
  153. venv/Lib/site-packages/setuptools/_vendor/inflect/__init__.py +3986 -0
  154. venv/Lib/site-packages/setuptools/_vendor/inflect/compat/__init__.py +0 -0
  155. venv/Lib/site-packages/setuptools/_vendor/inflect/compat/py38.py +7 -0
  156. venv/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
  157. venv/Lib/site-packages/setuptools/_vendor/jaraco/collections/__init__.py +1091 -0
  158. venv/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
  159. venv/Lib/site-packages/setuptools/_vendor/jaraco/context.py +361 -0
  160. venv/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.py +633 -0
  161. venv/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
  162. venv/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
  163. venv/Lib/site-packages/setuptools/_vendor/jaraco/text/__init__.py +624 -0
  164. venv/Lib/site-packages/setuptools/_vendor/jaraco/text/layouts.py +25 -0
  165. venv/Lib/site-packages/setuptools/_vendor/jaraco/text/show-newlines.py +33 -0
  166. venv/Lib/site-packages/setuptools/_vendor/jaraco/text/strip-prefix.py +21 -0
  167. venv/Lib/site-packages/setuptools/_vendor/jaraco/text/to-dvorak.py +6 -0
  168. venv/Lib/site-packages/setuptools/_vendor/jaraco/text/to-qwerty.py +6 -0
  169. venv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py +6 -0
  170. venv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
  171. venv/Lib/site-packages/setuptools/_vendor/more_itertools/more.py +4806 -0
  172. venv/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
  173. venv/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
  174. venv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py +1046 -0
  175. venv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
  176. venv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +15 -0
  177. venv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +110 -0
  178. venv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +263 -0
  179. venv/Lib/site-packages/setuptools/_vendor/packaging/_musllinux.py +85 -0
  180. venv/Lib/site-packages/setuptools/_vendor/packaging/_parser.py +354 -0
  181. venv/Lib/site-packages/setuptools/_vendor/packaging/_structures.py +61 -0
  182. venv/Lib/site-packages/setuptools/_vendor/packaging/_tokenizer.py +194 -0
  183. venv/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
  184. venv/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
  185. venv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +331 -0
  186. venv/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +863 -0
  187. venv/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
  188. venv/Lib/site-packages/setuptools/_vendor/packaging/requirements.py +91 -0
  189. venv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +1020 -0
  190. venv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +617 -0
  191. venv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +163 -0
  192. venv/Lib/site-packages/setuptools/_vendor/packaging/version.py +582 -0
  193. venv/Lib/site-packages/setuptools/_vendor/platformdirs/__init__.py +627 -0
  194. venv/Lib/site-packages/setuptools/_vendor/platformdirs/__main__.py +55 -0
  195. venv/Lib/site-packages/setuptools/_vendor/platformdirs/android.py +249 -0
  196. venv/Lib/site-packages/setuptools/_vendor/platformdirs/api.py +292 -0
  197. venv/Lib/site-packages/setuptools/_vendor/platformdirs/macos.py +130 -0
  198. venv/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
  199. venv/Lib/site-packages/setuptools/_vendor/platformdirs/unix.py +275 -0
  200. venv/Lib/site-packages/setuptools/_vendor/platformdirs/version.py +16 -0
  201. venv/Lib/site-packages/setuptools/_vendor/platformdirs/windows.py +272 -0
  202. venv/Lib/site-packages/setuptools/_vendor/tomli/__init__.py +11 -0
  203. venv/Lib/site-packages/setuptools/_vendor/tomli/_parser.py +691 -0
  204. venv/Lib/site-packages/setuptools/_vendor/tomli/_re.py +107 -0
  205. venv/Lib/site-packages/setuptools/_vendor/tomli/_types.py +10 -0
  206. venv/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
  207. venv/Lib/site-packages/setuptools/_vendor/typeguard/__init__.py +48 -0
  208. venv/Lib/site-packages/setuptools/_vendor/typeguard/_checkers.py +993 -0
  209. venv/Lib/site-packages/setuptools/_vendor/typeguard/_config.py +108 -0
  210. venv/Lib/site-packages/setuptools/_vendor/typeguard/_decorators.py +235 -0
  211. venv/Lib/site-packages/setuptools/_vendor/typeguard/_exceptions.py +42 -0
  212. venv/Lib/site-packages/setuptools/_vendor/typeguard/_functions.py +308 -0
  213. venv/Lib/site-packages/setuptools/_vendor/typeguard/_importhook.py +213 -0
  214. venv/Lib/site-packages/setuptools/_vendor/typeguard/_memo.py +48 -0
  215. venv/Lib/site-packages/setuptools/_vendor/typeguard/_pytest_plugin.py +127 -0
  216. venv/Lib/site-packages/setuptools/_vendor/typeguard/_suppression.py +86 -0
  217. venv/Lib/site-packages/setuptools/_vendor/typeguard/_transformer.py +1229 -0
  218. venv/Lib/site-packages/setuptools/_vendor/typeguard/_union_transformer.py +55 -0
  219. venv/Lib/site-packages/setuptools/_vendor/typeguard/_utils.py +173 -0
  220. venv/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
  221. venv/Lib/site-packages/setuptools/_vendor/typing_extensions.py +3641 -0
  222. venv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +3 -0
  223. venv/Lib/site-packages/setuptools/_vendor/wheel/__main__.py +23 -0
  224. venv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  225. venv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +26 -0
  226. venv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +26 -0
  227. venv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +155 -0
  228. venv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +332 -0
  229. venv/Lib/site-packages/setuptools/_vendor/wheel/cli/pack.py +85 -0
  230. venv/Lib/site-packages/setuptools/_vendor/wheel/cli/tags.py +139 -0
  231. venv/Lib/site-packages/setuptools/_vendor/wheel/cli/unpack.py +30 -0
  232. venv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +482 -0
  233. venv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +183 -0
  234. venv/Lib/site-packages/setuptools/_vendor/wheel/util.py +17 -0
  235. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/__init__.py +0 -0
  236. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py +0 -0
  237. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py +108 -0
  238. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py +260 -0
  239. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py +83 -0
  240. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py +356 -0
  241. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py +61 -0
  242. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py +192 -0
  243. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py +253 -0
  244. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py +90 -0
  245. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py +1011 -0
  246. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py +571 -0
  247. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py +172 -0
  248. venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py +561 -0
  249. venv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +227 -0
  250. venv/Lib/site-packages/setuptools/_vendor/zipp/__init__.py +501 -0
  251. venv/Lib/site-packages/setuptools/_vendor/zipp/compat/__init__.py +0 -0
  252. venv/Lib/site-packages/setuptools/_vendor/zipp/compat/py310.py +11 -0
  253. venv/Lib/site-packages/setuptools/_vendor/zipp/glob.py +106 -0
  254. venv/Lib/site-packages/setuptools/archive_util.py +219 -0
  255. venv/Lib/site-packages/setuptools/build_meta.py +548 -0
  256. venv/Lib/site-packages/setuptools/command/__init__.py +21 -0
  257. venv/Lib/site-packages/setuptools/command/_requirestxt.py +131 -0
  258. venv/Lib/site-packages/setuptools/command/alias.py +77 -0
  259. venv/Lib/site-packages/setuptools/command/bdist_egg.py +477 -0
  260. venv/Lib/site-packages/setuptools/command/bdist_rpm.py +42 -0
  261. venv/Lib/site-packages/setuptools/command/bdist_wheel.py +604 -0
  262. venv/Lib/site-packages/setuptools/command/build.py +135 -0
  263. venv/Lib/site-packages/setuptools/command/build_clib.py +103 -0
  264. venv/Lib/site-packages/setuptools/command/build_ext.py +470 -0
  265. venv/Lib/site-packages/setuptools/command/build_py.py +400 -0
  266. venv/Lib/site-packages/setuptools/command/develop.py +55 -0
  267. venv/Lib/site-packages/setuptools/command/dist_info.py +103 -0
  268. venv/Lib/site-packages/setuptools/command/easy_install.py +30 -0
  269. venv/Lib/site-packages/setuptools/command/editable_wheel.py +908 -0
  270. venv/Lib/site-packages/setuptools/command/egg_info.py +718 -0
  271. venv/Lib/site-packages/setuptools/command/install.py +131 -0
  272. venv/Lib/site-packages/setuptools/command/install_egg_info.py +58 -0
  273. venv/Lib/site-packages/setuptools/command/install_lib.py +137 -0
  274. venv/Lib/site-packages/setuptools/command/install_scripts.py +67 -0
  275. venv/Lib/site-packages/setuptools/command/rotate.py +65 -0
  276. venv/Lib/site-packages/setuptools/command/saveopts.py +21 -0
  277. venv/Lib/site-packages/setuptools/command/sdist.py +217 -0
  278. venv/Lib/site-packages/setuptools/command/setopt.py +141 -0
  279. venv/Lib/site-packages/setuptools/command/test.py +45 -0
  280. venv/Lib/site-packages/setuptools/compat/__init__.py +0 -0
  281. venv/Lib/site-packages/setuptools/compat/py310.py +20 -0
  282. venv/Lib/site-packages/setuptools/compat/py311.py +27 -0
  283. venv/Lib/site-packages/setuptools/compat/py312.py +13 -0
  284. venv/Lib/site-packages/setuptools/compat/py39.py +9 -0
  285. venv/Lib/site-packages/setuptools/config/__init__.py +43 -0
  286. venv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +526 -0
  287. venv/Lib/site-packages/setuptools/config/_validate_pyproject/__init__.py +34 -0
  288. venv/Lib/site-packages/setuptools/config/_validate_pyproject/error_reporting.py +336 -0
  289. venv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +82 -0
  290. venv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py +51 -0
  291. venv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +1412 -0
  292. venv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +402 -0
  293. venv/Lib/site-packages/setuptools/config/expand.py +452 -0
  294. venv/Lib/site-packages/setuptools/config/pyprojecttoml.py +468 -0
  295. venv/Lib/site-packages/setuptools/config/setupcfg.py +780 -0
  296. venv/Lib/site-packages/setuptools/depends.py +185 -0
  297. venv/Lib/site-packages/setuptools/discovery.py +614 -0
  298. venv/Lib/site-packages/setuptools/dist.py +1119 -0
  299. venv/Lib/site-packages/setuptools/errors.py +67 -0
  300. venv/Lib/site-packages/setuptools/extension.py +177 -0
  301. venv/Lib/site-packages/setuptools/glob.py +185 -0
  302. venv/Lib/site-packages/setuptools/installer.py +155 -0
  303. venv/Lib/site-packages/setuptools/launch.py +36 -0
  304. venv/Lib/site-packages/setuptools/logging.py +40 -0
  305. venv/Lib/site-packages/setuptools/modified.py +18 -0
  306. venv/Lib/site-packages/setuptools/monkey.py +126 -0
  307. venv/Lib/site-packages/setuptools/msvc.py +1536 -0
  308. venv/Lib/site-packages/setuptools/namespaces.py +106 -0
  309. venv/Lib/site-packages/setuptools/tests/__init__.py +13 -0
  310. venv/Lib/site-packages/setuptools/tests/compat/__init__.py +0 -0
  311. venv/Lib/site-packages/setuptools/tests/compat/py39.py +3 -0
  312. venv/Lib/site-packages/setuptools/tests/config/__init__.py +0 -0
  313. venv/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +59 -0
  314. venv/Lib/site-packages/setuptools/tests/config/downloads/preload.py +18 -0
  315. venv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +772 -0
  316. venv/Lib/site-packages/setuptools/tests/config/test_expand.py +247 -0
  317. venv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +396 -0
  318. venv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +109 -0
  319. venv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +980 -0
  320. venv/Lib/site-packages/setuptools/tests/contexts.py +131 -0
  321. venv/Lib/site-packages/setuptools/tests/environment.py +95 -0
  322. venv/Lib/site-packages/setuptools/tests/fixtures.py +392 -0
  323. venv/Lib/site-packages/setuptools/tests/integration/__init__.py +0 -0
  324. venv/Lib/site-packages/setuptools/tests/integration/helpers.py +77 -0
  325. venv/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
  326. venv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +223 -0
  327. venv/Lib/site-packages/setuptools/tests/mod_with_constant.py +1 -0
  328. venv/Lib/site-packages/setuptools/tests/namespaces.py +90 -0
  329. venv/Lib/site-packages/setuptools/tests/script-with-bom.py +1 -0
  330. venv/Lib/site-packages/setuptools/tests/test_archive_util.py +36 -0
  331. venv/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py +28 -0
  332. venv/Lib/site-packages/setuptools/tests/test_bdist_egg.py +73 -0
  333. venv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +708 -0
  334. venv/Lib/site-packages/setuptools/tests/test_build.py +33 -0
  335. venv/Lib/site-packages/setuptools/tests/test_build_clib.py +84 -0
  336. venv/Lib/site-packages/setuptools/tests/test_build_ext.py +293 -0
  337. venv/Lib/site-packages/setuptools/tests/test_build_meta.py +959 -0
  338. venv/Lib/site-packages/setuptools/tests/test_build_py.py +480 -0
  339. venv/Lib/site-packages/setuptools/tests/test_config_discovery.py +647 -0
  340. venv/Lib/site-packages/setuptools/tests/test_core_metadata.py +622 -0
  341. venv/Lib/site-packages/setuptools/tests/test_depends.py +15 -0
  342. venv/Lib/site-packages/setuptools/tests/test_develop.py +112 -0
  343. venv/Lib/site-packages/setuptools/tests/test_dist.py +278 -0
  344. venv/Lib/site-packages/setuptools/tests/test_dist_info.py +147 -0
  345. venv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +198 -0
  346. venv/Lib/site-packages/setuptools/tests/test_editable_install.py +1263 -0
  347. venv/Lib/site-packages/setuptools/tests/test_egg_info.py +1306 -0
  348. venv/Lib/site-packages/setuptools/tests/test_extern.py +15 -0
  349. venv/Lib/site-packages/setuptools/tests/test_find_packages.py +218 -0
  350. venv/Lib/site-packages/setuptools/tests/test_find_py_modules.py +73 -0
  351. venv/Lib/site-packages/setuptools/tests/test_glob.py +45 -0
  352. venv/Lib/site-packages/setuptools/tests/test_install_scripts.py +89 -0
  353. venv/Lib/site-packages/setuptools/tests/test_logging.py +76 -0
  354. venv/Lib/site-packages/setuptools/tests/test_manifest.py +622 -0
  355. venv/Lib/site-packages/setuptools/tests/test_namespaces.py +138 -0
  356. venv/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
  357. venv/Lib/site-packages/setuptools/tests/test_sdist.py +984 -0
  358. venv/Lib/site-packages/setuptools/tests/test_setopt.py +40 -0
  359. venv/Lib/site-packages/setuptools/tests/test_setuptools.py +290 -0
  360. venv/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
  361. venv/Lib/site-packages/setuptools/tests/test_unicode_utils.py +10 -0
  362. venv/Lib/site-packages/setuptools/tests/test_virtualenv.py +113 -0
  363. venv/Lib/site-packages/setuptools/tests/test_warnings.py +106 -0
  364. venv/Lib/site-packages/setuptools/tests/test_wheel.py +690 -0
  365. venv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +258 -0
  366. venv/Lib/site-packages/setuptools/tests/text.py +4 -0
  367. venv/Lib/site-packages/setuptools/tests/textwrap.py +6 -0
  368. venv/Lib/site-packages/setuptools/unicode_utils.py +102 -0
  369. venv/Lib/site-packages/setuptools/version.py +6 -0
  370. venv/Lib/site-packages/setuptools/warnings.py +110 -0
  371. venv/Lib/site-packages/setuptools/wheel.py +261 -0
  372. venv/Lib/site-packages/setuptools/windows_support.py +30 -0
  373. {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/WHEEL +0 -0
  374. {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/entry_points.txt +0 -0
  375. {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,67 @@
1
+ """setuptools.errors
2
+
3
+ Provides exceptions used by setuptools modules.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from distutils import errors as _distutils_errors
9
+
10
+ # Re-export errors from distutils to facilitate the migration to PEP632
11
+
12
+ ByteCompileError = _distutils_errors.DistutilsByteCompileError
13
+ CCompilerError = _distutils_errors.CCompilerError
14
+ ClassError = _distutils_errors.DistutilsClassError
15
+ CompileError = _distutils_errors.CompileError
16
+ ExecError = _distutils_errors.DistutilsExecError
17
+ FileError = _distutils_errors.DistutilsFileError
18
+ InternalError = _distutils_errors.DistutilsInternalError
19
+ LibError = _distutils_errors.LibError
20
+ LinkError = _distutils_errors.LinkError
21
+ ModuleError = _distutils_errors.DistutilsModuleError
22
+ OptionError = _distutils_errors.DistutilsOptionError
23
+ PlatformError = _distutils_errors.DistutilsPlatformError
24
+ PreprocessError = _distutils_errors.PreprocessError
25
+ SetupError = _distutils_errors.DistutilsSetupError
26
+ TemplateError = _distutils_errors.DistutilsTemplateError
27
+ UnknownFileError = _distutils_errors.UnknownFileError
28
+
29
+ # The root error class in the hierarchy
30
+ BaseError = _distutils_errors.DistutilsError
31
+
32
+
33
+ class InvalidConfigError(OptionError): # type: ignore[valid-type, misc] # distutils imports are `Any` on python 3.12+
34
+ """Error used for invalid configurations."""
35
+
36
+
37
+ class RemovedConfigError(OptionError): # type: ignore[valid-type, misc] # distutils imports are `Any` on python 3.12+
38
+ """Error used for configurations that were deprecated and removed."""
39
+
40
+
41
+ class RemovedCommandError(BaseError, RuntimeError): # type: ignore[valid-type, misc] # distutils imports are `Any` on python 3.12+
42
+ """Error used for commands that have been removed in setuptools.
43
+
44
+ Since ``setuptools`` is built on ``distutils``, simply removing a command
45
+ from ``setuptools`` will make the behavior fall back to ``distutils``; this
46
+ error is raised if a command exists in ``distutils`` but has been actively
47
+ removed in ``setuptools``.
48
+ """
49
+
50
+
51
+ class PackageDiscoveryError(BaseError, RuntimeError): # type: ignore[valid-type, misc] # distutils imports are `Any` on python 3.12+
52
+ """Impossible to perform automatic discovery of packages and/or modules.
53
+
54
+ The current project layout or given discovery options can lead to problems when
55
+ scanning the project directory.
56
+
57
+ Setuptools might also refuse to complete auto-discovery if an error prone condition
58
+ is detected (e.g. when a project is organised as a flat-layout but contains
59
+ multiple directories that can be taken as top-level packages inside a single
60
+ distribution [*]_). In these situations the users are encouraged to be explicit
61
+ about which packages to include or to make the discovery parameters more specific.
62
+
63
+ .. [*] Since multi-package distributions are uncommon it is very likely that the
64
+ developers did not intend for all the directories to be packaged, and are just
65
+ leaving auxiliary code in the repository top-level, such as maintenance-related
66
+ scripts.
67
+ """
@@ -0,0 +1,177 @@
1
+ from __future__ import annotations
2
+
3
+ import functools
4
+ import re
5
+ from typing import TYPE_CHECKING
6
+
7
+ from setuptools._path import StrPath
8
+
9
+ from .monkey import get_unpatched
10
+
11
+ import distutils.core
12
+ import distutils.errors
13
+ import distutils.extension
14
+
15
+
16
+ def _have_cython():
17
+ """
18
+ Return True if Cython can be imported.
19
+ """
20
+ cython_impl = 'Cython.Distutils.build_ext'
21
+ try:
22
+ # from (cython_impl) import build_ext
23
+ __import__(cython_impl, fromlist=['build_ext']).build_ext
24
+ except Exception:
25
+ return False
26
+ return True
27
+
28
+
29
+ # for compatibility
30
+ have_pyrex = _have_cython
31
+ if TYPE_CHECKING:
32
+ # Work around a mypy issue where type[T] can't be used as a base: https://github.com/python/mypy/issues/10962
33
+ from distutils.core import Extension as _Extension
34
+ else:
35
+ _Extension = get_unpatched(distutils.core.Extension)
36
+
37
+
38
+ class Extension(_Extension):
39
+ """
40
+ Describes a single extension module.
41
+
42
+ This means that all source files will be compiled into a single binary file
43
+ ``<module path>.<suffix>`` (with ``<module path>`` derived from ``name`` and
44
+ ``<suffix>`` defined by one of the values in
45
+ ``importlib.machinery.EXTENSION_SUFFIXES``).
46
+
47
+ In the case ``.pyx`` files are passed as ``sources and`` ``Cython`` is **not**
48
+ installed in the build environment, ``setuptools`` may also try to look for the
49
+ equivalent ``.cpp`` or ``.c`` files.
50
+
51
+ :arg str name:
52
+ the full name of the extension, including any packages -- ie.
53
+ *not* a filename or pathname, but Python dotted name
54
+
55
+ :arg list[str|os.PathLike[str]] sources:
56
+ list of source filenames, relative to the distribution root
57
+ (where the setup script lives), in Unix form (slash-separated)
58
+ for portability. Source files may be C, C++, SWIG (.i),
59
+ platform-specific resource files, or whatever else is recognized
60
+ by the "build_ext" command as source for a Python extension.
61
+
62
+ :keyword list[str] include_dirs:
63
+ list of directories to search for C/C++ header files (in Unix
64
+ form for portability)
65
+
66
+ :keyword list[tuple[str, str|None]] define_macros:
67
+ list of macros to define; each macro is defined using a 2-tuple:
68
+ the first item corresponding to the name of the macro and the second
69
+ item either a string with its value or None to
70
+ define it without a particular value (equivalent of "#define
71
+ FOO" in source or -DFOO on Unix C compiler command line)
72
+
73
+ :keyword list[str] undef_macros:
74
+ list of macros to undefine explicitly
75
+
76
+ :keyword list[str] library_dirs:
77
+ list of directories to search for C/C++ libraries at link time
78
+
79
+ :keyword list[str] libraries:
80
+ list of library names (not filenames or paths) to link against
81
+
82
+ :keyword list[str] runtime_library_dirs:
83
+ list of directories to search for C/C++ libraries at run time
84
+ (for shared extensions, this is when the extension is loaded).
85
+ Setting this will cause an exception during build on Windows
86
+ platforms.
87
+
88
+ :keyword list[str] extra_objects:
89
+ list of extra files to link with (eg. object files not implied
90
+ by 'sources', static library that must be explicitly specified,
91
+ binary resource files, etc.)
92
+
93
+ :keyword list[str] extra_compile_args:
94
+ any extra platform- and compiler-specific information to use
95
+ when compiling the source files in 'sources'. For platforms and
96
+ compilers where "command line" makes sense, this is typically a
97
+ list of command-line arguments, but for other platforms it could
98
+ be anything.
99
+
100
+ :keyword list[str] extra_link_args:
101
+ any extra platform- and compiler-specific information to use
102
+ when linking object files together to create the extension (or
103
+ to create a new static Python interpreter). Similar
104
+ interpretation as for 'extra_compile_args'.
105
+
106
+ :keyword list[str] export_symbols:
107
+ list of symbols to be exported from a shared extension. Not
108
+ used on all platforms, and not generally necessary for Python
109
+ extensions, which typically export exactly one symbol: "init" +
110
+ extension_name.
111
+
112
+ :keyword list[str] swig_opts:
113
+ any extra options to pass to SWIG if a source file has the .i
114
+ extension.
115
+
116
+ :keyword list[str] depends:
117
+ list of files that the extension depends on
118
+
119
+ :keyword str language:
120
+ extension language (i.e. "c", "c++", "objc"). Will be detected
121
+ from the source extensions if not provided.
122
+
123
+ :keyword bool optional:
124
+ specifies that a build failure in the extension should not abort the
125
+ build process, but simply not install the failing extension.
126
+
127
+ :keyword bool py_limited_api:
128
+ opt-in flag for the usage of :doc:`Python's limited API <python:c-api/stable>`.
129
+
130
+ :raises setuptools.errors.PlatformError: if ``runtime_library_dirs`` is
131
+ specified on Windows. (since v63)
132
+ """
133
+
134
+ # These 4 are set and used in setuptools/command/build_ext.py
135
+ # The lack of a default value and risk of `AttributeError` is purposeful
136
+ # to avoid people forgetting to call finalize_options if they modify the extension list.
137
+ # See example/rationale in https://github.com/pypa/setuptools/issues/4529.
138
+ _full_name: str #: Private API, internal use only.
139
+ _links_to_dynamic: bool #: Private API, internal use only.
140
+ _needs_stub: bool #: Private API, internal use only.
141
+ _file_name: str #: Private API, internal use only.
142
+
143
+ def __init__(
144
+ self,
145
+ name: str,
146
+ sources: list[StrPath],
147
+ *args,
148
+ py_limited_api: bool = False,
149
+ **kw,
150
+ ) -> None:
151
+ # The *args is needed for compatibility as calls may use positional
152
+ # arguments. py_limited_api may be set only via keyword.
153
+ self.py_limited_api = py_limited_api
154
+ super().__init__(
155
+ name,
156
+ sources, # type: ignore[arg-type] # Vendored version of setuptools supports PathLike
157
+ *args,
158
+ **kw,
159
+ )
160
+
161
+ def _convert_pyx_sources_to_lang(self):
162
+ """
163
+ Replace sources with .pyx extensions to sources with the target
164
+ language extension. This mechanism allows language authors to supply
165
+ pre-converted sources but to prefer the .pyx sources.
166
+ """
167
+ if _have_cython():
168
+ # the build has Cython, so allow it to compile the .pyx files
169
+ return
170
+ lang = self.language or ''
171
+ target_ext = '.cpp' if lang.lower() == 'c++' else '.c'
172
+ sub = functools.partial(re.sub, '.pyx$', target_ext)
173
+ self.sources = list(map(sub, self.sources))
174
+
175
+
176
+ class Library(Extension):
177
+ """Just like a regular Extension, but built as a library instead"""
@@ -0,0 +1,185 @@
1
+ """
2
+ Filename globbing utility. Mostly a copy of `glob` from Python 3.5.
3
+
4
+ Changes include:
5
+ * `yield from` and PEP3102 `*` removed.
6
+ * Hidden files are not ignored.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import fnmatch
12
+ import os
13
+ import re
14
+ from collections.abc import Iterable, Iterator
15
+ from typing import TYPE_CHECKING, AnyStr, overload
16
+
17
+ if TYPE_CHECKING:
18
+ from _typeshed import BytesPath, StrOrBytesPath, StrPath
19
+
20
+ __all__ = ["glob", "iglob", "escape"]
21
+
22
+
23
+ def glob(pathname: AnyStr, recursive: bool = False) -> list[AnyStr]:
24
+ """Return a list of paths matching a pathname pattern.
25
+
26
+ The pattern may contain simple shell-style wildcards a la
27
+ fnmatch. However, unlike fnmatch, filenames starting with a
28
+ dot are special cases that are not matched by '*' and '?'
29
+ patterns.
30
+
31
+ If recursive is true, the pattern '**' will match any files and
32
+ zero or more directories and subdirectories.
33
+ """
34
+ return list(iglob(pathname, recursive=recursive))
35
+
36
+
37
+ def iglob(pathname: AnyStr, recursive: bool = False) -> Iterator[AnyStr]:
38
+ """Return an iterator which yields the paths matching a pathname pattern.
39
+
40
+ The pattern may contain simple shell-style wildcards a la
41
+ fnmatch. However, unlike fnmatch, filenames starting with a
42
+ dot are special cases that are not matched by '*' and '?'
43
+ patterns.
44
+
45
+ If recursive is true, the pattern '**' will match any files and
46
+ zero or more directories and subdirectories.
47
+ """
48
+ it = _iglob(pathname, recursive)
49
+ if recursive and _isrecursive(pathname):
50
+ s = next(it) # skip empty string
51
+ assert not s
52
+ return it
53
+
54
+
55
+ def _iglob(pathname: AnyStr, recursive: bool) -> Iterator[AnyStr]:
56
+ dirname, basename = os.path.split(pathname)
57
+ glob_in_dir = glob2 if recursive and _isrecursive(basename) else glob1
58
+
59
+ if not has_magic(pathname):
60
+ if basename:
61
+ if os.path.lexists(pathname):
62
+ yield pathname
63
+ else:
64
+ # Patterns ending with a slash should match only directories
65
+ if os.path.isdir(dirname):
66
+ yield pathname
67
+ return
68
+
69
+ if not dirname:
70
+ yield from glob_in_dir(dirname, basename)
71
+ return
72
+ # `os.path.split()` returns the argument itself as a dirname if it is a
73
+ # drive or UNC path. Prevent an infinite recursion if a drive or UNC path
74
+ # contains magic characters (i.e. r'\\?\C:').
75
+ if dirname != pathname and has_magic(dirname):
76
+ dirs: Iterable[AnyStr] = _iglob(dirname, recursive)
77
+ else:
78
+ dirs = [dirname]
79
+ if not has_magic(basename):
80
+ glob_in_dir = glob0
81
+ for dirname in dirs:
82
+ for name in glob_in_dir(dirname, basename):
83
+ yield os.path.join(dirname, name)
84
+
85
+
86
+ # These 2 helper functions non-recursively glob inside a literal directory.
87
+ # They return a list of basenames. `glob1` accepts a pattern while `glob0`
88
+ # takes a literal basename (so it only has to check for its existence).
89
+
90
+
91
+ @overload
92
+ def glob1(dirname: StrPath, pattern: str) -> list[str]: ...
93
+ @overload
94
+ def glob1(dirname: BytesPath, pattern: bytes) -> list[bytes]: ...
95
+ def glob1(dirname: StrOrBytesPath, pattern: str | bytes) -> list[str] | list[bytes]:
96
+ if not dirname:
97
+ if isinstance(pattern, bytes):
98
+ dirname = os.curdir.encode('ASCII')
99
+ else:
100
+ dirname = os.curdir
101
+ try:
102
+ names = os.listdir(dirname)
103
+ except OSError:
104
+ return []
105
+ # mypy false-positives: str or bytes type possibility is always kept in sync
106
+ return fnmatch.filter(names, pattern) # type: ignore[type-var, return-value]
107
+
108
+
109
+ def glob0(dirname, basename):
110
+ if not basename:
111
+ # `os.path.split()` returns an empty basename for paths ending with a
112
+ # directory separator. 'q*x/' should match only directories.
113
+ if os.path.isdir(dirname):
114
+ return [basename]
115
+ else:
116
+ if os.path.lexists(os.path.join(dirname, basename)):
117
+ return [basename]
118
+ return []
119
+
120
+
121
+ # This helper function recursively yields relative pathnames inside a literal
122
+ # directory.
123
+
124
+
125
+ @overload
126
+ def glob2(dirname: StrPath, pattern: str) -> Iterator[str]: ...
127
+ @overload
128
+ def glob2(dirname: BytesPath, pattern: bytes) -> Iterator[bytes]: ...
129
+ def glob2(dirname: StrOrBytesPath, pattern: str | bytes) -> Iterator[str | bytes]:
130
+ assert _isrecursive(pattern)
131
+ yield pattern[:0]
132
+ yield from _rlistdir(dirname)
133
+
134
+
135
+ # Recursively yields relative pathnames inside a literal directory.
136
+ @overload
137
+ def _rlistdir(dirname: StrPath) -> Iterator[str]: ...
138
+ @overload
139
+ def _rlistdir(dirname: BytesPath) -> Iterator[bytes]: ...
140
+ def _rlistdir(dirname: StrOrBytesPath) -> Iterator[str | bytes]:
141
+ if not dirname:
142
+ if isinstance(dirname, bytes):
143
+ dirname = os.curdir.encode('ASCII')
144
+ else:
145
+ dirname = os.curdir
146
+ try:
147
+ names = os.listdir(dirname)
148
+ except OSError:
149
+ return
150
+ for x in names:
151
+ yield x
152
+ # mypy false-positives: str or bytes type possibility is always kept in sync
153
+ path = os.path.join(dirname, x) if dirname else x # type: ignore[arg-type]
154
+ for y in _rlistdir(path):
155
+ yield os.path.join(x, y) # type: ignore[arg-type]
156
+
157
+
158
+ magic_check = re.compile('([*?[])')
159
+ magic_check_bytes = re.compile(b'([*?[])')
160
+
161
+
162
+ def has_magic(s: str | bytes) -> bool:
163
+ if isinstance(s, bytes):
164
+ return magic_check_bytes.search(s) is not None
165
+ else:
166
+ return magic_check.search(s) is not None
167
+
168
+
169
+ def _isrecursive(pattern: str | bytes) -> bool:
170
+ if isinstance(pattern, bytes):
171
+ return pattern == b'**'
172
+ else:
173
+ return pattern == '**'
174
+
175
+
176
+ def escape(pathname):
177
+ """Escape all special characters."""
178
+ # Escaping is done by wrapping any of "*?[" between square brackets.
179
+ # Metacharacters do not work in the drive part and shouldn't be escaped.
180
+ drive, pathname = os.path.splitdrive(pathname)
181
+ if isinstance(pathname, bytes):
182
+ pathname = magic_check_bytes.sub(rb'[\1]', pathname)
183
+ else:
184
+ pathname = magic_check.sub(r'[\1]', pathname)
185
+ return drive + pathname
@@ -0,0 +1,155 @@
1
+ from __future__ import annotations
2
+
3
+ import glob
4
+ import itertools
5
+ import os
6
+ import subprocess
7
+ import sys
8
+ import tempfile
9
+
10
+ import packaging.requirements
11
+ import packaging.utils
12
+
13
+ from . import _reqs
14
+ from ._importlib import metadata
15
+ from .warnings import SetuptoolsDeprecationWarning
16
+ from .wheel import Wheel
17
+
18
+ from distutils import log
19
+ from distutils.errors import DistutilsError
20
+
21
+
22
+ def _fixup_find_links(find_links):
23
+ """Ensure find-links option end-up being a list of strings."""
24
+ if isinstance(find_links, str):
25
+ return find_links.split()
26
+ assert isinstance(find_links, (tuple, list))
27
+ return find_links
28
+
29
+
30
+ def fetch_build_egg(dist, req):
31
+ """Fetch an egg needed for building.
32
+
33
+ Use pip/wheel to fetch/build a wheel."""
34
+ _DeprecatedInstaller.emit()
35
+ _warn_wheel_not_available(dist)
36
+ return _fetch_build_egg_no_warn(dist, req)
37
+
38
+
39
+ def _present(req):
40
+ return any(_dist_matches_req(dist, req) for dist in metadata.distributions())
41
+
42
+
43
+ def _fetch_build_eggs(dist, requires: _reqs._StrOrIter) -> list[metadata.Distribution]:
44
+ _DeprecatedInstaller.emit(stacklevel=3)
45
+ _warn_wheel_not_available(dist)
46
+
47
+ parsed_reqs = _reqs.parse(requires)
48
+
49
+ missing_reqs = itertools.filterfalse(_present, parsed_reqs)
50
+
51
+ needed_reqs = (
52
+ req for req in missing_reqs if not req.marker or req.marker.evaluate()
53
+ )
54
+ resolved_dists = [_fetch_build_egg_no_warn(dist, req) for req in needed_reqs]
55
+ for dist in resolved_dists:
56
+ # dist.locate_file('') is the directory containing EGG-INFO, where the importabl
57
+ # contents can be found.
58
+ sys.path.insert(0, str(dist.locate_file('')))
59
+ return resolved_dists
60
+
61
+
62
+ def _dist_matches_req(egg_dist, req):
63
+ return (
64
+ packaging.utils.canonicalize_name(egg_dist.name)
65
+ == packaging.utils.canonicalize_name(req.name)
66
+ and egg_dist.version in req.specifier
67
+ )
68
+
69
+
70
+ def _fetch_build_egg_no_warn(dist, req): # noqa: C901 # is too complex (16) # FIXME
71
+ # Ignore environment markers; if supplied, it is required.
72
+ req = strip_marker(req)
73
+ # Take easy_install options into account, but do not override relevant
74
+ # pip environment variables (like PIP_INDEX_URL or PIP_QUIET); they'll
75
+ # take precedence.
76
+ opts = dist.get_option_dict('easy_install')
77
+ if 'allow_hosts' in opts:
78
+ raise DistutilsError(
79
+ 'the `allow-hosts` option is not supported '
80
+ 'when using pip to install requirements.'
81
+ )
82
+ quiet = 'PIP_QUIET' not in os.environ and 'PIP_VERBOSE' not in os.environ
83
+ if 'PIP_INDEX_URL' in os.environ:
84
+ index_url = None
85
+ elif 'index_url' in opts:
86
+ index_url = opts['index_url'][1]
87
+ else:
88
+ index_url = None
89
+ find_links = (
90
+ _fixup_find_links(opts['find_links'][1])[:] if 'find_links' in opts else []
91
+ )
92
+ if dist.dependency_links:
93
+ find_links.extend(dist.dependency_links)
94
+ eggs_dir = os.path.realpath(dist.get_egg_cache_dir())
95
+ cached_dists = metadata.Distribution.discover(path=glob.glob(f'{eggs_dir}/*.egg'))
96
+ for egg_dist in cached_dists:
97
+ if _dist_matches_req(egg_dist, req):
98
+ return egg_dist
99
+ with tempfile.TemporaryDirectory() as tmpdir:
100
+ cmd = [
101
+ sys.executable,
102
+ '-m',
103
+ 'pip',
104
+ '--disable-pip-version-check',
105
+ 'wheel',
106
+ '--no-deps',
107
+ '-w',
108
+ tmpdir,
109
+ ]
110
+ if quiet:
111
+ cmd.append('--quiet')
112
+ if index_url is not None:
113
+ cmd.extend(('--index-url', index_url))
114
+ for link in find_links or []:
115
+ cmd.extend(('--find-links', link))
116
+ # If requirement is a PEP 508 direct URL, directly pass
117
+ # the URL to pip, as `req @ url` does not work on the
118
+ # command line.
119
+ cmd.append(req.url or str(req))
120
+ try:
121
+ subprocess.check_call(cmd)
122
+ except subprocess.CalledProcessError as e:
123
+ raise DistutilsError(str(e)) from e
124
+ wheel = Wheel(glob.glob(os.path.join(tmpdir, '*.whl'))[0])
125
+ dist_location = os.path.join(eggs_dir, wheel.egg_name())
126
+ wheel.install_as_egg(dist_location)
127
+ return metadata.Distribution.at(dist_location + '/EGG-INFO')
128
+
129
+
130
+ def strip_marker(req):
131
+ """
132
+ Return a new requirement without the environment marker to avoid
133
+ calling pip with something like `babel; extra == "i18n"`, which
134
+ would always be ignored.
135
+ """
136
+ # create a copy to avoid mutating the input
137
+ req = packaging.requirements.Requirement(str(req))
138
+ req.marker = None
139
+ return req
140
+
141
+
142
+ def _warn_wheel_not_available(dist):
143
+ try:
144
+ metadata.distribution('wheel')
145
+ except metadata.PackageNotFoundError:
146
+ dist.announce('WARNING: The wheel package is not available.', log.WARN)
147
+
148
+
149
+ class _DeprecatedInstaller(SetuptoolsDeprecationWarning):
150
+ _SUMMARY = "setuptools.installer and fetch_build_eggs are deprecated."
151
+ _DETAILS = """
152
+ Requirements should be satisfied by a PEP 517 installer.
153
+ If you are using pip, you can try `pip install --use-pep517`.
154
+ """
155
+ _DUE_DATE = 2025, 10, 31
@@ -0,0 +1,36 @@
1
+ """
2
+ Launch the Python script on the command line after
3
+ setuptools is bootstrapped via import.
4
+ """
5
+
6
+ # Note that setuptools gets imported implicitly by the
7
+ # invocation of this script using python -m setuptools.launch
8
+
9
+ import sys
10
+ import tokenize
11
+
12
+
13
+ def run() -> None:
14
+ """
15
+ Run the script in sys.argv[1] as if it had
16
+ been invoked naturally.
17
+ """
18
+ __builtins__
19
+ script_name = sys.argv[1]
20
+ namespace = dict(
21
+ __file__=script_name,
22
+ __name__='__main__',
23
+ __doc__=None,
24
+ )
25
+ sys.argv[:] = sys.argv[1:]
26
+
27
+ open_ = getattr(tokenize, 'open', open)
28
+ with open_(script_name) as fid:
29
+ script = fid.read()
30
+ norm_script = script.replace('\\r\\n', '\\n')
31
+ code = compile(norm_script, script_name, 'exec')
32
+ exec(code, namespace)
33
+
34
+
35
+ if __name__ == '__main__':
36
+ run()
@@ -0,0 +1,40 @@
1
+ import inspect
2
+ import logging
3
+ import sys
4
+
5
+ from . import monkey
6
+
7
+ import distutils.log
8
+
9
+
10
+ def _not_warning(record):
11
+ return record.levelno < logging.WARNING
12
+
13
+
14
+ def configure() -> None:
15
+ """
16
+ Configure logging to emit warning and above to stderr
17
+ and everything else to stdout. This behavior is provided
18
+ for compatibility with distutils.log but may change in
19
+ the future.
20
+ """
21
+ err_handler = logging.StreamHandler()
22
+ err_handler.setLevel(logging.WARNING)
23
+ out_handler = logging.StreamHandler(sys.stdout)
24
+ out_handler.addFilter(_not_warning)
25
+ handlers = err_handler, out_handler
26
+ logging.basicConfig(
27
+ format="{message}", style='{', handlers=handlers, level=logging.DEBUG
28
+ )
29
+ if inspect.ismodule(distutils.dist.log):
30
+ monkey.patch_func(set_threshold, distutils.log, 'set_threshold')
31
+ # For some reason `distutils.log` module is getting cached in `distutils.dist`
32
+ # and then loaded again when patched,
33
+ # implying: id(distutils.log) != id(distutils.dist.log).
34
+ # Make sure the same module object is used everywhere:
35
+ distutils.dist.log = distutils.log
36
+
37
+
38
+ def set_threshold(level: int) -> int:
39
+ logging.root.setLevel(level * 10)
40
+ return set_threshold.unpatched(level)
@@ -0,0 +1,18 @@
1
+ try:
2
+ # Ensure a DistutilsError raised by these methods is the same as distutils.errors.DistutilsError
3
+ from distutils._modified import (
4
+ newer,
5
+ newer_group,
6
+ newer_pairwise,
7
+ newer_pairwise_group,
8
+ )
9
+ except ImportError:
10
+ # fallback for SETUPTOOLS_USE_DISTUTILS=stdlib, because _modified never existed in stdlib
11
+ from ._distutils._modified import (
12
+ newer,
13
+ newer_group,
14
+ newer_pairwise,
15
+ newer_pairwise_group,
16
+ )
17
+
18
+ __all__ = ['newer', 'newer_pairwise', 'newer_group', 'newer_pairwise_group']