Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@

ROSS (Rotordynamic Open Source Software) is a Python library for rotordynamic analysis. Package name: `ross-rotordynamics`.

## Git Workflow

- **Main branch**: `main`
- **Upstream remote**: `upstream` → `petrobras/ross` (PRs target this repo)
- **Fork remote**: `origin` → the developer's personal fork
- Push development branches to `origin`, then open PRs against `upstream/main`

## Build & Install

```bash
Expand Down
16 changes: 14 additions & 2 deletions ross/rotor_assembly.py
Original file line number Diff line number Diff line change
Expand Up @@ -4150,10 +4150,13 @@ def save(self, file):
>>> rotor = rotor_example()
>>> rotor.save(file)
"""
import ross
from ross.utils import dump_data

file = Path(file)
dump_data({"parameters": self.parameters}, file)
dump_data(
{"ross_version": ross.__version__, "parameters": self.parameters}, file
)
for el in self.elements:
el.save(file)

Expand Down Expand Up @@ -4209,14 +4212,23 @@ def load(cls, file):
>>> rotor1 == rotor2
True
"""
import ross
from ross.utils import load_data

data = load_data(file)

saved_version = data.get("ross_version", "unknown")
if saved_version != ross.__version__:
warnings.warn(
f"File was created with ROSS {saved_version}, "
f"but current version is {ross.__version__}. "
f"This may lead to incompatibilities."
)
parameters = data["parameters"]

elements = []
for el_name, el_data in data.items():
if el_name == "parameters" or el_name.startswith("_"):
if el_name in ("parameters", "ross_version") or el_name.startswith("_"):
continue
class_name = el_name.split("_")[0]
try:
Expand Down
Loading