Skip to content

Commit 922990a

Browse files
committed
inprogress
Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 5247da9 commit 922990a

File tree

12 files changed

+1216
-11
lines changed

12 files changed

+1216
-11
lines changed

Cargo.lock

Lines changed: 257 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[package]
2+
name = "component-graph-python"
3+
version = "0.1.0"
4+
edition = "2024"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
[lib]
8+
name = "component_graph"
9+
crate-type = ["cdylib"]
10+
11+
[dependencies]
12+
pyo3 = "0.27.1"
13+
frequenz-microgrid-component-graph = "0.1.2"

pyproject.toml

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,15 @@
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]
139
name = "frequenz-microgrid-component-graph"
1410
description = "Python bindings for the Frequenz microgrid component graph rust library."
1511
readme = "README.md"
1612
license = { text = "MIT" }
1713
keywords = ["frequenz", "python", "lib", "library", "microgrid-component-graph"]
18-
# TODO(cookiecutter): Remove and add more classifiers if appropriate
1914
classifiers = [
2015
"Development Status :: 3 - Alpha",
2116
"Intended Audience :: Developers",
@@ -26,7 +21,6 @@ classifiers = [
2621
"Typing :: Typed",
2722
]
2823
requires-python = ">= 3.11, < 4"
29-
# TODO(cookiecutter): Remove and add more dependencies if appropriate
3024
dependencies = [
3125
"typing-extensions >= 4.14.1, < 5",
3226
]
@@ -36,8 +30,13 @@ dynamic = ["version"]
3630
name = "Frequenz Energy-as-a-Service GmbH"
3731
3832

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+
]
4140
dev-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
]
7675
dev-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
]
8485
dev = [
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
9293
Repository = "https://github.com/frequenz-floss/frequenz-microgrid-component-graph-python"
9394
Support = "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]
96102
line-length = 88
97103
target-version = ['py311']
@@ -101,6 +107,7 @@ include = '\.pyi?$'
101107
profile = "black"
102108
line_length = 88
103109
src_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

python/frequenz/microgrid_component_graph/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,17 @@
22
# Copyright © 2025 Frequenz Energy-as-a-Service GmbH
33

44
"""Python bindings for the Frequenz microgrid component graph rust library."""
5+
6+
from ._component_graph import (
7+
ComponentGraph,
8+
ComponentGraphConfig,
9+
FormulaGenerationError,
10+
InvalidGraphError,
11+
)
12+
13+
__all__ = [
14+
"ComponentGraph",
15+
"ComponentGraphConfig",
16+
"FormulaGenerationError",
17+
"InvalidGraphError",
18+
]

0 commit comments

Comments
 (0)