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,480 @@
1
+ import os
2
+ import shutil
3
+ import stat
4
+ import warnings
5
+ from pathlib import Path
6
+ from unittest.mock import Mock
7
+
8
+ import jaraco.path
9
+ import pytest
10
+
11
+ from setuptools import SetuptoolsDeprecationWarning
12
+ from setuptools.dist import Distribution
13
+
14
+ from .textwrap import DALS
15
+
16
+
17
+ def test_directories_in_package_data_glob(tmpdir_cwd):
18
+ """
19
+ Directories matching the glob in package_data should
20
+ not be included in the package data.
21
+
22
+ Regression test for #261.
23
+ """
24
+ dist = Distribution(
25
+ dict(
26
+ script_name='setup.py',
27
+ script_args=['build_py'],
28
+ packages=[''],
29
+ package_data={'': ['path/*']},
30
+ )
31
+ )
32
+ os.makedirs('path/subpath')
33
+ dist.parse_command_line()
34
+ dist.run_commands()
35
+
36
+
37
+ def test_recursive_in_package_data_glob(tmpdir_cwd):
38
+ """
39
+ Files matching recursive globs (**) in package_data should
40
+ be included in the package data.
41
+
42
+ #1806
43
+ """
44
+ dist = Distribution(
45
+ dict(
46
+ script_name='setup.py',
47
+ script_args=['build_py'],
48
+ packages=[''],
49
+ package_data={'': ['path/**/data']},
50
+ )
51
+ )
52
+ os.makedirs('path/subpath/subsubpath')
53
+ open('path/subpath/subsubpath/data', 'wb').close()
54
+
55
+ dist.parse_command_line()
56
+ dist.run_commands()
57
+
58
+ assert stat.S_ISREG(os.stat('build/lib/path/subpath/subsubpath/data').st_mode), (
59
+ "File is not included"
60
+ )
61
+
62
+
63
+ def test_read_only(tmpdir_cwd):
64
+ """
65
+ Ensure read-only flag is not preserved in copy
66
+ for package modules and package data, as that
67
+ causes problems with deleting read-only files on
68
+ Windows.
69
+
70
+ #1451
71
+ """
72
+ dist = Distribution(
73
+ dict(
74
+ script_name='setup.py',
75
+ script_args=['build_py'],
76
+ packages=['pkg'],
77
+ package_data={'pkg': ['data.dat']},
78
+ )
79
+ )
80
+ os.makedirs('pkg')
81
+ open('pkg/__init__.py', 'wb').close()
82
+ open('pkg/data.dat', 'wb').close()
83
+ os.chmod('pkg/__init__.py', stat.S_IREAD)
84
+ os.chmod('pkg/data.dat', stat.S_IREAD)
85
+ dist.parse_command_line()
86
+ dist.run_commands()
87
+ shutil.rmtree('build')
88
+
89
+
90
+ @pytest.mark.xfail(
91
+ 'platform.system() == "Windows"',
92
+ reason="On Windows, files do not have executable bits",
93
+ raises=AssertionError,
94
+ strict=True,
95
+ )
96
+ def test_executable_data(tmpdir_cwd):
97
+ """
98
+ Ensure executable bit is preserved in copy for
99
+ package data, as users rely on it for scripts.
100
+
101
+ #2041
102
+ """
103
+ dist = Distribution(
104
+ dict(
105
+ script_name='setup.py',
106
+ script_args=['build_py'],
107
+ packages=['pkg'],
108
+ package_data={'pkg': ['run-me']},
109
+ )
110
+ )
111
+ os.makedirs('pkg')
112
+ open('pkg/__init__.py', 'wb').close()
113
+ open('pkg/run-me', 'wb').close()
114
+ os.chmod('pkg/run-me', 0o700)
115
+
116
+ dist.parse_command_line()
117
+ dist.run_commands()
118
+
119
+ assert os.stat('build/lib/pkg/run-me').st_mode & stat.S_IEXEC, (
120
+ "Script is not executable"
121
+ )
122
+
123
+
124
+ EXAMPLE_WITH_MANIFEST = {
125
+ "setup.cfg": DALS(
126
+ """
127
+ [metadata]
128
+ name = mypkg
129
+ version = 42
130
+
131
+ [options]
132
+ include_package_data = True
133
+ packages = find:
134
+
135
+ [options.packages.find]
136
+ exclude = *.tests*
137
+ """
138
+ ),
139
+ "mypkg": {
140
+ "__init__.py": "",
141
+ "resource_file.txt": "",
142
+ "tests": {
143
+ "__init__.py": "",
144
+ "test_mypkg.py": "",
145
+ "test_file.txt": "",
146
+ },
147
+ },
148
+ "MANIFEST.in": DALS(
149
+ """
150
+ global-include *.py *.txt
151
+ global-exclude *.py[cod]
152
+ prune dist
153
+ prune build
154
+ prune *.egg-info
155
+ """
156
+ ),
157
+ }
158
+
159
+
160
+ def test_excluded_subpackages(tmpdir_cwd):
161
+ jaraco.path.build(EXAMPLE_WITH_MANIFEST)
162
+ dist = Distribution({"script_name": "%PEP 517%"})
163
+ dist.parse_config_files()
164
+
165
+ build_py = dist.get_command_obj("build_py")
166
+
167
+ msg = r"Python recognizes 'mypkg\.tests' as an importable package"
168
+ with pytest.warns(SetuptoolsDeprecationWarning, match=msg):
169
+ # TODO: To fix #3260 we need some transition period to deprecate the
170
+ # existing behavior of `include_package_data`. After the transition, we
171
+ # should remove the warning and fix the behavior.
172
+
173
+ if os.getenv("SETUPTOOLS_USE_DISTUTILS") == "stdlib":
174
+ # pytest.warns reset the warning filter temporarily
175
+ # https://github.com/pytest-dev/pytest/issues/4011#issuecomment-423494810
176
+ warnings.filterwarnings(
177
+ "ignore",
178
+ "'encoding' argument not specified",
179
+ module="distutils.text_file",
180
+ # This warning is already fixed in pypa/distutils but not in stdlib
181
+ )
182
+
183
+ build_py.finalize_options()
184
+ build_py.run()
185
+
186
+ build_dir = Path(dist.get_command_obj("build_py").build_lib)
187
+ assert (build_dir / "mypkg/__init__.py").exists()
188
+ assert (build_dir / "mypkg/resource_file.txt").exists()
189
+
190
+ # Setuptools is configured to ignore `mypkg.tests`, therefore the following
191
+ # files/dirs should not be included in the distribution.
192
+ for f in [
193
+ "mypkg/tests/__init__.py",
194
+ "mypkg/tests/test_mypkg.py",
195
+ "mypkg/tests/test_file.txt",
196
+ "mypkg/tests",
197
+ ]:
198
+ with pytest.raises(AssertionError):
199
+ # TODO: Enforce the following assertion once #3260 is fixed
200
+ # (remove context manager and the following xfail).
201
+ assert not (build_dir / f).exists()
202
+
203
+ pytest.xfail("#3260")
204
+
205
+
206
+ @pytest.mark.filterwarnings("ignore::setuptools.SetuptoolsDeprecationWarning")
207
+ def test_existing_egg_info(tmpdir_cwd, monkeypatch):
208
+ """When provided with the ``existing_egg_info_dir`` attribute, build_py should not
209
+ attempt to run egg_info again.
210
+ """
211
+ # == Pre-condition ==
212
+ # Generate an egg-info dir
213
+ jaraco.path.build(EXAMPLE_WITH_MANIFEST)
214
+ dist = Distribution({"script_name": "%PEP 517%"})
215
+ dist.parse_config_files()
216
+ assert dist.include_package_data
217
+
218
+ egg_info = dist.get_command_obj("egg_info")
219
+ dist.run_command("egg_info")
220
+ egg_info_dir = next(Path(egg_info.egg_base).glob("*.egg-info"))
221
+ assert egg_info_dir.is_dir()
222
+
223
+ # == Setup ==
224
+ build_py = dist.get_command_obj("build_py")
225
+ build_py.finalize_options()
226
+ egg_info = dist.get_command_obj("egg_info")
227
+ egg_info_run = Mock(side_effect=egg_info.run)
228
+ monkeypatch.setattr(egg_info, "run", egg_info_run)
229
+
230
+ # == Remove caches ==
231
+ # egg_info is called when build_py looks for data_files, which gets cached.
232
+ # We need to ensure it is not cached yet, otherwise it may impact on the tests
233
+ build_py.__dict__.pop('data_files', None)
234
+ dist.reinitialize_command(egg_info)
235
+
236
+ # == Sanity check ==
237
+ # Ensure that if existing_egg_info is not given, build_py attempts to run egg_info
238
+ build_py.existing_egg_info_dir = None
239
+ build_py.run()
240
+ egg_info_run.assert_called()
241
+
242
+ # == Remove caches ==
243
+ egg_info_run.reset_mock()
244
+ build_py.__dict__.pop('data_files', None)
245
+ dist.reinitialize_command(egg_info)
246
+
247
+ # == Actual test ==
248
+ # Ensure that if existing_egg_info_dir is given, egg_info doesn't run
249
+ build_py.existing_egg_info_dir = egg_info_dir
250
+ build_py.run()
251
+ egg_info_run.assert_not_called()
252
+ assert build_py.data_files
253
+
254
+ # Make sure the list of outputs is actually OK
255
+ outputs = map(lambda x: x.replace(os.sep, "/"), build_py.get_outputs())
256
+ assert outputs
257
+ example = str(Path(build_py.build_lib, "mypkg/__init__.py")).replace(os.sep, "/")
258
+ assert example in outputs
259
+
260
+
261
+ EXAMPLE_ARBITRARY_MAPPING = {
262
+ "pyproject.toml": DALS(
263
+ """
264
+ [project]
265
+ name = "mypkg"
266
+ version = "42"
267
+
268
+ [tool.setuptools]
269
+ packages = ["mypkg", "mypkg.sub1", "mypkg.sub2", "mypkg.sub2.nested"]
270
+
271
+ [tool.setuptools.package-dir]
272
+ "" = "src"
273
+ "mypkg.sub2" = "src/mypkg/_sub2"
274
+ "mypkg.sub2.nested" = "other"
275
+ """
276
+ ),
277
+ "src": {
278
+ "mypkg": {
279
+ "__init__.py": "",
280
+ "resource_file.txt": "",
281
+ "sub1": {
282
+ "__init__.py": "",
283
+ "mod1.py": "",
284
+ },
285
+ "_sub2": {
286
+ "mod2.py": "",
287
+ },
288
+ },
289
+ },
290
+ "other": {
291
+ "__init__.py": "",
292
+ "mod3.py": "",
293
+ },
294
+ "MANIFEST.in": DALS(
295
+ """
296
+ global-include *.py *.txt
297
+ global-exclude *.py[cod]
298
+ """
299
+ ),
300
+ }
301
+
302
+
303
+ def test_get_outputs(tmpdir_cwd):
304
+ jaraco.path.build(EXAMPLE_ARBITRARY_MAPPING)
305
+ dist = Distribution({"script_name": "%test%"})
306
+ dist.parse_config_files()
307
+
308
+ build_py = dist.get_command_obj("build_py")
309
+ build_py.editable_mode = True
310
+ build_py.ensure_finalized()
311
+ build_lib = build_py.build_lib.replace(os.sep, "/")
312
+ outputs = {x.replace(os.sep, "/") for x in build_py.get_outputs()}
313
+ assert outputs == {
314
+ f"{build_lib}/mypkg/__init__.py",
315
+ f"{build_lib}/mypkg/resource_file.txt",
316
+ f"{build_lib}/mypkg/sub1/__init__.py",
317
+ f"{build_lib}/mypkg/sub1/mod1.py",
318
+ f"{build_lib}/mypkg/sub2/mod2.py",
319
+ f"{build_lib}/mypkg/sub2/nested/__init__.py",
320
+ f"{build_lib}/mypkg/sub2/nested/mod3.py",
321
+ }
322
+ mapping = {
323
+ k.replace(os.sep, "/"): v.replace(os.sep, "/")
324
+ for k, v in build_py.get_output_mapping().items()
325
+ }
326
+ assert mapping == {
327
+ f"{build_lib}/mypkg/__init__.py": "src/mypkg/__init__.py",
328
+ f"{build_lib}/mypkg/resource_file.txt": "src/mypkg/resource_file.txt",
329
+ f"{build_lib}/mypkg/sub1/__init__.py": "src/mypkg/sub1/__init__.py",
330
+ f"{build_lib}/mypkg/sub1/mod1.py": "src/mypkg/sub1/mod1.py",
331
+ f"{build_lib}/mypkg/sub2/mod2.py": "src/mypkg/_sub2/mod2.py",
332
+ f"{build_lib}/mypkg/sub2/nested/__init__.py": "other/__init__.py",
333
+ f"{build_lib}/mypkg/sub2/nested/mod3.py": "other/mod3.py",
334
+ }
335
+
336
+
337
+ class TestTypeInfoFiles:
338
+ PYPROJECTS = {
339
+ "default_pyproject": DALS(
340
+ """
341
+ [project]
342
+ name = "foo"
343
+ version = "1"
344
+ """
345
+ ),
346
+ "dont_include_package_data": DALS(
347
+ """
348
+ [project]
349
+ name = "foo"
350
+ version = "1"
351
+
352
+ [tool.setuptools]
353
+ include-package-data = false
354
+ """
355
+ ),
356
+ "exclude_type_info": DALS(
357
+ """
358
+ [project]
359
+ name = "foo"
360
+ version = "1"
361
+
362
+ [tool.setuptools]
363
+ include-package-data = false
364
+
365
+ [tool.setuptools.exclude-package-data]
366
+ "*" = ["py.typed", "*.pyi"]
367
+ """
368
+ ),
369
+ }
370
+
371
+ EXAMPLES = {
372
+ "simple_namespace": {
373
+ "directory_structure": {
374
+ "foo": {
375
+ "bar.pyi": "",
376
+ "py.typed": "",
377
+ "__init__.py": "",
378
+ }
379
+ },
380
+ "expected_type_files": {"foo/bar.pyi", "foo/py.typed"},
381
+ },
382
+ "nested_inside_namespace": {
383
+ "directory_structure": {
384
+ "foo": {
385
+ "bar": {
386
+ "py.typed": "",
387
+ "mod.pyi": "",
388
+ }
389
+ }
390
+ },
391
+ "expected_type_files": {"foo/bar/mod.pyi", "foo/bar/py.typed"},
392
+ },
393
+ "namespace_nested_inside_regular": {
394
+ "directory_structure": {
395
+ "foo": {
396
+ "namespace": {
397
+ "foo.pyi": "",
398
+ },
399
+ "__init__.pyi": "",
400
+ "py.typed": "",
401
+ }
402
+ },
403
+ "expected_type_files": {
404
+ "foo/namespace/foo.pyi",
405
+ "foo/__init__.pyi",
406
+ "foo/py.typed",
407
+ },
408
+ },
409
+ }
410
+
411
+ @pytest.mark.parametrize(
412
+ "pyproject",
413
+ [
414
+ "default_pyproject",
415
+ pytest.param(
416
+ "dont_include_package_data",
417
+ marks=pytest.mark.xfail(reason="pypa/setuptools#4350"),
418
+ ),
419
+ ],
420
+ )
421
+ @pytest.mark.parametrize("example", EXAMPLES.keys())
422
+ def test_type_files_included_by_default(self, tmpdir_cwd, pyproject, example):
423
+ structure = {
424
+ **self.EXAMPLES[example]["directory_structure"],
425
+ "pyproject.toml": self.PYPROJECTS[pyproject],
426
+ }
427
+ expected_type_files = self.EXAMPLES[example]["expected_type_files"]
428
+ jaraco.path.build(structure)
429
+
430
+ build_py = get_finalized_build_py()
431
+ outputs = get_outputs(build_py)
432
+ assert expected_type_files <= outputs
433
+
434
+ @pytest.mark.parametrize("pyproject", ["exclude_type_info"])
435
+ @pytest.mark.parametrize("example", EXAMPLES.keys())
436
+ def test_type_files_can_be_excluded(self, tmpdir_cwd, pyproject, example):
437
+ structure = {
438
+ **self.EXAMPLES[example]["directory_structure"],
439
+ "pyproject.toml": self.PYPROJECTS[pyproject],
440
+ }
441
+ expected_type_files = self.EXAMPLES[example]["expected_type_files"]
442
+ jaraco.path.build(structure)
443
+
444
+ build_py = get_finalized_build_py()
445
+ outputs = get_outputs(build_py)
446
+ assert expected_type_files.isdisjoint(outputs)
447
+
448
+ def test_stub_only_package(self, tmpdir_cwd):
449
+ structure = {
450
+ "pyproject.toml": DALS(
451
+ """
452
+ [project]
453
+ name = "foo-stubs"
454
+ version = "1"
455
+ """
456
+ ),
457
+ "foo-stubs": {"__init__.pyi": "", "bar.pyi": ""},
458
+ }
459
+ expected_type_files = {"foo-stubs/__init__.pyi", "foo-stubs/bar.pyi"}
460
+ jaraco.path.build(structure)
461
+
462
+ build_py = get_finalized_build_py()
463
+ outputs = get_outputs(build_py)
464
+ assert expected_type_files <= outputs
465
+
466
+
467
+ def get_finalized_build_py(script_name="%build_py-test%"):
468
+ dist = Distribution({"script_name": script_name})
469
+ dist.parse_config_files()
470
+ build_py = dist.get_command_obj("build_py")
471
+ build_py.finalize_options()
472
+ return build_py
473
+
474
+
475
+ def get_outputs(build_py):
476
+ build_dir = Path(build_py.build_lib)
477
+ return {
478
+ os.path.relpath(x, build_dir).replace(os.sep, "/")
479
+ for x in build_py.get_outputs()
480
+ }