/
pyproject.toml
274 lines (259 loc) · 8.23 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
[tool.poetry]
name = "waldur-mastermind"
version = "0.0.0"
description = "Waldur MasterMind is a hybrid cloud orchestrator."
authors = ["OpenNode Team <info@opennodecloud.com>"]
license = "MIT"
homepage = "https://waldur.com"
documentation = "https://docs.waldur.com"
classifiers=[
"Framework :: Django",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"Operating System :: OS Independent",
"License :: OSI Approved :: MIT License",
]
[tool.poetry.dependencies]
python = "^3.10,<3.12"
apache-libcloud = "2.2.1"
azure-mgmt-compute = "20.0.0"
azure-mgmt-network = "19.0.0"
azure-mgmt-nspkg = "3.0.2"
azure-mgmt-rdbms = "8.0.0"
azure-mgmt-resource = "18.0.0"
azure-mgmt-sql = "2.0.0"
azure-mgmt-storage = "18.0.0"
msrestazure = "0.6.4"
azure-identity= "1.6.0"
celery = "5.3.1"
croniter = "1.3.8"
django-admin-tools = "0.9.2"
django-auth-ldap = "4.1.0"
django-filter = "22.1"
django-fluent-dashboard = "2.0"
django-fsm = "2.8.1"
django-jsoneditor = "0.2.3"
django-model-utils = "4.2.0"
django-redis-cache = "3.0.0"
django-rest-swagger = "2.1.2"
django-reversion = "5.0.3"
djangorestframework = "3.14.0"
djangosaml2 = "1.5.3"
docker = "7.0.0"
hiredis = "2.0.0"
iptools = "0.7.0"
jira = "2.0.0"
lxml = "^4.6.5"
paypalrestsdk = "1.13.1"
pbr = "4.0.4"
Pillow = "^9.0.1"
prettytable = "0.7.2"
psycopg2-binary = "2.9.5"
pycountry = "22.3.5"
PyJWT = "^2.3.0"
pyOpenSSL = "22.1.0"
pysaml2 = "7.3.0"
python-cinderclient = "4.3.0"
python-dateutil = "2.8.2"
python-digitalocean = "1.16.0"
python-glanceclient = "2.11.1"
python-keystoneclient = "3.16.0"
python-neutronclient = "6.12.0"
python-novaclient = "10.3.0"
pyvat = "1.3.17"
pyvmomi = "8.0.2.0.1"
PyYAML = "6.0.1"
redis = "3.4.1"
requests = "^2.26.0"
sentry-sdk = "^1.12.1"
python-freeipa = "0.2.5"
django-modeltranslation = "0.18.5"
django-axes = "^5.4.3"
geopy = "^2.0.0"
google-api-python-client = "^1.12.11"
google-auth-httplib2 = "^0.1.0"
google-auth-oauthlib = "^0.4.6"
django-health-check = "^3.16.2"
django-dbtemplates = "4.0"
django-upload-validator = {git = "https://github.com/waldur/django-upload-validator", rev="master"}
pydantic = "^1.8.2"
SQLAlchemy = "1.3.0"
cryptography = "38.0.3"
django-binary-database-files = {git = "https://github.com/waldur/django-binary-database-files.git", rev = "fix/load-command-for-db-files"}
python-waldur-client = "0.2.8"
kubernetes = ">=21.7.0"
Django = "^4.2"
azure-mgmt-consumption = "^9.0.0"
django-netfields = "^1.3.0"
httpagentparser = "^1.9.2"
bleach = {extras = ["css"], version = "^5.0.1"}
django-constance = {extras = ["database"], version = "^2.9.1"}
zammad-py = "1.1.0"
html2text = "^2020.1.16"
textile = "^4.0.2"
[tool.poetry.dev-dependencies]
pytest = "7.2.0"
pytest-cov = "3.0.0"
pytest-django = "^4.5.2"
responses = "0.18.0"
ddt = "1.6.0"
factory-boy = "3.3.0"
freezegun = "1.2.2"
mock-django = "0.6.10"
django-cors-headers = "^3.2.1"
pre-commit = "^2.13.0"
pytest-split-tests = "^1.0.9"
[tool.poetry.plugins.console_scripts]
waldur = "waldur_core.server.manage:main"
[tool.poetry.plugins.waldur_extensions]
waldur_analytics = "waldur_mastermind.analytics.extension:AnalyticsExtension"
waldur_auth_bcc = "waldur_auth_bcc.extension:AuthBCCExtension"
waldur_auth_saml2 = "waldur_auth_saml2.extension:SAML2Extension"
waldur_auth_social = "waldur_auth_social.extension:AuthSocialExtension"
waldur_auth_valimo = "waldur_auth_valimo.extension:AuthValimoExtension"
waldur_aws = "waldur_aws.extension:AWSExtension"
waldur_azure = "waldur_azure.extension:AzureExtension"
waldur_billing = "waldur_mastermind.billing.extension:BillingExtension"
waldur_booking = "waldur_mastermind.booking.extension:BookingExtension"
waldur_digitalocean = "waldur_digitalocean.extension:DigitalOceanExtension"
waldur_freeipa = "waldur_freeipa.extension:FreeIPAExtension"
waldur_geo_ip = "waldur_geo_ip.extension:GeoIPExtension"
waldur_invoices = "waldur_mastermind.invoices.extension:InvoicesExtension"
waldur_jira = "waldur_jira.extension:JiraExtension"
waldur_marketplace = "waldur_mastermind.marketplace.extension:MarketplaceExtension"
waldur_marketplace_azure = "waldur_mastermind.marketplace_azure.extension:MarketplaceAzureExtension"
waldur_marketplace_checklist = "waldur_mastermind.marketplace_checklist.extension:MarketplaceChecklistExtension"
waldur_marketplace_openstack = "waldur_mastermind.marketplace_openstack.extension:MarketplaceOpenStackExtension"
waldur_marketplace_rancher = "waldur_mastermind.marketplace_rancher.extension:MarketplaceRancherExtension"
waldur_marketplace_script = "waldur_mastermind.marketplace_script.extension:MarketplaceScriptExtension"
waldur_marketplace_slurm = "waldur_mastermind.marketplace_slurm.extension:MarketplaceSlurmExtension"
waldur_marketplace_slurm_remote = "waldur_mastermind.marketplace_slurm_remote.extension:MarketplaceSlurmRemoteExtension"
waldur_marketplace_support = "waldur_mastermind.marketplace_support.extension:MarketplaceSupportExtension"
waldur_marketplace_vmware = "waldur_mastermind.marketplace_vmware.extension:MarketplaceVMwareExtension"
waldur_marketplace_remote = "waldur_mastermind.marketplace_remote.extension:MarketplaceRemoteExtension"
waldur_marketplace_promotions = "waldur_mastermind.promotions.extension:MarketplacePromotionsExtension"
waldur_openstack = "waldur_openstack.openstack.extension:OpenStackExtension"
waldur_openstack_tenant = "waldur_openstack.openstack_tenant.extension:OpenStackTenantExtension"
waldur_notifications = "waldur_mastermind.notifications.extension:NotificationsExtension"
waldur_policy = "waldur_mastermind.policy.extension:PolicyExtension"
waldur_proposal = "waldur_mastermind.proposal.extension:ProposalExtension"
waldur_paypal = "waldur_paypal.extension:PayPalExtension"
waldur_rancher = "waldur_rancher.extension:RancherExtension"
waldur_slurm = "waldur_slurm.extension:SlurmExtension"
waldur_support = "waldur_mastermind.support.extension:SupportExtension"
waldur_vmware = "waldur_vmware.extension:VMwareExtension"
waldur_pid = "waldur_pid.extension:PIDExtension"
waldur_google = "waldur_mastermind.google.extension:GoogleExtension"
waldur_hpc = "waldur_hpc.extension:HPCExtension"
waldur_keycloak = "waldur_keycloak.extension:KeycloakExtension"
waldur_firecrest = "waldur_firecrest.extension:FirecrestExtension"
waldur_keycloak_rancher = "waldur_keycloak_rancher.extension:KeycloakRancherExtension"
waldur_zammad = "waldur_zammad.extension:ZammadExtension"
waldur_lexis = "waldur_lexis.extension:LexisExtension"
waldur_smax = "waldur_smax.extension:SmaxExtension"
waldur_marketplace_reppu = "waldur_mastermind.marketplace_reppu.extension:MarketplaceReppuExtension"
[tool.poetry.group.docs.dependencies]
pyparsing = "^3.1.1"
pydot = "^1.4.2"
django-extensions = "^3.2.3"
[tool.poetry.group.dev.dependencies]
djangorestframework-stubs = {extras = ["compatible-mypy"], version = "^3.14.5"}
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.ruff]
# Never enforce `E501` (line length violations).
lint.ignore = ["E501"]
lint.select = [
"E", # pycodestyle
"F", # pyflakes
"UP", # pyupgrade
"I001",# isort
]
target-version = "py311"
[tool.ruff.lint.isort]
known-first-party = [
"admin_tools",
"azure",
"bleach",
"celery",
"cinderclient",
"constance",
"croniter",
"cryptography",
"dateutil",
"dbtemplates",
"ddt",
"digitalocean",
"django_filters",
"django_fsm",
"django",
"djangosaml2",
"docker",
"factory",
"fluent_dashboard",
"freezegun",
"geopy",
"glanceclient",
"google_auth_oauthlib",
"google",
"googleapiclient",
"httpagentparser",
"iptools",
"jira",
"jsoneditor",
"jwt",
"keystoneauth1",
"keystoneclient",
"kubernetes",
"libcloud",
"lxml",
"magic",
"mock_django",
"mock",
"model_utils",
"modeltranslation",
"msrest",
"netaddr",
"netfields",
"neutronclient",
"novaclient",
"oauthlib",
"paypalrestsdk",
"PIL",
"pkg_resources",
"prettytable",
"pycountry",
"pydantic",
"python_freeipa",
"pytz",
"pytest",
"pyvat",
"pyVim",
"pyVmomi",
"redis",
"requests",
"responses",
"rest_framework_swagger",
"rest_framework",
"reversion",
"saml2",
"six",
"tablib",
"upload_validator",
"urllib3",
"waldur_client",
"yaml",
"zammad_py",
]
section-order = [
"future",
"standard-library",
"first-party",
"third-party",
"local-folder",
]
[tool.mypy]
plugins = [
"mypy_drf_plugin.main",
]