Skip to content

Commit 291cdf6

Browse files
authored
Merge pull request #406 from RoseauTechnologies/develop
Version 0.13.0
2 parents 4832cc1 + 22f1630 commit 291cdf6

File tree

381 files changed

+23294
-24434
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

381 files changed

+23294
-24434
lines changed

.github/workflows/ci.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,24 @@ env:
1919
UV_SYSTEM_PYTHON: 1
2020
COVERAGE_CORE: sysmon
2121

22+
permissions: {}
23+
2224
jobs:
2325
build:
2426
runs-on: ubuntu-latest
2527

2628
strategy:
2729
matrix:
28-
python-version: ["3.10", "3.11", "3.12", "3.13"]
30+
python-version: ["3.11", "3.12", "3.13"] #, "3.13t", "3.14-dev"] # waiting for pyproj support
31+
32+
permissions:
33+
contents: read
2934

3035
steps:
3136
- uses: actions/checkout@v4
3237
with:
3338
lfs: false
39+
persist-credentials: false
3440

3541
- name: Create LFS file list
3642
run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id
@@ -52,7 +58,7 @@ jobs:
5258
git lfs prune --verify-remote
5359
5460
- name: Install uv
55-
uses: astral-sh/setup-uv@v5
61+
uses: astral-sh/setup-uv@v6
5662
with:
5763
enable-cache: true
5864

.github/workflows/pre-commit.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,18 @@ on:
1414
- ".vscode/**"
1515
- ".idea/**"
1616

17+
permissions: {}
18+
1719
jobs:
1820
pre-commit:
1921
runs-on: ubuntu-latest
22+
permissions:
23+
contents: read
2024
steps:
2125
- uses: actions/checkout@v4
2226
with:
2327
lfs: false
28+
persist-credentials: false
2429
- uses: actions/setup-python@v5
2530
with:
2631
python-version: "3.13"

.pre-commit-config.yaml

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
exclude: ^.idea/|.vscode/
22
repos:
33
- repo: https://github.com/pre-commit/pre-commit-hooks
4-
rev: v5.0.0
4+
rev: v6.0.0
55
hooks:
66
- id: check-json
77
- id: check-merge-conflict
@@ -11,13 +11,28 @@ repos:
1111
- id: end-of-file-fixer
1212
- id: trailing-whitespace
1313
- repo: https://github.com/astral-sh/uv-pre-commit
14-
rev: 0.6.6
14+
rev: 0.8.14
1515
hooks:
1616
- id: uv-lock
17+
- repo: https://github.com/python-jsonschema/check-jsonschema
18+
rev: 0.33.3
19+
hooks:
20+
- id: check-github-workflows
21+
- id: check-dependabot
22+
- id: check-readthedocs
23+
- repo: https://github.com/crate-ci/typos
24+
rev: v1.35.6
25+
hooks:
26+
- id: typos
27+
args: [--force-exclude]
28+
- repo: https://github.com/woodruffw/zizmor-pre-commit
29+
rev: v1.12.1
30+
hooks:
31+
- id: zizmor
1732
- repo: https://github.com/astral-sh/ruff-pre-commit
18-
rev: v0.9.10
33+
rev: v0.12.11
1934
hooks:
20-
- id: ruff
35+
- id: ruff-check
2136
args: [--fix]
2237
- id: ruff-format
2338
- repo: https://github.com/adamchainz/blacken-docs
@@ -26,14 +41,34 @@ repos:
2641
- id: blacken-docs
2742
files: ^doc/.*\.md$
2843
args: [-l 90]
44+
- repo: https://github.com/executablebooks/mdformat
45+
rev: 0.7.22
46+
hooks:
47+
- id: mdformat
48+
additional_dependencies:
49+
- mdformat-pyproject
50+
- mdformat-myst
51+
- mdformat-gfm
52+
- mdformat-gfm-alerts
53+
# - mdformat-ruff
54+
- mdformat-config
55+
- mdformat-deflist
56+
exclude: ^.github/.*\.md$
2957
- repo: https://github.com/rbubley/mirrors-prettier
30-
rev: v3.5.3
58+
rev: v3.6.2
3159
hooks:
3260
- id: prettier
3361
args: ["--print-width", "120"]
3462
require_serial: true
63+
types_or: [yaml]
3564
- repo: https://github.com/cmhughes/latexindent.pl
36-
rev: V3.24.4
65+
rev: V3.24.7
3766
hooks:
3867
- id: latexindent
3968
args: [-l, -m, -s, -wd]
69+
- repo: https://github.com/biomejs/pre-commit
70+
rev: v2.2.2
71+
hooks:
72+
- id: biome-check
73+
types_or: [json, html, css]
74+
files: ".*" # Override default files regex that excludes html, rely on `types_or` instead

