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.
- android_notify/config.py +1 -1
- {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/METADATA +4 -4
- {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/RECORD +375 -6
- venv/Lib/site-packages/_distutils_hack/__init__.py +239 -0
- venv/Lib/site-packages/_distutils_hack/override.py +1 -0
- venv/Lib/site-packages/pkg_resources/__init__.py +3713 -0
- venv/Lib/site-packages/pkg_resources/py.typed +0 -0
- venv/Lib/site-packages/pkg_resources/tests/__init__.py +0 -0
- venv/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +7 -0
- venv/Lib/site-packages/pkg_resources/tests/test_find_distributions.py +56 -0
- venv/Lib/site-packages/pkg_resources/tests/test_integration_zope_interface.py +54 -0
- venv/Lib/site-packages/pkg_resources/tests/test_markers.py +8 -0
- venv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +485 -0
- venv/Lib/site-packages/pkg_resources/tests/test_resources.py +869 -0
- venv/Lib/site-packages/pkg_resources/tests/test_working_set.py +505 -0
- venv/Lib/site-packages/setuptools/__init__.py +248 -0
- venv/Lib/site-packages/setuptools/_core_metadata.py +337 -0
- venv/Lib/site-packages/setuptools/_discovery.py +33 -0
- venv/Lib/site-packages/setuptools/_distutils/__init__.py +14 -0
- venv/Lib/site-packages/setuptools/_distutils/_log.py +3 -0
- venv/Lib/site-packages/setuptools/_distutils/_macos_compat.py +12 -0
- venv/Lib/site-packages/setuptools/_distutils/_modified.py +95 -0
- venv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +16 -0
- venv/Lib/site-packages/setuptools/_distutils/archive_util.py +294 -0
- venv/Lib/site-packages/setuptools/_distutils/ccompiler.py +26 -0
- venv/Lib/site-packages/setuptools/_distutils/cmd.py +554 -0
- venv/Lib/site-packages/setuptools/_distutils/command/__init__.py +23 -0
- venv/Lib/site-packages/setuptools/_distutils/command/_framework_compat.py +54 -0
- venv/Lib/site-packages/setuptools/_distutils/command/bdist.py +167 -0
- venv/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +141 -0
- venv/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +598 -0
- venv/Lib/site-packages/setuptools/_distutils/command/build.py +156 -0
- venv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +201 -0
- venv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +812 -0
- venv/Lib/site-packages/setuptools/_distutils/command/build_py.py +407 -0
- venv/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +160 -0
- venv/Lib/site-packages/setuptools/_distutils/command/check.py +152 -0
- venv/Lib/site-packages/setuptools/_distutils/command/clean.py +77 -0
- venv/Lib/site-packages/setuptools/_distutils/command/config.py +358 -0
- venv/Lib/site-packages/setuptools/_distutils/command/install.py +805 -0
- venv/Lib/site-packages/setuptools/_distutils/command/install_data.py +94 -0
- venv/Lib/site-packages/setuptools/_distutils/command/install_egg_info.py +91 -0
- venv/Lib/site-packages/setuptools/_distutils/command/install_headers.py +46 -0
- venv/Lib/site-packages/setuptools/_distutils/command/install_lib.py +238 -0
- venv/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +62 -0
- venv/Lib/site-packages/setuptools/_distutils/command/sdist.py +521 -0
- venv/Lib/site-packages/setuptools/_distutils/compat/__init__.py +18 -0
- venv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
- venv/Lib/site-packages/setuptools/_distutils/compat/py39.py +66 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +1394 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/cygwin.py +340 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/errors.py +24 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +614 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_base.py +83 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_cygwin.py +76 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_mingw.py +48 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_msvc.py +136 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py +413 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +422 -0
- venv/Lib/site-packages/setuptools/_distutils/compilers/C/zos.py +230 -0
- venv/Lib/site-packages/setuptools/_distutils/core.py +289 -0
- venv/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +31 -0
- venv/Lib/site-packages/setuptools/_distutils/debug.py +5 -0
- venv/Lib/site-packages/setuptools/_distutils/dep_util.py +14 -0
- venv/Lib/site-packages/setuptools/_distutils/dir_util.py +244 -0
- venv/Lib/site-packages/setuptools/_distutils/dist.py +1386 -0
- venv/Lib/site-packages/setuptools/_distutils/errors.py +108 -0
- venv/Lib/site-packages/setuptools/_distutils/extension.py +258 -0
- venv/Lib/site-packages/setuptools/_distutils/fancy_getopt.py +471 -0
- venv/Lib/site-packages/setuptools/_distutils/file_util.py +236 -0
- venv/Lib/site-packages/setuptools/_distutils/filelist.py +431 -0
- venv/Lib/site-packages/setuptools/_distutils/log.py +56 -0
- venv/Lib/site-packages/setuptools/_distutils/spawn.py +134 -0
- venv/Lib/site-packages/setuptools/_distutils/sysconfig.py +598 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/__init__.py +42 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/compat/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/compat/py39.py +40 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/support.py +134 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_archive_util.py +353 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_bdist.py +47 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_bdist_dumb.py +78 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_bdist_rpm.py +127 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_build.py +49 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_build_clib.py +134 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +628 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_build_py.py +196 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_build_scripts.py +96 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_check.py +194 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_clean.py +45 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_cmd.py +107 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_config_cmd.py +87 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_core.py +130 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +139 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_dist.py +552 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_extension.py +117 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_file_util.py +95 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_filelist.py +336 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_install.py +245 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_install_data.py +74 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_install_headers.py +33 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_install_lib.py +110 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_install_scripts.py +52 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_log.py +12 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_modified.py +126 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +470 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_spawn.py +141 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_sysconfig.py +319 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_text_file.py +127 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_util.py +243 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_version.py +80 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/test_versionpredicate.py +0 -0
- venv/Lib/site-packages/setuptools/_distutils/tests/unix_compat.py +17 -0
- venv/Lib/site-packages/setuptools/_distutils/text_file.py +286 -0
- venv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +9 -0
- venv/Lib/site-packages/setuptools/_distutils/util.py +518 -0
- venv/Lib/site-packages/setuptools/_distutils/version.py +348 -0
- venv/Lib/site-packages/setuptools/_distutils/versionpredicate.py +175 -0
- venv/Lib/site-packages/setuptools/_distutils/zosccompiler.py +3 -0
- venv/Lib/site-packages/setuptools/_entry_points.py +94 -0
- venv/Lib/site-packages/setuptools/_imp.py +87 -0
- venv/Lib/site-packages/setuptools/_importlib.py +9 -0
- venv/Lib/site-packages/setuptools/_itertools.py +23 -0
- venv/Lib/site-packages/setuptools/_normalization.py +177 -0
- venv/Lib/site-packages/setuptools/_path.py +93 -0
- venv/Lib/site-packages/setuptools/_reqs.py +42 -0
- venv/Lib/site-packages/setuptools/_scripts.py +361 -0
- venv/Lib/site-packages/setuptools/_shutil.py +59 -0
- venv/Lib/site-packages/setuptools/_static.py +188 -0
- venv/Lib/site-packages/setuptools/_vendor/autocommand/__init__.py +27 -0
- venv/Lib/site-packages/setuptools/_vendor/autocommand/autoasync.py +142 -0
- venv/Lib/site-packages/setuptools/_vendor/autocommand/autocommand.py +70 -0
- venv/Lib/site-packages/setuptools/_vendor/autocommand/automain.py +59 -0
- venv/Lib/site-packages/setuptools/_vendor/autocommand/autoparse.py +333 -0
- venv/Lib/site-packages/setuptools/_vendor/autocommand/errors.py +23 -0
- venv/Lib/site-packages/setuptools/_vendor/backports/__init__.py +1 -0
- venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/__init__.py +2937 -0
- venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/__main__.py +5 -0
- venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/py38.py +24 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/__init__.py +1083 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py +83 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_collections.py +30 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_compat.py +57 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_functools.py +104 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py +73 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_meta.py +67 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/_text.py +99 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py +22 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py +36 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/diagnose.py +21 -0
- venv/Lib/site-packages/setuptools/_vendor/importlib_metadata/py.typed +0 -0
- venv/Lib/site-packages/setuptools/_vendor/inflect/__init__.py +3986 -0
- venv/Lib/site-packages/setuptools/_vendor/inflect/compat/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/_vendor/inflect/compat/py38.py +7 -0
- venv/Lib/site-packages/setuptools/_vendor/inflect/py.typed +0 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/collections/__init__.py +1091 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/collections/py.typed +0 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/context.py +361 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.py +633 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi +125 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/functools/py.typed +0 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/text/__init__.py +624 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/text/layouts.py +25 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/text/show-newlines.py +33 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/text/strip-prefix.py +21 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/text/to-dvorak.py +6 -0
- venv/Lib/site-packages/setuptools/_vendor/jaraco/text/to-qwerty.py +6 -0
- venv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py +6 -0
- venv/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.pyi +2 -0
- venv/Lib/site-packages/setuptools/_vendor/more_itertools/more.py +4806 -0
- venv/Lib/site-packages/setuptools/_vendor/more_itertools/more.pyi +709 -0
- venv/Lib/site-packages/setuptools/_vendor/more_itertools/py.typed +0 -0
- venv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py +1046 -0
- venv/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.pyi +136 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +15 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +110 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +263 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/_musllinux.py +85 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/_parser.py +354 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/_structures.py +61 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/_tokenizer.py +194 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +331 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +863 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/py.typed +0 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/requirements.py +91 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +1020 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +617 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +163 -0
- venv/Lib/site-packages/setuptools/_vendor/packaging/version.py +582 -0
- venv/Lib/site-packages/setuptools/_vendor/platformdirs/__init__.py +627 -0
- venv/Lib/site-packages/setuptools/_vendor/platformdirs/__main__.py +55 -0
- venv/Lib/site-packages/setuptools/_vendor/platformdirs/android.py +249 -0
- venv/Lib/site-packages/setuptools/_vendor/platformdirs/api.py +292 -0
- venv/Lib/site-packages/setuptools/_vendor/platformdirs/macos.py +130 -0
- venv/Lib/site-packages/setuptools/_vendor/platformdirs/py.typed +0 -0
- venv/Lib/site-packages/setuptools/_vendor/platformdirs/unix.py +275 -0
- venv/Lib/site-packages/setuptools/_vendor/platformdirs/version.py +16 -0
- venv/Lib/site-packages/setuptools/_vendor/platformdirs/windows.py +272 -0
- venv/Lib/site-packages/setuptools/_vendor/tomli/__init__.py +11 -0
- venv/Lib/site-packages/setuptools/_vendor/tomli/_parser.py +691 -0
- venv/Lib/site-packages/setuptools/_vendor/tomli/_re.py +107 -0
- venv/Lib/site-packages/setuptools/_vendor/tomli/_types.py +10 -0
- venv/Lib/site-packages/setuptools/_vendor/tomli/py.typed +1 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/__init__.py +48 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_checkers.py +993 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_config.py +108 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_decorators.py +235 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_exceptions.py +42 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_functions.py +308 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_importhook.py +213 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_memo.py +48 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_pytest_plugin.py +127 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_suppression.py +86 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_transformer.py +1229 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_union_transformer.py +55 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/_utils.py +173 -0
- venv/Lib/site-packages/setuptools/_vendor/typeguard/py.typed +0 -0
- venv/Lib/site-packages/setuptools/_vendor/typing_extensions.py +3641 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +3 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/__main__.py +23 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +26 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +26 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +155 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +332 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/cli/pack.py +85 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/cli/tags.py +139 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/cli/unpack.py +30 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +482 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +183 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/util.py +17 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py +108 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py +260 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py +83 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py +356 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py +61 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py +192 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py +253 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py +90 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py +1011 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py +571 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py +172 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py +561 -0
- venv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +227 -0
- venv/Lib/site-packages/setuptools/_vendor/zipp/__init__.py +501 -0
- venv/Lib/site-packages/setuptools/_vendor/zipp/compat/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/_vendor/zipp/compat/py310.py +11 -0
- venv/Lib/site-packages/setuptools/_vendor/zipp/glob.py +106 -0
- venv/Lib/site-packages/setuptools/archive_util.py +219 -0
- venv/Lib/site-packages/setuptools/build_meta.py +548 -0
- venv/Lib/site-packages/setuptools/command/__init__.py +21 -0
- venv/Lib/site-packages/setuptools/command/_requirestxt.py +131 -0
- venv/Lib/site-packages/setuptools/command/alias.py +77 -0
- venv/Lib/site-packages/setuptools/command/bdist_egg.py +477 -0
- venv/Lib/site-packages/setuptools/command/bdist_rpm.py +42 -0
- venv/Lib/site-packages/setuptools/command/bdist_wheel.py +604 -0
- venv/Lib/site-packages/setuptools/command/build.py +135 -0
- venv/Lib/site-packages/setuptools/command/build_clib.py +103 -0
- venv/Lib/site-packages/setuptools/command/build_ext.py +470 -0
- venv/Lib/site-packages/setuptools/command/build_py.py +400 -0
- venv/Lib/site-packages/setuptools/command/develop.py +55 -0
- venv/Lib/site-packages/setuptools/command/dist_info.py +103 -0
- venv/Lib/site-packages/setuptools/command/easy_install.py +30 -0
- venv/Lib/site-packages/setuptools/command/editable_wheel.py +908 -0
- venv/Lib/site-packages/setuptools/command/egg_info.py +718 -0
- venv/Lib/site-packages/setuptools/command/install.py +131 -0
- venv/Lib/site-packages/setuptools/command/install_egg_info.py +58 -0
- venv/Lib/site-packages/setuptools/command/install_lib.py +137 -0
- venv/Lib/site-packages/setuptools/command/install_scripts.py +67 -0
- venv/Lib/site-packages/setuptools/command/rotate.py +65 -0
- venv/Lib/site-packages/setuptools/command/saveopts.py +21 -0
- venv/Lib/site-packages/setuptools/command/sdist.py +217 -0
- venv/Lib/site-packages/setuptools/command/setopt.py +141 -0
- venv/Lib/site-packages/setuptools/command/test.py +45 -0
- venv/Lib/site-packages/setuptools/compat/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/compat/py310.py +20 -0
- venv/Lib/site-packages/setuptools/compat/py311.py +27 -0
- venv/Lib/site-packages/setuptools/compat/py312.py +13 -0
- venv/Lib/site-packages/setuptools/compat/py39.py +9 -0
- venv/Lib/site-packages/setuptools/config/__init__.py +43 -0
- venv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +526 -0
- venv/Lib/site-packages/setuptools/config/_validate_pyproject/__init__.py +34 -0
- venv/Lib/site-packages/setuptools/config/_validate_pyproject/error_reporting.py +336 -0
- venv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +82 -0
- venv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py +51 -0
- venv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +1412 -0
- venv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +402 -0
- venv/Lib/site-packages/setuptools/config/expand.py +452 -0
- venv/Lib/site-packages/setuptools/config/pyprojecttoml.py +468 -0
- venv/Lib/site-packages/setuptools/config/setupcfg.py +780 -0
- venv/Lib/site-packages/setuptools/depends.py +185 -0
- venv/Lib/site-packages/setuptools/discovery.py +614 -0
- venv/Lib/site-packages/setuptools/dist.py +1119 -0
- venv/Lib/site-packages/setuptools/errors.py +67 -0
- venv/Lib/site-packages/setuptools/extension.py +177 -0
- venv/Lib/site-packages/setuptools/glob.py +185 -0
- venv/Lib/site-packages/setuptools/installer.py +155 -0
- venv/Lib/site-packages/setuptools/launch.py +36 -0
- venv/Lib/site-packages/setuptools/logging.py +40 -0
- venv/Lib/site-packages/setuptools/modified.py +18 -0
- venv/Lib/site-packages/setuptools/monkey.py +126 -0
- venv/Lib/site-packages/setuptools/msvc.py +1536 -0
- venv/Lib/site-packages/setuptools/namespaces.py +106 -0
- venv/Lib/site-packages/setuptools/tests/__init__.py +13 -0
- venv/Lib/site-packages/setuptools/tests/compat/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/tests/compat/py39.py +3 -0
- venv/Lib/site-packages/setuptools/tests/config/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +59 -0
- venv/Lib/site-packages/setuptools/tests/config/downloads/preload.py +18 -0
- venv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +772 -0
- venv/Lib/site-packages/setuptools/tests/config/test_expand.py +247 -0
- venv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +396 -0
- venv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +109 -0
- venv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +980 -0
- venv/Lib/site-packages/setuptools/tests/contexts.py +131 -0
- venv/Lib/site-packages/setuptools/tests/environment.py +95 -0
- venv/Lib/site-packages/setuptools/tests/fixtures.py +392 -0
- venv/Lib/site-packages/setuptools/tests/integration/__init__.py +0 -0
- venv/Lib/site-packages/setuptools/tests/integration/helpers.py +77 -0
- venv/Lib/site-packages/setuptools/tests/integration/test_pbr.py +20 -0
- venv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +223 -0
- venv/Lib/site-packages/setuptools/tests/mod_with_constant.py +1 -0
- venv/Lib/site-packages/setuptools/tests/namespaces.py +90 -0
- venv/Lib/site-packages/setuptools/tests/script-with-bom.py +1 -0
- venv/Lib/site-packages/setuptools/tests/test_archive_util.py +36 -0
- venv/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py +28 -0
- venv/Lib/site-packages/setuptools/tests/test_bdist_egg.py +73 -0
- venv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +708 -0
- venv/Lib/site-packages/setuptools/tests/test_build.py +33 -0
- venv/Lib/site-packages/setuptools/tests/test_build_clib.py +84 -0
- venv/Lib/site-packages/setuptools/tests/test_build_ext.py +293 -0
- venv/Lib/site-packages/setuptools/tests/test_build_meta.py +959 -0
- venv/Lib/site-packages/setuptools/tests/test_build_py.py +480 -0
- venv/Lib/site-packages/setuptools/tests/test_config_discovery.py +647 -0
- venv/Lib/site-packages/setuptools/tests/test_core_metadata.py +622 -0
- venv/Lib/site-packages/setuptools/tests/test_depends.py +15 -0
- venv/Lib/site-packages/setuptools/tests/test_develop.py +112 -0
- venv/Lib/site-packages/setuptools/tests/test_dist.py +278 -0
- venv/Lib/site-packages/setuptools/tests/test_dist_info.py +147 -0
- venv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +198 -0
- venv/Lib/site-packages/setuptools/tests/test_editable_install.py +1263 -0
- venv/Lib/site-packages/setuptools/tests/test_egg_info.py +1306 -0
- venv/Lib/site-packages/setuptools/tests/test_extern.py +15 -0
- venv/Lib/site-packages/setuptools/tests/test_find_packages.py +218 -0
- venv/Lib/site-packages/setuptools/tests/test_find_py_modules.py +73 -0
- venv/Lib/site-packages/setuptools/tests/test_glob.py +45 -0
- venv/Lib/site-packages/setuptools/tests/test_install_scripts.py +89 -0
- venv/Lib/site-packages/setuptools/tests/test_logging.py +76 -0
- venv/Lib/site-packages/setuptools/tests/test_manifest.py +622 -0
- venv/Lib/site-packages/setuptools/tests/test_namespaces.py +138 -0
- venv/Lib/site-packages/setuptools/tests/test_scripts.py +12 -0
- venv/Lib/site-packages/setuptools/tests/test_sdist.py +984 -0
- venv/Lib/site-packages/setuptools/tests/test_setopt.py +40 -0
- venv/Lib/site-packages/setuptools/tests/test_setuptools.py +290 -0
- venv/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
- venv/Lib/site-packages/setuptools/tests/test_unicode_utils.py +10 -0
- venv/Lib/site-packages/setuptools/tests/test_virtualenv.py +113 -0
- venv/Lib/site-packages/setuptools/tests/test_warnings.py +106 -0
- venv/Lib/site-packages/setuptools/tests/test_wheel.py +690 -0
- venv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +258 -0
- venv/Lib/site-packages/setuptools/tests/text.py +4 -0
- venv/Lib/site-packages/setuptools/tests/textwrap.py +6 -0
- venv/Lib/site-packages/setuptools/unicode_utils.py +102 -0
- venv/Lib/site-packages/setuptools/version.py +6 -0
- venv/Lib/site-packages/setuptools/warnings.py +110 -0
- venv/Lib/site-packages/setuptools/wheel.py +261 -0
- venv/Lib/site-packages/setuptools/windows_support.py +30 -0
- {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/WHEEL +0 -0
- {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/entry_points.txt +0 -0
- {android_notify-1.60.0.dist-info → android_notify-1.60.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import contextlib
|
|
4
|
+
import os
|
|
5
|
+
import re
|
|
6
|
+
from itertools import chain
|
|
7
|
+
from typing import ClassVar
|
|
8
|
+
|
|
9
|
+
from .._importlib import metadata
|
|
10
|
+
from ..dist import Distribution
|
|
11
|
+
from .build import _ORIGINAL_SUBCOMMANDS
|
|
12
|
+
|
|
13
|
+
import distutils.command.sdist as orig
|
|
14
|
+
from distutils import log
|
|
15
|
+
|
|
16
|
+
_default_revctrl = list
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def walk_revctrl(dirname=''):
|
|
20
|
+
"""Find all files under revision control"""
|
|
21
|
+
for ep in metadata.entry_points(group='setuptools.file_finders'):
|
|
22
|
+
yield from ep.load()(dirname)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class sdist(orig.sdist):
|
|
26
|
+
"""Smart sdist that finds anything supported by revision control"""
|
|
27
|
+
|
|
28
|
+
user_options = [
|
|
29
|
+
('formats=', None, "formats for source distribution (comma-separated list)"),
|
|
30
|
+
(
|
|
31
|
+
'keep-temp',
|
|
32
|
+
'k',
|
|
33
|
+
"keep the distribution tree around after creating archive file(s)",
|
|
34
|
+
),
|
|
35
|
+
(
|
|
36
|
+
'dist-dir=',
|
|
37
|
+
'd',
|
|
38
|
+
"directory to put the source distribution archive(s) in [default: dist]",
|
|
39
|
+
),
|
|
40
|
+
(
|
|
41
|
+
'owner=',
|
|
42
|
+
'u',
|
|
43
|
+
"Owner name used when creating a tar file [default: current user]",
|
|
44
|
+
),
|
|
45
|
+
(
|
|
46
|
+
'group=',
|
|
47
|
+
'g',
|
|
48
|
+
"Group name used when creating a tar file [default: current group]",
|
|
49
|
+
),
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution
|
|
53
|
+
negative_opt: ClassVar[dict[str, str]] = {}
|
|
54
|
+
|
|
55
|
+
README_EXTENSIONS = ['', '.rst', '.txt', '.md']
|
|
56
|
+
READMES = tuple(f'README{ext}' for ext in README_EXTENSIONS)
|
|
57
|
+
|
|
58
|
+
def run(self) -> None:
|
|
59
|
+
self.run_command('egg_info')
|
|
60
|
+
ei_cmd = self.get_finalized_command('egg_info')
|
|
61
|
+
self.filelist = ei_cmd.filelist
|
|
62
|
+
self.filelist.append(os.path.join(ei_cmd.egg_info, 'SOURCES.txt'))
|
|
63
|
+
self.check_readme()
|
|
64
|
+
|
|
65
|
+
# Run sub commands
|
|
66
|
+
for cmd_name in self.get_sub_commands():
|
|
67
|
+
self.run_command(cmd_name)
|
|
68
|
+
|
|
69
|
+
self.make_distribution()
|
|
70
|
+
|
|
71
|
+
dist_files = getattr(self.distribution, 'dist_files', [])
|
|
72
|
+
for file in self.archive_files:
|
|
73
|
+
data = ('sdist', '', file)
|
|
74
|
+
if data not in dist_files:
|
|
75
|
+
dist_files.append(data)
|
|
76
|
+
|
|
77
|
+
def initialize_options(self) -> None:
|
|
78
|
+
orig.sdist.initialize_options(self)
|
|
79
|
+
|
|
80
|
+
def make_distribution(self) -> None:
|
|
81
|
+
"""
|
|
82
|
+
Workaround for #516
|
|
83
|
+
"""
|
|
84
|
+
with self._remove_os_link():
|
|
85
|
+
orig.sdist.make_distribution(self)
|
|
86
|
+
|
|
87
|
+
@staticmethod
|
|
88
|
+
@contextlib.contextmanager
|
|
89
|
+
def _remove_os_link():
|
|
90
|
+
"""
|
|
91
|
+
In a context, remove and restore os.link if it exists
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
class NoValue:
|
|
95
|
+
pass
|
|
96
|
+
|
|
97
|
+
orig_val = getattr(os, 'link', NoValue)
|
|
98
|
+
try:
|
|
99
|
+
del os.link
|
|
100
|
+
except Exception:
|
|
101
|
+
pass
|
|
102
|
+
try:
|
|
103
|
+
yield
|
|
104
|
+
finally:
|
|
105
|
+
if orig_val is not NoValue:
|
|
106
|
+
os.link = orig_val
|
|
107
|
+
|
|
108
|
+
def add_defaults(self) -> None:
|
|
109
|
+
super().add_defaults()
|
|
110
|
+
self._add_defaults_build_sub_commands()
|
|
111
|
+
|
|
112
|
+
def _add_defaults_optional(self):
|
|
113
|
+
super()._add_defaults_optional()
|
|
114
|
+
if os.path.isfile('pyproject.toml'):
|
|
115
|
+
self.filelist.append('pyproject.toml')
|
|
116
|
+
|
|
117
|
+
def _add_defaults_python(self):
|
|
118
|
+
"""getting python files"""
|
|
119
|
+
if self.distribution.has_pure_modules():
|
|
120
|
+
build_py = self.get_finalized_command('build_py')
|
|
121
|
+
self.filelist.extend(build_py.get_source_files())
|
|
122
|
+
self._add_data_files(self._safe_data_files(build_py))
|
|
123
|
+
|
|
124
|
+
def _add_defaults_build_sub_commands(self):
|
|
125
|
+
build = self.get_finalized_command("build")
|
|
126
|
+
missing_cmds = set(build.get_sub_commands()) - _ORIGINAL_SUBCOMMANDS
|
|
127
|
+
# ^-- the original built-in sub-commands are already handled by default.
|
|
128
|
+
cmds = (self.get_finalized_command(c) for c in missing_cmds)
|
|
129
|
+
files = (c.get_source_files() for c in cmds if hasattr(c, "get_source_files"))
|
|
130
|
+
self.filelist.extend(chain.from_iterable(files))
|
|
131
|
+
|
|
132
|
+
def _safe_data_files(self, build_py):
|
|
133
|
+
"""
|
|
134
|
+
Since the ``sdist`` class is also used to compute the MANIFEST
|
|
135
|
+
(via :obj:`setuptools.command.egg_info.manifest_maker`),
|
|
136
|
+
there might be recursion problems when trying to obtain the list of
|
|
137
|
+
data_files and ``include_package_data=True`` (which in turn depends on
|
|
138
|
+
the files included in the MANIFEST).
|
|
139
|
+
|
|
140
|
+
To avoid that, ``manifest_maker`` should be able to overwrite this
|
|
141
|
+
method and avoid recursive attempts to build/analyze the MANIFEST.
|
|
142
|
+
"""
|
|
143
|
+
return build_py.data_files
|
|
144
|
+
|
|
145
|
+
def _add_data_files(self, data_files):
|
|
146
|
+
"""
|
|
147
|
+
Add data files as found in build_py.data_files.
|
|
148
|
+
"""
|
|
149
|
+
self.filelist.extend(
|
|
150
|
+
os.path.join(src_dir, name)
|
|
151
|
+
for _, src_dir, _, filenames in data_files
|
|
152
|
+
for name in filenames
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
def _add_defaults_data_files(self):
|
|
156
|
+
try:
|
|
157
|
+
super()._add_defaults_data_files()
|
|
158
|
+
except TypeError:
|
|
159
|
+
log.warn("data_files contains unexpected objects")
|
|
160
|
+
|
|
161
|
+
def prune_file_list(self) -> None:
|
|
162
|
+
super().prune_file_list()
|
|
163
|
+
# Prevent accidental inclusion of test-related cache dirs at the project root
|
|
164
|
+
sep = re.escape(os.sep)
|
|
165
|
+
self.filelist.exclude_pattern(r"^(\.tox|\.nox|\.venv)" + sep, is_regex=True)
|
|
166
|
+
|
|
167
|
+
def check_readme(self) -> None:
|
|
168
|
+
for f in self.READMES:
|
|
169
|
+
if os.path.exists(f):
|
|
170
|
+
return
|
|
171
|
+
else:
|
|
172
|
+
self.warn(
|
|
173
|
+
"standard file not found: should have one of " + ', '.join(self.READMES)
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
def make_release_tree(self, base_dir, files) -> None:
|
|
177
|
+
orig.sdist.make_release_tree(self, base_dir, files)
|
|
178
|
+
|
|
179
|
+
# Save any egg_info command line options used to create this sdist
|
|
180
|
+
dest = os.path.join(base_dir, 'setup.cfg')
|
|
181
|
+
if hasattr(os, 'link') and os.path.exists(dest):
|
|
182
|
+
# unlink and re-copy, since it might be hard-linked, and
|
|
183
|
+
# we don't want to change the source version
|
|
184
|
+
os.unlink(dest)
|
|
185
|
+
self.copy_file('setup.cfg', dest)
|
|
186
|
+
|
|
187
|
+
self.get_finalized_command('egg_info').save_version_info(dest)
|
|
188
|
+
|
|
189
|
+
def _manifest_is_not_generated(self):
|
|
190
|
+
# check for special comment used in 2.7.1 and higher
|
|
191
|
+
if not os.path.isfile(self.manifest):
|
|
192
|
+
return False
|
|
193
|
+
|
|
194
|
+
with open(self.manifest, 'rb') as fp:
|
|
195
|
+
first_line = fp.readline()
|
|
196
|
+
return first_line != b'# file GENERATED by distutils, do NOT edit\n'
|
|
197
|
+
|
|
198
|
+
def read_manifest(self):
|
|
199
|
+
"""Read the manifest file (named by 'self.manifest') and use it to
|
|
200
|
+
fill in 'self.filelist', the list of files to include in the source
|
|
201
|
+
distribution.
|
|
202
|
+
"""
|
|
203
|
+
log.info("reading manifest file '%s'", self.manifest)
|
|
204
|
+
manifest = open(self.manifest, 'rb')
|
|
205
|
+
for bytes_line in manifest:
|
|
206
|
+
# The manifest must contain UTF-8. See #303.
|
|
207
|
+
try:
|
|
208
|
+
line = bytes_line.decode('UTF-8')
|
|
209
|
+
except UnicodeDecodeError:
|
|
210
|
+
log.warn(f"{line!r} not UTF-8 decodable -- skipping")
|
|
211
|
+
continue
|
|
212
|
+
# ignore comments and blank lines
|
|
213
|
+
line = line.strip()
|
|
214
|
+
if line.startswith('#') or not line:
|
|
215
|
+
continue
|
|
216
|
+
self.filelist.append(line)
|
|
217
|
+
manifest.close()
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import configparser
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
from .. import Command
|
|
5
|
+
from ..unicode_utils import _cfg_read_utf8_with_fallback
|
|
6
|
+
|
|
7
|
+
import distutils
|
|
8
|
+
from distutils import log
|
|
9
|
+
from distutils.errors import DistutilsOptionError
|
|
10
|
+
from distutils.util import convert_path
|
|
11
|
+
|
|
12
|
+
__all__ = ['config_file', 'edit_config', 'option_base', 'setopt']
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def config_file(kind="local"):
|
|
16
|
+
"""Get the filename of the distutils, local, global, or per-user config
|
|
17
|
+
|
|
18
|
+
`kind` must be one of "local", "global", or "user"
|
|
19
|
+
"""
|
|
20
|
+
if kind == 'local':
|
|
21
|
+
return 'setup.cfg'
|
|
22
|
+
if kind == 'global':
|
|
23
|
+
return os.path.join(os.path.dirname(distutils.__file__), 'distutils.cfg')
|
|
24
|
+
if kind == 'user':
|
|
25
|
+
dot = os.name == 'posix' and '.' or ''
|
|
26
|
+
return os.path.expanduser(convert_path(f"~/{dot}pydistutils.cfg"))
|
|
27
|
+
raise ValueError("config_file() type must be 'local', 'global', or 'user'", kind)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def edit_config(filename, settings, dry_run=False):
|
|
31
|
+
"""Edit a configuration file to include `settings`
|
|
32
|
+
|
|
33
|
+
`settings` is a dictionary of dictionaries or ``None`` values, keyed by
|
|
34
|
+
command/section name. A ``None`` value means to delete the entire section,
|
|
35
|
+
while a dictionary lists settings to be changed or deleted in that section.
|
|
36
|
+
A setting of ``None`` means to delete that setting.
|
|
37
|
+
"""
|
|
38
|
+
log.debug("Reading configuration from %s", filename)
|
|
39
|
+
opts = configparser.RawConfigParser()
|
|
40
|
+
opts.optionxform = lambda optionstr: optionstr # type: ignore[method-assign] # overriding method
|
|
41
|
+
_cfg_read_utf8_with_fallback(opts, filename)
|
|
42
|
+
|
|
43
|
+
for section, options in settings.items():
|
|
44
|
+
if options is None:
|
|
45
|
+
log.info("Deleting section [%s] from %s", section, filename)
|
|
46
|
+
opts.remove_section(section)
|
|
47
|
+
else:
|
|
48
|
+
if not opts.has_section(section):
|
|
49
|
+
log.debug("Adding new section [%s] to %s", section, filename)
|
|
50
|
+
opts.add_section(section)
|
|
51
|
+
for option, value in options.items():
|
|
52
|
+
if value is None:
|
|
53
|
+
log.debug("Deleting %s.%s from %s", section, option, filename)
|
|
54
|
+
opts.remove_option(section, option)
|
|
55
|
+
if not opts.options(section):
|
|
56
|
+
log.info(
|
|
57
|
+
"Deleting empty [%s] section from %s", section, filename
|
|
58
|
+
)
|
|
59
|
+
opts.remove_section(section)
|
|
60
|
+
else:
|
|
61
|
+
log.debug(
|
|
62
|
+
"Setting %s.%s to %r in %s", section, option, value, filename
|
|
63
|
+
)
|
|
64
|
+
opts.set(section, option, value)
|
|
65
|
+
|
|
66
|
+
log.info("Writing %s", filename)
|
|
67
|
+
if not dry_run:
|
|
68
|
+
with open(filename, 'w', encoding="utf-8") as f:
|
|
69
|
+
opts.write(f)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class option_base(Command):
|
|
73
|
+
"""Abstract base class for commands that mess with config files"""
|
|
74
|
+
|
|
75
|
+
user_options = [
|
|
76
|
+
('global-config', 'g', "save options to the site-wide distutils.cfg file"),
|
|
77
|
+
('user-config', 'u', "save options to the current user's pydistutils.cfg file"),
|
|
78
|
+
('filename=', 'f', "configuration file to use (default=setup.cfg)"),
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
boolean_options = [
|
|
82
|
+
'global-config',
|
|
83
|
+
'user-config',
|
|
84
|
+
]
|
|
85
|
+
|
|
86
|
+
def initialize_options(self):
|
|
87
|
+
self.global_config = None
|
|
88
|
+
self.user_config = None
|
|
89
|
+
self.filename = None
|
|
90
|
+
|
|
91
|
+
def finalize_options(self):
|
|
92
|
+
filenames = []
|
|
93
|
+
if self.global_config:
|
|
94
|
+
filenames.append(config_file('global'))
|
|
95
|
+
if self.user_config:
|
|
96
|
+
filenames.append(config_file('user'))
|
|
97
|
+
if self.filename is not None:
|
|
98
|
+
filenames.append(self.filename)
|
|
99
|
+
if not filenames:
|
|
100
|
+
filenames.append(config_file('local'))
|
|
101
|
+
if len(filenames) > 1:
|
|
102
|
+
raise DistutilsOptionError(
|
|
103
|
+
"Must specify only one configuration file option", filenames
|
|
104
|
+
)
|
|
105
|
+
(self.filename,) = filenames
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
class setopt(option_base):
|
|
109
|
+
"""Save command-line options to a file"""
|
|
110
|
+
|
|
111
|
+
description = "set an option in setup.cfg or another config file"
|
|
112
|
+
|
|
113
|
+
user_options = [
|
|
114
|
+
('command=', 'c', 'command to set an option for'),
|
|
115
|
+
('option=', 'o', 'option to set'),
|
|
116
|
+
('set-value=', 's', 'value of the option'),
|
|
117
|
+
('remove', 'r', 'remove (unset) the value'),
|
|
118
|
+
] + option_base.user_options
|
|
119
|
+
|
|
120
|
+
boolean_options = option_base.boolean_options + ['remove']
|
|
121
|
+
|
|
122
|
+
def initialize_options(self):
|
|
123
|
+
option_base.initialize_options(self)
|
|
124
|
+
self.command = None
|
|
125
|
+
self.option = None
|
|
126
|
+
self.set_value = None
|
|
127
|
+
self.remove = None
|
|
128
|
+
|
|
129
|
+
def finalize_options(self) -> None:
|
|
130
|
+
option_base.finalize_options(self)
|
|
131
|
+
if self.command is None or self.option is None:
|
|
132
|
+
raise DistutilsOptionError("Must specify --command *and* --option")
|
|
133
|
+
if self.set_value is None and not self.remove:
|
|
134
|
+
raise DistutilsOptionError("Must specify --set-value or --remove")
|
|
135
|
+
|
|
136
|
+
def run(self) -> None:
|
|
137
|
+
edit_config(
|
|
138
|
+
self.filename,
|
|
139
|
+
{self.command: {self.option.replace('-', '_'): self.set_value}},
|
|
140
|
+
self.dry_run,
|
|
141
|
+
)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from setuptools import Command
|
|
4
|
+
from setuptools.warnings import SetuptoolsDeprecationWarning
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# Would restrict to Literal["test"], but mypy doesn't support it: https://github.com/python/mypy/issues/8203
|
|
8
|
+
def __getattr__(name: str) -> type[_test]:
|
|
9
|
+
if name == 'test':
|
|
10
|
+
SetuptoolsDeprecationWarning.emit(
|
|
11
|
+
"The test command is disabled and references to it are deprecated.",
|
|
12
|
+
"Please remove any references to `setuptools.command.test` in all "
|
|
13
|
+
"supported versions of the affected package.",
|
|
14
|
+
due_date=(2024, 11, 15),
|
|
15
|
+
stacklevel=2,
|
|
16
|
+
)
|
|
17
|
+
return _test
|
|
18
|
+
raise AttributeError(name)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class _test(Command):
|
|
22
|
+
"""
|
|
23
|
+
Stub to warn when test command is referenced or used.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
description = "stub for old test command (do not use)"
|
|
27
|
+
|
|
28
|
+
user_options = [
|
|
29
|
+
('test-module=', 'm', "Run 'test_suite' in specified module"),
|
|
30
|
+
(
|
|
31
|
+
'test-suite=',
|
|
32
|
+
's',
|
|
33
|
+
"Run single test, case or suite (e.g. 'module.test_suite')",
|
|
34
|
+
),
|
|
35
|
+
('test-runner=', 'r', "Test runner to use"),
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
def initialize_options(self):
|
|
39
|
+
pass
|
|
40
|
+
|
|
41
|
+
def finalize_options(self):
|
|
42
|
+
pass
|
|
43
|
+
|
|
44
|
+
def run(self):
|
|
45
|
+
raise RuntimeError("Support for the test command was removed in Setuptools 72")
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
|
|
3
|
+
__all__ = ['tomllib']
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
if sys.version_info >= (3, 11):
|
|
7
|
+
import tomllib
|
|
8
|
+
else: # pragma: no cover
|
|
9
|
+
import tomli as tomllib
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
if sys.version_info >= (3, 11):
|
|
13
|
+
|
|
14
|
+
def add_note(ex, note):
|
|
15
|
+
ex.add_note(note)
|
|
16
|
+
|
|
17
|
+
else: # pragma: no cover
|
|
18
|
+
|
|
19
|
+
def add_note(ex, note):
|
|
20
|
+
vars(ex).setdefault('__notes__', []).append(note)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import shutil
|
|
4
|
+
import sys
|
|
5
|
+
from typing import TYPE_CHECKING, Any, Callable
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from _typeshed import ExcInfo, StrOrBytesPath
|
|
9
|
+
from typing_extensions import TypeAlias
|
|
10
|
+
|
|
11
|
+
# Same as shutil._OnExcCallback from typeshed
|
|
12
|
+
_OnExcCallback: TypeAlias = Callable[[Callable[..., Any], str, BaseException], object]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def shutil_rmtree(
|
|
16
|
+
path: StrOrBytesPath,
|
|
17
|
+
ignore_errors: bool = False,
|
|
18
|
+
onexc: _OnExcCallback | None = None,
|
|
19
|
+
) -> None:
|
|
20
|
+
if sys.version_info >= (3, 12):
|
|
21
|
+
return shutil.rmtree(path, ignore_errors, onexc=onexc)
|
|
22
|
+
|
|
23
|
+
def _handler(fn: Callable[..., Any], path: str, excinfo: ExcInfo) -> None:
|
|
24
|
+
if onexc:
|
|
25
|
+
onexc(fn, path, excinfo[1])
|
|
26
|
+
|
|
27
|
+
return shutil.rmtree(path, ignore_errors, onerror=_handler)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import sys
|
|
4
|
+
|
|
5
|
+
if sys.version_info >= (3, 12, 4):
|
|
6
|
+
# Python 3.13 should support `.pth` files encoded in UTF-8
|
|
7
|
+
# See discussion in https://github.com/python/cpython/issues/77102
|
|
8
|
+
PTH_ENCODING: str | None = "utf-8"
|
|
9
|
+
else:
|
|
10
|
+
from .py39 import LOCALE_ENCODING
|
|
11
|
+
|
|
12
|
+
# PTH_ENCODING = "locale"
|
|
13
|
+
PTH_ENCODING = LOCALE_ENCODING
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
|
|
3
|
+
# Explicitly use the ``"locale"`` encoding in versions that support it,
|
|
4
|
+
# otherwise just rely on the implicit handling of ``encoding=None``.
|
|
5
|
+
# Since all platforms that support ``EncodingWarning`` also support
|
|
6
|
+
# ``encoding="locale"``, this can be used to suppress the warning.
|
|
7
|
+
# However, please try to use UTF-8 when possible
|
|
8
|
+
# (.pth files are the notorious exception: python/cpython#77102, pypa/setuptools#3937).
|
|
9
|
+
LOCALE_ENCODING = "locale" if sys.version_info >= (3, 10) else None
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""For backward compatibility, expose main functions from
|
|
2
|
+
``setuptools.config.setupcfg``
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from functools import wraps
|
|
6
|
+
from typing import Callable, TypeVar, cast
|
|
7
|
+
|
|
8
|
+
from ..warnings import SetuptoolsDeprecationWarning
|
|
9
|
+
from . import setupcfg
|
|
10
|
+
|
|
11
|
+
Fn = TypeVar("Fn", bound=Callable)
|
|
12
|
+
|
|
13
|
+
__all__ = ('parse_configuration', 'read_configuration')
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _deprecation_notice(fn: Fn) -> Fn:
|
|
17
|
+
@wraps(fn)
|
|
18
|
+
def _wrapper(*args, **kwargs):
|
|
19
|
+
SetuptoolsDeprecationWarning.emit(
|
|
20
|
+
"Deprecated API usage.",
|
|
21
|
+
f"""
|
|
22
|
+
As setuptools moves its configuration towards `pyproject.toml`,
|
|
23
|
+
`{__name__}.{fn.__name__}` became deprecated.
|
|
24
|
+
|
|
25
|
+
For the time being, you can use the `{setupcfg.__name__}` module
|
|
26
|
+
to access a backward compatible API, but this module is provisional
|
|
27
|
+
and might be removed in the future.
|
|
28
|
+
|
|
29
|
+
To read project metadata, consider using
|
|
30
|
+
``build.util.project_wheel_metadata`` (https://pypi.org/project/build/).
|
|
31
|
+
For simple scenarios, you can also try parsing the file directly
|
|
32
|
+
with the help of ``configparser``.
|
|
33
|
+
""",
|
|
34
|
+
# due_date not defined yet, because the community still heavily relies on it
|
|
35
|
+
# Warning introduced in 24 Mar 2022
|
|
36
|
+
)
|
|
37
|
+
return fn(*args, **kwargs)
|
|
38
|
+
|
|
39
|
+
return cast(Fn, _wrapper)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
read_configuration = _deprecation_notice(setupcfg.read_configuration)
|
|
43
|
+
parse_configuration = _deprecation_notice(setupcfg.parse_configuration)
|