| # 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~=66.1", |
| "wheel~=0.37.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.7", |
| "Programming Language :: Python :: 3.8", |
| "Programming Language :: Python :: 3.9", |
| "Programming Language :: Python :: 3.10", |
| "Programming Language :: Python :: 3.11", |
| "Programming Language :: Python :: 3.12", |
| "Programming Language :: Python :: Implementation :: CPython", |
| "Programming Language :: Python :: Implementation :: PyPy", |
| "Topic :: Software Development :: Libraries :: Python Modules", |
| ] |
| requires-python = ">=3.7" |
| 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==0.10.0" |
| ] |
| publish = [ |
| "twine==4.0.2" |
| ] |
| test = [ |
| "pytest", |
| "requests_mock", |
| ] |
| |
| [tool.setuptools.packages.find] |
| where = ["./"] |
| include = ["libcloud"] |
| |
| [tool.setuptools] |
| 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] |
| universal = true |
| |
| |
| [tool.black] |
| line_length = 100 |
| target_version = ['py37', 'py38', 'py39', 'py310', 'py311'] |
| include = '\.pyi?$' |
| extended_exclude = ''' |
| ( |
| /( |
| | \.git |
| | \.virtualenv |
| | __pycache__ |
| )/ |
| ) |
| ''' |
| |
| |
| [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.7 |
| 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] |
| branch = true |
| source = ["libcloud"] |
| |
| [tool.coverage.report] |
| 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", |
| ] |
| 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 |