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,15 @@
1
+ import importlib
2
+ import pickle
3
+
4
+ import packaging
5
+
6
+ from setuptools import Distribution
7
+
8
+
9
+ def test_reimport_extern():
10
+ packaging2 = importlib.import_module(packaging.__name__)
11
+ assert packaging is packaging2
12
+
13
+
14
+ def test_distribution_picklable():
15
+ pickle.loads(pickle.dumps(Distribution()))
@@ -0,0 +1,218 @@
1
+ """Tests for automatic package discovery"""
2
+
3
+ import os
4
+ import shutil
5
+ import tempfile
6
+
7
+ import pytest
8
+
9
+ from setuptools import find_namespace_packages, find_packages
10
+ from setuptools.discovery import FlatLayoutPackageFinder
11
+
12
+ from .compat.py39 import os_helper
13
+
14
+
15
+ class TestFindPackages:
16
+ def setup_method(self, method):
17
+ self.dist_dir = tempfile.mkdtemp()
18
+ self._make_pkg_structure()
19
+
20
+ def teardown_method(self, method):
21
+ shutil.rmtree(self.dist_dir)
22
+
23
+ def _make_pkg_structure(self):
24
+ """Make basic package structure.
25
+
26
+ dist/
27
+ docs/
28
+ conf.py
29
+ pkg/
30
+ __pycache__/
31
+ nspkg/
32
+ mod.py
33
+ subpkg/
34
+ assets/
35
+ asset
36
+ __init__.py
37
+ setup.py
38
+
39
+ """
40
+ self.docs_dir = self._mkdir('docs', self.dist_dir)
41
+ self._touch('conf.py', self.docs_dir)
42
+ self.pkg_dir = self._mkdir('pkg', self.dist_dir)
43
+ self._mkdir('__pycache__', self.pkg_dir)
44
+ self.ns_pkg_dir = self._mkdir('nspkg', self.pkg_dir)
45
+ self._touch('mod.py', self.ns_pkg_dir)
46
+ self.sub_pkg_dir = self._mkdir('subpkg', self.pkg_dir)
47
+ self.asset_dir = self._mkdir('assets', self.sub_pkg_dir)
48
+ self._touch('asset', self.asset_dir)
49
+ self._touch('__init__.py', self.sub_pkg_dir)
50
+ self._touch('setup.py', self.dist_dir)
51
+
52
+ def _mkdir(self, path, parent_dir=None):
53
+ if parent_dir:
54
+ path = os.path.join(parent_dir, path)
55
+ os.mkdir(path)
56
+ return path
57
+
58
+ def _touch(self, path, dir_=None):
59
+ if dir_:
60
+ path = os.path.join(dir_, path)
61
+ open(path, 'wb').close()
62
+ return path
63
+
64
+ def test_regular_package(self):
65
+ self._touch('__init__.py', self.pkg_dir)
66
+ packages = find_packages(self.dist_dir)
67
+ assert packages == ['pkg', 'pkg.subpkg']
68
+
69
+ def test_exclude(self):
70
+ self._touch('__init__.py', self.pkg_dir)
71
+ packages = find_packages(self.dist_dir, exclude=('pkg.*',))
72
+ assert packages == ['pkg']
73
+
74
+ def test_exclude_recursive(self):
75
+ """
76
+ Excluding a parent package should not exclude child packages as well.
77
+ """
78
+ self._touch('__init__.py', self.pkg_dir)
79
+ self._touch('__init__.py', self.sub_pkg_dir)
80
+ packages = find_packages(self.dist_dir, exclude=('pkg',))
81
+ assert packages == ['pkg.subpkg']
82
+
83
+ def test_include_excludes_other(self):
84
+ """
85
+ If include is specified, other packages should be excluded.
86
+ """
87
+ self._touch('__init__.py', self.pkg_dir)
88
+ alt_dir = self._mkdir('other_pkg', self.dist_dir)
89
+ self._touch('__init__.py', alt_dir)
90
+ packages = find_packages(self.dist_dir, include=['other_pkg'])
91
+ assert packages == ['other_pkg']
92
+
93
+ def test_dir_with_dot_is_skipped(self):
94
+ shutil.rmtree(os.path.join(self.dist_dir, 'pkg/subpkg/assets'))
95
+ data_dir = self._mkdir('some.data', self.pkg_dir)
96
+ self._touch('__init__.py', data_dir)
97
+ self._touch('file.dat', data_dir)
98
+ packages = find_packages(self.dist_dir)
99
+ assert 'pkg.some.data' not in packages
100
+
101
+ def test_dir_with_packages_in_subdir_is_excluded(self):
102
+ """
103
+ Ensure that a package in a non-package such as build/pkg/__init__.py
104
+ is excluded.
105
+ """
106
+ build_dir = self._mkdir('build', self.dist_dir)
107
+ build_pkg_dir = self._mkdir('pkg', build_dir)
108
+ self._touch('__init__.py', build_pkg_dir)
109
+ packages = find_packages(self.dist_dir)
110
+ assert 'build.pkg' not in packages
111
+
112
+ @pytest.mark.skipif(not os_helper.can_symlink(), reason='Symlink support required')
113
+ def test_symlinked_packages_are_included(self):
114
+ """
115
+ A symbolically-linked directory should be treated like any other
116
+ directory when matched as a package.
117
+
118
+ Create a link from lpkg -> pkg.
119
+ """
120
+ self._touch('__init__.py', self.pkg_dir)
121
+ linked_pkg = os.path.join(self.dist_dir, 'lpkg')
122
+ os.symlink('pkg', linked_pkg)
123
+ assert os.path.isdir(linked_pkg)
124
+ packages = find_packages(self.dist_dir)
125
+ assert 'lpkg' in packages
126
+
127
+ def _assert_packages(self, actual, expected):
128
+ assert set(actual) == set(expected)
129
+
130
+ def test_pep420_ns_package(self):
131
+ packages = find_namespace_packages(
132
+ self.dist_dir, include=['pkg*'], exclude=['pkg.subpkg.assets']
133
+ )
134
+ self._assert_packages(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg'])
135
+
136
+ def test_pep420_ns_package_no_includes(self):
137
+ packages = find_namespace_packages(self.dist_dir, exclude=['pkg.subpkg.assets'])
138
+ self._assert_packages(packages, ['docs', 'pkg', 'pkg.nspkg', 'pkg.subpkg'])
139
+
140
+ def test_pep420_ns_package_no_includes_or_excludes(self):
141
+ packages = find_namespace_packages(self.dist_dir)
142
+ expected = ['docs', 'pkg', 'pkg.nspkg', 'pkg.subpkg', 'pkg.subpkg.assets']
143
+ self._assert_packages(packages, expected)
144
+
145
+ def test_regular_package_with_nested_pep420_ns_packages(self):
146
+ self._touch('__init__.py', self.pkg_dir)
147
+ packages = find_namespace_packages(
148
+ self.dist_dir, exclude=['docs', 'pkg.subpkg.assets']
149
+ )
150
+ self._assert_packages(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg'])
151
+
152
+ def test_pep420_ns_package_no_non_package_dirs(self):
153
+ shutil.rmtree(self.docs_dir)
154
+ shutil.rmtree(os.path.join(self.dist_dir, 'pkg/subpkg/assets'))
155
+ packages = find_namespace_packages(self.dist_dir)
156
+ self._assert_packages(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg'])
157
+
158
+
159
+ class TestFlatLayoutPackageFinder:
160
+ EXAMPLES = {
161
+ "hidden-folders": (
162
+ [".pkg/__init__.py", "pkg/__init__.py", "pkg/nested/file.txt"],
163
+ ["pkg", "pkg.nested"],
164
+ ),
165
+ "private-packages": (
166
+ ["_pkg/__init__.py", "pkg/_private/__init__.py"],
167
+ ["pkg", "pkg._private"],
168
+ ),
169
+ "invalid-name": (
170
+ ["invalid-pkg/__init__.py", "other.pkg/__init__.py", "yet,another/file.py"],
171
+ [],
172
+ ),
173
+ "docs": (["pkg/__init__.py", "docs/conf.py", "docs/readme.rst"], ["pkg"]),
174
+ "tests": (
175
+ ["pkg/__init__.py", "tests/test_pkg.py", "tests/__init__.py"],
176
+ ["pkg"],
177
+ ),
178
+ "examples": (
179
+ [
180
+ "pkg/__init__.py",
181
+ "examples/__init__.py",
182
+ "examples/file.py",
183
+ "example/other_file.py",
184
+ # Sub-packages should always be fine
185
+ "pkg/example/__init__.py",
186
+ "pkg/examples/__init__.py",
187
+ ],
188
+ ["pkg", "pkg.examples", "pkg.example"],
189
+ ),
190
+ "tool-specific": (
191
+ [
192
+ "htmlcov/index.html",
193
+ "pkg/__init__.py",
194
+ "tasks/__init__.py",
195
+ "tasks/subpackage/__init__.py",
196
+ "fabfile/__init__.py",
197
+ "fabfile/subpackage/__init__.py",
198
+ # Sub-packages should always be fine
199
+ "pkg/tasks/__init__.py",
200
+ "pkg/fabfile/__init__.py",
201
+ ],
202
+ ["pkg", "pkg.tasks", "pkg.fabfile"],
203
+ ),
204
+ }
205
+
206
+ @pytest.mark.parametrize("example", EXAMPLES.keys())
207
+ def test_unwanted_directories_not_included(self, tmp_path, example):
208
+ files, expected_packages = self.EXAMPLES[example]
209
+ ensure_files(tmp_path, files)
210
+ found_packages = FlatLayoutPackageFinder.find(str(tmp_path))
211
+ assert set(found_packages) == set(expected_packages)
212
+
213
+
214
+ def ensure_files(root_path, files):
215
+ for file in files:
216
+ path = root_path / file
217
+ path.parent.mkdir(parents=True, exist_ok=True)
218
+ path.touch()
@@ -0,0 +1,73 @@
1
+ """Tests for automatic discovery of modules"""
2
+
3
+ import os
4
+
5
+ import pytest
6
+
7
+ from setuptools.discovery import FlatLayoutModuleFinder, ModuleFinder
8
+
9
+ from .compat.py39 import os_helper
10
+ from .test_find_packages import ensure_files
11
+
12
+
13
+ class TestModuleFinder:
14
+ def find(self, path, *args, **kwargs):
15
+ return set(ModuleFinder.find(str(path), *args, **kwargs))
16
+
17
+ EXAMPLES = {
18
+ # circumstance: (files, kwargs, expected_modules)
19
+ "simple_folder": (
20
+ ["file.py", "other.py"],
21
+ {}, # kwargs
22
+ ["file", "other"],
23
+ ),
24
+ "exclude": (
25
+ ["file.py", "other.py"],
26
+ {"exclude": ["f*"]},
27
+ ["other"],
28
+ ),
29
+ "include": (
30
+ ["file.py", "fole.py", "other.py"],
31
+ {"include": ["f*"], "exclude": ["fo*"]},
32
+ ["file"],
33
+ ),
34
+ "invalid-name": (["my-file.py", "other.file.py"], {}, []),
35
+ }
36
+
37
+ @pytest.mark.parametrize("example", EXAMPLES.keys())
38
+ def test_finder(self, tmp_path, example):
39
+ files, kwargs, expected_modules = self.EXAMPLES[example]
40
+ ensure_files(tmp_path, files)
41
+ assert self.find(tmp_path, **kwargs) == set(expected_modules)
42
+
43
+ @pytest.mark.skipif(not os_helper.can_symlink(), reason='Symlink support required')
44
+ def test_symlinked_packages_are_included(self, tmp_path):
45
+ src = "_myfiles/file.py"
46
+ ensure_files(tmp_path, [src])
47
+ os.symlink(tmp_path / src, tmp_path / "link.py")
48
+ assert self.find(tmp_path) == {"link"}
49
+
50
+
51
+ class TestFlatLayoutModuleFinder:
52
+ def find(self, path, *args, **kwargs):
53
+ return set(FlatLayoutModuleFinder.find(str(path)))
54
+
55
+ EXAMPLES = {
56
+ # circumstance: (files, expected_modules)
57
+ "hidden-files": ([".module.py"], []),
58
+ "private-modules": (["_module.py"], []),
59
+ "common-names": (
60
+ ["setup.py", "conftest.py", "test.py", "tests.py", "example.py", "mod.py"],
61
+ ["mod"],
62
+ ),
63
+ "tool-specific": (
64
+ ["tasks.py", "fabfile.py", "noxfile.py", "dodo.py", "manage.py", "mod.py"],
65
+ ["mod"],
66
+ ),
67
+ }
68
+
69
+ @pytest.mark.parametrize("example", EXAMPLES.keys())
70
+ def test_unwanted_files_not_included(self, tmp_path, example):
71
+ files, expected_modules = self.EXAMPLES[example]
72
+ ensure_files(tmp_path, files)
73
+ assert self.find(tmp_path) == set(expected_modules)
@@ -0,0 +1,45 @@
1
+ import pytest
2
+ from jaraco import path
3
+
4
+ from setuptools.glob import glob
5
+
6
+
7
+ @pytest.mark.parametrize(
8
+ ('tree', 'pattern', 'matches'),
9
+ (
10
+ ('', b'', []),
11
+ ('', '', []),
12
+ (
13
+ """
14
+ appveyor.yml
15
+ CHANGES.rst
16
+ LICENSE
17
+ MANIFEST.in
18
+ pyproject.toml
19
+ README.rst
20
+ setup.cfg
21
+ setup.py
22
+ """,
23
+ '*.rst',
24
+ ('CHANGES.rst', 'README.rst'),
25
+ ),
26
+ (
27
+ """
28
+ appveyor.yml
29
+ CHANGES.rst
30
+ LICENSE
31
+ MANIFEST.in
32
+ pyproject.toml
33
+ README.rst
34
+ setup.cfg
35
+ setup.py
36
+ """,
37
+ b'*.rst',
38
+ (b'CHANGES.rst', b'README.rst'),
39
+ ),
40
+ ),
41
+ )
42
+ def test_glob(monkeypatch, tmpdir, tree, pattern, matches):
43
+ monkeypatch.chdir(tmpdir)
44
+ path.build({name: '' for name in tree.split()})
45
+ assert list(sorted(glob(pattern))) == list(sorted(matches))
@@ -0,0 +1,89 @@
1
+ """install_scripts tests"""
2
+
3
+ import sys
4
+
5
+ import pytest
6
+
7
+ from setuptools.command.install_scripts import install_scripts
8
+ from setuptools.dist import Distribution
9
+
10
+ from . import contexts
11
+
12
+
13
+ class TestInstallScripts:
14
+ settings = dict(
15
+ name='foo',
16
+ entry_points={'console_scripts': ['foo=foo:foo']},
17
+ version='0.0',
18
+ )
19
+ unix_exe = '/usr/dummy-test-path/local/bin/python'
20
+ unix_spaces_exe = '/usr/bin/env dummy-test-python'
21
+ win32_exe = 'C:\\Dummy Test Path\\Program Files\\Python 3.6\\python.exe'
22
+
23
+ def _run_install_scripts(self, install_dir, executable=None):
24
+ dist = Distribution(self.settings)
25
+ dist.script_name = 'setup.py'
26
+ cmd = install_scripts(dist)
27
+ cmd.install_dir = install_dir
28
+ if executable is not None:
29
+ bs = cmd.get_finalized_command('build_scripts')
30
+ bs.executable = executable
31
+ cmd.ensure_finalized()
32
+ with contexts.quiet():
33
+ cmd.run()
34
+
35
+ @pytest.mark.skipif(sys.platform == 'win32', reason='non-Windows only')
36
+ def test_sys_executable_escaping_unix(self, tmpdir, monkeypatch):
37
+ """
38
+ Ensure that shebang is not quoted on Unix when getting the Python exe
39
+ from sys.executable.
40
+ """
41
+ expected = f'#!{self.unix_exe}\n'
42
+ monkeypatch.setattr('sys.executable', self.unix_exe)
43
+ with tmpdir.as_cwd():
44
+ self._run_install_scripts(str(tmpdir))
45
+ with open(str(tmpdir.join('foo')), 'r', encoding="utf-8") as f:
46
+ actual = f.readline()
47
+ assert actual == expected
48
+
49
+ @pytest.mark.skipif(sys.platform != 'win32', reason='Windows only')
50
+ def test_sys_executable_escaping_win32(self, tmpdir, monkeypatch):
51
+ """
52
+ Ensure that shebang is quoted on Windows when getting the Python exe
53
+ from sys.executable and it contains a space.
54
+ """
55
+ expected = f'#!"{self.win32_exe}"\n'
56
+ monkeypatch.setattr('sys.executable', self.win32_exe)
57
+ with tmpdir.as_cwd():
58
+ self._run_install_scripts(str(tmpdir))
59
+ with open(str(tmpdir.join('foo-script.py')), 'r', encoding="utf-8") as f:
60
+ actual = f.readline()
61
+ assert actual == expected
62
+
63
+ @pytest.mark.skipif(sys.platform == 'win32', reason='non-Windows only')
64
+ def test_executable_with_spaces_escaping_unix(self, tmpdir):
65
+ """
66
+ Ensure that shebang on Unix is not quoted, even when
67
+ a value with spaces
68
+ is specified using --executable.
69
+ """
70
+ expected = f'#!{self.unix_spaces_exe}\n'
71
+ with tmpdir.as_cwd():
72
+ self._run_install_scripts(str(tmpdir), self.unix_spaces_exe)
73
+ with open(str(tmpdir.join('foo')), 'r', encoding="utf-8") as f:
74
+ actual = f.readline()
75
+ assert actual == expected
76
+
77
+ @pytest.mark.skipif(sys.platform != 'win32', reason='Windows only')
78
+ def test_executable_arg_escaping_win32(self, tmpdir):
79
+ """
80
+ Ensure that shebang on Windows is quoted when
81
+ getting a path with spaces
82
+ from --executable, that is itself properly quoted.
83
+ """
84
+ expected = f'#!"{self.win32_exe}"\n'
85
+ with tmpdir.as_cwd():
86
+ self._run_install_scripts(str(tmpdir), '"' + self.win32_exe + '"')
87
+ with open(str(tmpdir.join('foo-script.py')), 'r', encoding="utf-8") as f:
88
+ actual = f.readline()
89
+ assert actual == expected
@@ -0,0 +1,76 @@
1
+ import functools
2
+ import inspect
3
+ import logging
4
+ import sys
5
+
6
+ import pytest
7
+
8
+ IS_PYPY = '__pypy__' in sys.builtin_module_names
9
+
10
+
11
+ setup_py = """\
12
+ from setuptools import setup
13
+
14
+ setup(
15
+ name="test_logging",
16
+ version="0.0"
17
+ )
18
+ """
19
+
20
+
21
+ @pytest.mark.parametrize(
22
+ ('flag', 'expected_level'), [("--dry-run", "INFO"), ("--verbose", "DEBUG")]
23
+ )
24
+ def test_verbosity_level(tmp_path, monkeypatch, flag, expected_level):
25
+ """Make sure the correct verbosity level is set (issue #3038)"""
26
+ import setuptools # noqa: F401 # import setuptools to monkeypatch distutils
27
+
28
+ import distutils # <- load distutils after all the patches take place
29
+
30
+ logger = logging.Logger(__name__)
31
+ monkeypatch.setattr(logging, "root", logger)
32
+ unset_log_level = logger.getEffectiveLevel()
33
+ assert logging.getLevelName(unset_log_level) == "NOTSET"
34
+
35
+ setup_script = tmp_path / "setup.py"
36
+ setup_script.write_text(setup_py, encoding="utf-8")
37
+ dist = distutils.core.run_setup(setup_script, stop_after="init")
38
+ dist.script_args = [flag, "sdist"]
39
+ dist.parse_command_line() # <- where the log level is set
40
+ log_level = logger.getEffectiveLevel()
41
+ log_level_name = logging.getLevelName(log_level)
42
+ assert log_level_name == expected_level
43
+
44
+
45
+ def flaky_on_pypy(func):
46
+ @functools.wraps(func)
47
+ def _func():
48
+ try:
49
+ func()
50
+ except AssertionError: # pragma: no cover
51
+ if IS_PYPY:
52
+ msg = "Flaky monkeypatch on PyPy (#4124)"
53
+ pytest.xfail(f"{msg}. Original discussion in #3707, #3709.")
54
+ raise
55
+
56
+ return _func
57
+
58
+
59
+ @flaky_on_pypy
60
+ def test_patching_does_not_cause_problems():
61
+ # Ensure `dist.log` is only patched if necessary
62
+
63
+ import _distutils_hack
64
+
65
+ import setuptools.logging
66
+
67
+ from distutils import dist
68
+
69
+ setuptools.logging.configure()
70
+
71
+ if _distutils_hack.enabled():
72
+ # Modern logging infra, no problematic patching.
73
+ assert dist.__file__ is None or "setuptools" in dist.__file__
74
+ assert isinstance(dist.log, logging.Logger)
75
+ else:
76
+ assert inspect.ismodule(dist.log)