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,40 @@
1
+ import configparser
2
+
3
+ from setuptools.command import setopt
4
+
5
+
6
+ class TestEdit:
7
+ @staticmethod
8
+ def parse_config(filename):
9
+ parser = configparser.ConfigParser()
10
+ with open(filename, encoding='utf-8') as reader:
11
+ parser.read_file(reader)
12
+ return parser
13
+
14
+ @staticmethod
15
+ def write_text(file, content):
16
+ with open(file, 'wb') as strm:
17
+ strm.write(content.encode('utf-8'))
18
+
19
+ def test_utf8_encoding_retained(self, tmpdir):
20
+ """
21
+ When editing a file, non-ASCII characters encoded in
22
+ UTF-8 should be retained.
23
+ """
24
+ config = tmpdir.join('setup.cfg')
25
+ self.write_text(str(config), '[names]\njaraco=джарако')
26
+ setopt.edit_config(str(config), dict(names=dict(other='yes')))
27
+ parser = self.parse_config(str(config))
28
+ assert parser.get('names', 'jaraco') == 'джарако'
29
+ assert parser.get('names', 'other') == 'yes'
30
+
31
+ def test_case_retained(self, tmpdir):
32
+ """
33
+ When editing a file, case of keys should be retained.
34
+ """
35
+ config = tmpdir.join('setup.cfg')
36
+ self.write_text(str(config), '[names]\nFoO=bAr')
37
+ setopt.edit_config(str(config), dict(names=dict(oTher='yes')))
38
+ actual = config.read_text(encoding='ascii')
39
+ assert 'FoO' in actual
40
+ assert 'oTher' in actual
@@ -0,0 +1,290 @@
1
+ """Tests for the 'setuptools' package"""
2
+
3
+ import os
4
+ import re
5
+ import sys
6
+ from zipfile import ZipFile
7
+
8
+ import pytest
9
+ from packaging.version import Version
10
+
11
+ import setuptools
12
+ import setuptools.depends as dep
13
+ import setuptools.dist
14
+ from setuptools.depends import Require
15
+
16
+ import distutils.cmd
17
+ import distutils.core
18
+ from distutils.core import Extension
19
+ from distutils.errors import DistutilsSetupError
20
+
21
+
22
+ @pytest.fixture(autouse=True)
23
+ def isolated_dir(tmpdir_cwd):
24
+ return
25
+
26
+
27
+ def makeSetup(**args):
28
+ """Return distribution from 'setup(**args)', without executing commands"""
29
+
30
+ distutils.core._setup_stop_after = "commandline"
31
+
32
+ # Don't let system command line leak into tests!
33
+ args.setdefault('script_args', ['install'])
34
+
35
+ try:
36
+ return setuptools.setup(**args)
37
+ finally:
38
+ distutils.core._setup_stop_after = None
39
+
40
+
41
+ needs_bytecode = pytest.mark.skipif(
42
+ not hasattr(dep, 'get_module_constant'),
43
+ reason="bytecode support not available",
44
+ )
45
+
46
+
47
+ class TestDepends:
48
+ def testExtractConst(self):
49
+ if not hasattr(dep, 'extract_constant'):
50
+ # skip on non-bytecode platforms
51
+ return
52
+
53
+ def f1():
54
+ global x, y, z
55
+ x = "test"
56
+ y = z # pyright: ignore[reportUnboundVariable] # Explicitly testing for this runtime issue
57
+
58
+ fc = f1.__code__
59
+
60
+ # unrecognized name
61
+ assert dep.extract_constant(fc, 'q', -1) is None
62
+
63
+ # constant assigned
64
+ assert dep.extract_constant(fc, 'x', -1) == "test"
65
+
66
+ # expression assigned
67
+ assert dep.extract_constant(fc, 'y', -1) == -1
68
+
69
+ # recognized name, not assigned
70
+ assert dep.extract_constant(fc, 'z', -1) is None
71
+
72
+ def testFindModule(self):
73
+ with pytest.raises(ImportError):
74
+ dep.find_module('no-such.-thing')
75
+ with pytest.raises(ImportError):
76
+ dep.find_module('setuptools.non-existent')
77
+ f, _p, _i = dep.find_module('setuptools.tests')
78
+ f.close()
79
+
80
+ @needs_bytecode
81
+ def testModuleExtract(self):
82
+ from json import __version__
83
+
84
+ assert dep.get_module_constant('json', '__version__') == __version__
85
+ assert dep.get_module_constant('sys', 'version') == sys.version
86
+ assert (
87
+ dep.get_module_constant('setuptools.tests.test_setuptools', '__doc__')
88
+ == __doc__
89
+ )
90
+
91
+ @needs_bytecode
92
+ def testRequire(self):
93
+ req = Require('Json', '1.0.3', 'json')
94
+
95
+ assert req.name == 'Json'
96
+ assert req.module == 'json'
97
+ assert req.requested_version == Version('1.0.3')
98
+ assert req.attribute == '__version__'
99
+ assert req.full_name() == 'Json-1.0.3'
100
+
101
+ from json import __version__
102
+
103
+ assert str(req.get_version()) == __version__
104
+ assert req.version_ok('1.0.9')
105
+ assert not req.version_ok('0.9.1')
106
+ assert not req.version_ok('unknown')
107
+
108
+ assert req.is_present()
109
+ assert req.is_current()
110
+
111
+ req = Require('Do-what-I-mean', '1.0', 'd-w-i-m')
112
+ assert not req.is_present()
113
+ assert not req.is_current()
114
+
115
+ @needs_bytecode
116
+ def test_require_present(self):
117
+ # In #1896, this test was failing for months with the only
118
+ # complaint coming from test runners (not end users).
119
+ # TODO: Evaluate if this code is needed at all.
120
+ req = Require('Tests', None, 'tests', homepage="http://example.com")
121
+ assert req.format is None
122
+ assert req.attribute is None
123
+ assert req.requested_version is None
124
+ assert req.full_name() == 'Tests'
125
+ assert req.homepage == 'http://example.com'
126
+
127
+ from setuptools.tests import __path__
128
+
129
+ paths = [os.path.dirname(p) for p in __path__]
130
+ assert req.is_present(paths)
131
+ assert req.is_current(paths)
132
+
133
+
134
+ class TestDistro:
135
+ def setup_method(self, method):
136
+ self.e1 = Extension('bar.ext', ['bar.c'])
137
+ self.e2 = Extension('c.y', ['y.c'])
138
+
139
+ self.dist = makeSetup(
140
+ packages=['a', 'a.b', 'a.b.c', 'b', 'c'],
141
+ py_modules=['b.d', 'x'],
142
+ ext_modules=(self.e1, self.e2),
143
+ package_dir={},
144
+ )
145
+
146
+ def testDistroType(self):
147
+ assert isinstance(self.dist, setuptools.dist.Distribution)
148
+
149
+ def testExcludePackage(self):
150
+ self.dist.exclude_package('a')
151
+ assert self.dist.packages == ['b', 'c']
152
+
153
+ self.dist.exclude_package('b')
154
+ assert self.dist.packages == ['c']
155
+ assert self.dist.py_modules == ['x']
156
+ assert self.dist.ext_modules == [self.e1, self.e2]
157
+
158
+ self.dist.exclude_package('c')
159
+ assert self.dist.packages == []
160
+ assert self.dist.py_modules == ['x']
161
+ assert self.dist.ext_modules == [self.e1]
162
+
163
+ # test removals from unspecified options
164
+ makeSetup().exclude_package('x')
165
+
166
+ def testIncludeExclude(self):
167
+ # remove an extension
168
+ self.dist.exclude(ext_modules=[self.e1])
169
+ assert self.dist.ext_modules == [self.e2]
170
+
171
+ # add it back in
172
+ self.dist.include(ext_modules=[self.e1])
173
+ assert self.dist.ext_modules == [self.e2, self.e1]
174
+
175
+ # should not add duplicate
176
+ self.dist.include(ext_modules=[self.e1])
177
+ assert self.dist.ext_modules == [self.e2, self.e1]
178
+
179
+ def testExcludePackages(self):
180
+ self.dist.exclude(packages=['c', 'b', 'a'])
181
+ assert self.dist.packages == []
182
+ assert self.dist.py_modules == ['x']
183
+ assert self.dist.ext_modules == [self.e1]
184
+
185
+ def testEmpty(self):
186
+ dist = makeSetup()
187
+ dist.include(packages=['a'], py_modules=['b'], ext_modules=[self.e2])
188
+ dist = makeSetup()
189
+ dist.exclude(packages=['a'], py_modules=['b'], ext_modules=[self.e2])
190
+
191
+ def testContents(self):
192
+ assert self.dist.has_contents_for('a')
193
+ self.dist.exclude_package('a')
194
+ assert not self.dist.has_contents_for('a')
195
+
196
+ assert self.dist.has_contents_for('b')
197
+ self.dist.exclude_package('b')
198
+ assert not self.dist.has_contents_for('b')
199
+
200
+ assert self.dist.has_contents_for('c')
201
+ self.dist.exclude_package('c')
202
+ assert not self.dist.has_contents_for('c')
203
+
204
+ def testInvalidIncludeExclude(self):
205
+ with pytest.raises(DistutilsSetupError):
206
+ self.dist.include(nonexistent_option='x')
207
+ with pytest.raises(DistutilsSetupError):
208
+ self.dist.exclude(nonexistent_option='x')
209
+ with pytest.raises(DistutilsSetupError):
210
+ self.dist.include(packages={'x': 'y'})
211
+ with pytest.raises(DistutilsSetupError):
212
+ self.dist.exclude(packages={'x': 'y'})
213
+ with pytest.raises(DistutilsSetupError):
214
+ self.dist.include(ext_modules={'x': 'y'})
215
+ with pytest.raises(DistutilsSetupError):
216
+ self.dist.exclude(ext_modules={'x': 'y'})
217
+
218
+ with pytest.raises(DistutilsSetupError):
219
+ self.dist.include(package_dir=['q'])
220
+ with pytest.raises(DistutilsSetupError):
221
+ self.dist.exclude(package_dir=['q'])
222
+
223
+
224
+ @pytest.fixture
225
+ def example_source(tmpdir):
226
+ tmpdir.mkdir('foo')
227
+ (tmpdir / 'foo/bar.py').write('')
228
+ (tmpdir / 'readme.txt').write('')
229
+ return tmpdir
230
+
231
+
232
+ def test_findall(example_source):
233
+ found = list(setuptools.findall(str(example_source)))
234
+ expected = ['readme.txt', 'foo/bar.py']
235
+ expected = [example_source.join(fn) for fn in expected]
236
+ assert found == expected
237
+
238
+
239
+ def test_findall_curdir(example_source):
240
+ with example_source.as_cwd():
241
+ found = list(setuptools.findall())
242
+ expected = ['readme.txt', os.path.join('foo', 'bar.py')]
243
+ assert found == expected
244
+
245
+
246
+ @pytest.fixture
247
+ def can_symlink(tmpdir):
248
+ """
249
+ Skip if cannot create a symbolic link
250
+ """
251
+ link_fn = 'link'
252
+ target_fn = 'target'
253
+ try:
254
+ os.symlink(target_fn, link_fn)
255
+ except (OSError, NotImplementedError, AttributeError):
256
+ pytest.skip("Cannot create symbolic links")
257
+ os.remove(link_fn)
258
+
259
+
260
+ @pytest.mark.usefixtures("can_symlink")
261
+ def test_findall_missing_symlink(tmpdir):
262
+ with tmpdir.as_cwd():
263
+ os.symlink('foo', 'bar')
264
+ found = list(setuptools.findall())
265
+ assert found == []
266
+
267
+
268
+ @pytest.mark.xfail(reason="unable to exclude tests; #4475 #3260")
269
+ def test_its_own_wheel_does_not_contain_tests(setuptools_wheel):
270
+ with ZipFile(setuptools_wheel) as zipfile:
271
+ contents = [f.replace(os.sep, '/') for f in zipfile.namelist()]
272
+
273
+ for member in contents:
274
+ assert '/tests/' not in member
275
+
276
+
277
+ def test_wheel_includes_cli_scripts(setuptools_wheel):
278
+ with ZipFile(setuptools_wheel) as zipfile:
279
+ contents = [f.replace(os.sep, '/') for f in zipfile.namelist()]
280
+
281
+ assert any('cli-64.exe' in member for member in contents)
282
+
283
+
284
+ def test_wheel_includes_vendored_metadata(setuptools_wheel):
285
+ with ZipFile(setuptools_wheel) as zipfile:
286
+ contents = [f.replace(os.sep, '/') for f in zipfile.namelist()]
287
+
288
+ assert any(
289
+ re.search(r'_vendor/.*\.dist-info/METADATA', member) for member in contents
290
+ )
@@ -0,0 +1,23 @@
1
+ import stat
2
+ import sys
3
+ from unittest.mock import Mock
4
+
5
+ from setuptools import _shutil
6
+
7
+
8
+ def test_rmtree_readonly(monkeypatch, tmp_path):
9
+ """Verify onerr works as expected"""
10
+
11
+ tmp_dir = tmp_path / "with_readonly"
12
+ tmp_dir.mkdir()
13
+ some_file = tmp_dir.joinpath("file.txt")
14
+ some_file.touch()
15
+ some_file.chmod(stat.S_IREAD)
16
+
17
+ expected_count = 1 if sys.platform.startswith("win") else 0
18
+ chmod_fn = Mock(wraps=_shutil.attempt_chmod_verbose)
19
+ monkeypatch.setattr(_shutil, "attempt_chmod_verbose", chmod_fn)
20
+
21
+ _shutil.rmtree(tmp_dir)
22
+ assert chmod_fn.call_count == expected_count
23
+ assert not tmp_dir.is_dir()
@@ -0,0 +1,10 @@
1
+ from setuptools import unicode_utils
2
+
3
+
4
+ def test_filesys_decode_fs_encoding_is_None(monkeypatch):
5
+ """
6
+ Test filesys_decode does not raise TypeError when
7
+ getfilesystemencoding returns None.
8
+ """
9
+ monkeypatch.setattr('sys.getfilesystemencoding', lambda: None)
10
+ unicode_utils.filesys_decode(b'test')
@@ -0,0 +1,113 @@
1
+ import os
2
+ import subprocess
3
+ import sys
4
+ from urllib.error import URLError
5
+ from urllib.request import urlopen
6
+
7
+ import pytest
8
+
9
+
10
+ @pytest.fixture(autouse=True)
11
+ def pytest_virtualenv_works(venv):
12
+ """
13
+ pytest_virtualenv may not work. if it doesn't, skip these
14
+ tests. See #1284.
15
+ """
16
+ venv_prefix = venv.run(["python", "-c", "import sys; print(sys.prefix)"]).strip()
17
+ if venv_prefix == sys.prefix:
18
+ pytest.skip("virtualenv is broken (see pypa/setuptools#1284)")
19
+
20
+
21
+ def test_clean_env_install(venv_without_setuptools, setuptools_wheel):
22
+ """
23
+ Check setuptools can be installed in a clean environment.
24
+ """
25
+ cmd = ["python", "-m", "pip", "install", str(setuptools_wheel)]
26
+ venv_without_setuptools.run(cmd)
27
+
28
+
29
+ def access_pypi():
30
+ # Detect if tests are being run without connectivity
31
+ if not os.environ.get('NETWORK_REQUIRED', False): # pragma: nocover
32
+ try:
33
+ urlopen('https://pypi.org', timeout=1)
34
+ except URLError:
35
+ # No network, disable most of these tests
36
+ return False
37
+
38
+ return True
39
+
40
+
41
+ @pytest.mark.skipif(
42
+ 'platform.python_implementation() == "PyPy"',
43
+ reason="https://github.com/pypa/setuptools/pull/2865#issuecomment-965834995",
44
+ )
45
+ @pytest.mark.skipif(not access_pypi(), reason="no network")
46
+ # ^-- Even when it is not necessary to install a different version of `pip`
47
+ # the build process will still try to download `wheel`, see #3147 and #2986.
48
+ @pytest.mark.parametrize(
49
+ 'pip_version',
50
+ [
51
+ None,
52
+ pytest.param(
53
+ 'pip<20.1',
54
+ marks=pytest.mark.xfail(
55
+ 'sys.version_info >= (3, 12)',
56
+ reason="pip 23.1.2 required for Python 3.12 and later",
57
+ ),
58
+ ),
59
+ pytest.param(
60
+ 'pip<21',
61
+ marks=pytest.mark.xfail(
62
+ 'sys.version_info >= (3, 12)',
63
+ reason="pip 23.1.2 required for Python 3.12 and later",
64
+ ),
65
+ ),
66
+ pytest.param(
67
+ 'pip<22',
68
+ marks=pytest.mark.xfail(
69
+ 'sys.version_info >= (3, 12)',
70
+ reason="pip 23.1.2 required for Python 3.12 and later",
71
+ ),
72
+ ),
73
+ pytest.param(
74
+ 'pip<23',
75
+ marks=pytest.mark.xfail(
76
+ 'sys.version_info >= (3, 12)',
77
+ reason="pip 23.1.2 required for Python 3.12 and later",
78
+ ),
79
+ ),
80
+ pytest.param(
81
+ 'https://github.com/pypa/pip/archive/main.zip',
82
+ marks=pytest.mark.xfail(reason='#2975'),
83
+ ),
84
+ ],
85
+ )
86
+ def test_pip_upgrade_from_source(
87
+ pip_version, venv_without_setuptools, setuptools_wheel, setuptools_sdist
88
+ ):
89
+ """
90
+ Check pip can upgrade setuptools from source.
91
+ """
92
+ # Install pip/wheel, in a venv without setuptools (as it
93
+ # should not be needed for bootstrapping from source)
94
+ venv = venv_without_setuptools
95
+ venv.run(["pip", "install", "-U", "wheel"])
96
+ if pip_version is not None:
97
+ venv.run(["python", "-m", "pip", "install", "-U", pip_version, "--retries=1"])
98
+ with pytest.raises(subprocess.CalledProcessError):
99
+ # Meta-test to make sure setuptools is not installed
100
+ venv.run(["python", "-c", "import setuptools"])
101
+
102
+ # Then install from wheel.
103
+ venv.run(["pip", "install", str(setuptools_wheel)])
104
+ # And finally try to upgrade from source.
105
+ venv.run(["pip", "install", "--no-cache-dir", "--upgrade", str(setuptools_sdist)])
106
+
107
+
108
+ def test_no_missing_dependencies(bare_venv, request):
109
+ """
110
+ Quick and dirty test to ensure all external dependencies are vendored.
111
+ """
112
+ setuptools_dir = request.config.rootdir
113
+ bare_venv.run(['python', 'setup.py', '--help'], cwd=setuptools_dir)
@@ -0,0 +1,106 @@
1
+ from inspect import cleandoc
2
+
3
+ import pytest
4
+
5
+ from setuptools.warnings import SetuptoolsDeprecationWarning, SetuptoolsWarning
6
+
7
+ _EXAMPLES = {
8
+ "default": dict(
9
+ args=("Hello {x}", "\n\t{target} {v:.1f}"),
10
+ kwargs={"x": 5, "v": 3, "target": "World"},
11
+ expected="""
12
+ Hello 5
13
+ !!
14
+
15
+ ********************************************************************************
16
+ World 3.0
17
+ ********************************************************************************
18
+
19
+ !!
20
+ """,
21
+ ),
22
+ "futue_due_date": dict(
23
+ args=("Summary", "Lorem ipsum"),
24
+ kwargs={"due_date": (9999, 11, 22)},
25
+ expected="""
26
+ Summary
27
+ !!
28
+
29
+ ********************************************************************************
30
+ Lorem ipsum
31
+
32
+ By 9999-Nov-22, you need to update your project and remove deprecated calls
33
+ or your builds will no longer be supported.
34
+ ********************************************************************************
35
+
36
+ !!
37
+ """,
38
+ ),
39
+ "past_due_date_with_docs": dict(
40
+ args=("Summary", "Lorem ipsum"),
41
+ kwargs={"due_date": (2000, 11, 22), "see_docs": "some_page.html"},
42
+ expected="""
43
+ Summary
44
+ !!
45
+
46
+ ********************************************************************************
47
+ Lorem ipsum
48
+
49
+ This deprecation is overdue, please update your project and remove deprecated
50
+ calls to avoid build errors in the future.
51
+
52
+ See https://setuptools.pypa.io/en/latest/some_page.html for details.
53
+ ********************************************************************************
54
+
55
+ !!
56
+ """,
57
+ ),
58
+ }
59
+
60
+
61
+ @pytest.mark.parametrize("example_name", _EXAMPLES.keys())
62
+ def test_formatting(monkeypatch, example_name):
63
+ """
64
+ It should automatically handle indentation, interpolation and things like due date.
65
+ """
66
+ args = _EXAMPLES[example_name]["args"]
67
+ kwargs = _EXAMPLES[example_name]["kwargs"]
68
+ expected = _EXAMPLES[example_name]["expected"]
69
+
70
+ monkeypatch.setenv("SETUPTOOLS_ENFORCE_DEPRECATION", "false")
71
+ with pytest.warns(SetuptoolsWarning) as warn_info:
72
+ SetuptoolsWarning.emit(*args, **kwargs)
73
+ assert _get_message(warn_info) == cleandoc(expected)
74
+
75
+
76
+ def test_due_date_enforcement(monkeypatch):
77
+ class _MyDeprecation(SetuptoolsDeprecationWarning):
78
+ _SUMMARY = "Summary"
79
+ _DETAILS = "Lorem ipsum"
80
+ _DUE_DATE = (2000, 11, 22)
81
+ _SEE_DOCS = "some_page.html"
82
+
83
+ monkeypatch.setenv("SETUPTOOLS_ENFORCE_DEPRECATION", "true")
84
+ with pytest.raises(SetuptoolsDeprecationWarning) as exc_info:
85
+ _MyDeprecation.emit()
86
+
87
+ expected = """
88
+ Summary
89
+ !!
90
+
91
+ ********************************************************************************
92
+ Lorem ipsum
93
+
94
+ This deprecation is overdue, please update your project and remove deprecated
95
+ calls to avoid build errors in the future.
96
+
97
+ See https://setuptools.pypa.io/en/latest/some_page.html for details.
98
+ ********************************************************************************
99
+
100
+ !!
101
+ """
102
+ assert str(exc_info.value) == cleandoc(expected)
103
+
104
+
105
+ def _get_message(warn_info):
106
+ return next(warn.message.args[0] for warn in warn_info)