22# Copyright © 2025 Frequenz Energy-as-a-Service GmbH
33
44[build-system ]
5- requires = [
6- " setuptools == 75.8.0" ,
7- " setuptools_scm[toml] == 9.2.2" ,
8- " frequenz-repo-config[lib] == 0.13.6" ,
9- ]
10- build-backend = " setuptools.build_meta"
5+ requires = [" maturin>=1.9.6,<2.0" ]
6+ build-backend = " maturin"
117
128[project ]
139name = " frequenz-microgrid-component-graph"
1410description = " Python bindings for the Frequenz microgrid component graph rust library."
1511readme = " README.md"
1612license = { text = " MIT" }
1713keywords = [" frequenz" , " python" , " lib" , " library" , " microgrid-component-graph" ]
18- # TODO(cookiecutter): Remove and add more classifiers if appropriate
1914classifiers = [
2015 " Development Status :: 3 - Alpha" ,
2116 " Intended Audience :: Developers" ,
@@ -26,7 +21,6 @@ classifiers = [
2621 " Typing :: Typed" ,
2722]
2823requires-python = " >= 3.11, < 4"
29- # TODO(cookiecutter): Remove and add more dependencies if appropriate
3024dependencies = [
3125 " typing-extensions >= 4.14.1, < 5" ,
3226]
@@ -36,8 +30,13 @@ dynamic = ["version"]
3630name = " Frequenz Energy-as-a-Service GmbH"
37313832
39- # TODO(cookiecutter): Remove and add more optional dependencies if appropriate
4033[project .optional-dependencies ]
34+ microgrid = [
35+ " frequenz-client-microgrid @ git+https://github.com/frequenz-floss/frequenz-client-microgrid-python@refs/heads/v0.18.x" ,
36+ ]
37+ assets = [
38+ " frequenz-client-assets == 0.1.0"
39+ ]
4140dev-flake8 = [
4241 " flake8 == 7.3.0" ,
4342 " flake8-docstrings == 1.7.0" ,
@@ -74,6 +73,8 @@ dev-pylint = [
7473 " frequenz-microgrid-component-graph[dev-mkdocs,dev-noxfile,dev-pytest]" ,
7574]
7675dev-pytest = [
76+ " frequenz-microgrid-component-graph[microgrid]" ,
77+ " frequenz-microgrid-component-graph[assets]" ,
7778 " pytest == 8.4.2" ,
7879 " pylint == 4.0.2" , # We need this to check for the examples
7980 " frequenz-repo-config[extra-lint-examples] == 0.13.6" ,
@@ -82,7 +83,7 @@ dev-pytest = [
8283 " async-solipsism == 0.8" ,
8384]
8485dev = [
85- " frequenz-microgrid-component-graph[dev-mkdocs,dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]" ,
86+ " frequenz-microgrid-component-graph[dev-mkdocs,dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]" ,
8687]
8788
8889[project .urls ]
@@ -92,6 +93,11 @@ Issues = "https://github.com/frequenz-floss/frequenz-microgrid-component-graph-p
9293Repository = " https://github.com/frequenz-floss/frequenz-microgrid-component-graph-python"
9394Support = " https://github.com/frequenz-floss/frequenz-microgrid-component-graph-python/discussions/categories/support"
9495
96+ [tool .maturin ]
97+ features = [" pyo3/extension-module" ]
98+ module-name = " frequenz.microgrid_component_graph._component_graph"
99+ python-source = " python"
100+
95101[tool .black ]
96102line-length = 88
97103target-version = [' py311' ]
@@ -101,6 +107,7 @@ include = '\.pyi?$'
101107profile = " black"
102108line_length = 88
103109src_paths = [" benchmarks" , " examples" , " python" , " tests" ]
110+ skip_glob = [" *.pyi" ]
104111
105112[tool .flake8 ]
106113# We give some flexibility to go over 88, there are cases like long URLs or
0 commit comments