[build-system] requires = ["setuptools>=77.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "cloudbridge" description = "A simple layer of abstraction over multiple cloud providers." readme = "README.rst" license = "MIT" license-files = ["LICENSE"] requires-python = ">=3.13" authors = [ { name = "Galaxy and GVL Projects", email = "help@genome.edu.au" }, ] keywords = ["cloud", "aws", "azure", "gcp", "openstack", "iaas"] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = [ "tenacity>=6.0", "deprecation>=2.0.7", "pyeventsystem<2", ] dynamic = ["version"] [project.urls] Homepage = "http://cloudbridge.cloudve.org/" Source = "https://github.com/CloudVE/cloudbridge" Issues = "https://github.com/CloudVE/cloudbridge/issues" [project.optional-dependencies] aws = [ "boto3>=1.9.86,<2.0.0", ] # Install azure>=3.0.0 package to find which of the azure libraries listed # below are compatible with each other. List individual libraries instead # of using the azure umbrella package to speed up installation. # Minimums match SDK generation tested against the model-class # serialization fixes in cloudbridge/providers/azure/. Older SDKs may # work but are not covered by integration tests. azure = [ "azure-identity>=1.20.0,<2.0.0", "azure-common>=1.1.28,<2.0.0", "azure-core>=1.30.0,<2.0.0", "azure-mgmt-devtestlabs>=9.0.0,<10.0.0", "azure-mgmt-resource>=23.0.0,<26.0.0", "azure-mgmt-subscription>=3.0.0,<4.0.0", "azure-mgmt-compute>=34.0.0,<39.0.0", "azure-mgmt-network>=28.0.0,<31.0.0", "azure-mgmt-storage>=22.0.0,<25.0.0", "azure-storage-blob>=12.20.0,<13.0.0", "azure-data-tables>=12.4.0,<13.0.0", "paramiko<6.0.0", ] gcp = [ "google-api-python-client>=2.0,<3.0.0", ] # Minimums match SDK generation tested against the OpenStack # provider fixes in cloudbridge/providers/openstack/. The previous # floors were circa-2018 and exposed Nova/Neutron APIs (e.g. the # add_floating_ip_to_server action) that are gone from any modern # OpenStack deployment. openstack = [ "openstacksdk>=3.0.0,<5.0.0", "python-novaclient>=17.0.0,<20.0", "python-swiftclient>=4.0.0,<5.0", "python-neutronclient>=11.0.0,<13.0", "python-keystoneclient>=4.0.0,<7.0", ] full = [ "cloudbridge[aws,azure,gcp,openstack]", ] # httpretty is required with/for moto 1.0.0 or AWS tests fail dev = [ "cloudbridge[full]", "tox>=4.0.0", "pytest", "moto[ec2,s3]>=5.0.0", "packaging", "sphinx>=1.3.1", "pydevd", "flake8>=3.3.0", "flake8-import-order>=0.12", ] [tool.setuptools.dynamic] version = { attr = "cloudbridge.__version__" } [tool.setuptools.packages.find] include = ["cloudbridge*"] exclude = ["tests*"] [tool.coverage.run] branch = true source = ["cloudbridge"] omit = [ "cloudbridge/interfaces/*", "cloudbridge/__init__.py", ] parallel = true