pyproject.toml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. [build-system]
  2. requires = ["setuptools>=77.0", "wheel"]
  3. build-backend = "setuptools.build_meta"
  4. [project]
  5. name = "cloudbridge"
  6. description = "A simple layer of abstraction over multiple cloud providers."
  7. readme = "README.rst"
  8. license = "MIT"
  9. license-files = ["LICENSE"]
  10. requires-python = ">=3.13"
  11. authors = [
  12. { name = "Galaxy and GVL Projects", email = "help@genome.edu.au" },
  13. ]
  14. keywords = ["cloud", "aws", "azure", "gcp", "openstack", "iaas"]
  15. classifiers = [
  16. "Development Status :: 5 - Production/Stable",
  17. "Environment :: Console",
  18. "Intended Audience :: Developers",
  19. "Intended Audience :: System Administrators",
  20. "Operating System :: OS Independent",
  21. "Programming Language :: Python",
  22. "Programming Language :: Python :: 3",
  23. "Programming Language :: Python :: 3.13",
  24. "Programming Language :: Python :: Implementation :: CPython",
  25. "Topic :: Software Development :: Libraries :: Python Modules",
  26. ]
  27. dependencies = [
  28. "tenacity>=6.0",
  29. "deprecation>=2.0.7",
  30. "pyeventsystem<2",
  31. ]
  32. dynamic = ["version"]
  33. [project.urls]
  34. Homepage = "http://cloudbridge.cloudve.org/"
  35. Source = "https://github.com/CloudVE/cloudbridge"
  36. Issues = "https://github.com/CloudVE/cloudbridge/issues"
  37. [project.optional-dependencies]
  38. aws = [
  39. "boto3>=1.9.86,<2.0.0",
  40. ]
  41. # Install azure>=3.0.0 package to find which of the azure libraries listed
  42. # below are compatible with each other. List individual libraries instead
  43. # of using the azure umbrella package to speed up installation.
  44. # Minimums match SDK generation tested against the model-class
  45. # serialization fixes in cloudbridge/providers/azure/. Older SDKs may
  46. # work but are not covered by integration tests.
  47. azure = [
  48. "azure-identity>=1.20.0,<2.0.0",
  49. "azure-common>=1.1.28,<2.0.0",
  50. "azure-core>=1.30.0,<2.0.0",
  51. "azure-mgmt-devtestlabs>=9.0.0,<10.0.0",
  52. "azure-mgmt-resource>=23.0.0,<26.0.0",
  53. "azure-mgmt-subscription>=3.0.0,<4.0.0",
  54. "azure-mgmt-compute>=34.0.0,<39.0.0",
  55. "azure-mgmt-network>=28.0.0,<31.0.0",
  56. "azure-mgmt-storage>=22.0.0,<25.0.0",
  57. "azure-storage-blob>=12.20.0,<13.0.0",
  58. "azure-data-tables>=12.4.0,<13.0.0",
  59. "paramiko<6.0.0",
  60. ]
  61. gcp = [
  62. "google-api-python-client>=2.0,<3.0.0",
  63. ]
  64. # Minimums match SDK generation tested against the OpenStack
  65. # provider fixes in cloudbridge/providers/openstack/. The previous
  66. # floors were circa-2018 and exposed Nova/Neutron APIs (e.g. the
  67. # add_floating_ip_to_server action) that are gone from any modern
  68. # OpenStack deployment.
  69. openstack = [
  70. "openstacksdk>=3.0.0,<5.0.0",
  71. "python-novaclient>=17.0.0,<20.0",
  72. "python-swiftclient>=4.0.0,<5.0",
  73. "python-neutronclient>=11.0.0,<13.0",
  74. "python-keystoneclient>=4.0.0,<7.0",
  75. ]
  76. full = [
  77. "cloudbridge[aws,azure,gcp,openstack]",
  78. ]
  79. # httpretty is required with/for moto 1.0.0 or AWS tests fail
  80. dev = [
  81. "cloudbridge[full]",
  82. "tox>=4.0.0",
  83. "pytest",
  84. "moto[ec2,s3]>=5.0.0",
  85. "packaging",
  86. "sphinx>=1.3.1",
  87. "pydevd",
  88. "flake8>=3.3.0",
  89. "flake8-import-order>=0.12",
  90. ]
  91. [tool.setuptools.dynamic]
  92. version = { attr = "cloudbridge.__version__" }
  93. [tool.setuptools.packages.find]
  94. include = ["cloudbridge*"]
  95. exclude = ["tests*"]
  96. [tool.coverage.run]
  97. branch = true
  98. source = ["cloudbridge"]
  99. omit = [
  100. "cloudbridge/interfaces/*",
  101. "cloudbridge/__init__.py",
  102. ]
  103. parallel = true