Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
75 lines (70 loc) · 2.33 KB
/
Copy pathpyproject.toml
File metadata and controls
75 lines (70 loc) · 2.33 KB
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
[build-system]
requires = ["poetry_core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "serialized_data_interface"
version = "0.7.0"
description = "Serialized Data Interface for Juju Operators"
authors = [
"Dominik Fleischmann <dominik.fleischmann@canonical.com>",
"Kenneth Koski <kenneth.koski@canonical.com>"
]
license = "Apache-2.0"
readme = "README.md"
homepage = "https://github.com/canonical/serialized-data-interface/"
repository = "https://github.com/canonical/serialized-data-interface/"
classifiers = [
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
"License :: OSI Approved :: Apache Software License"
]
[tool.poetry.dependencies]
python = "^3.9"
# Pinning jsonschema because its dependencies introduced
# a dependency of rustc, which we don't want to have installed
# in charms that use SDI
# For more information go to canonical/bundle-kubeflow/issues/648
# For more reference go to:
# https://github.com/python-jsonschema/jsonschema/issues/1117
# https://github.com/python-jsonschema/jsonschema/issues/1114
#
# Current state (2024–2025):
# jsonschema >= 4.18 ships pure-Python wheels (py3-none-any)
# rpds-py provides pre-built wheels for common platforms (manylinux, macOS, Windows, ARM)
# Rust is only required when building rpds-py from source
#
# NOTE:
# While rpds-py ships prebuilt wheels, Rust may still be required if pip falls
# back to source builds (e.g., unsupported platforms, outdated pip,or
# --no-binary usage). Build environments SHOULD prefer
# wheels (e.g., --only-binary=:all:) to avoid reintroducing this dependency.
#
# The constraint is therefore relaxed to align with current ecosystem behavior
# and downstream requirements (e.g., litellm >= 1.82.3 requires jsonschema >= 4.23),
# while preserving API stability (<5.0.0).
jsonschema = ">4.23, <5.0"
ops = "*"
pyyaml = "*"
requests = "*"
[tool.poetry.dev-dependencies]
black = "^23.1"
flake8 = "^7.0"
flake8-builtins = "^1.5.3"
flake8-copyright = "^0.2.4"
flake8-docstrings = "^1.6.0"
flake8-polyfill = "^1.0.2"
pep8-naming = "^0.12.1"
isort = "^5.9"
mdformat = "^0.7"
mdformat-gfm = "^0.3"
mypy = "^1.4"
pytest = "^8.0"
pytest-mock = "^3.6"
types-jsonschema = "^3.2"
types-pyyaml = "^5.4"
types-requests = "^2.25"
ipdb = "^0.13.9"
[tool.isort]
profile = "black"
[tool.bandit]
exclude_dirs = [".tox", ".venv", "venv"]