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,258 @@
1
+ """
2
+ Python Script Wrapper for Windows
3
+ =================================
4
+
5
+ setuptools includes wrappers for Python scripts that allows them to be
6
+ executed like regular windows programs. There are 2 wrappers, one
7
+ for command-line programs, cli.exe, and one for graphical programs,
8
+ gui.exe. These programs are almost identical, function pretty much
9
+ the same way, and are generated from the same source file. The
10
+ wrapper programs are used by copying them to the directory containing
11
+ the script they are to wrap and with the same name as the script they
12
+ are to wrap.
13
+ """
14
+
15
+ import pathlib
16
+ import platform
17
+ import subprocess
18
+ import sys
19
+ import textwrap
20
+
21
+ import pytest
22
+
23
+ from setuptools._importlib import resources
24
+
25
+ pytestmark = pytest.mark.skipif(sys.platform != 'win32', reason="Windows only")
26
+
27
+
28
+ class WrapperTester:
29
+ @classmethod
30
+ def prep_script(cls, template):
31
+ python_exe = subprocess.list2cmdline([sys.executable])
32
+ return template % locals()
33
+
34
+ @classmethod
35
+ def create_script(cls, tmpdir):
36
+ """
37
+ Create a simple script, foo-script.py
38
+
39
+ Note that the script starts with a Unix-style '#!' line saying which
40
+ Python executable to run. The wrapper will use this line to find the
41
+ correct Python executable.
42
+ """
43
+
44
+ script = cls.prep_script(cls.script_tmpl)
45
+
46
+ with (tmpdir / cls.script_name).open('w') as f:
47
+ f.write(script)
48
+
49
+ # also copy cli.exe to the sample directory
50
+ with (tmpdir / cls.wrapper_name).open('wb') as f:
51
+ w = resources.files('setuptools').joinpath(cls.wrapper_source).read_bytes()
52
+ f.write(w)
53
+
54
+
55
+ def win_launcher_exe(prefix):
56
+ """A simple routine to select launcher script based on platform."""
57
+ assert prefix in ('cli', 'gui')
58
+ if platform.machine() == "ARM64":
59
+ return f"{prefix}-arm64.exe"
60
+ else:
61
+ return f"{prefix}-32.exe"
62
+
63
+
64
+ class TestCLI(WrapperTester):
65
+ script_name = 'foo-script.py'
66
+ wrapper_name = 'foo.exe'
67
+ wrapper_source = win_launcher_exe('cli')
68
+
69
+ script_tmpl = textwrap.dedent(
70
+ """
71
+ #!%(python_exe)s
72
+ import sys
73
+ input = repr(sys.stdin.read())
74
+ print(sys.argv[0][-14:])
75
+ print(sys.argv[1:])
76
+ print(input)
77
+ if __debug__:
78
+ print('non-optimized')
79
+ """
80
+ ).lstrip()
81
+
82
+ def test_basic(self, tmpdir):
83
+ """
84
+ When the copy of cli.exe, foo.exe in this example, runs, it examines
85
+ the path name it was run with and computes a Python script path name
86
+ by removing the '.exe' suffix and adding the '-script.py' suffix. (For
87
+ GUI programs, the suffix '-script.pyw' is added.) This is why we
88
+ named out script the way we did. Now we can run out script by running
89
+ the wrapper:
90
+
91
+ This example was a little pathological in that it exercised windows
92
+ (MS C runtime) quoting rules:
93
+
94
+ - Strings containing spaces are surrounded by double quotes.
95
+
96
+ - Double quotes in strings need to be escaped by preceding them with
97
+ back slashes.
98
+
99
+ - One or more backslashes preceding double quotes need to be escaped
100
+ by preceding each of them with back slashes.
101
+ """
102
+ self.create_script(tmpdir)
103
+ cmd = [
104
+ str(tmpdir / 'foo.exe'),
105
+ 'arg1',
106
+ 'arg 2',
107
+ 'arg "2\\"',
108
+ 'arg 4\\',
109
+ 'arg5 a\\\\b',
110
+ ]
111
+ proc = subprocess.Popen(
112
+ cmd,
113
+ stdout=subprocess.PIPE,
114
+ stdin=subprocess.PIPE,
115
+ text=True,
116
+ encoding="utf-8",
117
+ )
118
+ stdout, _stderr = proc.communicate('hello\nworld\n')
119
+ actual = stdout.replace('\r\n', '\n')
120
+ expected = textwrap.dedent(
121
+ r"""
122
+ \foo-script.py
123
+ ['arg1', 'arg 2', 'arg "2\\"', 'arg 4\\', 'arg5 a\\\\b']
124
+ 'hello\nworld\n'
125
+ non-optimized
126
+ """
127
+ ).lstrip()
128
+ assert actual == expected
129
+
130
+ def test_symlink(self, tmpdir):
131
+ """
132
+ Ensure that symlink for the foo.exe is working correctly.
133
+ """
134
+ script_dir = tmpdir / "script_dir"
135
+ script_dir.mkdir()
136
+ self.create_script(script_dir)
137
+ symlink = pathlib.Path(tmpdir / "foo.exe")
138
+ symlink.symlink_to(script_dir / "foo.exe")
139
+
140
+ cmd = [
141
+ str(tmpdir / 'foo.exe'),
142
+ 'arg1',
143
+ 'arg 2',
144
+ 'arg "2\\"',
145
+ 'arg 4\\',
146
+ 'arg5 a\\\\b',
147
+ ]
148
+ proc = subprocess.Popen(
149
+ cmd,
150
+ stdout=subprocess.PIPE,
151
+ stdin=subprocess.PIPE,
152
+ text=True,
153
+ encoding="utf-8",
154
+ )
155
+ stdout, _stderr = proc.communicate('hello\nworld\n')
156
+ actual = stdout.replace('\r\n', '\n')
157
+ expected = textwrap.dedent(
158
+ r"""
159
+ \foo-script.py
160
+ ['arg1', 'arg 2', 'arg "2\\"', 'arg 4\\', 'arg5 a\\\\b']
161
+ 'hello\nworld\n'
162
+ non-optimized
163
+ """
164
+ ).lstrip()
165
+ assert actual == expected
166
+
167
+ def test_with_options(self, tmpdir):
168
+ """
169
+ Specifying Python Command-line Options
170
+ --------------------------------------
171
+
172
+ You can specify a single argument on the '#!' line. This can be used
173
+ to specify Python options like -O, to run in optimized mode or -i
174
+ to start the interactive interpreter. You can combine multiple
175
+ options as usual. For example, to run in optimized mode and
176
+ enter the interpreter after running the script, you could use -Oi:
177
+ """
178
+ self.create_script(tmpdir)
179
+ tmpl = textwrap.dedent(
180
+ """
181
+ #!%(python_exe)s -Oi
182
+ import sys
183
+ input = repr(sys.stdin.read())
184
+ print(sys.argv[0][-14:])
185
+ print(sys.argv[1:])
186
+ print(input)
187
+ if __debug__:
188
+ print('non-optimized')
189
+ sys.ps1 = '---'
190
+ """
191
+ ).lstrip()
192
+ with (tmpdir / 'foo-script.py').open('w') as f:
193
+ f.write(self.prep_script(tmpl))
194
+ cmd = [str(tmpdir / 'foo.exe')]
195
+ proc = subprocess.Popen(
196
+ cmd,
197
+ stdout=subprocess.PIPE,
198
+ stdin=subprocess.PIPE,
199
+ stderr=subprocess.STDOUT,
200
+ text=True,
201
+ encoding="utf-8",
202
+ )
203
+ stdout, _stderr = proc.communicate()
204
+ actual = stdout.replace('\r\n', '\n')
205
+ expected = textwrap.dedent(
206
+ r"""
207
+ \foo-script.py
208
+ []
209
+ ''
210
+ ---
211
+ """
212
+ ).lstrip()
213
+ assert actual == expected
214
+
215
+
216
+ class TestGUI(WrapperTester):
217
+ """
218
+ Testing the GUI Version
219
+ -----------------------
220
+ """
221
+
222
+ script_name = 'bar-script.pyw'
223
+ wrapper_source = win_launcher_exe('gui')
224
+ wrapper_name = 'bar.exe'
225
+
226
+ script_tmpl = textwrap.dedent(
227
+ """
228
+ #!%(python_exe)s
229
+ import sys
230
+ f = open(sys.argv[1], 'wb')
231
+ bytes_written = f.write(repr(sys.argv[2]).encode('utf-8'))
232
+ f.close()
233
+ """
234
+ ).strip()
235
+
236
+ def test_basic(self, tmpdir):
237
+ """Test the GUI version with the simple script, bar-script.py"""
238
+ self.create_script(tmpdir)
239
+
240
+ cmd = [
241
+ str(tmpdir / 'bar.exe'),
242
+ str(tmpdir / 'test_output.txt'),
243
+ 'Test Argument',
244
+ ]
245
+ proc = subprocess.Popen(
246
+ cmd,
247
+ stdout=subprocess.PIPE,
248
+ stdin=subprocess.PIPE,
249
+ stderr=subprocess.STDOUT,
250
+ text=True,
251
+ encoding="utf-8",
252
+ )
253
+ stdout, stderr = proc.communicate()
254
+ assert not stdout
255
+ assert not stderr
256
+ with (tmpdir / 'test_output.txt').open('rb') as f_out:
257
+ actual = f_out.read().decode('ascii')
258
+ assert actual == repr('Test Argument')
@@ -0,0 +1,4 @@
1
+ class Filenames:
2
+ unicode = 'smörbröd.py'
3
+ latin_1 = unicode.encode('latin-1')
4
+ utf_8 = unicode.encode('utf-8')
@@ -0,0 +1,6 @@
1
+ import textwrap
2
+
3
+
4
+ def DALS(s):
5
+ "dedent and left-strip"
6
+ return textwrap.dedent(s).lstrip()
@@ -0,0 +1,102 @@
1
+ import sys
2
+ import unicodedata
3
+ from configparser import RawConfigParser
4
+
5
+ from .compat import py39
6
+ from .warnings import SetuptoolsDeprecationWarning
7
+
8
+
9
+ # HFS Plus uses decomposed UTF-8
10
+ def decompose(path):
11
+ if isinstance(path, str):
12
+ return unicodedata.normalize('NFD', path)
13
+ try:
14
+ path = path.decode('utf-8')
15
+ path = unicodedata.normalize('NFD', path)
16
+ path = path.encode('utf-8')
17
+ except UnicodeError:
18
+ pass # Not UTF-8
19
+ return path
20
+
21
+
22
+ def filesys_decode(path):
23
+ """
24
+ Ensure that the given path is decoded,
25
+ ``None`` when no expected encoding works
26
+ """
27
+
28
+ if isinstance(path, str):
29
+ return path
30
+
31
+ fs_enc = sys.getfilesystemencoding() or 'utf-8'
32
+ candidates = fs_enc, 'utf-8'
33
+
34
+ for enc in candidates:
35
+ try:
36
+ return path.decode(enc)
37
+ except UnicodeDecodeError:
38
+ continue
39
+
40
+ return None
41
+
42
+
43
+ def try_encode(string, enc):
44
+ "turn unicode encoding into a functional routine"
45
+ try:
46
+ return string.encode(enc)
47
+ except UnicodeEncodeError:
48
+ return None
49
+
50
+
51
+ def _read_utf8_with_fallback(file: str, fallback_encoding=py39.LOCALE_ENCODING) -> str:
52
+ """
53
+ First try to read the file with UTF-8, if there is an error fallback to a
54
+ different encoding ("locale" by default). Returns the content of the file.
55
+ Also useful when reading files that might have been produced by an older version of
56
+ setuptools.
57
+ """
58
+ try:
59
+ with open(file, "r", encoding="utf-8") as f:
60
+ return f.read()
61
+ except UnicodeDecodeError: # pragma: no cover
62
+ _Utf8EncodingNeeded.emit(file=file, fallback_encoding=fallback_encoding)
63
+ with open(file, "r", encoding=fallback_encoding) as f:
64
+ return f.read()
65
+
66
+
67
+ def _cfg_read_utf8_with_fallback(
68
+ cfg: RawConfigParser, file: str, fallback_encoding=py39.LOCALE_ENCODING
69
+ ) -> None:
70
+ """Same idea as :func:`_read_utf8_with_fallback`, but for the
71
+ :meth:`RawConfigParser.read` method.
72
+
73
+ This method may call ``cfg.clear()``.
74
+ """
75
+ try:
76
+ cfg.read(file, encoding="utf-8")
77
+ except UnicodeDecodeError: # pragma: no cover
78
+ _Utf8EncodingNeeded.emit(file=file, fallback_encoding=fallback_encoding)
79
+ cfg.clear()
80
+ cfg.read(file, encoding=fallback_encoding)
81
+
82
+
83
+ class _Utf8EncodingNeeded(SetuptoolsDeprecationWarning):
84
+ _SUMMARY = """
85
+ `encoding="utf-8"` fails with {file!r}, trying `encoding={fallback_encoding!r}`.
86
+ """
87
+
88
+ _DETAILS = """
89
+ Fallback behavior for UTF-8 is considered **deprecated** and future versions of
90
+ `setuptools` may not implement it.
91
+
92
+ Please encode {file!r} with "utf-8" to ensure future builds will succeed.
93
+
94
+ If this file was produced by `setuptools` itself, cleaning up the cached files
95
+ and re-building/re-installing the package with a newer version of `setuptools`
96
+ (e.g. by updating `build-system.requires` in its `pyproject.toml`)
97
+ might solve the problem.
98
+ """
99
+ # TODO: Add a deadline?
100
+ # Will we be able to remove this?
101
+ # The question comes to mind mainly because of sdists that have been produced
102
+ # by old versions of setuptools and published to PyPI...
@@ -0,0 +1,6 @@
1
+ from ._importlib import metadata
2
+
3
+ try:
4
+ __version__ = metadata.version('setuptools') or '0.dev0+unknown'
5
+ except Exception:
6
+ __version__ = '0.dev0+unknown'
@@ -0,0 +1,110 @@
1
+ """Provide basic warnings used by setuptools modules.
2
+
3
+ Using custom classes (other than ``UserWarning``) allow users to set
4
+ ``PYTHONWARNINGS`` filters to run tests and prepare for upcoming changes in
5
+ setuptools.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import os
11
+ import warnings
12
+ from datetime import date
13
+ from inspect import cleandoc
14
+ from textwrap import indent
15
+ from typing import TYPE_CHECKING
16
+
17
+ if TYPE_CHECKING:
18
+ from typing_extensions import TypeAlias
19
+
20
+ _DueDate: TypeAlias = tuple[int, int, int] # time tuple
21
+ _INDENT = 8 * " "
22
+ _TEMPLATE = f"""{80 * '*'}\n{{details}}\n{80 * '*'}"""
23
+
24
+
25
+ class SetuptoolsWarning(UserWarning):
26
+ """Base class in ``setuptools`` warning hierarchy."""
27
+
28
+ @classmethod
29
+ def emit(
30
+ cls,
31
+ summary: str | None = None,
32
+ details: str | None = None,
33
+ due_date: _DueDate | None = None,
34
+ see_docs: str | None = None,
35
+ see_url: str | None = None,
36
+ stacklevel: int = 2,
37
+ **kwargs,
38
+ ) -> None:
39
+ """Private: reserved for ``setuptools`` internal use only"""
40
+ # Default values:
41
+ summary_ = summary or getattr(cls, "_SUMMARY", None) or ""
42
+ details_ = details or getattr(cls, "_DETAILS", None) or ""
43
+ due_date = due_date or getattr(cls, "_DUE_DATE", None)
44
+ docs_ref = see_docs or getattr(cls, "_SEE_DOCS", None)
45
+ docs_url = docs_ref and f"https://setuptools.pypa.io/en/latest/{docs_ref}"
46
+ see_url = see_url or getattr(cls, "_SEE_URL", None)
47
+ due = date(*due_date) if due_date else None
48
+
49
+ text = cls._format(summary_, details_, due, see_url or docs_url, kwargs)
50
+ if due and due < date.today() and _should_enforce():
51
+ raise cls(text)
52
+ warnings.warn(text, cls, stacklevel=stacklevel + 1)
53
+
54
+ @classmethod
55
+ def _format(
56
+ cls,
57
+ summary: str,
58
+ details: str,
59
+ due_date: date | None = None,
60
+ see_url: str | None = None,
61
+ format_args: dict | None = None,
62
+ ) -> str:
63
+ """Private: reserved for ``setuptools`` internal use only"""
64
+ today = date.today()
65
+ summary = cleandoc(summary).format_map(format_args or {})
66
+ possible_parts = [
67
+ cleandoc(details).format_map(format_args or {}),
68
+ (
69
+ f"\nBy {due_date:%Y-%b-%d}, you need to update your project and remove "
70
+ "deprecated calls\nor your builds will no longer be supported."
71
+ if due_date and due_date > today
72
+ else None
73
+ ),
74
+ (
75
+ "\nThis deprecation is overdue, please update your project and remove "
76
+ "deprecated\ncalls to avoid build errors in the future."
77
+ if due_date and due_date < today
78
+ else None
79
+ ),
80
+ (f"\nSee {see_url} for details." if see_url else None),
81
+ ]
82
+ parts = [x for x in possible_parts if x]
83
+ if parts:
84
+ body = indent(_TEMPLATE.format(details="\n".join(parts)), _INDENT)
85
+ return "\n".join([summary, "!!\n", body, "\n!!"])
86
+ return summary
87
+
88
+
89
+ class InformationOnly(SetuptoolsWarning):
90
+ """Currently there is no clear way of displaying messages to the users
91
+ that use the setuptools backend directly via ``pip``.
92
+ The only thing that might work is a warning, although it is not the
93
+ most appropriate tool for the job...
94
+
95
+ See pypa/packaging-problems#558.
96
+ """
97
+
98
+
99
+ class SetuptoolsDeprecationWarning(SetuptoolsWarning):
100
+ """
101
+ Base class for warning deprecations in ``setuptools``
102
+
103
+ This class is not derived from ``DeprecationWarning``, and as such is
104
+ visible by default.
105
+ """
106
+
107
+
108
+ def _should_enforce():
109
+ enforce = os.getenv("SETUPTOOLS_ENFORCE_DEPRECATION", "false").lower()
110
+ return enforce in ("true", "on", "ok", "1")