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,134 @@
1
+ """Support code for distutils test cases."""
2
+
3
+ import itertools
4
+ import os
5
+ import pathlib
6
+ import shutil
7
+ import sys
8
+ import sysconfig
9
+ import tempfile
10
+ from distutils.core import Distribution
11
+
12
+ import pytest
13
+ from more_itertools import always_iterable
14
+
15
+
16
+ @pytest.mark.usefixtures('distutils_managed_tempdir')
17
+ class TempdirManager:
18
+ """
19
+ Mix-in class that handles temporary directories for test cases.
20
+ """
21
+
22
+ def mkdtemp(self):
23
+ """Create a temporary directory that will be cleaned up.
24
+
25
+ Returns the path of the directory.
26
+ """
27
+ d = tempfile.mkdtemp()
28
+ self.tempdirs.append(d)
29
+ return d
30
+
31
+ def write_file(self, path, content='xxx'):
32
+ """Writes a file in the given path.
33
+
34
+ path can be a string or a sequence.
35
+ """
36
+ pathlib.Path(*always_iterable(path)).write_text(content, encoding='utf-8')
37
+
38
+ def create_dist(self, pkg_name='foo', **kw):
39
+ """Will generate a test environment.
40
+
41
+ This function creates:
42
+ - a Distribution instance using keywords
43
+ - a temporary directory with a package structure
44
+
45
+ It returns the package directory and the distribution
46
+ instance.
47
+ """
48
+ tmp_dir = self.mkdtemp()
49
+ pkg_dir = os.path.join(tmp_dir, pkg_name)
50
+ os.mkdir(pkg_dir)
51
+ dist = Distribution(attrs=kw)
52
+
53
+ return pkg_dir, dist
54
+
55
+
56
+ class DummyCommand:
57
+ """Class to store options for retrieval via set_undefined_options()."""
58
+
59
+ def __init__(self, **kwargs):
60
+ vars(self).update(kwargs)
61
+
62
+ def ensure_finalized(self):
63
+ pass
64
+
65
+
66
+ def copy_xxmodule_c(directory):
67
+ """Helper for tests that need the xxmodule.c source file.
68
+
69
+ Example use:
70
+
71
+ def test_compile(self):
72
+ copy_xxmodule_c(self.tmpdir)
73
+ self.assertIn('xxmodule.c', os.listdir(self.tmpdir))
74
+
75
+ If the source file can be found, it will be copied to *directory*. If not,
76
+ the test will be skipped. Errors during copy are not caught.
77
+ """
78
+ shutil.copy(_get_xxmodule_path(), os.path.join(directory, 'xxmodule.c'))
79
+
80
+
81
+ def _get_xxmodule_path():
82
+ source_name = 'xxmodule.c' if sys.version_info > (3, 9) else 'xxmodule-3.8.c'
83
+ return os.path.join(os.path.dirname(__file__), source_name)
84
+
85
+
86
+ def fixup_build_ext(cmd):
87
+ """Function needed to make build_ext tests pass.
88
+
89
+ When Python was built with --enable-shared on Unix, -L. is not enough to
90
+ find libpython<blah>.so, because regrtest runs in a tempdir, not in the
91
+ source directory where the .so lives.
92
+
93
+ When Python was built with in debug mode on Windows, build_ext commands
94
+ need their debug attribute set, and it is not done automatically for
95
+ some reason.
96
+
97
+ This function handles both of these things. Example use:
98
+
99
+ cmd = build_ext(dist)
100
+ support.fixup_build_ext(cmd)
101
+ cmd.ensure_finalized()
102
+
103
+ Unlike most other Unix platforms, Mac OS X embeds absolute paths
104
+ to shared libraries into executables, so the fixup is not needed there.
105
+ """
106
+ if os.name == 'nt':
107
+ cmd.debug = sys.executable.endswith('_d.exe')
108
+ elif sysconfig.get_config_var('Py_ENABLE_SHARED'):
109
+ # To further add to the shared builds fun on Unix, we can't just add
110
+ # library_dirs to the Extension() instance because that doesn't get
111
+ # plumbed through to the final compiler command.
112
+ runshared = sysconfig.get_config_var('RUNSHARED')
113
+ if runshared is None:
114
+ cmd.library_dirs = ['.']
115
+ else:
116
+ if sys.platform == 'darwin':
117
+ cmd.library_dirs = []
118
+ else:
119
+ name, equals, value = runshared.partition('=')
120
+ cmd.library_dirs = [d for d in value.split(os.pathsep) if d]
121
+
122
+
123
+ def combine_markers(cls):
124
+ """
125
+ pytest will honor markers as found on the class, but when
126
+ markers are on multiple subclasses, only one appears. Use
127
+ this decorator to combine those markers.
128
+ """
129
+ cls.pytestmark = [
130
+ mark
131
+ for base in itertools.chain([cls], cls.__bases__)
132
+ for mark in getattr(base, 'pytestmark', [])
133
+ ]
134
+ return cls
@@ -0,0 +1,353 @@
1
+ """Tests for distutils.archive_util."""
2
+
3
+ import functools
4
+ import operator
5
+ import os
6
+ import pathlib
7
+ import sys
8
+ import tarfile
9
+ from distutils import archive_util
10
+ from distutils.archive_util import (
11
+ ARCHIVE_FORMATS,
12
+ check_archive_formats,
13
+ make_archive,
14
+ make_tarball,
15
+ make_zipfile,
16
+ )
17
+ from distutils.spawn import spawn
18
+ from distutils.tests import support
19
+ from os.path import splitdrive
20
+
21
+ import path
22
+ import pytest
23
+ from test.support import patch
24
+
25
+ from .unix_compat import UID_0_SUPPORT, grp, pwd, require_uid_0, require_unix_id
26
+
27
+
28
+ def can_fs_encode(filename):
29
+ """
30
+ Return True if the filename can be saved in the file system.
31
+ """
32
+ if os.path.supports_unicode_filenames:
33
+ return True
34
+ try:
35
+ filename.encode(sys.getfilesystemencoding())
36
+ except UnicodeEncodeError:
37
+ return False
38
+ return True
39
+
40
+
41
+ def all_equal(values):
42
+ return functools.reduce(operator.eq, values)
43
+
44
+
45
+ def same_drive(*paths):
46
+ return all_equal(pathlib.Path(path).drive for path in paths)
47
+
48
+
49
+ class ArchiveUtilTestCase(support.TempdirManager):
50
+ @pytest.mark.usefixtures('needs_zlib')
51
+ def test_make_tarball(self, name='archive'):
52
+ # creating something to tar
53
+ tmpdir = self._create_files()
54
+ self._make_tarball(tmpdir, name, '.tar.gz')
55
+ # trying an uncompressed one
56
+ self._make_tarball(tmpdir, name, '.tar', compress=None)
57
+
58
+ @pytest.mark.usefixtures('needs_zlib')
59
+ def test_make_tarball_gzip(self):
60
+ tmpdir = self._create_files()
61
+ self._make_tarball(tmpdir, 'archive', '.tar.gz', compress='gzip')
62
+
63
+ def test_make_tarball_bzip2(self):
64
+ pytest.importorskip('bz2')
65
+ tmpdir = self._create_files()
66
+ self._make_tarball(tmpdir, 'archive', '.tar.bz2', compress='bzip2')
67
+
68
+ def test_make_tarball_xz(self):
69
+ pytest.importorskip('lzma')
70
+ tmpdir = self._create_files()
71
+ self._make_tarball(tmpdir, 'archive', '.tar.xz', compress='xz')
72
+
73
+ @pytest.mark.skipif("not can_fs_encode('årchiv')")
74
+ def test_make_tarball_latin1(self):
75
+ """
76
+ Mirror test_make_tarball, except filename contains latin characters.
77
+ """
78
+ self.test_make_tarball('årchiv') # note this isn't a real word
79
+
80
+ @pytest.mark.skipif("not can_fs_encode('のアーカイブ')")
81
+ def test_make_tarball_extended(self):
82
+ """
83
+ Mirror test_make_tarball, except filename contains extended
84
+ characters outside the latin charset.
85
+ """
86
+ self.test_make_tarball('のアーカイブ') # japanese for archive
87
+
88
+ def _make_tarball(self, tmpdir, target_name, suffix, **kwargs):
89
+ tmpdir2 = self.mkdtemp()
90
+ if same_drive(tmpdir, tmpdir2):
91
+ pytest.skip("source and target should be on same drive")
92
+
93
+ base_name = os.path.join(tmpdir2, target_name)
94
+
95
+ # working with relative paths to avoid tar warnings
96
+ with path.Path(tmpdir):
97
+ make_tarball(splitdrive(base_name)[1], 'dist', **kwargs)
98
+
99
+ # check if the compressed tarball was created
100
+ tarball = base_name + suffix
101
+ assert os.path.exists(tarball)
102
+ assert self._tarinfo(tarball) == self._created_files
103
+
104
+ def _tarinfo(self, path):
105
+ tar = tarfile.open(path)
106
+ try:
107
+ names = tar.getnames()
108
+ names.sort()
109
+ return names
110
+ finally:
111
+ tar.close()
112
+
113
+ _zip_created_files = [
114
+ 'dist/',
115
+ 'dist/file1',
116
+ 'dist/file2',
117
+ 'dist/sub/',
118
+ 'dist/sub/file3',
119
+ 'dist/sub2/',
120
+ ]
121
+ _created_files = [p.rstrip('/') for p in _zip_created_files]
122
+
123
+ def _create_files(self):
124
+ # creating something to tar
125
+ tmpdir = self.mkdtemp()
126
+ dist = os.path.join(tmpdir, 'dist')
127
+ os.mkdir(dist)
128
+ self.write_file([dist, 'file1'], 'xxx')
129
+ self.write_file([dist, 'file2'], 'xxx')
130
+ os.mkdir(os.path.join(dist, 'sub'))
131
+ self.write_file([dist, 'sub', 'file3'], 'xxx')
132
+ os.mkdir(os.path.join(dist, 'sub2'))
133
+ return tmpdir
134
+
135
+ @pytest.mark.usefixtures('needs_zlib')
136
+ @pytest.mark.skipif("not (shutil.which('tar') and shutil.which('gzip'))")
137
+ def test_tarfile_vs_tar(self):
138
+ tmpdir = self._create_files()
139
+ tmpdir2 = self.mkdtemp()
140
+ base_name = os.path.join(tmpdir2, 'archive')
141
+ old_dir = os.getcwd()
142
+ os.chdir(tmpdir)
143
+ try:
144
+ make_tarball(base_name, 'dist')
145
+ finally:
146
+ os.chdir(old_dir)
147
+
148
+ # check if the compressed tarball was created
149
+ tarball = base_name + '.tar.gz'
150
+ assert os.path.exists(tarball)
151
+
152
+ # now create another tarball using `tar`
153
+ tarball2 = os.path.join(tmpdir, 'archive2.tar.gz')
154
+ tar_cmd = ['tar', '-cf', 'archive2.tar', 'dist']
155
+ gzip_cmd = ['gzip', '-f', '-9', 'archive2.tar']
156
+ old_dir = os.getcwd()
157
+ os.chdir(tmpdir)
158
+ try:
159
+ spawn(tar_cmd)
160
+ spawn(gzip_cmd)
161
+ finally:
162
+ os.chdir(old_dir)
163
+
164
+ assert os.path.exists(tarball2)
165
+ # let's compare both tarballs
166
+ assert self._tarinfo(tarball) == self._created_files
167
+ assert self._tarinfo(tarball2) == self._created_files
168
+
169
+ # trying an uncompressed one
170
+ base_name = os.path.join(tmpdir2, 'archive')
171
+ old_dir = os.getcwd()
172
+ os.chdir(tmpdir)
173
+ try:
174
+ make_tarball(base_name, 'dist', compress=None)
175
+ finally:
176
+ os.chdir(old_dir)
177
+ tarball = base_name + '.tar'
178
+ assert os.path.exists(tarball)
179
+
180
+ # now for a dry_run
181
+ base_name = os.path.join(tmpdir2, 'archive')
182
+ old_dir = os.getcwd()
183
+ os.chdir(tmpdir)
184
+ try:
185
+ make_tarball(base_name, 'dist', compress=None, dry_run=True)
186
+ finally:
187
+ os.chdir(old_dir)
188
+ tarball = base_name + '.tar'
189
+ assert os.path.exists(tarball)
190
+
191
+ @pytest.mark.usefixtures('needs_zlib')
192
+ def test_make_zipfile(self):
193
+ zipfile = pytest.importorskip('zipfile')
194
+ # creating something to tar
195
+ tmpdir = self._create_files()
196
+ base_name = os.path.join(self.mkdtemp(), 'archive')
197
+ with path.Path(tmpdir):
198
+ make_zipfile(base_name, 'dist')
199
+
200
+ # check if the compressed tarball was created
201
+ tarball = base_name + '.zip'
202
+ assert os.path.exists(tarball)
203
+ with zipfile.ZipFile(tarball) as zf:
204
+ assert sorted(zf.namelist()) == self._zip_created_files
205
+
206
+ def test_make_zipfile_no_zlib(self):
207
+ zipfile = pytest.importorskip('zipfile')
208
+ patch(self, archive_util.zipfile, 'zlib', None) # force zlib ImportError
209
+
210
+ called = []
211
+ zipfile_class = zipfile.ZipFile
212
+
213
+ def fake_zipfile(*a, **kw):
214
+ if kw.get('compression', None) == zipfile.ZIP_STORED:
215
+ called.append((a, kw))
216
+ return zipfile_class(*a, **kw)
217
+
218
+ patch(self, archive_util.zipfile, 'ZipFile', fake_zipfile)
219
+
220
+ # create something to tar and compress
221
+ tmpdir = self._create_files()
222
+ base_name = os.path.join(self.mkdtemp(), 'archive')
223
+ with path.Path(tmpdir):
224
+ make_zipfile(base_name, 'dist')
225
+
226
+ tarball = base_name + '.zip'
227
+ assert called == [((tarball, "w"), {'compression': zipfile.ZIP_STORED})]
228
+ assert os.path.exists(tarball)
229
+ with zipfile.ZipFile(tarball) as zf:
230
+ assert sorted(zf.namelist()) == self._zip_created_files
231
+
232
+ def test_check_archive_formats(self):
233
+ assert check_archive_formats(['gztar', 'xxx', 'zip']) == 'xxx'
234
+ assert (
235
+ check_archive_formats(['gztar', 'bztar', 'xztar', 'ztar', 'tar', 'zip'])
236
+ is None
237
+ )
238
+
239
+ def test_make_archive(self):
240
+ tmpdir = self.mkdtemp()
241
+ base_name = os.path.join(tmpdir, 'archive')
242
+ with pytest.raises(ValueError):
243
+ make_archive(base_name, 'xxx')
244
+
245
+ def test_make_archive_cwd(self):
246
+ current_dir = os.getcwd()
247
+
248
+ def _breaks(*args, **kw):
249
+ raise RuntimeError()
250
+
251
+ ARCHIVE_FORMATS['xxx'] = (_breaks, [], 'xxx file')
252
+ try:
253
+ try:
254
+ make_archive('xxx', 'xxx', root_dir=self.mkdtemp())
255
+ except Exception:
256
+ pass
257
+ assert os.getcwd() == current_dir
258
+ finally:
259
+ ARCHIVE_FORMATS.pop('xxx')
260
+
261
+ def test_make_archive_tar(self):
262
+ base_dir = self._create_files()
263
+ base_name = os.path.join(self.mkdtemp(), 'archive')
264
+ res = make_archive(base_name, 'tar', base_dir, 'dist')
265
+ assert os.path.exists(res)
266
+ assert os.path.basename(res) == 'archive.tar'
267
+ assert self._tarinfo(res) == self._created_files
268
+
269
+ @pytest.mark.usefixtures('needs_zlib')
270
+ def test_make_archive_gztar(self):
271
+ base_dir = self._create_files()
272
+ base_name = os.path.join(self.mkdtemp(), 'archive')
273
+ res = make_archive(base_name, 'gztar', base_dir, 'dist')
274
+ assert os.path.exists(res)
275
+ assert os.path.basename(res) == 'archive.tar.gz'
276
+ assert self._tarinfo(res) == self._created_files
277
+
278
+ def test_make_archive_bztar(self):
279
+ pytest.importorskip('bz2')
280
+ base_dir = self._create_files()
281
+ base_name = os.path.join(self.mkdtemp(), 'archive')
282
+ res = make_archive(base_name, 'bztar', base_dir, 'dist')
283
+ assert os.path.exists(res)
284
+ assert os.path.basename(res) == 'archive.tar.bz2'
285
+ assert self._tarinfo(res) == self._created_files
286
+
287
+ def test_make_archive_xztar(self):
288
+ pytest.importorskip('lzma')
289
+ base_dir = self._create_files()
290
+ base_name = os.path.join(self.mkdtemp(), 'archive')
291
+ res = make_archive(base_name, 'xztar', base_dir, 'dist')
292
+ assert os.path.exists(res)
293
+ assert os.path.basename(res) == 'archive.tar.xz'
294
+ assert self._tarinfo(res) == self._created_files
295
+
296
+ def test_make_archive_owner_group(self):
297
+ # testing make_archive with owner and group, with various combinations
298
+ # this works even if there's not gid/uid support
299
+ if UID_0_SUPPORT:
300
+ group = grp.getgrgid(0)[0]
301
+ owner = pwd.getpwuid(0)[0]
302
+ else:
303
+ group = owner = 'root'
304
+
305
+ base_dir = self._create_files()
306
+ root_dir = self.mkdtemp()
307
+ base_name = os.path.join(self.mkdtemp(), 'archive')
308
+ res = make_archive(
309
+ base_name, 'zip', root_dir, base_dir, owner=owner, group=group
310
+ )
311
+ assert os.path.exists(res)
312
+
313
+ res = make_archive(base_name, 'zip', root_dir, base_dir)
314
+ assert os.path.exists(res)
315
+
316
+ res = make_archive(
317
+ base_name, 'tar', root_dir, base_dir, owner=owner, group=group
318
+ )
319
+ assert os.path.exists(res)
320
+
321
+ res = make_archive(
322
+ base_name, 'tar', root_dir, base_dir, owner='kjhkjhkjg', group='oihohoh'
323
+ )
324
+ assert os.path.exists(res)
325
+
326
+ @pytest.mark.usefixtures('needs_zlib')
327
+ @require_unix_id
328
+ @require_uid_0
329
+ def test_tarfile_root_owner(self):
330
+ tmpdir = self._create_files()
331
+ base_name = os.path.join(self.mkdtemp(), 'archive')
332
+ old_dir = os.getcwd()
333
+ os.chdir(tmpdir)
334
+ group = grp.getgrgid(0)[0]
335
+ owner = pwd.getpwuid(0)[0]
336
+ try:
337
+ archive_name = make_tarball(
338
+ base_name, 'dist', compress=None, owner=owner, group=group
339
+ )
340
+ finally:
341
+ os.chdir(old_dir)
342
+
343
+ # check if the compressed tarball was created
344
+ assert os.path.exists(archive_name)
345
+
346
+ # now checks the rights
347
+ archive = tarfile.open(archive_name)
348
+ try:
349
+ for member in archive.getmembers():
350
+ assert member.uid == 0
351
+ assert member.gid == 0
352
+ finally:
353
+ archive.close()
@@ -0,0 +1,47 @@
1
+ """Tests for distutils.command.bdist."""
2
+
3
+ from distutils.command.bdist import bdist
4
+ from distutils.tests import support
5
+
6
+
7
+ class TestBuild(support.TempdirManager):
8
+ def test_formats(self):
9
+ # let's create a command and make sure
10
+ # we can set the format
11
+ dist = self.create_dist()[1]
12
+ cmd = bdist(dist)
13
+ cmd.formats = ['gztar']
14
+ cmd.ensure_finalized()
15
+ assert cmd.formats == ['gztar']
16
+
17
+ # what formats does bdist offer?
18
+ formats = [
19
+ 'bztar',
20
+ 'gztar',
21
+ 'rpm',
22
+ 'tar',
23
+ 'xztar',
24
+ 'zip',
25
+ 'ztar',
26
+ ]
27
+ found = sorted(cmd.format_commands)
28
+ assert found == formats
29
+
30
+ def test_skip_build(self):
31
+ # bug #10946: bdist --skip-build should trickle down to subcommands
32
+ dist = self.create_dist()[1]
33
+ cmd = bdist(dist)
34
+ cmd.skip_build = True
35
+ cmd.ensure_finalized()
36
+ dist.command_obj['bdist'] = cmd
37
+
38
+ names = [
39
+ 'bdist_dumb',
40
+ ] # bdist_rpm does not support --skip-build
41
+
42
+ for name in names:
43
+ subcmd = cmd.get_finalized_command(name)
44
+ if getattr(subcmd, '_unsupported', False):
45
+ # command is not supported on this build
46
+ continue
47
+ assert subcmd.skip_build, f'{name} should take --skip-build from bdist'
@@ -0,0 +1,78 @@
1
+ """Tests for distutils.command.bdist_dumb."""
2
+
3
+ import os
4
+ import sys
5
+ import zipfile
6
+ from distutils.command.bdist_dumb import bdist_dumb
7
+ from distutils.core import Distribution
8
+ from distutils.tests import support
9
+
10
+ import pytest
11
+
12
+ SETUP_PY = """\
13
+ from distutils.core import setup
14
+ import foo
15
+
16
+ setup(name='foo', version='0.1', py_modules=['foo'],
17
+ url='xxx', author='xxx', author_email='xxx')
18
+
19
+ """
20
+
21
+
22
+ @support.combine_markers
23
+ @pytest.mark.usefixtures('save_env')
24
+ @pytest.mark.usefixtures('save_argv')
25
+ @pytest.mark.usefixtures('save_cwd')
26
+ class TestBuildDumb(
27
+ support.TempdirManager,
28
+ ):
29
+ @pytest.mark.usefixtures('needs_zlib')
30
+ def test_simple_built(self):
31
+ # let's create a simple package
32
+ tmp_dir = self.mkdtemp()
33
+ pkg_dir = os.path.join(tmp_dir, 'foo')
34
+ os.mkdir(pkg_dir)
35
+ self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
36
+ self.write_file((pkg_dir, 'foo.py'), '#')
37
+ self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
38
+ self.write_file((pkg_dir, 'README'), '')
39
+
40
+ dist = Distribution({
41
+ 'name': 'foo',
42
+ 'version': '0.1',
43
+ 'py_modules': ['foo'],
44
+ 'url': 'xxx',
45
+ 'author': 'xxx',
46
+ 'author_email': 'xxx',
47
+ })
48
+ dist.script_name = 'setup.py'
49
+ os.chdir(pkg_dir)
50
+
51
+ sys.argv = ['setup.py']
52
+ cmd = bdist_dumb(dist)
53
+
54
+ # so the output is the same no matter
55
+ # what is the platform
56
+ cmd.format = 'zip'
57
+
58
+ cmd.ensure_finalized()
59
+ cmd.run()
60
+
61
+ # see what we have
62
+ dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
63
+ base = f"{dist.get_fullname()}.{cmd.plat_name}.zip"
64
+
65
+ assert dist_created == [base]
66
+
67
+ # now let's check what we have in the zip file
68
+ fp = zipfile.ZipFile(os.path.join('dist', base))
69
+ try:
70
+ contents = fp.namelist()
71
+ finally:
72
+ fp.close()
73
+
74
+ contents = sorted(filter(None, map(os.path.basename, contents)))
75
+ wanted = ['foo-0.1-py{}.{}.egg-info'.format(*sys.version_info[:2]), 'foo.py']
76
+ if not sys.dont_write_bytecode:
77
+ wanted.append(f'foo.{sys.implementation.cache_tag}.pyc')
78
+ assert contents == sorted(wanted)