.vscode/settings.json

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77
},
88

99
// Python
10-
"python.analysis.diagnosticSeverityOverrides": {
11-
"reportInvalidStringEscapeSequence": "warning",
12-
"reportImportCycles": "warning",
13-
"reportUnusedImport": "warning",
14-
},
1510
"python.testing.pytestEnabled": true,
1611
"[python]": {
1712
"editor.defaultFormatter": "charliermarsh.ruff",
@@ -22,12 +17,14 @@
2217
},
2318
// Prettier
2419
"prettier.printWidth": 120,
25-
"[markdown][yaml][html][css]": {
20+
"[yaml]": {
2621
"editor.defaultFormatter": "esbenp.prettier-vscode",
2722
"editor.formatOnSave": true,
2823
},
29-
// Json
30-
"[json]": {
24+
// Biome
25+
"[json][html][css]": {
26+
"editor.defaultFormatter": "biomejs.biome",
27+
"editor.formatOnSave": true,
3128
"editor.indentSize": 2,
3229
},
3330
}

LICENSE.md

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,22 @@ BSD 3-Clause License
22

33
Copyright (c) 2018, Roseau Technologies
44

5-
Redistribution and use in source and binary forms, with or without
6-
modification, are permitted provided that the following conditions are met:
5+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
6+
following conditions are met:
77

8-
1. Redistributions of source code must retain the above copyright notice, this
9-
list of conditions and the following disclaimer.
8+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
9+
disclaimer.
1010

11-
2. Redistributions in binary form must reproduce the above copyright notice,
12-
this list of conditions and the following disclaimer in the documentation
13-
and/or other materials provided with the distribution.
11+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
12+
disclaimer in the documentation and/or other materials provided with the distribution.
1413

15-
3. Neither the name of the copyright holder nor the names of its
16-
contributors may be used to endorse or promote products derived from
17-
this software without specific prior written permission.
14+
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products
15+
derived from this software without specific prior written permission.
1816

19-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
17+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
18+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23+
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

README.md

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,39 +18,38 @@ _Roseau Load Flow_ is a powerful load flow solver and static analysis tool that
1818
In addition to the following **unique** set of features:
1919

2020
- Support for _floating neutrals_ for loads and sources
21-
- Four-wire multi-phase modelling with no Kron's reduction, no transformations, no assumptions on the
22-
network topology and no implicit earthing everywhere
23-
- Support for **flexible**, voltage-dependent, loads directly in the Newton algorithm for better
24-
convergence and stability
21+
- Four-wire multi-phase modelling with no Kron's reduction, no transformations, no assumptions on the network topology
22+
and no implicit earthing everywhere
23+
- Support for **flexible**, voltage-dependent, loads directly in the Newton algorithm for better convergence and
24+
stability
2525

2626
<!-- end rlf-pitch -->
2727

28-
This project is compatible with Python version 3.10 and newer. The
29-
[installation instructions](https://roseau-load-flow.roseautechnologies.com/en/latest/Installation.html)
30-
will guide you through the installation process. If you are new to _Roseau Load Flow_, we recommend
31-
you start with the
32-
[getting started tutorial](https://roseau-load-flow.roseautechnologies.com/en/latest/usage/Getting_Started.html).
33-
You can find the complete documentation at https://roseau-load-flow.roseautechnologies.com/.
28+
This project is compatible with Python version 3.11 and newer. The
29+
[installation instructions](https://roseau-load-flow.roseautechnologies.com/en/latest/Installation.html) will guide you
30+
through the installation process. If you are new to _Roseau Load Flow_, we recommend you start with the
31+
[getting started tutorial](https://roseau-load-flow.roseautechnologies.com/en/latest/usage/Getting_Started.html). You
32+
can find the complete documentation at https://roseau-load-flow.roseautechnologies.com/.
3433

3534
## License
3635

3736
This project is _partially_ open source but using the solver requires a license. The license key
38-
`A8C6DA-9405FB-E74FB9-C71C3C-207661-V3` can be used free of charge with networks containing up to 10
39-
buses. To obtain a personal or commercial license, please contact us
40-
at [contact@roseautechnologies.com](mailto:contact@roseautechnologies.com).
37+
`A8C6DA-9405FB-E74FB9-C71C3C-207661-V3` can be used free of charge with networks containing up to 10 buses. To obtain a
38+
personal or commercial license, please contact us at
39+
[contact@roseautechnologies.com](mailto:contact@roseautechnologies.com).
4140

4241
> [!NOTE]
43-
> Licenses are given free of charge for **students and teachers**. Please contact us at
44-
> contact@roseautechnologies.com for more information.
42+
> Licenses are given free of charge for **students and teachers**. Please contact us at contact@roseautechnologies.com
43+
> for more information.
4544
4645
Read more at [License](https://roseau-load-flow.roseautechnologies.com/en/latest/License.html).
4746

4847
## Network data
4948

5049
<!-- start rlf-networks -->
5150

52-
_Roseau Load Flow_ ships with a sample of 20 low-voltage and 20 medium-voltage feeder networks. Each
53-
network is provided with its summer and winter load points.
51+
_Roseau Load Flow_ ships with a sample of 20 low-voltage and 20 medium-voltage feeder networks. Each network is provided
52+
with its summer and winter load points.
5453

5554
To go further, you can also use
5655
[these 150 distribution networks](https://www.data.gouv.fr/fr/datasets/departs-hta-representatifs-pour-lanalyse-des-reseaux-de-distribution-francais/),
@@ -74,5 +73,4 @@ This software is developed by [Roseau Technologies](https://www.roseautechnologi
7473

7574
Follow us on:
7675
[![Linkedin](https://i.sstatic.net/gVE0j.png) LinkedIn](https://www.linkedin.com/company/roseau-technologies/)
77-
&nbsp;
7876
[![GitHub](https://i.sstatic.net/tskMh.png) GitHub](https://github.com/RoseauTechnologies)

biome.jsonc

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"$schema": "https://biomejs.dev/schemas/2.2.2/schema.json",
3+
"vcs": {
4+
"enabled": false,
5+
"clientKind": "git",
6+
"useIgnoreFile": false
7+
},
8+
"files": {
9+
"ignoreUnknown": false,
10+
"maxSize": 2097152 // 2 MiB to accommodate the networks Catalogue.html file (1.6 MiB)
11+
},
12+
"formatter": {
13+
"enabled": true,
14+
"indentStyle": "space",
15+
"indentWidth": 2,
16+
"lineWidth": 120,
17+
"lineEnding": "lf"
18+
},
19+
"linter": {
20+
"enabled": true,
21+
"rules": {
22+
"recommended": true
23+
}
24+
},
25+
"javascript": {
26+
"formatter": {
27+
"quoteStyle": "double"
28+
}
29+
},
30+
"assist": {
31+
"enabled": true,
32+
"actions": {
33+
"source": {
34+
"organizeImports": "on"
35+
}
36+
}
37+
},
38+
"html": {
39+
"formatter": {
40+
"enabled": true // Enable experimental HTML formatting
41+
}
42+
}
43+
}

doc/Bibliography.bib

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
@article{Klimek_2020,
23
doi = {10.21468/scipostphys.9.4.053},
34
url = {https://doi.org/10.21468%2Fscipostphys.9.4.053},

0 commit comments

Comments
 (0)