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,196 @@
1
+ """Tests for distutils.command.build_py."""
2
+
3
+ import os
4
+ import sys
5
+ from distutils.command.build_py import build_py
6
+ from distutils.core import Distribution
7
+ from distutils.errors import DistutilsFileError
8
+ from distutils.tests import support
9
+
10
+ import jaraco.path
11
+ import pytest
12
+
13
+
14
+ @support.combine_markers
15
+ class TestBuildPy(support.TempdirManager):
16
+ def test_package_data(self):
17
+ sources = self.mkdtemp()
18
+ jaraco.path.build(
19
+ {
20
+ '__init__.py': "# Pretend this is a package.",
21
+ 'README.txt': 'Info about this package',
22
+ },
23
+ sources,
24
+ )
25
+
26
+ destination = self.mkdtemp()
27
+
28
+ dist = Distribution({"packages": ["pkg"], "package_dir": {"pkg": sources}})
29
+ # script_name need not exist, it just need to be initialized
30
+ dist.script_name = os.path.join(sources, "setup.py")
31
+ dist.command_obj["build"] = support.DummyCommand(
32
+ force=False, build_lib=destination
33
+ )
34
+ dist.packages = ["pkg"]
35
+ dist.package_data = {"pkg": ["README.txt"]}
36
+ dist.package_dir = {"pkg": sources}
37
+
38
+ cmd = build_py(dist)
39
+ cmd.compile = True
40
+ cmd.ensure_finalized()
41
+ assert cmd.package_data == dist.package_data
42
+
43
+ cmd.run()
44
+
45
+ # This makes sure the list of outputs includes byte-compiled
46
+ # files for Python modules but not for package data files
47
+ # (there shouldn't *be* byte-code files for those!).
48
+ assert len(cmd.get_outputs()) == 3
49
+ pkgdest = os.path.join(destination, "pkg")
50
+ files = os.listdir(pkgdest)
51
+ pycache_dir = os.path.join(pkgdest, "__pycache__")
52
+ assert "__init__.py" in files
53
+ assert "README.txt" in files
54
+ if sys.dont_write_bytecode:
55
+ assert not os.path.exists(pycache_dir)
56
+ else:
57
+ pyc_files = os.listdir(pycache_dir)
58
+ assert f"__init__.{sys.implementation.cache_tag}.pyc" in pyc_files
59
+
60
+ def test_empty_package_dir(self):
61
+ # See bugs #1668596/#1720897
62
+ sources = self.mkdtemp()
63
+ jaraco.path.build({'__init__.py': '', 'doc': {'testfile': ''}}, sources)
64
+
65
+ os.chdir(sources)
66
+ dist = Distribution({
67
+ "packages": ["pkg"],
68
+ "package_dir": {"pkg": ""},
69
+ "package_data": {"pkg": ["doc/*"]},
70
+ })
71
+ # script_name need not exist, it just need to be initialized
72
+ dist.script_name = os.path.join(sources, "setup.py")
73
+ dist.script_args = ["build"]
74
+ dist.parse_command_line()
75
+
76
+ try:
77
+ dist.run_commands()
78
+ except DistutilsFileError:
79
+ self.fail("failed package_data test when package_dir is ''")
80
+
81
+ @pytest.mark.skipif('sys.dont_write_bytecode')
82
+ def test_byte_compile(self):
83
+ project_dir, dist = self.create_dist(py_modules=['boiledeggs'])
84
+ os.chdir(project_dir)
85
+ self.write_file('boiledeggs.py', 'import antigravity')
86
+ cmd = build_py(dist)
87
+ cmd.compile = True
88
+ cmd.build_lib = 'here'
89
+ cmd.finalize_options()
90
+ cmd.run()
91
+
92
+ found = os.listdir(cmd.build_lib)
93
+ assert sorted(found) == ['__pycache__', 'boiledeggs.py']
94
+ found = os.listdir(os.path.join(cmd.build_lib, '__pycache__'))
95
+ assert found == [f'boiledeggs.{sys.implementation.cache_tag}.pyc']
96
+
97
+ @pytest.mark.skipif('sys.dont_write_bytecode')
98
+ def test_byte_compile_optimized(self):
99
+ project_dir, dist = self.create_dist(py_modules=['boiledeggs'])
100
+ os.chdir(project_dir)
101
+ self.write_file('boiledeggs.py', 'import antigravity')
102
+ cmd = build_py(dist)
103
+ cmd.compile = False
104
+ cmd.optimize = 1
105
+ cmd.build_lib = 'here'
106
+ cmd.finalize_options()
107
+ cmd.run()
108
+
109
+ found = os.listdir(cmd.build_lib)
110
+ assert sorted(found) == ['__pycache__', 'boiledeggs.py']
111
+ found = os.listdir(os.path.join(cmd.build_lib, '__pycache__'))
112
+ expect = f'boiledeggs.{sys.implementation.cache_tag}.opt-1.pyc'
113
+ assert sorted(found) == [expect]
114
+
115
+ def test_dir_in_package_data(self):
116
+ """
117
+ A directory in package_data should not be added to the filelist.
118
+ """
119
+ # See bug 19286
120
+ sources = self.mkdtemp()
121
+ jaraco.path.build(
122
+ {
123
+ 'pkg': {
124
+ '__init__.py': '',
125
+ 'doc': {
126
+ 'testfile': '',
127
+ # create a directory that could be incorrectly detected as a file
128
+ 'otherdir': {},
129
+ },
130
+ }
131
+ },
132
+ sources,
133
+ )
134
+
135
+ os.chdir(sources)
136
+ dist = Distribution({"packages": ["pkg"], "package_data": {"pkg": ["doc/*"]}})
137
+ # script_name need not exist, it just need to be initialized
138
+ dist.script_name = os.path.join(sources, "setup.py")
139
+ dist.script_args = ["build"]
140
+ dist.parse_command_line()
141
+
142
+ try:
143
+ dist.run_commands()
144
+ except DistutilsFileError:
145
+ self.fail("failed package_data when data dir includes a dir")
146
+
147
+ def test_dont_write_bytecode(self, caplog):
148
+ # makes sure byte_compile is not used
149
+ dist = self.create_dist()[1]
150
+ cmd = build_py(dist)
151
+ cmd.compile = True
152
+ cmd.optimize = 1
153
+
154
+ old_dont_write_bytecode = sys.dont_write_bytecode
155
+ sys.dont_write_bytecode = True
156
+ try:
157
+ cmd.byte_compile([])
158
+ finally:
159
+ sys.dont_write_bytecode = old_dont_write_bytecode
160
+
161
+ assert 'byte-compiling is disabled' in caplog.records[0].message
162
+
163
+ def test_namespace_package_does_not_warn(self, caplog):
164
+ """
165
+ Originally distutils implementation did not account for PEP 420
166
+ and included warns for package directories that did not contain
167
+ ``__init__.py`` files.
168
+ After the acceptance of PEP 420, these warnings don't make more sense
169
+ so we want to ensure there are not displayed to not confuse the users.
170
+ """
171
+ # Create a fake project structure with a package namespace:
172
+ tmp = self.mkdtemp()
173
+ jaraco.path.build({'ns': {'pkg': {'module.py': ''}}}, tmp)
174
+ os.chdir(tmp)
175
+
176
+ # Configure the package:
177
+ attrs = {
178
+ "name": "ns.pkg",
179
+ "packages": ["ns", "ns.pkg"],
180
+ "script_name": "setup.py",
181
+ }
182
+ dist = Distribution(attrs)
183
+
184
+ # Run code paths that would trigger the trap:
185
+ cmd = dist.get_command_obj("build_py")
186
+ cmd.finalize_options()
187
+ modules = cmd.find_all_modules()
188
+ assert len(modules) == 1
189
+ module_path = modules[0][-1]
190
+ assert module_path.replace(os.sep, "/") == "ns/pkg/module.py"
191
+
192
+ cmd.run()
193
+
194
+ assert not any(
195
+ "package init file" in msg and "not found" in msg for msg in caplog.messages
196
+ )
@@ -0,0 +1,96 @@
1
+ """Tests for distutils.command.build_scripts."""
2
+
3
+ import os
4
+ import textwrap
5
+ from distutils import sysconfig
6
+ from distutils.command.build_scripts import build_scripts
7
+ from distutils.core import Distribution
8
+ from distutils.tests import support
9
+
10
+ import jaraco.path
11
+
12
+
13
+ class TestBuildScripts(support.TempdirManager):
14
+ def test_default_settings(self):
15
+ cmd = self.get_build_scripts_cmd("/foo/bar", [])
16
+ assert not cmd.force
17
+ assert cmd.build_dir is None
18
+
19
+ cmd.finalize_options()
20
+
21
+ assert cmd.force
22
+ assert cmd.build_dir == "/foo/bar"
23
+
24
+ def test_build(self):
25
+ source = self.mkdtemp()
26
+ target = self.mkdtemp()
27
+ expected = self.write_sample_scripts(source)
28
+
29
+ cmd = self.get_build_scripts_cmd(
30
+ target, [os.path.join(source, fn) for fn in expected]
31
+ )
32
+ cmd.finalize_options()
33
+ cmd.run()
34
+
35
+ built = os.listdir(target)
36
+ for name in expected:
37
+ assert name in built
38
+
39
+ def get_build_scripts_cmd(self, target, scripts):
40
+ import sys
41
+
42
+ dist = Distribution()
43
+ dist.scripts = scripts
44
+ dist.command_obj["build"] = support.DummyCommand(
45
+ build_scripts=target, force=True, executable=sys.executable
46
+ )
47
+ return build_scripts(dist)
48
+
49
+ @staticmethod
50
+ def write_sample_scripts(dir):
51
+ spec = {
52
+ 'script1.py': textwrap.dedent("""
53
+ #! /usr/bin/env python2.3
54
+ # bogus script w/ Python sh-bang
55
+ pass
56
+ """).lstrip(),
57
+ 'script2.py': textwrap.dedent("""
58
+ #!/usr/bin/python
59
+ # bogus script w/ Python sh-bang
60
+ pass
61
+ """).lstrip(),
62
+ 'shell.sh': textwrap.dedent("""
63
+ #!/bin/sh
64
+ # bogus shell script w/ sh-bang
65
+ exit 0
66
+ """).lstrip(),
67
+ }
68
+ jaraco.path.build(spec, dir)
69
+ return list(spec)
70
+
71
+ def test_version_int(self):
72
+ source = self.mkdtemp()
73
+ target = self.mkdtemp()
74
+ expected = self.write_sample_scripts(source)
75
+
76
+ cmd = self.get_build_scripts_cmd(
77
+ target, [os.path.join(source, fn) for fn in expected]
78
+ )
79
+ cmd.finalize_options()
80
+
81
+ # https://bugs.python.org/issue4524
82
+ #
83
+ # On linux-g++-32 with command line `./configure --enable-ipv6
84
+ # --with-suffix=3`, python is compiled okay but the build scripts
85
+ # failed when writing the name of the executable
86
+ old = sysconfig.get_config_vars().get('VERSION')
87
+ sysconfig._config_vars['VERSION'] = 4
88
+ try:
89
+ cmd.run()
90
+ finally:
91
+ if old is not None:
92
+ sysconfig._config_vars['VERSION'] = old
93
+
94
+ built = os.listdir(target)
95
+ for name in expected:
96
+ assert name in built
@@ -0,0 +1,194 @@
1
+ """Tests for distutils.command.check."""
2
+
3
+ import os
4
+ import textwrap
5
+ from distutils.command.check import check
6
+ from distutils.errors import DistutilsSetupError
7
+ from distutils.tests import support
8
+
9
+ import pytest
10
+
11
+ try:
12
+ import pygments
13
+ except ImportError:
14
+ pygments = None
15
+
16
+
17
+ HERE = os.path.dirname(__file__)
18
+
19
+
20
+ @support.combine_markers
21
+ class TestCheck(support.TempdirManager):
22
+ def _run(self, metadata=None, cwd=None, **options):
23
+ if metadata is None:
24
+ metadata = {}
25
+ if cwd is not None:
26
+ old_dir = os.getcwd()
27
+ os.chdir(cwd)
28
+ pkg_info, dist = self.create_dist(**metadata)
29
+ cmd = check(dist)
30
+ cmd.initialize_options()
31
+ for name, value in options.items():
32
+ setattr(cmd, name, value)
33
+ cmd.ensure_finalized()
34
+ cmd.run()
35
+ if cwd is not None:
36
+ os.chdir(old_dir)
37
+ return cmd
38
+
39
+ def test_check_metadata(self):
40
+ # let's run the command with no metadata at all
41
+ # by default, check is checking the metadata
42
+ # should have some warnings
43
+ cmd = self._run()
44
+ assert cmd._warnings == 1
45
+
46
+ # now let's add the required fields
47
+ # and run it again, to make sure we don't get
48
+ # any warning anymore
49
+ metadata = {
50
+ 'url': 'xxx',
51
+ 'author': 'xxx',
52
+ 'author_email': 'xxx',
53
+ 'name': 'xxx',
54
+ 'version': 'xxx',
55
+ }
56
+ cmd = self._run(metadata)
57
+ assert cmd._warnings == 0
58
+
59
+ # now with the strict mode, we should
60
+ # get an error if there are missing metadata
61
+ with pytest.raises(DistutilsSetupError):
62
+ self._run({}, **{'strict': 1})
63
+
64
+ # and of course, no error when all metadata are present
65
+ cmd = self._run(metadata, strict=True)
66
+ assert cmd._warnings == 0
67
+
68
+ # now a test with non-ASCII characters
69
+ metadata = {
70
+ 'url': 'xxx',
71
+ 'author': '\u00c9ric',
72
+ 'author_email': 'xxx',
73
+ 'name': 'xxx',
74
+ 'version': 'xxx',
75
+ 'description': 'Something about esszet \u00df',
76
+ 'long_description': 'More things about esszet \u00df',
77
+ }
78
+ cmd = self._run(metadata)
79
+ assert cmd._warnings == 0
80
+
81
+ def test_check_author_maintainer(self):
82
+ for kind in ("author", "maintainer"):
83
+ # ensure no warning when author_email or maintainer_email is given
84
+ # (the spec allows these fields to take the form "Name <email>")
85
+ metadata = {
86
+ 'url': 'xxx',
87
+ kind + '_email': 'Name <name@email.com>',
88
+ 'name': 'xxx',
89
+ 'version': 'xxx',
90
+ }
91
+ cmd = self._run(metadata)
92
+ assert cmd._warnings == 0
93
+
94
+ # the check should not warn if only email is given
95
+ metadata[kind + '_email'] = 'name@email.com'
96
+ cmd = self._run(metadata)
97
+ assert cmd._warnings == 0
98
+
99
+ # the check should not warn if only the name is given
100
+ metadata[kind] = "Name"
101
+ del metadata[kind + '_email']
102
+ cmd = self._run(metadata)
103
+ assert cmd._warnings == 0
104
+
105
+ def test_check_document(self):
106
+ pytest.importorskip('docutils')
107
+ pkg_info, dist = self.create_dist()
108
+ cmd = check(dist)
109
+
110
+ # let's see if it detects broken rest
111
+ broken_rest = 'title\n===\n\ntest'
112
+ msgs = cmd._check_rst_data(broken_rest)
113
+ assert len(msgs) == 1
114
+
115
+ # and non-broken rest
116
+ rest = 'title\n=====\n\ntest'
117
+ msgs = cmd._check_rst_data(rest)
118
+ assert len(msgs) == 0
119
+
120
+ def test_check_restructuredtext(self):
121
+ pytest.importorskip('docutils')
122
+ # let's see if it detects broken rest in long_description
123
+ broken_rest = 'title\n===\n\ntest'
124
+ pkg_info, dist = self.create_dist(long_description=broken_rest)
125
+ cmd = check(dist)
126
+ cmd.check_restructuredtext()
127
+ assert cmd._warnings == 1
128
+
129
+ # let's see if we have an error with strict=True
130
+ metadata = {
131
+ 'url': 'xxx',
132
+ 'author': 'xxx',
133
+ 'author_email': 'xxx',
134
+ 'name': 'xxx',
135
+ 'version': 'xxx',
136
+ 'long_description': broken_rest,
137
+ }
138
+ with pytest.raises(DistutilsSetupError):
139
+ self._run(metadata, **{'strict': 1, 'restructuredtext': 1})
140
+
141
+ # and non-broken rest, including a non-ASCII character to test #12114
142
+ metadata['long_description'] = 'title\n=====\n\ntest \u00df'
143
+ cmd = self._run(metadata, strict=True, restructuredtext=True)
144
+ assert cmd._warnings == 0
145
+
146
+ # check that includes work to test #31292
147
+ metadata['long_description'] = 'title\n=====\n\n.. include:: includetest.rst'
148
+ cmd = self._run(metadata, cwd=HERE, strict=True, restructuredtext=True)
149
+ assert cmd._warnings == 0
150
+
151
+ def test_check_restructuredtext_with_syntax_highlight(self):
152
+ pytest.importorskip('docutils')
153
+ # Don't fail if there is a `code` or `code-block` directive
154
+
155
+ example_rst_docs = [
156
+ textwrap.dedent(
157
+ """\
158
+ Here's some code:
159
+
160
+ .. code:: python
161
+
162
+ def foo():
163
+ pass
164
+ """
165
+ ),
166
+ textwrap.dedent(
167
+ """\
168
+ Here's some code:
169
+
170
+ .. code-block:: python
171
+
172
+ def foo():
173
+ pass
174
+ """
175
+ ),
176
+ ]
177
+
178
+ for rest_with_code in example_rst_docs:
179
+ pkg_info, dist = self.create_dist(long_description=rest_with_code)
180
+ cmd = check(dist)
181
+ cmd.check_restructuredtext()
182
+ msgs = cmd._check_rst_data(rest_with_code)
183
+ if pygments is not None:
184
+ assert len(msgs) == 0
185
+ else:
186
+ assert len(msgs) == 1
187
+ assert (
188
+ str(msgs[0][1])
189
+ == 'Cannot analyze code. Pygments package not found.'
190
+ )
191
+
192
+ def test_check_all(self):
193
+ with pytest.raises(DistutilsSetupError):
194
+ self._run({}, **{'strict': 1, 'restructuredtext': 1})
@@ -0,0 +1,45 @@
1
+ """Tests for distutils.command.clean."""
2
+
3
+ import os
4
+ from distutils.command.clean import clean
5
+ from distutils.tests import support
6
+
7
+
8
+ class TestClean(support.TempdirManager):
9
+ def test_simple_run(self):
10
+ pkg_dir, dist = self.create_dist()
11
+ cmd = clean(dist)
12
+
13
+ # let's add some elements clean should remove
14
+ dirs = [
15
+ (d, os.path.join(pkg_dir, d))
16
+ for d in (
17
+ 'build_temp',
18
+ 'build_lib',
19
+ 'bdist_base',
20
+ 'build_scripts',
21
+ 'build_base',
22
+ )
23
+ ]
24
+
25
+ for name, path in dirs:
26
+ os.mkdir(path)
27
+ setattr(cmd, name, path)
28
+ if name == 'build_base':
29
+ continue
30
+ for f in ('one', 'two', 'three'):
31
+ self.write_file(os.path.join(path, f))
32
+
33
+ # let's run the command
34
+ cmd.all = 1
35
+ cmd.ensure_finalized()
36
+ cmd.run()
37
+
38
+ # make sure the files where removed
39
+ for _name, path in dirs:
40
+ assert not os.path.exists(path), f'{path} was not removed'
41
+
42
+ # let's run the command again (should spit warnings but succeed)
43
+ cmd.all = 1
44
+ cmd.ensure_finalized()
45
+ cmd.run()
@@ -0,0 +1,107 @@
1
+ """Tests for distutils.cmd."""
2
+
3
+ import os
4
+ from distutils import debug
5
+ from distutils.cmd import Command
6
+ from distutils.dist import Distribution
7
+ from distutils.errors import DistutilsOptionError
8
+
9
+ import pytest
10
+
11
+
12
+ class MyCmd(Command):
13
+ def initialize_options(self):
14
+ pass
15
+
16
+
17
+ @pytest.fixture
18
+ def cmd(request):
19
+ return MyCmd(Distribution())
20
+
21
+
22
+ class TestCommand:
23
+ def test_ensure_string_list(self, cmd):
24
+ cmd.not_string_list = ['one', 2, 'three']
25
+ cmd.yes_string_list = ['one', 'two', 'three']
26
+ cmd.not_string_list2 = object()
27
+ cmd.yes_string_list2 = 'ok'
28
+ cmd.ensure_string_list('yes_string_list')
29
+ cmd.ensure_string_list('yes_string_list2')
30
+
31
+ with pytest.raises(DistutilsOptionError):
32
+ cmd.ensure_string_list('not_string_list')
33
+
34
+ with pytest.raises(DistutilsOptionError):
35
+ cmd.ensure_string_list('not_string_list2')
36
+
37
+ cmd.option1 = 'ok,dok'
38
+ cmd.ensure_string_list('option1')
39
+ assert cmd.option1 == ['ok', 'dok']
40
+
41
+ cmd.option2 = ['xxx', 'www']
42
+ cmd.ensure_string_list('option2')
43
+
44
+ cmd.option3 = ['ok', 2]
45
+ with pytest.raises(DistutilsOptionError):
46
+ cmd.ensure_string_list('option3')
47
+
48
+ def test_make_file(self, cmd):
49
+ # making sure it raises when infiles is not a string or a list/tuple
50
+ with pytest.raises(TypeError):
51
+ cmd.make_file(infiles=True, outfile='', func='func', args=())
52
+
53
+ # making sure execute gets called properly
54
+ def _execute(func, args, exec_msg, level):
55
+ assert exec_msg == 'generating out from in'
56
+
57
+ cmd.force = True
58
+ cmd.execute = _execute
59
+ cmd.make_file(infiles='in', outfile='out', func='func', args=())
60
+
61
+ def test_dump_options(self, cmd):
62
+ msgs = []
63
+
64
+ def _announce(msg, level):
65
+ msgs.append(msg)
66
+
67
+ cmd.announce = _announce
68
+ cmd.option1 = 1
69
+ cmd.option2 = 1
70
+ cmd.user_options = [('option1', '', ''), ('option2', '', '')]
71
+ cmd.dump_options()
72
+
73
+ wanted = ["command options for 'MyCmd':", ' option1 = 1', ' option2 = 1']
74
+ assert msgs == wanted
75
+
76
+ def test_ensure_string(self, cmd):
77
+ cmd.option1 = 'ok'
78
+ cmd.ensure_string('option1')
79
+
80
+ cmd.option2 = None
81
+ cmd.ensure_string('option2', 'xxx')
82
+ assert hasattr(cmd, 'option2')
83
+
84
+ cmd.option3 = 1
85
+ with pytest.raises(DistutilsOptionError):
86
+ cmd.ensure_string('option3')
87
+
88
+ def test_ensure_filename(self, cmd):
89
+ cmd.option1 = __file__
90
+ cmd.ensure_filename('option1')
91
+ cmd.option2 = 'xxx'
92
+ with pytest.raises(DistutilsOptionError):
93
+ cmd.ensure_filename('option2')
94
+
95
+ def test_ensure_dirname(self, cmd):
96
+ cmd.option1 = os.path.dirname(__file__) or os.curdir
97
+ cmd.ensure_dirname('option1')
98
+ cmd.option2 = 'xxx'
99
+ with pytest.raises(DistutilsOptionError):
100
+ cmd.ensure_dirname('option2')
101
+
102
+ def test_debug_print(self, cmd, capsys, monkeypatch):
103
+ cmd.debug_print('xxx')
104
+ assert capsys.readouterr().out == ''
105
+ monkeypatch.setattr(debug, 'DEBUG', True)
106
+ cmd.debug_print('xxx')
107
+ assert capsys.readouterr().out == 'xxx\n'