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,622 @@
1
+ """sdist tests"""
2
+
3
+ from __future__ import annotations
4
+
5
+ import contextlib
6
+ import io
7
+ import itertools
8
+ import logging
9
+ import os
10
+ import shutil
11
+ import sys
12
+ import tempfile
13
+
14
+ import pytest
15
+
16
+ from setuptools.command.egg_info import FileList, egg_info, translate_pattern
17
+ from setuptools.dist import Distribution
18
+ from setuptools.tests.textwrap import DALS
19
+
20
+ from distutils import log
21
+ from distutils.errors import DistutilsTemplateError
22
+
23
+ IS_PYPY = '__pypy__' in sys.builtin_module_names
24
+
25
+
26
+ def make_local_path(s):
27
+ """Converts '/' in a string to os.sep"""
28
+ return s.replace('/', os.sep)
29
+
30
+
31
+ SETUP_ATTRS = {
32
+ 'name': 'app',
33
+ 'version': '0.0',
34
+ 'packages': ['app'],
35
+ }
36
+
37
+ SETUP_PY = f"""\
38
+ from setuptools import setup
39
+
40
+ setup(**{SETUP_ATTRS!r})
41
+ """
42
+
43
+
44
+ @contextlib.contextmanager
45
+ def quiet():
46
+ old_stdout, old_stderr = sys.stdout, sys.stderr
47
+ sys.stdout, sys.stderr = io.StringIO(), io.StringIO()
48
+ try:
49
+ yield
50
+ finally:
51
+ sys.stdout, sys.stderr = old_stdout, old_stderr
52
+
53
+
54
+ def touch(filename):
55
+ open(filename, 'wb').close()
56
+
57
+
58
+ # The set of files always in the manifest, including all files in the
59
+ # .egg-info directory
60
+ default_files = frozenset(
61
+ map(
62
+ make_local_path,
63
+ [
64
+ 'README.rst',
65
+ 'MANIFEST.in',
66
+ 'setup.py',
67
+ 'app.egg-info/PKG-INFO',
68
+ 'app.egg-info/SOURCES.txt',
69
+ 'app.egg-info/dependency_links.txt',
70
+ 'app.egg-info/top_level.txt',
71
+ 'app/__init__.py',
72
+ ],
73
+ )
74
+ )
75
+
76
+
77
+ translate_specs: list[tuple[str, list[str], list[str]]] = [
78
+ ('foo', ['foo'], ['bar', 'foobar']),
79
+ ('foo/bar', ['foo/bar'], ['foo/bar/baz', './foo/bar', 'foo']),
80
+ # Glob matching
81
+ ('*.txt', ['foo.txt', 'bar.txt'], ['foo/foo.txt']),
82
+ ('dir/*.txt', ['dir/foo.txt', 'dir/bar.txt', 'dir/.txt'], ['notdir/foo.txt']),
83
+ ('*/*.py', ['bin/start.py'], []),
84
+ ('docs/page-?.txt', ['docs/page-9.txt'], ['docs/page-10.txt']),
85
+ # Globstars change what they mean depending upon where they are
86
+ (
87
+ 'foo/**/bar',
88
+ ['foo/bing/bar', 'foo/bing/bang/bar', 'foo/bar'],
89
+ ['foo/abar'],
90
+ ),
91
+ (
92
+ 'foo/**',
93
+ ['foo/bar/bing.py', 'foo/x'],
94
+ ['/foo/x'],
95
+ ),
96
+ (
97
+ '**',
98
+ ['x', 'abc/xyz', '@nything'],
99
+ [],
100
+ ),
101
+ # Character classes
102
+ (
103
+ 'pre[one]post',
104
+ ['preopost', 'prenpost', 'preepost'],
105
+ ['prepost', 'preonepost'],
106
+ ),
107
+ (
108
+ 'hello[!one]world',
109
+ ['helloxworld', 'helloyworld'],
110
+ ['hellooworld', 'helloworld', 'hellooneworld'],
111
+ ),
112
+ (
113
+ '[]one].txt',
114
+ ['o.txt', '].txt', 'e.txt'],
115
+ ['one].txt'],
116
+ ),
117
+ (
118
+ 'foo[!]one]bar',
119
+ ['fooybar'],
120
+ ['foo]bar', 'fooobar', 'fooebar'],
121
+ ),
122
+ ]
123
+ """
124
+ A spec of inputs for 'translate_pattern' and matches and mismatches
125
+ for that input.
126
+ """
127
+
128
+ match_params = itertools.chain.from_iterable(
129
+ zip(itertools.repeat(pattern), matches)
130
+ for pattern, matches, mismatches in translate_specs
131
+ )
132
+
133
+
134
+ @pytest.fixture(params=match_params)
135
+ def pattern_match(request):
136
+ return map(make_local_path, request.param)
137
+
138
+
139
+ mismatch_params = itertools.chain.from_iterable(
140
+ zip(itertools.repeat(pattern), mismatches)
141
+ for pattern, matches, mismatches in translate_specs
142
+ )
143
+
144
+
145
+ @pytest.fixture(params=mismatch_params)
146
+ def pattern_mismatch(request):
147
+ return map(make_local_path, request.param)
148
+
149
+
150
+ def test_translated_pattern_match(pattern_match):
151
+ pattern, target = pattern_match
152
+ assert translate_pattern(pattern).match(target)
153
+
154
+
155
+ def test_translated_pattern_mismatch(pattern_mismatch):
156
+ pattern, target = pattern_mismatch
157
+ assert not translate_pattern(pattern).match(target)
158
+
159
+
160
+ class TempDirTestCase:
161
+ def setup_method(self, method):
162
+ self.temp_dir = tempfile.mkdtemp()
163
+ self.old_cwd = os.getcwd()
164
+ os.chdir(self.temp_dir)
165
+
166
+ def teardown_method(self, method):
167
+ os.chdir(self.old_cwd)
168
+ shutil.rmtree(self.temp_dir)
169
+
170
+
171
+ class TestManifestTest(TempDirTestCase):
172
+ def setup_method(self, method):
173
+ super().setup_method(method)
174
+
175
+ f = open(os.path.join(self.temp_dir, 'setup.py'), 'w', encoding="utf-8")
176
+ f.write(SETUP_PY)
177
+ f.close()
178
+ """
179
+ Create a file tree like:
180
+ - LICENSE
181
+ - README.rst
182
+ - testing.rst
183
+ - .hidden.rst
184
+ - app/
185
+ - __init__.py
186
+ - a.txt
187
+ - b.txt
188
+ - c.rst
189
+ - static/
190
+ - app.js
191
+ - app.js.map
192
+ - app.css
193
+ - app.css.map
194
+ """
195
+
196
+ for fname in ['README.rst', '.hidden.rst', 'testing.rst', 'LICENSE']:
197
+ touch(os.path.join(self.temp_dir, fname))
198
+
199
+ # Set up the rest of the test package
200
+ test_pkg = os.path.join(self.temp_dir, 'app')
201
+ os.mkdir(test_pkg)
202
+ for fname in ['__init__.py', 'a.txt', 'b.txt', 'c.rst']:
203
+ touch(os.path.join(test_pkg, fname))
204
+
205
+ # Some compiled front-end assets to include
206
+ static = os.path.join(test_pkg, 'static')
207
+ os.mkdir(static)
208
+ for fname in ['app.js', 'app.js.map', 'app.css', 'app.css.map']:
209
+ touch(os.path.join(static, fname))
210
+
211
+ def make_manifest(self, contents):
212
+ """Write a MANIFEST.in."""
213
+ manifest = os.path.join(self.temp_dir, 'MANIFEST.in')
214
+ with open(manifest, 'w', encoding="utf-8") as f:
215
+ f.write(DALS(contents))
216
+
217
+ def get_files(self):
218
+ """Run egg_info and get all the files to include, as a set"""
219
+ dist = Distribution(SETUP_ATTRS)
220
+ dist.script_name = 'setup.py'
221
+ cmd = egg_info(dist)
222
+ cmd.ensure_finalized()
223
+
224
+ cmd.run()
225
+
226
+ return set(cmd.filelist.files)
227
+
228
+ def test_no_manifest(self):
229
+ """Check a missing MANIFEST.in includes only the standard files."""
230
+ assert (default_files - set(['MANIFEST.in'])) == self.get_files()
231
+
232
+ def test_empty_files(self):
233
+ """Check an empty MANIFEST.in includes only the standard files."""
234
+ self.make_manifest("")
235
+ assert default_files == self.get_files()
236
+
237
+ def test_include(self):
238
+ """Include extra rst files in the project root."""
239
+ self.make_manifest("include *.rst")
240
+ files = default_files | set(['testing.rst', '.hidden.rst'])
241
+ assert files == self.get_files()
242
+
243
+ def test_exclude(self):
244
+ """Include everything in app/ except the text files"""
245
+ ml = make_local_path
246
+ self.make_manifest(
247
+ """
248
+ include app/*
249
+ exclude app/*.txt
250
+ """
251
+ )
252
+ files = default_files | set([ml('app/c.rst')])
253
+ assert files == self.get_files()
254
+
255
+ def test_include_multiple(self):
256
+ """Include with multiple patterns."""
257
+ ml = make_local_path
258
+ self.make_manifest("include app/*.txt app/static/*")
259
+ files = default_files | set([
260
+ ml('app/a.txt'),
261
+ ml('app/b.txt'),
262
+ ml('app/static/app.js'),
263
+ ml('app/static/app.js.map'),
264
+ ml('app/static/app.css'),
265
+ ml('app/static/app.css.map'),
266
+ ])
267
+ assert files == self.get_files()
268
+
269
+ def test_graft(self):
270
+ """Include the whole app/static/ directory."""
271
+ ml = make_local_path
272
+ self.make_manifest("graft app/static")
273
+ files = default_files | set([
274
+ ml('app/static/app.js'),
275
+ ml('app/static/app.js.map'),
276
+ ml('app/static/app.css'),
277
+ ml('app/static/app.css.map'),
278
+ ])
279
+ assert files == self.get_files()
280
+
281
+ def test_graft_glob_syntax(self):
282
+ """Include the whole app/static/ directory."""
283
+ ml = make_local_path
284
+ self.make_manifest("graft */static")
285
+ files = default_files | set([
286
+ ml('app/static/app.js'),
287
+ ml('app/static/app.js.map'),
288
+ ml('app/static/app.css'),
289
+ ml('app/static/app.css.map'),
290
+ ])
291
+ assert files == self.get_files()
292
+
293
+ def test_graft_global_exclude(self):
294
+ """Exclude all *.map files in the project."""
295
+ ml = make_local_path
296
+ self.make_manifest(
297
+ """
298
+ graft app/static
299
+ global-exclude *.map
300
+ """
301
+ )
302
+ files = default_files | set([ml('app/static/app.js'), ml('app/static/app.css')])
303
+ assert files == self.get_files()
304
+
305
+ def test_global_include(self):
306
+ """Include all *.rst, *.js, and *.css files in the whole tree."""
307
+ ml = make_local_path
308
+ self.make_manifest(
309
+ """
310
+ global-include *.rst *.js *.css
311
+ """
312
+ )
313
+ files = default_files | set([
314
+ '.hidden.rst',
315
+ 'testing.rst',
316
+ ml('app/c.rst'),
317
+ ml('app/static/app.js'),
318
+ ml('app/static/app.css'),
319
+ ])
320
+ assert files == self.get_files()
321
+
322
+ def test_graft_prune(self):
323
+ """Include all files in app/, except for the whole app/static/ dir."""
324
+ ml = make_local_path
325
+ self.make_manifest(
326
+ """
327
+ graft app
328
+ prune app/static
329
+ """
330
+ )
331
+ files = default_files | set([ml('app/a.txt'), ml('app/b.txt'), ml('app/c.rst')])
332
+ assert files == self.get_files()
333
+
334
+
335
+ class TestFileListTest(TempDirTestCase):
336
+ """
337
+ A copy of the relevant bits of distutils/tests/test_filelist.py,
338
+ to ensure setuptools' version of FileList keeps parity with distutils.
339
+ """
340
+
341
+ @pytest.fixture(autouse=os.getenv("SETUPTOOLS_USE_DISTUTILS") == "stdlib")
342
+ def _compat_record_logs(self, monkeypatch, caplog):
343
+ """Account for stdlib compatibility"""
344
+
345
+ def _log(_logger, level, msg, args):
346
+ exc = sys.exc_info()
347
+ rec = logging.LogRecord("distutils", level, "", 0, msg, args, exc)
348
+ caplog.records.append(rec)
349
+
350
+ monkeypatch.setattr(log.Log, "_log", _log)
351
+
352
+ def get_records(self, caplog, *levels):
353
+ return [r for r in caplog.records if r.levelno in levels]
354
+
355
+ def assertNoWarnings(self, caplog):
356
+ assert self.get_records(caplog, log.WARN) == []
357
+ caplog.clear()
358
+
359
+ def assertWarnings(self, caplog):
360
+ if IS_PYPY and not caplog.records:
361
+ pytest.xfail("caplog checks may not work well in PyPy")
362
+ else:
363
+ assert len(self.get_records(caplog, log.WARN)) > 0
364
+ caplog.clear()
365
+
366
+ def make_files(self, files):
367
+ for file in files:
368
+ file = os.path.join(self.temp_dir, file)
369
+ dirname, _basename = os.path.split(file)
370
+ os.makedirs(dirname, exist_ok=True)
371
+ touch(file)
372
+
373
+ def test_process_template_line(self):
374
+ # testing all MANIFEST.in template patterns
375
+ file_list = FileList()
376
+ ml = make_local_path
377
+
378
+ # simulated file list
379
+ self.make_files([
380
+ 'foo.tmp',
381
+ 'ok',
382
+ 'xo',
383
+ 'four.txt',
384
+ 'buildout.cfg',
385
+ # filelist does not filter out VCS directories,
386
+ # it's sdist that does
387
+ ml('.hg/last-message.txt'),
388
+ ml('global/one.txt'),
389
+ ml('global/two.txt'),
390
+ ml('global/files.x'),
391
+ ml('global/here.tmp'),
392
+ ml('f/o/f.oo'),
393
+ ml('dir/graft-one'),
394
+ ml('dir/dir2/graft2'),
395
+ ml('dir3/ok'),
396
+ ml('dir3/sub/ok.txt'),
397
+ ])
398
+
399
+ MANIFEST_IN = DALS(
400
+ """\
401
+ include ok
402
+ include xo
403
+ exclude xo
404
+ include foo.tmp
405
+ include buildout.cfg
406
+ global-include *.x
407
+ global-include *.txt
408
+ global-exclude *.tmp
409
+ recursive-include f *.oo
410
+ recursive-exclude global *.x
411
+ graft dir
412
+ prune dir3
413
+ """
414
+ )
415
+
416
+ for line in MANIFEST_IN.split('\n'):
417
+ if not line:
418
+ continue
419
+ file_list.process_template_line(line)
420
+
421
+ wanted = [
422
+ 'buildout.cfg',
423
+ 'four.txt',
424
+ 'ok',
425
+ ml('.hg/last-message.txt'),
426
+ ml('dir/graft-one'),
427
+ ml('dir/dir2/graft2'),
428
+ ml('f/o/f.oo'),
429
+ ml('global/one.txt'),
430
+ ml('global/two.txt'),
431
+ ]
432
+
433
+ file_list.sort()
434
+ assert file_list.files == wanted
435
+
436
+ def test_exclude_pattern(self):
437
+ # return False if no match
438
+ file_list = FileList()
439
+ assert not file_list.exclude_pattern('*.py')
440
+
441
+ # return True if files match
442
+ file_list = FileList()
443
+ file_list.files = ['a.py', 'b.py']
444
+ assert file_list.exclude_pattern('*.py')
445
+
446
+ # test excludes
447
+ file_list = FileList()
448
+ file_list.files = ['a.py', 'a.txt']
449
+ file_list.exclude_pattern('*.py')
450
+ file_list.sort()
451
+ assert file_list.files == ['a.txt']
452
+
453
+ def test_include_pattern(self):
454
+ # return False if no match
455
+ file_list = FileList()
456
+ self.make_files([])
457
+ assert not file_list.include_pattern('*.py')
458
+
459
+ # return True if files match
460
+ file_list = FileList()
461
+ self.make_files(['a.py', 'b.txt'])
462
+ assert file_list.include_pattern('*.py')
463
+
464
+ # test * matches all files
465
+ file_list = FileList()
466
+ self.make_files(['a.py', 'b.txt'])
467
+ file_list.include_pattern('*')
468
+ file_list.sort()
469
+ assert file_list.files == ['a.py', 'b.txt']
470
+
471
+ def test_process_template_line_invalid(self):
472
+ # invalid lines
473
+ file_list = FileList()
474
+ for action in (
475
+ 'include',
476
+ 'exclude',
477
+ 'global-include',
478
+ 'global-exclude',
479
+ 'recursive-include',
480
+ 'recursive-exclude',
481
+ 'graft',
482
+ 'prune',
483
+ 'blarg',
484
+ ):
485
+ with pytest.raises(DistutilsTemplateError):
486
+ file_list.process_template_line(action)
487
+
488
+ def test_include(self, caplog):
489
+ caplog.set_level(logging.DEBUG)
490
+ ml = make_local_path
491
+ # include
492
+ file_list = FileList()
493
+ self.make_files(['a.py', 'b.txt', ml('d/c.py')])
494
+
495
+ file_list.process_template_line('include *.py')
496
+ file_list.sort()
497
+ assert file_list.files == ['a.py']
498
+ self.assertNoWarnings(caplog)
499
+
500
+ file_list.process_template_line('include *.rb')
501
+ file_list.sort()
502
+ assert file_list.files == ['a.py']
503
+ self.assertWarnings(caplog)
504
+
505
+ def test_exclude(self, caplog):
506
+ caplog.set_level(logging.DEBUG)
507
+ ml = make_local_path
508
+ # exclude
509
+ file_list = FileList()
510
+ file_list.files = ['a.py', 'b.txt', ml('d/c.py')]
511
+
512
+ file_list.process_template_line('exclude *.py')
513
+ file_list.sort()
514
+ assert file_list.files == ['b.txt', ml('d/c.py')]
515
+ self.assertNoWarnings(caplog)
516
+
517
+ file_list.process_template_line('exclude *.rb')
518
+ file_list.sort()
519
+ assert file_list.files == ['b.txt', ml('d/c.py')]
520
+ self.assertWarnings(caplog)
521
+
522
+ def test_global_include(self, caplog):
523
+ caplog.set_level(logging.DEBUG)
524
+ ml = make_local_path
525
+ # global-include
526
+ file_list = FileList()
527
+ self.make_files(['a.py', 'b.txt', ml('d/c.py')])
528
+
529
+ file_list.process_template_line('global-include *.py')
530
+ file_list.sort()
531
+ assert file_list.files == ['a.py', ml('d/c.py')]
532
+ self.assertNoWarnings(caplog)
533
+
534
+ file_list.process_template_line('global-include *.rb')
535
+ file_list.sort()
536
+ assert file_list.files == ['a.py', ml('d/c.py')]
537
+ self.assertWarnings(caplog)
538
+
539
+ def test_global_exclude(self, caplog):
540
+ caplog.set_level(logging.DEBUG)
541
+ ml = make_local_path
542
+ # global-exclude
543
+ file_list = FileList()
544
+ file_list.files = ['a.py', 'b.txt', ml('d/c.py')]
545
+
546
+ file_list.process_template_line('global-exclude *.py')
547
+ file_list.sort()
548
+ assert file_list.files == ['b.txt']
549
+ self.assertNoWarnings(caplog)
550
+
551
+ file_list.process_template_line('global-exclude *.rb')
552
+ file_list.sort()
553
+ assert file_list.files == ['b.txt']
554
+ self.assertWarnings(caplog)
555
+
556
+ def test_recursive_include(self, caplog):
557
+ caplog.set_level(logging.DEBUG)
558
+ ml = make_local_path
559
+ # recursive-include
560
+ file_list = FileList()
561
+ self.make_files(['a.py', ml('d/b.py'), ml('d/c.txt'), ml('d/d/e.py')])
562
+
563
+ file_list.process_template_line('recursive-include d *.py')
564
+ file_list.sort()
565
+ assert file_list.files == [ml('d/b.py'), ml('d/d/e.py')]
566
+ self.assertNoWarnings(caplog)
567
+
568
+ file_list.process_template_line('recursive-include e *.py')
569
+ file_list.sort()
570
+ assert file_list.files == [ml('d/b.py'), ml('d/d/e.py')]
571
+ self.assertWarnings(caplog)
572
+
573
+ def test_recursive_exclude(self, caplog):
574
+ caplog.set_level(logging.DEBUG)
575
+ ml = make_local_path
576
+ # recursive-exclude
577
+ file_list = FileList()
578
+ file_list.files = ['a.py', ml('d/b.py'), ml('d/c.txt'), ml('d/d/e.py')]
579
+
580
+ file_list.process_template_line('recursive-exclude d *.py')
581
+ file_list.sort()
582
+ assert file_list.files == ['a.py', ml('d/c.txt')]
583
+ self.assertNoWarnings(caplog)
584
+
585
+ file_list.process_template_line('recursive-exclude e *.py')
586
+ file_list.sort()
587
+ assert file_list.files == ['a.py', ml('d/c.txt')]
588
+ self.assertWarnings(caplog)
589
+
590
+ def test_graft(self, caplog):
591
+ caplog.set_level(logging.DEBUG)
592
+ ml = make_local_path
593
+ # graft
594
+ file_list = FileList()
595
+ self.make_files(['a.py', ml('d/b.py'), ml('d/d/e.py'), ml('f/f.py')])
596
+
597
+ file_list.process_template_line('graft d')
598
+ file_list.sort()
599
+ assert file_list.files == [ml('d/b.py'), ml('d/d/e.py')]
600
+ self.assertNoWarnings(caplog)
601
+
602
+ file_list.process_template_line('graft e')
603
+ file_list.sort()
604
+ assert file_list.files == [ml('d/b.py'), ml('d/d/e.py')]
605
+ self.assertWarnings(caplog)
606
+
607
+ def test_prune(self, caplog):
608
+ caplog.set_level(logging.DEBUG)
609
+ ml = make_local_path
610
+ # prune
611
+ file_list = FileList()
612
+ file_list.files = ['a.py', ml('d/b.py'), ml('d/d/e.py'), ml('f/f.py')]
613
+
614
+ file_list.process_template_line('prune d')
615
+ file_list.sort()
616
+ assert file_list.files == ['a.py', ml('f/f.py')]
617
+ self.assertNoWarnings(caplog)
618
+
619
+ file_list.process_template_line('prune e')
620
+ file_list.sort()
621
+ assert file_list.files == ['a.py', ml('f/f.py')]
622
+ self.assertWarnings(caplog)