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,470 @@
1
+ from __future__ import annotations
2
+
3
+ import itertools
4
+ import os
5
+ import sys
6
+ import textwrap
7
+ from collections.abc import Iterator
8
+ from importlib.machinery import EXTENSION_SUFFIXES
9
+ from importlib.util import cache_from_source as _compiled_file_name
10
+ from pathlib import Path
11
+ from typing import TYPE_CHECKING
12
+
13
+ from setuptools.dist import Distribution
14
+ from setuptools.errors import BaseError
15
+ from setuptools.extension import Extension, Library
16
+
17
+ from distutils import log
18
+ from distutils.ccompiler import new_compiler
19
+ from distutils.sysconfig import customize_compiler, get_config_var
20
+
21
+ if TYPE_CHECKING:
22
+ # Cython not installed on CI tests, causing _build_ext to be `Any`
23
+ from distutils.command.build_ext import build_ext as _build_ext
24
+ else:
25
+ try:
26
+ # Attempt to use Cython for building extensions, if available
27
+ from Cython.Distutils.build_ext import build_ext as _build_ext
28
+
29
+ # Additionally, assert that the compiler module will load
30
+ # also. Ref #1229.
31
+ __import__('Cython.Compiler.Main')
32
+ except ImportError:
33
+ from distutils.command.build_ext import build_ext as _build_ext
34
+
35
+ # make sure _config_vars is initialized
36
+ get_config_var("LDSHARED")
37
+ # Not publicly exposed in typeshed distutils stubs, but this is done on purpose
38
+ # See https://github.com/pypa/setuptools/pull/4228#issuecomment-1959856400
39
+ from distutils.sysconfig import _config_vars as _CONFIG_VARS # noqa: E402
40
+
41
+
42
+ def _customize_compiler_for_shlib(compiler):
43
+ if sys.platform == "darwin":
44
+ # building .dylib requires additional compiler flags on OSX; here we
45
+ # temporarily substitute the pyconfig.h variables so that distutils'
46
+ # 'customize_compiler' uses them before we build the shared libraries.
47
+ tmp = _CONFIG_VARS.copy()
48
+ try:
49
+ # XXX Help! I don't have any idea whether these are right...
50
+ _CONFIG_VARS['LDSHARED'] = (
51
+ "gcc -Wl,-x -dynamiclib -undefined dynamic_lookup"
52
+ )
53
+ _CONFIG_VARS['CCSHARED'] = " -dynamiclib"
54
+ _CONFIG_VARS['SO'] = ".dylib"
55
+ customize_compiler(compiler)
56
+ finally:
57
+ _CONFIG_VARS.clear()
58
+ _CONFIG_VARS.update(tmp)
59
+ else:
60
+ customize_compiler(compiler)
61
+
62
+
63
+ have_rtld = False
64
+ use_stubs = False
65
+ libtype = 'shared'
66
+
67
+ if sys.platform == "darwin":
68
+ use_stubs = True
69
+ elif os.name != 'nt':
70
+ try:
71
+ import dl # type: ignore[import-not-found] # https://github.com/python/mypy/issues/13002
72
+
73
+ use_stubs = have_rtld = hasattr(dl, 'RTLD_NOW')
74
+ except ImportError:
75
+ pass
76
+
77
+
78
+ def get_abi3_suffix():
79
+ """Return the file extension for an abi3-compliant Extension()"""
80
+ for suffix in EXTENSION_SUFFIXES:
81
+ if '.abi3' in suffix: # Unix
82
+ return suffix
83
+ elif suffix == '.pyd': # Windows
84
+ return suffix
85
+ return None
86
+
87
+
88
+ class build_ext(_build_ext):
89
+ distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution
90
+ editable_mode = False
91
+ inplace = False
92
+
93
+ def run(self):
94
+ """Build extensions in build directory, then copy if --inplace"""
95
+ old_inplace, self.inplace = self.inplace, False
96
+ _build_ext.run(self)
97
+ self.inplace = old_inplace
98
+ if old_inplace:
99
+ self.copy_extensions_to_source()
100
+
101
+ def _get_inplace_equivalent(self, build_py, ext: Extension) -> tuple[str, str]:
102
+ fullname = self.get_ext_fullname(ext.name)
103
+ filename = self.get_ext_filename(fullname)
104
+ modpath = fullname.split('.')
105
+ package = '.'.join(modpath[:-1])
106
+ package_dir = build_py.get_package_dir(package)
107
+ inplace_file = os.path.join(package_dir, os.path.basename(filename))
108
+ regular_file = os.path.join(self.build_lib, filename)
109
+ return (inplace_file, regular_file)
110
+
111
+ def copy_extensions_to_source(self) -> None:
112
+ build_py = self.get_finalized_command('build_py')
113
+ for ext in self.extensions:
114
+ inplace_file, regular_file = self._get_inplace_equivalent(build_py, ext)
115
+
116
+ # Always copy, even if source is older than destination, to ensure
117
+ # that the right extensions for the current Python/platform are
118
+ # used.
119
+ if os.path.exists(regular_file) or not ext.optional:
120
+ self.copy_file(regular_file, inplace_file, level=self.verbose)
121
+
122
+ if ext._needs_stub:
123
+ inplace_stub = self._get_equivalent_stub(ext, inplace_file)
124
+ self._write_stub_file(inplace_stub, ext, compile=True)
125
+ # Always compile stub and remove the original (leave the cache behind)
126
+ # (this behaviour was observed in previous iterations of the code)
127
+
128
+ def _get_equivalent_stub(self, ext: Extension, output_file: str) -> str:
129
+ dir_ = os.path.dirname(output_file)
130
+ _, _, name = ext.name.rpartition(".")
131
+ return f"{os.path.join(dir_, name)}.py"
132
+
133
+ def _get_output_mapping(self) -> Iterator[tuple[str, str]]:
134
+ if not self.inplace:
135
+ return
136
+
137
+ build_py = self.get_finalized_command('build_py')
138
+ opt = self.get_finalized_command('install_lib').optimize or ""
139
+
140
+ for ext in self.extensions:
141
+ inplace_file, regular_file = self._get_inplace_equivalent(build_py, ext)
142
+ yield (regular_file, inplace_file)
143
+
144
+ if ext._needs_stub:
145
+ # This version of `build_ext` always builds artifacts in another dir,
146
+ # when "inplace=True" is given it just copies them back.
147
+ # This is done in the `copy_extensions_to_source` function, which
148
+ # always compile stub files via `_compile_and_remove_stub`.
149
+ # At the end of the process, a `.pyc` stub file is created without the
150
+ # corresponding `.py`.
151
+
152
+ inplace_stub = self._get_equivalent_stub(ext, inplace_file)
153
+ regular_stub = self._get_equivalent_stub(ext, regular_file)
154
+ inplace_cache = _compiled_file_name(inplace_stub, optimization=opt)
155
+ output_cache = _compiled_file_name(regular_stub, optimization=opt)
156
+ yield (output_cache, inplace_cache)
157
+
158
+ def get_ext_filename(self, fullname: str) -> str:
159
+ so_ext = os.getenv('SETUPTOOLS_EXT_SUFFIX')
160
+ if so_ext:
161
+ filename = os.path.join(*fullname.split('.')) + so_ext
162
+ else:
163
+ filename = _build_ext.get_ext_filename(self, fullname)
164
+ ext_suffix = get_config_var('EXT_SUFFIX')
165
+ if not isinstance(ext_suffix, str):
166
+ raise OSError(
167
+ "Configuration variable EXT_SUFFIX not found for this platform "
168
+ "and environment variable SETUPTOOLS_EXT_SUFFIX is missing"
169
+ )
170
+ so_ext = ext_suffix
171
+
172
+ if fullname in self.ext_map:
173
+ ext = self.ext_map[fullname]
174
+ abi3_suffix = get_abi3_suffix()
175
+ if ext.py_limited_api and abi3_suffix: # Use abi3
176
+ filename = filename[: -len(so_ext)] + abi3_suffix
177
+ if isinstance(ext, Library):
178
+ fn, ext = os.path.splitext(filename)
179
+ return self.shlib_compiler.library_filename(fn, libtype)
180
+ elif use_stubs and ext._links_to_dynamic:
181
+ d, fn = os.path.split(filename)
182
+ return os.path.join(d, 'dl-' + fn)
183
+ return filename
184
+
185
+ def initialize_options(self):
186
+ _build_ext.initialize_options(self)
187
+ self.shlib_compiler = None
188
+ self.shlibs = []
189
+ self.ext_map = {}
190
+ self.editable_mode = False
191
+
192
+ def finalize_options(self) -> None:
193
+ _build_ext.finalize_options(self)
194
+ self.extensions = self.extensions or []
195
+ self.check_extensions_list(self.extensions)
196
+ self.shlibs = [ext for ext in self.extensions if isinstance(ext, Library)]
197
+ if self.shlibs:
198
+ self.setup_shlib_compiler()
199
+ for ext in self.extensions:
200
+ ext._full_name = self.get_ext_fullname(ext.name)
201
+ for ext in self.extensions:
202
+ fullname = ext._full_name
203
+ self.ext_map[fullname] = ext
204
+
205
+ # distutils 3.1 will also ask for module names
206
+ # XXX what to do with conflicts?
207
+ self.ext_map[fullname.split('.')[-1]] = ext
208
+
209
+ ltd = self.shlibs and self.links_to_dynamic(ext) or False
210
+ ns = ltd and use_stubs and not isinstance(ext, Library)
211
+ ext._links_to_dynamic = ltd
212
+ ext._needs_stub = ns
213
+ filename = ext._file_name = self.get_ext_filename(fullname)
214
+ libdir = os.path.dirname(os.path.join(self.build_lib, filename))
215
+ if ltd and libdir not in ext.library_dirs:
216
+ ext.library_dirs.append(libdir)
217
+ if ltd and use_stubs and os.curdir not in ext.runtime_library_dirs:
218
+ ext.runtime_library_dirs.append(os.curdir)
219
+
220
+ if self.editable_mode:
221
+ self.inplace = True
222
+
223
+ def setup_shlib_compiler(self):
224
+ compiler = self.shlib_compiler = new_compiler(
225
+ compiler=self.compiler, dry_run=self.dry_run, force=self.force
226
+ )
227
+ _customize_compiler_for_shlib(compiler)
228
+
229
+ if self.include_dirs is not None:
230
+ compiler.set_include_dirs(self.include_dirs)
231
+ if self.define is not None:
232
+ # 'define' option is a list of (name,value) tuples
233
+ for name, value in self.define:
234
+ compiler.define_macro(name, value)
235
+ if self.undef is not None:
236
+ for macro in self.undef:
237
+ compiler.undefine_macro(macro)
238
+ if self.libraries is not None:
239
+ compiler.set_libraries(self.libraries)
240
+ if self.library_dirs is not None:
241
+ compiler.set_library_dirs(self.library_dirs)
242
+ if self.rpath is not None:
243
+ compiler.set_runtime_library_dirs(self.rpath)
244
+ if self.link_objects is not None:
245
+ compiler.set_link_objects(self.link_objects)
246
+
247
+ # hack so distutils' build_extension() builds a library instead
248
+ compiler.link_shared_object = link_shared_object.__get__(compiler) # type: ignore[method-assign]
249
+
250
+ def get_export_symbols(self, ext):
251
+ if isinstance(ext, Library):
252
+ return ext.export_symbols
253
+ return _build_ext.get_export_symbols(self, ext)
254
+
255
+ def build_extension(self, ext) -> None:
256
+ ext._convert_pyx_sources_to_lang()
257
+ _compiler = self.compiler
258
+ try:
259
+ if isinstance(ext, Library):
260
+ self.compiler = self.shlib_compiler
261
+ _build_ext.build_extension(self, ext)
262
+ if ext._needs_stub:
263
+ build_lib = self.get_finalized_command('build_py').build_lib
264
+ self.write_stub(build_lib, ext)
265
+ finally:
266
+ self.compiler = _compiler
267
+
268
+ def links_to_dynamic(self, ext):
269
+ """Return true if 'ext' links to a dynamic lib in the same package"""
270
+ # XXX this should check to ensure the lib is actually being built
271
+ # XXX as dynamic, and not just using a locally-found version or a
272
+ # XXX static-compiled version
273
+ libnames = dict.fromkeys([lib._full_name for lib in self.shlibs])
274
+ pkg = '.'.join(ext._full_name.split('.')[:-1] + [''])
275
+ return any(pkg + libname in libnames for libname in ext.libraries)
276
+
277
+ def get_source_files(self) -> list[str]:
278
+ return [*_build_ext.get_source_files(self), *self._get_internal_depends()]
279
+
280
+ def _get_internal_depends(self) -> Iterator[str]:
281
+ """Yield ``ext.depends`` that are contained by the project directory"""
282
+ project_root = Path(self.distribution.src_root or os.curdir).resolve()
283
+ depends = (dep for ext in self.extensions for dep in ext.depends)
284
+
285
+ def skip(orig_path: str, reason: str) -> None:
286
+ log.info(
287
+ "dependency %s won't be automatically "
288
+ "included in the manifest: the path %s",
289
+ orig_path,
290
+ reason,
291
+ )
292
+
293
+ for dep in depends:
294
+ path = Path(dep)
295
+
296
+ if path.is_absolute():
297
+ skip(dep, "must be relative")
298
+ continue
299
+
300
+ if ".." in path.parts:
301
+ skip(dep, "can't have `..` segments")
302
+ continue
303
+
304
+ try:
305
+ resolved = (project_root / path).resolve(strict=True)
306
+ except OSError:
307
+ skip(dep, "doesn't exist")
308
+ continue
309
+
310
+ try:
311
+ resolved.relative_to(project_root)
312
+ except ValueError:
313
+ skip(dep, "must be inside the project root")
314
+ continue
315
+
316
+ yield path.as_posix()
317
+
318
+ def get_outputs(self) -> list[str]:
319
+ if self.inplace:
320
+ return list(self.get_output_mapping().keys())
321
+ return sorted(_build_ext.get_outputs(self) + self.__get_stubs_outputs())
322
+
323
+ def get_output_mapping(self) -> dict[str, str]:
324
+ """See :class:`setuptools.commands.build.SubCommand`"""
325
+ mapping = self._get_output_mapping()
326
+ return dict(sorted(mapping, key=lambda x: x[0]))
327
+
328
+ def __get_stubs_outputs(self):
329
+ # assemble the base name for each extension that needs a stub
330
+ ns_ext_bases = (
331
+ os.path.join(self.build_lib, *ext._full_name.split('.'))
332
+ for ext in self.extensions
333
+ if ext._needs_stub
334
+ )
335
+ # pair each base with the extension
336
+ pairs = itertools.product(ns_ext_bases, self.__get_output_extensions())
337
+ return list(base + fnext for base, fnext in pairs)
338
+
339
+ def __get_output_extensions(self):
340
+ yield '.py'
341
+ yield '.pyc'
342
+ if self.get_finalized_command('build_py').optimize:
343
+ yield '.pyo'
344
+
345
+ def write_stub(self, output_dir, ext, compile=False) -> None:
346
+ stub_file = os.path.join(output_dir, *ext._full_name.split('.')) + '.py'
347
+ self._write_stub_file(stub_file, ext, compile)
348
+
349
+ def _write_stub_file(self, stub_file: str, ext: Extension, compile=False):
350
+ log.info("writing stub loader for %s to %s", ext._full_name, stub_file)
351
+ if compile and os.path.exists(stub_file):
352
+ raise BaseError(stub_file + " already exists! Please delete.")
353
+ if not self.dry_run:
354
+ with open(stub_file, 'w', encoding="utf-8") as f:
355
+ content = (
356
+ textwrap.dedent(f"""
357
+ def __bootstrap__():
358
+ global __bootstrap__, __file__, __loader__
359
+ import sys, os, importlib.resources as irs, importlib.util
360
+ #rtld import dl
361
+ with irs.files(__name__).joinpath(
362
+ {os.path.basename(ext._file_name)!r}) as __file__:
363
+ del __bootstrap__
364
+ if '__loader__' in globals():
365
+ del __loader__
366
+ #rtld old_flags = sys.getdlopenflags()
367
+ old_dir = os.getcwd()
368
+ try:
369
+ os.chdir(os.path.dirname(__file__))
370
+ #rtld sys.setdlopenflags(dl.RTLD_NOW)
371
+ spec = importlib.util.spec_from_file_location(
372
+ __name__, __file__)
373
+ mod = importlib.util.module_from_spec(spec)
374
+ spec.loader.exec_module(mod)
375
+ finally:
376
+ #rtld sys.setdlopenflags(old_flags)
377
+ os.chdir(old_dir)
378
+ __bootstrap__()
379
+ """)
380
+ .lstrip()
381
+ .replace('#rtld', '#rtld' * (not have_rtld))
382
+ )
383
+ f.write(content)
384
+ if compile:
385
+ self._compile_and_remove_stub(stub_file)
386
+
387
+ def _compile_and_remove_stub(self, stub_file: str):
388
+ from distutils.util import byte_compile
389
+
390
+ byte_compile([stub_file], optimize=0, force=True, dry_run=self.dry_run)
391
+ optimize = self.get_finalized_command('install_lib').optimize
392
+ if optimize > 0:
393
+ byte_compile(
394
+ [stub_file],
395
+ optimize=optimize,
396
+ force=True,
397
+ dry_run=self.dry_run,
398
+ )
399
+ if os.path.exists(stub_file) and not self.dry_run:
400
+ os.unlink(stub_file)
401
+
402
+
403
+ if use_stubs or os.name == 'nt':
404
+ # Build shared libraries
405
+ #
406
+ def link_shared_object(
407
+ self,
408
+ objects,
409
+ output_libname,
410
+ output_dir=None,
411
+ libraries=None,
412
+ library_dirs=None,
413
+ runtime_library_dirs=None,
414
+ export_symbols=None,
415
+ debug: bool = False,
416
+ extra_preargs=None,
417
+ extra_postargs=None,
418
+ build_temp=None,
419
+ target_lang=None,
420
+ ) -> None:
421
+ self.link(
422
+ self.SHARED_LIBRARY,
423
+ objects,
424
+ output_libname,
425
+ output_dir,
426
+ libraries,
427
+ library_dirs,
428
+ runtime_library_dirs,
429
+ export_symbols,
430
+ debug,
431
+ extra_preargs,
432
+ extra_postargs,
433
+ build_temp,
434
+ target_lang,
435
+ )
436
+
437
+ else:
438
+ # Build static libraries everywhere else
439
+ libtype = 'static'
440
+
441
+ def link_shared_object(
442
+ self,
443
+ objects,
444
+ output_libname,
445
+ output_dir=None,
446
+ libraries=None,
447
+ library_dirs=None,
448
+ runtime_library_dirs=None,
449
+ export_symbols=None,
450
+ debug: bool = False,
451
+ extra_preargs=None,
452
+ extra_postargs=None,
453
+ build_temp=None,
454
+ target_lang=None,
455
+ ) -> None:
456
+ # XXX we need to either disallow these attrs on Library instances,
457
+ # or warn/abort here if set, or something...
458
+ # libraries=None, library_dirs=None, runtime_library_dirs=None,
459
+ # export_symbols=None, extra_preargs=None, extra_postargs=None,
460
+ # build_temp=None
461
+
462
+ assert output_dir is None # distutils build_ext doesn't pass this
463
+ output_dir, filename = os.path.split(output_libname)
464
+ basename, _ext = os.path.splitext(filename)
465
+ if self.library_filename("x").startswith('lib'):
466
+ # strip 'lib' prefix; this is kludgy if some platform uses
467
+ # a different prefix
468
+ basename = basename[3:]
469
+
470
+ self.create_static_lib(objects, basename, output_dir, debug, target_lang)