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,348 @@
1
+ #
2
+ # distutils/version.py
3
+ #
4
+ # Implements multiple version numbering conventions for the
5
+ # Python Module Distribution Utilities.
6
+ #
7
+ # $Id$
8
+ #
9
+
10
+ """Provides classes to represent module version numbers (one class for
11
+ each style of version numbering). There are currently two such classes
12
+ implemented: StrictVersion and LooseVersion.
13
+
14
+ Every version number class implements the following interface:
15
+ * the 'parse' method takes a string and parses it to some internal
16
+ representation; if the string is an invalid version number,
17
+ 'parse' raises a ValueError exception
18
+ * the class constructor takes an optional string argument which,
19
+ if supplied, is passed to 'parse'
20
+ * __str__ reconstructs the string that was passed to 'parse' (or
21
+ an equivalent string -- ie. one that will generate an equivalent
22
+ version number instance)
23
+ * __repr__ generates Python code to recreate the version number instance
24
+ * _cmp compares the current instance with either another instance
25
+ of the same class or a string (which will be parsed to an instance
26
+ of the same class, thus must follow the same rules)
27
+ """
28
+
29
+ import contextlib
30
+ import re
31
+ import warnings
32
+
33
+
34
+ @contextlib.contextmanager
35
+ def suppress_known_deprecation():
36
+ with warnings.catch_warnings(record=True) as ctx:
37
+ warnings.filterwarnings(
38
+ action='default',
39
+ category=DeprecationWarning,
40
+ message="distutils Version classes are deprecated.",
41
+ )
42
+ yield ctx
43
+
44
+
45
+ class Version:
46
+ """Abstract base class for version numbering classes. Just provides
47
+ constructor (__init__) and reproducer (__repr__), because those
48
+ seem to be the same for all version numbering classes; and route
49
+ rich comparisons to _cmp.
50
+ """
51
+
52
+ def __init__(self, vstring=None):
53
+ if vstring:
54
+ self.parse(vstring)
55
+ warnings.warn(
56
+ "distutils Version classes are deprecated. Use packaging.version instead.",
57
+ DeprecationWarning,
58
+ stacklevel=2,
59
+ )
60
+
61
+ def __repr__(self):
62
+ return f"{self.__class__.__name__} ('{self}')"
63
+
64
+ def __eq__(self, other):
65
+ c = self._cmp(other)
66
+ if c is NotImplemented:
67
+ return c
68
+ return c == 0
69
+
70
+ def __lt__(self, other):
71
+ c = self._cmp(other)
72
+ if c is NotImplemented:
73
+ return c
74
+ return c < 0
75
+
76
+ def __le__(self, other):
77
+ c = self._cmp(other)
78
+ if c is NotImplemented:
79
+ return c
80
+ return c <= 0
81
+
82
+ def __gt__(self, other):
83
+ c = self._cmp(other)
84
+ if c is NotImplemented:
85
+ return c
86
+ return c > 0
87
+
88
+ def __ge__(self, other):
89
+ c = self._cmp(other)
90
+ if c is NotImplemented:
91
+ return c
92
+ return c >= 0
93
+
94
+
95
+ # Interface for version-number classes -- must be implemented
96
+ # by the following classes (the concrete ones -- Version should
97
+ # be treated as an abstract class).
98
+ # __init__ (string) - create and take same action as 'parse'
99
+ # (string parameter is optional)
100
+ # parse (string) - convert a string representation to whatever
101
+ # internal representation is appropriate for
102
+ # this style of version numbering
103
+ # __str__ (self) - convert back to a string; should be very similar
104
+ # (if not identical to) the string supplied to parse
105
+ # __repr__ (self) - generate Python code to recreate
106
+ # the instance
107
+ # _cmp (self, other) - compare two version numbers ('other' may
108
+ # be an unparsed version string, or another
109
+ # instance of your version class)
110
+
111
+
112
+ class StrictVersion(Version):
113
+ """Version numbering for anal retentives and software idealists.
114
+ Implements the standard interface for version number classes as
115
+ described above. A version number consists of two or three
116
+ dot-separated numeric components, with an optional "pre-release" tag
117
+ on the end. The pre-release tag consists of the letter 'a' or 'b'
118
+ followed by a number. If the numeric components of two version
119
+ numbers are equal, then one with a pre-release tag will always
120
+ be deemed earlier (lesser) than one without.
121
+
122
+ The following are valid version numbers (shown in the order that
123
+ would be obtained by sorting according to the supplied cmp function):
124
+
125
+ 0.4 0.4.0 (these two are equivalent)
126
+ 0.4.1
127
+ 0.5a1
128
+ 0.5b3
129
+ 0.5
130
+ 0.9.6
131
+ 1.0
132
+ 1.0.4a3
133
+ 1.0.4b1
134
+ 1.0.4
135
+
136
+ The following are examples of invalid version numbers:
137
+
138
+ 1
139
+ 2.7.2.2
140
+ 1.3.a4
141
+ 1.3pl1
142
+ 1.3c4
143
+
144
+ The rationale for this version numbering system will be explained
145
+ in the distutils documentation.
146
+ """
147
+
148
+ version_re = re.compile(
149
+ r'^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$', re.VERBOSE | re.ASCII
150
+ )
151
+
152
+ def parse(self, vstring):
153
+ match = self.version_re.match(vstring)
154
+ if not match:
155
+ raise ValueError(f"invalid version number '{vstring}'")
156
+
157
+ (major, minor, patch, prerelease, prerelease_num) = match.group(1, 2, 4, 5, 6)
158
+
159
+ if patch:
160
+ self.version = tuple(map(int, [major, minor, patch]))
161
+ else:
162
+ self.version = tuple(map(int, [major, minor])) + (0,)
163
+
164
+ if prerelease:
165
+ self.prerelease = (prerelease[0], int(prerelease_num))
166
+ else:
167
+ self.prerelease = None
168
+
169
+ def __str__(self):
170
+ if self.version[2] == 0:
171
+ vstring = '.'.join(map(str, self.version[0:2]))
172
+ else:
173
+ vstring = '.'.join(map(str, self.version))
174
+
175
+ if self.prerelease:
176
+ vstring = vstring + self.prerelease[0] + str(self.prerelease[1])
177
+
178
+ return vstring
179
+
180
+ def _cmp(self, other):
181
+ if isinstance(other, str):
182
+ with suppress_known_deprecation():
183
+ other = StrictVersion(other)
184
+ elif not isinstance(other, StrictVersion):
185
+ return NotImplemented
186
+
187
+ if self.version == other.version:
188
+ # versions match; pre-release drives the comparison
189
+ return self._cmp_prerelease(other)
190
+
191
+ return -1 if self.version < other.version else 1
192
+
193
+ def _cmp_prerelease(self, other):
194
+ """
195
+ case 1: self has prerelease, other doesn't; other is greater
196
+ case 2: self doesn't have prerelease, other does: self is greater
197
+ case 3: both or neither have prerelease: compare them!
198
+ """
199
+ if self.prerelease and not other.prerelease:
200
+ return -1
201
+ elif not self.prerelease and other.prerelease:
202
+ return 1
203
+
204
+ if self.prerelease == other.prerelease:
205
+ return 0
206
+ elif self.prerelease < other.prerelease:
207
+ return -1
208
+ else:
209
+ return 1
210
+
211
+
212
+ # end class StrictVersion
213
+
214
+
215
+ # The rules according to Greg Stein:
216
+ # 1) a version number has 1 or more numbers separated by a period or by
217
+ # sequences of letters. If only periods, then these are compared
218
+ # left-to-right to determine an ordering.
219
+ # 2) sequences of letters are part of the tuple for comparison and are
220
+ # compared lexicographically
221
+ # 3) recognize the numeric components may have leading zeroes
222
+ #
223
+ # The LooseVersion class below implements these rules: a version number
224
+ # string is split up into a tuple of integer and string components, and
225
+ # comparison is a simple tuple comparison. This means that version
226
+ # numbers behave in a predictable and obvious way, but a way that might
227
+ # not necessarily be how people *want* version numbers to behave. There
228
+ # wouldn't be a problem if people could stick to purely numeric version
229
+ # numbers: just split on period and compare the numbers as tuples.
230
+ # However, people insist on putting letters into their version numbers;
231
+ # the most common purpose seems to be:
232
+ # - indicating a "pre-release" version
233
+ # ('alpha', 'beta', 'a', 'b', 'pre', 'p')
234
+ # - indicating a post-release patch ('p', 'pl', 'patch')
235
+ # but of course this can't cover all version number schemes, and there's
236
+ # no way to know what a programmer means without asking him.
237
+ #
238
+ # The problem is what to do with letters (and other non-numeric
239
+ # characters) in a version number. The current implementation does the
240
+ # obvious and predictable thing: keep them as strings and compare
241
+ # lexically within a tuple comparison. This has the desired effect if
242
+ # an appended letter sequence implies something "post-release":
243
+ # eg. "0.99" < "0.99pl14" < "1.0", and "5.001" < "5.001m" < "5.002".
244
+ #
245
+ # However, if letters in a version number imply a pre-release version,
246
+ # the "obvious" thing isn't correct. Eg. you would expect that
247
+ # "1.5.1" < "1.5.2a2" < "1.5.2", but under the tuple/lexical comparison
248
+ # implemented here, this just isn't so.
249
+ #
250
+ # Two possible solutions come to mind. The first is to tie the
251
+ # comparison algorithm to a particular set of semantic rules, as has
252
+ # been done in the StrictVersion class above. This works great as long
253
+ # as everyone can go along with bondage and discipline. Hopefully a
254
+ # (large) subset of Python module programmers will agree that the
255
+ # particular flavour of bondage and discipline provided by StrictVersion
256
+ # provides enough benefit to be worth using, and will submit their
257
+ # version numbering scheme to its domination. The free-thinking
258
+ # anarchists in the lot will never give in, though, and something needs
259
+ # to be done to accommodate them.
260
+ #
261
+ # Perhaps a "moderately strict" version class could be implemented that
262
+ # lets almost anything slide (syntactically), and makes some heuristic
263
+ # assumptions about non-digits in version number strings. This could
264
+ # sink into special-case-hell, though; if I was as talented and
265
+ # idiosyncratic as Larry Wall, I'd go ahead and implement a class that
266
+ # somehow knows that "1.2.1" < "1.2.2a2" < "1.2.2" < "1.2.2pl3", and is
267
+ # just as happy dealing with things like "2g6" and "1.13++". I don't
268
+ # think I'm smart enough to do it right though.
269
+ #
270
+ # In any case, I've coded the test suite for this module (see
271
+ # ../test/test_version.py) specifically to fail on things like comparing
272
+ # "1.2a2" and "1.2". That's not because the *code* is doing anything
273
+ # wrong, it's because the simple, obvious design doesn't match my
274
+ # complicated, hairy expectations for real-world version numbers. It
275
+ # would be a snap to fix the test suite to say, "Yep, LooseVersion does
276
+ # the Right Thing" (ie. the code matches the conception). But I'd rather
277
+ # have a conception that matches common notions about version numbers.
278
+
279
+
280
+ class LooseVersion(Version):
281
+ """Version numbering for anarchists and software realists.
282
+ Implements the standard interface for version number classes as
283
+ described above. A version number consists of a series of numbers,
284
+ separated by either periods or strings of letters. When comparing
285
+ version numbers, the numeric components will be compared
286
+ numerically, and the alphabetic components lexically. The following
287
+ are all valid version numbers, in no particular order:
288
+
289
+ 1.5.1
290
+ 1.5.2b2
291
+ 161
292
+ 3.10a
293
+ 8.02
294
+ 3.4j
295
+ 1996.07.12
296
+ 3.2.pl0
297
+ 3.1.1.6
298
+ 2g6
299
+ 11g
300
+ 0.960923
301
+ 2.2beta29
302
+ 1.13++
303
+ 5.5.kw
304
+ 2.0b1pl0
305
+
306
+ In fact, there is no such thing as an invalid version number under
307
+ this scheme; the rules for comparison are simple and predictable,
308
+ but may not always give the results you want (for some definition
309
+ of "want").
310
+ """
311
+
312
+ component_re = re.compile(r'(\d+ | [a-z]+ | \.)', re.VERBOSE)
313
+
314
+ def parse(self, vstring):
315
+ # I've given up on thinking I can reconstruct the version string
316
+ # from the parsed tuple -- so I just store the string here for
317
+ # use by __str__
318
+ self.vstring = vstring
319
+ components = [x for x in self.component_re.split(vstring) if x and x != '.']
320
+ for i, obj in enumerate(components):
321
+ try:
322
+ components[i] = int(obj)
323
+ except ValueError:
324
+ pass
325
+
326
+ self.version = components
327
+
328
+ def __str__(self):
329
+ return self.vstring
330
+
331
+ def __repr__(self):
332
+ return f"LooseVersion ('{self}')"
333
+
334
+ def _cmp(self, other):
335
+ if isinstance(other, str):
336
+ other = LooseVersion(other)
337
+ elif not isinstance(other, LooseVersion):
338
+ return NotImplemented
339
+
340
+ if self.version == other.version:
341
+ return 0
342
+ if self.version < other.version:
343
+ return -1
344
+ if self.version > other.version:
345
+ return 1
346
+
347
+
348
+ # end class LooseVersion
@@ -0,0 +1,175 @@
1
+ """Module for parsing and testing package version predicate strings."""
2
+
3
+ import operator
4
+ import re
5
+
6
+ from . import version
7
+
8
+ re_validPackage = re.compile(r"(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)", re.ASCII)
9
+ # (package) (rest)
10
+
11
+ re_paren = re.compile(r"^\s*\((.*)\)\s*$") # (list) inside of parentheses
12
+ re_splitComparison = re.compile(r"^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$")
13
+ # (comp) (version)
14
+
15
+
16
+ def splitUp(pred):
17
+ """Parse a single version comparison.
18
+
19
+ Return (comparison string, StrictVersion)
20
+ """
21
+ res = re_splitComparison.match(pred)
22
+ if not res:
23
+ raise ValueError(f"bad package restriction syntax: {pred!r}")
24
+ comp, verStr = res.groups()
25
+ with version.suppress_known_deprecation():
26
+ other = version.StrictVersion(verStr)
27
+ return (comp, other)
28
+
29
+
30
+ compmap = {
31
+ "<": operator.lt,
32
+ "<=": operator.le,
33
+ "==": operator.eq,
34
+ ">": operator.gt,
35
+ ">=": operator.ge,
36
+ "!=": operator.ne,
37
+ }
38
+
39
+
40
+ class VersionPredicate:
41
+ """Parse and test package version predicates.
42
+
43
+ >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)')
44
+
45
+ The `name` attribute provides the full dotted name that is given::
46
+
47
+ >>> v.name
48
+ 'pyepat.abc'
49
+
50
+ The str() of a `VersionPredicate` provides a normalized
51
+ human-readable version of the expression::
52
+
53
+ >>> print(v)
54
+ pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3)
55
+
56
+ The `satisfied_by()` method can be used to determine with a given
57
+ version number is included in the set described by the version
58
+ restrictions::
59
+
60
+ >>> v.satisfied_by('1.1')
61
+ True
62
+ >>> v.satisfied_by('1.4')
63
+ True
64
+ >>> v.satisfied_by('1.0')
65
+ False
66
+ >>> v.satisfied_by('4444.4')
67
+ False
68
+ >>> v.satisfied_by('1555.1b3')
69
+ False
70
+
71
+ `VersionPredicate` is flexible in accepting extra whitespace::
72
+
73
+ >>> v = VersionPredicate(' pat( == 0.1 ) ')
74
+ >>> v.name
75
+ 'pat'
76
+ >>> v.satisfied_by('0.1')
77
+ True
78
+ >>> v.satisfied_by('0.2')
79
+ False
80
+
81
+ If any version numbers passed in do not conform to the
82
+ restrictions of `StrictVersion`, a `ValueError` is raised::
83
+
84
+ >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)')
85
+ Traceback (most recent call last):
86
+ ...
87
+ ValueError: invalid version number '1.2zb3'
88
+
89
+ It the module or package name given does not conform to what's
90
+ allowed as a legal module or package name, `ValueError` is
91
+ raised::
92
+
93
+ >>> v = VersionPredicate('foo-bar')
94
+ Traceback (most recent call last):
95
+ ...
96
+ ValueError: expected parenthesized list: '-bar'
97
+
98
+ >>> v = VersionPredicate('foo bar (12.21)')
99
+ Traceback (most recent call last):
100
+ ...
101
+ ValueError: expected parenthesized list: 'bar (12.21)'
102
+
103
+ """
104
+
105
+ def __init__(self, versionPredicateStr):
106
+ """Parse a version predicate string."""
107
+ # Fields:
108
+ # name: package name
109
+ # pred: list of (comparison string, StrictVersion)
110
+
111
+ versionPredicateStr = versionPredicateStr.strip()
112
+ if not versionPredicateStr:
113
+ raise ValueError("empty package restriction")
114
+ match = re_validPackage.match(versionPredicateStr)
115
+ if not match:
116
+ raise ValueError(f"bad package name in {versionPredicateStr!r}")
117
+ self.name, paren = match.groups()
118
+ paren = paren.strip()
119
+ if paren:
120
+ match = re_paren.match(paren)
121
+ if not match:
122
+ raise ValueError(f"expected parenthesized list: {paren!r}")
123
+ str = match.groups()[0]
124
+ self.pred = [splitUp(aPred) for aPred in str.split(",")]
125
+ if not self.pred:
126
+ raise ValueError(f"empty parenthesized list in {versionPredicateStr!r}")
127
+ else:
128
+ self.pred = []
129
+
130
+ def __str__(self):
131
+ if self.pred:
132
+ seq = [cond + " " + str(ver) for cond, ver in self.pred]
133
+ return self.name + " (" + ", ".join(seq) + ")"
134
+ else:
135
+ return self.name
136
+
137
+ def satisfied_by(self, version):
138
+ """True if version is compatible with all the predicates in self.
139
+ The parameter version must be acceptable to the StrictVersion
140
+ constructor. It may be either a string or StrictVersion.
141
+ """
142
+ for cond, ver in self.pred:
143
+ if not compmap[cond](version, ver):
144
+ return False
145
+ return True
146
+
147
+
148
+ _provision_rx = None
149
+
150
+
151
+ def split_provision(value):
152
+ """Return the name and optional version number of a provision.
153
+
154
+ The version number, if given, will be returned as a `StrictVersion`
155
+ instance, otherwise it will be `None`.
156
+
157
+ >>> split_provision('mypkg')
158
+ ('mypkg', None)
159
+ >>> split_provision(' mypkg( 1.2 ) ')
160
+ ('mypkg', StrictVersion ('1.2'))
161
+ """
162
+ global _provision_rx
163
+ if _provision_rx is None:
164
+ _provision_rx = re.compile(
165
+ r"([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$", re.ASCII
166
+ )
167
+ value = value.strip()
168
+ m = _provision_rx.match(value)
169
+ if not m:
170
+ raise ValueError(f"illegal provides specification: {value!r}")
171
+ ver = m.group(2) or None
172
+ if ver:
173
+ with version.suppress_known_deprecation():
174
+ ver = version.StrictVersion(ver)
175
+ return m.group(1), ver
@@ -0,0 +1,3 @@
1
+ from .compilers.C import zos
2
+
3
+ zOSCCompiler = zos.Compiler
@@ -0,0 +1,94 @@
1
+ import functools
2
+ import itertools
3
+ import operator
4
+
5
+ from jaraco.functools import pass_none
6
+ from jaraco.text import yield_lines
7
+ from more_itertools import consume
8
+
9
+ from ._importlib import metadata
10
+ from ._itertools import ensure_unique
11
+ from .errors import OptionError
12
+
13
+
14
+ def ensure_valid(ep):
15
+ """
16
+ Exercise one of the dynamic properties to trigger
17
+ the pattern match.
18
+
19
+ This function is deprecated in favor of importlib_metadata 8.7 and
20
+ Python 3.14 importlib.metadata, which validates entry points on
21
+ construction.
22
+ """
23
+ try:
24
+ ep.extras
25
+ except (AttributeError, AssertionError) as ex:
26
+ # Why both? See https://github.com/python/importlib_metadata/issues/488
27
+ msg = (
28
+ f"Problems to parse {ep}.\nPlease ensure entry-point follows the spec: "
29
+ "https://packaging.python.org/en/latest/specifications/entry-points/"
30
+ )
31
+ raise OptionError(msg) from ex
32
+
33
+
34
+ def load_group(value, group):
35
+ """
36
+ Given a value of an entry point or series of entry points,
37
+ return each as an EntryPoint.
38
+ """
39
+ # normalize to a single sequence of lines
40
+ lines = yield_lines(value)
41
+ text = f'[{group}]\n' + '\n'.join(lines)
42
+ return metadata.EntryPoints._from_text(text)
43
+
44
+
45
+ def by_group_and_name(ep):
46
+ return ep.group, ep.name
47
+
48
+
49
+ def validate(eps: metadata.EntryPoints):
50
+ """
51
+ Ensure entry points are unique by group and name and validate each.
52
+ """
53
+ consume(map(ensure_valid, ensure_unique(eps, key=by_group_and_name)))
54
+ return eps
55
+
56
+
57
+ @functools.singledispatch
58
+ def load(eps):
59
+ """
60
+ Given a Distribution.entry_points, produce EntryPoints.
61
+ """
62
+ groups = itertools.chain.from_iterable(
63
+ load_group(value, group) for group, value in eps.items()
64
+ )
65
+ return validate(metadata.EntryPoints(groups))
66
+
67
+
68
+ @load.register(str)
69
+ def _(eps):
70
+ r"""
71
+ >>> ep, = load('[console_scripts]\nfoo=bar')
72
+ >>> ep.group
73
+ 'console_scripts'
74
+ >>> ep.name
75
+ 'foo'
76
+ >>> ep.value
77
+ 'bar'
78
+ """
79
+ return validate(metadata.EntryPoints(metadata.EntryPoints._from_text(eps)))
80
+
81
+
82
+ load.register(type(None), lambda x: x)
83
+
84
+
85
+ @pass_none
86
+ def render(eps: metadata.EntryPoints):
87
+ by_group = operator.attrgetter('group')
88
+ groups = itertools.groupby(sorted(eps, key=by_group), by_group)
89
+
90
+ return '\n'.join(f'[{group}]\n{render_items(items)}\n' for group, items in groups)
91
+
92
+
93
+ def render_items(eps):
94
+ return '\n'.join(f'{ep.name} = {ep.value}' for ep in sorted(eps))