pyproject.toml (223 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. [build-system] requires = [ "setuptools~=75.3.0", "wheel~=0.45.1" ] build-backend = "setuptools.build_meta" [project] name = "apache-libcloud" description = "A standard Python library that abstracts away differences among multiple cloud provider APIs. For more information and documentation, please see https://libcloud.apache.org" authors = [ {name = "Apache Software Foundation", email = "dev@libcloud.apache.org"}, ] keywords = [ "cloud", "libcloud", "apache", "aws", "ec2", ] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules", ] requires-python = ">=3.8" dependencies = [ "requests>=2.26.0", ] license = {text = "Apache License (2.0)"} dynamic = ["version", "readme"] [project.urls] # Threre seems to be known bug with homepage and pyproject.yaml https://github.com/pypa/packaging-problems/issues/606 Homepage = "https://libcloud.apache.org" Documentation = "https://libcloud.readthedocs.io" "Mailing list" = "https://libcloud.apache.org/community.html#mailing-lists" Security = "https://libcloud.apache.org/security.html" Repository = "https://github.com/apache/libcloud" Tests = "https://github.com/apache/libcloud/tree/trunk/libcloud/test" Coverage = "https://app.codecov.io/github/apache/libcloud" Issues = "https://github.com/apache/libcloud/issues" Distribution = "https://pypi.org/project/apache-libcloud" Changelog = "https://github.com/apache/libcloud/blob/trunk/CHANGES.rst" [project.optional-dependencies] build = [ "build==1.2.2" ] publish = [ "twine==5.1.1" ] test = [ "pytest", "requests_mock", ] [tool.setuptools.packages.find] where = ["./"] include = ["libcloud", "libcloud.test*", "libcloud.*" ] [tool.setuptools.package-data] "libcloud.data" = [ "pricing.json" ] "libcloud.test" = [ "**/*.json", "**/*.xml", "**/*.pub", "**/*.key", "**/*.pem", "**/*.crt", "**/*.csv", "**/*.txt", "**/*.html", ] [tool.setuptools] include-package-data = true exclude-package-data = { "*" = ["secrets.py"], "libcloud.test" = ["secrets.py"] } [tool.setuptools.dynamic] version = {attr = "libcloud.__version__"} readme = {file = ["README.rst"], content-type = "text/x-rst"} [tool.distutils.bdist_wheel] [tool.black] line_length = 100 target_version = ['py39', 'py310', 'py311', 'py312', 'py313'] include = '\.pyi?$' exclude = ''' ( /( | \.git | \.virtualenv | __pycache__ | secrets\.py )/ ) ''' [tool.isort] profile = "black" multi_line_output = 3 line_length = 99 src_paths = ["libcloud", "contrib", "docs", "demos", "pylint_plugins", "integration"] skip_glob = [".venv/*", ".tox/*", ".github/actions/*"] length_sort = true [tool.pytest.ini_options] # Set options for pytest python_classes = "*Test" testpaths = "libcloud/test" # Show slowest 10 tests in the output addopts = "--durations=10" # Ignore UserWarning's filterwarnings = ["ignore::UserWarning"] [tool.bandit] exclude_dirs = [".tox", ".git", "build", "dist", "venv", "tests/*"] skips = ["B411"] [tool.pylint.MASTER] ignore = "test,constants" persistent = "yes" load-plugins = "" [tool.pylint.'MESSAGES CONTROL'] disable = "redefined-builtin,too-many-arguments,too-few-public-methods,missing-docstring,invalid-name,abstract-method" [tool.pylint.TYPECHECK] generated-members = "async_request,objects" [tool.pylint.VARIABLES] init-import = "no" dummy-variables-rgx = "_|dummy" additional-builtins = "" [tool.pylint.FORMAT] max-line-length = 100 max-module-lines = 1000 indent-string = " " [tool.mypy] python_version = 3.8 platform = "linux" show_error_context = true show_column_numbers = true [[tool.mypy.overrides]] module = [ "lxml", "xml.dom", "xmlrpc.*", "paramiko.*", "cryptography.*", "lockfile.*", ] ignore_missing_imports = true [[tool.mypy.overrides]] module = [ "libcloud.utils.py3", "libcloud.compute.drivers.*", "libcloud.storage.drivers.*", "libcloud.dns.drivers.*", "libcloud.container.drivers.*", ] ignore_errors = true [tool.coverage.run] parallel = false branch = true source = ["libcloud"] [tool.coverage.paths] source = [ "libcloud/", ] tests = [ "libcloud/test/", ] [tool.coverage.report] show_missing = true skip_covered = true exclude_lines = [ # Have to re-enable the standard pragma "pragma: no cover", # Don't complain about missing debug-only code: "def __repr__", "def __str__", "if self\\.debug", # Don't complain if tests don't hit defensive assertion code: "raise AssertionError", "raise NotImplementedError", # Don't complain if non-runnable code isn't run: "if 0:", "if __name__ == .__main__.:", "__all__", "import", "deprecated_warning", "in_development_warning", "@abc.abstractmethod", # Type checking related code, "^if (False|TYPE_CHECKING):", "if typing.TYPE_CHECKING", ] ignore_errors = true [tool.coverage.html] directory = "coverage_html_report" [tool.codespell] skip = 'venvs,.venv,.git,build,*.egg-info,*.lock,libcloud/test/*/fixtures/*' # fo - file object, hda - hda mount point, nd - node, doesnt - inside the path, # ags - agreements ignore-words-list = 'fo,hda,nd,doesnt,ags' count = '' quiet-level = 3