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,33 @@
1
+ from setuptools import Command
2
+ from setuptools.command.build import build
3
+ from setuptools.dist import Distribution
4
+
5
+
6
+ def test_distribution_gives_setuptools_build_obj(tmpdir_cwd):
7
+ """
8
+ Check that the setuptools Distribution uses the
9
+ setuptools specific build object.
10
+ """
11
+
12
+ dist = Distribution(
13
+ dict(
14
+ script_name='setup.py',
15
+ script_args=['build'],
16
+ packages=[],
17
+ package_data={'': ['path/*']},
18
+ )
19
+ )
20
+ assert isinstance(dist.get_command_obj("build"), build)
21
+
22
+
23
+ class Subcommand(Command):
24
+ """Dummy command to be used in tests"""
25
+
26
+ def initialize_options(self):
27
+ pass
28
+
29
+ def finalize_options(self):
30
+ pass
31
+
32
+ def run(self):
33
+ raise NotImplementedError("just to check if the command runs")
@@ -0,0 +1,84 @@
1
+ import random
2
+ from unittest import mock
3
+
4
+ import pytest
5
+
6
+ from setuptools.command.build_clib import build_clib
7
+ from setuptools.dist import Distribution
8
+
9
+ from distutils.errors import DistutilsSetupError
10
+
11
+
12
+ class TestBuildCLib:
13
+ @mock.patch('setuptools.command.build_clib.newer_pairwise_group')
14
+ def test_build_libraries(self, mock_newer):
15
+ dist = Distribution()
16
+ cmd = build_clib(dist)
17
+
18
+ # this will be a long section, just making sure all
19
+ # exceptions are properly raised
20
+ libs = [('example', {'sources': 'broken.c'})]
21
+ with pytest.raises(DistutilsSetupError):
22
+ cmd.build_libraries(libs)
23
+
24
+ obj_deps = 'some_string'
25
+ libs = [('example', {'sources': ['source.c'], 'obj_deps': obj_deps})]
26
+ with pytest.raises(DistutilsSetupError):
27
+ cmd.build_libraries(libs)
28
+
29
+ obj_deps = {'': ''}
30
+ libs = [('example', {'sources': ['source.c'], 'obj_deps': obj_deps})]
31
+ with pytest.raises(DistutilsSetupError):
32
+ cmd.build_libraries(libs)
33
+
34
+ obj_deps = {'source.c': ''}
35
+ libs = [('example', {'sources': ['source.c'], 'obj_deps': obj_deps})]
36
+ with pytest.raises(DistutilsSetupError):
37
+ cmd.build_libraries(libs)
38
+
39
+ # with that out of the way, let's see if the crude dependency
40
+ # system works
41
+ cmd.compiler = mock.MagicMock(spec=cmd.compiler)
42
+ mock_newer.return_value = ([], [])
43
+
44
+ obj_deps = {'': ('global.h',), 'example.c': ('example.h',)}
45
+ libs = [('example', {'sources': ['example.c'], 'obj_deps': obj_deps})]
46
+
47
+ cmd.build_libraries(libs)
48
+ assert [['example.c', 'global.h', 'example.h']] in mock_newer.call_args[0]
49
+ assert not cmd.compiler.compile.called
50
+ assert cmd.compiler.create_static_lib.call_count == 1
51
+
52
+ # reset the call numbers so we can test again
53
+ cmd.compiler.reset_mock()
54
+
55
+ mock_newer.return_value = '' # anything as long as it's not ([],[])
56
+ cmd.build_libraries(libs)
57
+ assert cmd.compiler.compile.call_count == 1
58
+ assert cmd.compiler.create_static_lib.call_count == 1
59
+
60
+ @mock.patch('setuptools.command.build_clib.newer_pairwise_group')
61
+ def test_build_libraries_reproducible(self, mock_newer):
62
+ dist = Distribution()
63
+ cmd = build_clib(dist)
64
+
65
+ # with that out of the way, let's see if the crude dependency
66
+ # system works
67
+ cmd.compiler = mock.MagicMock(spec=cmd.compiler)
68
+ mock_newer.return_value = ([], [])
69
+
70
+ original_sources = ['a-example.c', 'example.c']
71
+ sources = original_sources
72
+
73
+ obj_deps = {'': ('global.h',), 'example.c': ('example.h',)}
74
+ libs = [('example', {'sources': sources, 'obj_deps': obj_deps})]
75
+
76
+ cmd.build_libraries(libs)
77
+ computed_call_args = mock_newer.call_args[0]
78
+
79
+ while sources == original_sources:
80
+ sources = random.sample(original_sources, len(original_sources))
81
+ libs = [('example', {'sources': sources, 'obj_deps': obj_deps})]
82
+
83
+ cmd.build_libraries(libs)
84
+ assert computed_call_args == mock_newer.call_args[0]
@@ -0,0 +1,293 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ import sys
5
+ from importlib.util import cache_from_source as _compiled_file_name
6
+
7
+ import pytest
8
+ from jaraco import path
9
+
10
+ from setuptools.command.build_ext import build_ext, get_abi3_suffix
11
+ from setuptools.dist import Distribution
12
+ from setuptools.errors import CompileError
13
+ from setuptools.extension import Extension
14
+
15
+ from . import environment
16
+ from .textwrap import DALS
17
+
18
+ import distutils.command.build_ext as orig
19
+ from distutils.sysconfig import get_config_var
20
+
21
+ IS_PYPY = '__pypy__' in sys.builtin_module_names
22
+
23
+
24
+ class TestBuildExt:
25
+ def test_get_ext_filename(self):
26
+ """
27
+ Setuptools needs to give back the same
28
+ result as distutils, even if the fullname
29
+ is not in ext_map.
30
+ """
31
+ dist = Distribution()
32
+ cmd = build_ext(dist)
33
+ cmd.ext_map['foo/bar'] = ''
34
+ res = cmd.get_ext_filename('foo')
35
+ wanted = orig.build_ext.get_ext_filename(cmd, 'foo')
36
+ assert res == wanted
37
+
38
+ def test_abi3_filename(self):
39
+ """
40
+ Filename needs to be loadable by several versions
41
+ of Python 3 if 'is_abi3' is truthy on Extension()
42
+ """
43
+ print(get_abi3_suffix())
44
+
45
+ extension = Extension('spam.eggs', ['eggs.c'], py_limited_api=True)
46
+ dist = Distribution(dict(ext_modules=[extension]))
47
+ cmd = build_ext(dist)
48
+ cmd.finalize_options()
49
+ assert 'spam.eggs' in cmd.ext_map
50
+ res = cmd.get_ext_filename('spam.eggs')
51
+
52
+ if not get_abi3_suffix():
53
+ assert res.endswith(get_config_var('EXT_SUFFIX'))
54
+ elif sys.platform == 'win32':
55
+ assert res.endswith('eggs.pyd')
56
+ else:
57
+ assert 'abi3' in res
58
+
59
+ def test_ext_suffix_override(self):
60
+ """
61
+ SETUPTOOLS_EXT_SUFFIX variable always overrides
62
+ default extension options.
63
+ """
64
+ dist = Distribution()
65
+ cmd = build_ext(dist)
66
+ cmd.ext_map['for_abi3'] = ext = Extension(
67
+ 'for_abi3',
68
+ ['s.c'],
69
+ # Override shouldn't affect abi3 modules
70
+ py_limited_api=True,
71
+ )
72
+ # Mock value needed to pass tests
73
+ ext._links_to_dynamic = False
74
+
75
+ if not IS_PYPY:
76
+ expect = cmd.get_ext_filename('for_abi3')
77
+ else:
78
+ # PyPy builds do not use ABI3 tag, so they will
79
+ # also get the overridden suffix.
80
+ expect = 'for_abi3.test-suffix'
81
+
82
+ try:
83
+ os.environ['SETUPTOOLS_EXT_SUFFIX'] = '.test-suffix'
84
+ res = cmd.get_ext_filename('normal')
85
+ assert 'normal.test-suffix' == res
86
+ res = cmd.get_ext_filename('for_abi3')
87
+ assert expect == res
88
+ finally:
89
+ del os.environ['SETUPTOOLS_EXT_SUFFIX']
90
+
91
+ def dist_with_example(self):
92
+ files = {
93
+ "src": {"mypkg": {"subpkg": {"ext2.c": ""}}},
94
+ "c-extensions": {"ext1": {"main.c": ""}},
95
+ }
96
+
97
+ ext1 = Extension("mypkg.ext1", ["c-extensions/ext1/main.c"])
98
+ ext2 = Extension("mypkg.subpkg.ext2", ["src/mypkg/subpkg/ext2.c"])
99
+ ext3 = Extension("ext3", ["c-extension/ext3.c"])
100
+
101
+ path.build(files)
102
+ return Distribution({
103
+ "script_name": "%test%",
104
+ "ext_modules": [ext1, ext2, ext3],
105
+ "package_dir": {"": "src"},
106
+ })
107
+
108
+ def test_get_outputs(self, tmpdir_cwd, monkeypatch):
109
+ monkeypatch.setenv('SETUPTOOLS_EXT_SUFFIX', '.mp3') # make test OS-independent
110
+ monkeypatch.setattr('setuptools.command.build_ext.use_stubs', False)
111
+ dist = self.dist_with_example()
112
+
113
+ # Regular build: get_outputs not empty, but get_output_mappings is empty
114
+ build_ext = dist.get_command_obj("build_ext")
115
+ build_ext.editable_mode = False
116
+ build_ext.ensure_finalized()
117
+ build_lib = build_ext.build_lib.replace(os.sep, "/")
118
+ outputs = [x.replace(os.sep, "/") for x in build_ext.get_outputs()]
119
+ assert outputs == [
120
+ f"{build_lib}/ext3.mp3",
121
+ f"{build_lib}/mypkg/ext1.mp3",
122
+ f"{build_lib}/mypkg/subpkg/ext2.mp3",
123
+ ]
124
+ assert build_ext.get_output_mapping() == {}
125
+
126
+ # Editable build: get_output_mappings should contain everything in get_outputs
127
+ dist.reinitialize_command("build_ext")
128
+ build_ext.editable_mode = True
129
+ build_ext.ensure_finalized()
130
+ mapping = {
131
+ k.replace(os.sep, "/"): v.replace(os.sep, "/")
132
+ for k, v in build_ext.get_output_mapping().items()
133
+ }
134
+ assert mapping == {
135
+ f"{build_lib}/ext3.mp3": "src/ext3.mp3",
136
+ f"{build_lib}/mypkg/ext1.mp3": "src/mypkg/ext1.mp3",
137
+ f"{build_lib}/mypkg/subpkg/ext2.mp3": "src/mypkg/subpkg/ext2.mp3",
138
+ }
139
+
140
+ def test_get_output_mapping_with_stub(self, tmpdir_cwd, monkeypatch):
141
+ monkeypatch.setenv('SETUPTOOLS_EXT_SUFFIX', '.mp3') # make test OS-independent
142
+ monkeypatch.setattr('setuptools.command.build_ext.use_stubs', True)
143
+ dist = self.dist_with_example()
144
+
145
+ # Editable build should create compiled stubs (.pyc files only, no .py)
146
+ build_ext = dist.get_command_obj("build_ext")
147
+ build_ext.editable_mode = True
148
+ build_ext.ensure_finalized()
149
+ for ext in build_ext.extensions:
150
+ monkeypatch.setattr(ext, "_needs_stub", True)
151
+
152
+ build_lib = build_ext.build_lib.replace(os.sep, "/")
153
+ mapping = {
154
+ k.replace(os.sep, "/"): v.replace(os.sep, "/")
155
+ for k, v in build_ext.get_output_mapping().items()
156
+ }
157
+
158
+ def C(file):
159
+ """Make it possible to do comparisons and tests in a OS-independent way"""
160
+ return _compiled_file_name(file).replace(os.sep, "/")
161
+
162
+ assert mapping == {
163
+ C(f"{build_lib}/ext3.py"): C("src/ext3.py"),
164
+ f"{build_lib}/ext3.mp3": "src/ext3.mp3",
165
+ C(f"{build_lib}/mypkg/ext1.py"): C("src/mypkg/ext1.py"),
166
+ f"{build_lib}/mypkg/ext1.mp3": "src/mypkg/ext1.mp3",
167
+ C(f"{build_lib}/mypkg/subpkg/ext2.py"): C("src/mypkg/subpkg/ext2.py"),
168
+ f"{build_lib}/mypkg/subpkg/ext2.mp3": "src/mypkg/subpkg/ext2.mp3",
169
+ }
170
+
171
+ # Ensure only the compiled stubs are present not the raw .py stub
172
+ assert f"{build_lib}/mypkg/ext1.py" not in mapping
173
+ assert f"{build_lib}/mypkg/subpkg/ext2.py" not in mapping
174
+
175
+ # Visualize what the cached stub files look like
176
+ example_stub = C(f"{build_lib}/mypkg/ext1.py")
177
+ assert example_stub in mapping
178
+ assert example_stub.startswith(f"{build_lib}/mypkg/__pycache__/ext1")
179
+ assert example_stub.endswith(".pyc")
180
+
181
+
182
+ class TestBuildExtInplace:
183
+ def get_build_ext_cmd(self, optional: bool, **opts) -> build_ext:
184
+ files: dict[str, str | dict[str, dict[str, str]]] = {
185
+ "eggs.c": "#include missingheader.h\n",
186
+ ".build": {"lib": {}, "tmp": {}},
187
+ }
188
+ path.build(files)
189
+ extension = Extension('spam.eggs', ['eggs.c'], optional=optional)
190
+ dist = Distribution(dict(ext_modules=[extension]))
191
+ dist.script_name = 'setup.py'
192
+ cmd = build_ext(dist)
193
+ vars(cmd).update(build_lib=".build/lib", build_temp=".build/tmp", **opts)
194
+ cmd.ensure_finalized()
195
+ return cmd
196
+
197
+ def get_log_messages(self, caplog, capsys):
198
+ """
199
+ Historically, distutils "logged" by printing to sys.std*.
200
+ Later versions adopted the logging framework. Grab
201
+ messages regardless of how they were captured.
202
+ """
203
+ std = capsys.readouterr()
204
+ return std.out.splitlines() + std.err.splitlines() + caplog.messages
205
+
206
+ def test_optional(self, tmpdir_cwd, caplog, capsys):
207
+ """
208
+ If optional extensions fail to build, setuptools should show the error
209
+ in the logs but not fail to build
210
+ """
211
+ cmd = self.get_build_ext_cmd(optional=True, inplace=True)
212
+ cmd.run()
213
+ assert any(
214
+ 'build_ext: building extension "spam.eggs" failed'
215
+ for msg in self.get_log_messages(caplog, capsys)
216
+ )
217
+ # No compile error exception should be raised
218
+
219
+ def test_non_optional(self, tmpdir_cwd):
220
+ # Non-optional extensions should raise an exception
221
+ cmd = self.get_build_ext_cmd(optional=False, inplace=True)
222
+ with pytest.raises(CompileError):
223
+ cmd.run()
224
+
225
+
226
+ def test_build_ext_config_handling(tmpdir_cwd):
227
+ files = {
228
+ 'setup.py': DALS(
229
+ """
230
+ from setuptools import Extension, setup
231
+ setup(
232
+ name='foo',
233
+ version='0.0.0',
234
+ ext_modules=[Extension('foo', ['foo.c'])],
235
+ )
236
+ """
237
+ ),
238
+ 'foo.c': DALS(
239
+ """
240
+ #include "Python.h"
241
+
242
+ #if PY_MAJOR_VERSION >= 3
243
+
244
+ static struct PyModuleDef moduledef = {
245
+ PyModuleDef_HEAD_INIT,
246
+ "foo",
247
+ NULL,
248
+ 0,
249
+ NULL,
250
+ NULL,
251
+ NULL,
252
+ NULL,
253
+ NULL
254
+ };
255
+
256
+ #define INITERROR return NULL
257
+
258
+ PyMODINIT_FUNC PyInit_foo(void)
259
+
260
+ #else
261
+
262
+ #define INITERROR return
263
+
264
+ void initfoo(void)
265
+
266
+ #endif
267
+ {
268
+ #if PY_MAJOR_VERSION >= 3
269
+ PyObject *module = PyModule_Create(&moduledef);
270
+ #else
271
+ PyObject *module = Py_InitModule("extension", NULL);
272
+ #endif
273
+ if (module == NULL)
274
+ INITERROR;
275
+ #if PY_MAJOR_VERSION >= 3
276
+ return module;
277
+ #endif
278
+ }
279
+ """
280
+ ),
281
+ 'setup.cfg': DALS(
282
+ """
283
+ [build]
284
+ build_base = foo_build
285
+ """
286
+ ),
287
+ }
288
+ path.build(files)
289
+ code, (stdout, stderr) = environment.run_setup_py(
290
+ cmd=['build'],
291
+ data_stream=(0, 2),
292
+ )
293
+ assert code == 0, f'\nSTDOUT:\n{stdout}\nSTDERR:\n{stderr}'