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
[]
= ["maturin>=1.9,<2.0"]
= "maturin"
[]
= "gridoxide"
= "0.1.0"
= "AC power flow analysis (Newton-Raphson) — Python bindings"
= "python/README.md"
= ">=3.9"
= [
"Programming Language :: Rust",
"Programming Language :: Python :: Implementation :: CPython",
]
# `gridoxide.matpower` (python/gridoxide/matpower.py) needs numpy/scipy for
# `.mat` reading, kept as an optional extra, separate from the core
# `PowerFlowModel` bindings, which have no Python-level dependencies of
# their own. `gridoxide.generate_grid` needs no extra (pure stdlib), so it
# isn't listed here.
[]
= ["numpy>=1.24", "scipy>=1.10"]
[]
= "gridoxide.matpower:main"
= "gridoxide.generate_grid:main"
[]
# `src/python.rs`'s bindings — only ever built via maturin, never combined
# with a plain `cargo build`/`cargo test` (see Cargo.toml's `python` feature
# doc comment for why). Mixed Rust/Python layout: pure-Python package code
# (`__init__.py`, `matpower.py`, `generate_grid.py`) lives in
# `python/gridoxide/`, alongside the compiled extension built as the
# private `gridoxide._gridoxide` submodule (see src/python.rs's module doc
# comment) so both ship in the same wheel.
= ["python"]
= "python"
= "gridoxide._gridoxide"