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
33 changes: 16 additions & 17 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,35 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
# For more information see: https://docs.astral.sh/uv/guides/integration/github/

name: Python package

on:
push:
branches: [ master ]
branches: [ master, cameron/revival ]
pull_request:
branches: [ master ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6, 3.7, 3.8]
python-version: ["3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install black pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with black
run: |
black . --check
run: uv sync --extra dev

- name: Lint with ruff
run: uv run ruff check .

- name: Test with pytest
run: |
pytest
run: uv run pytest
8 changes: 0 additions & 8 deletions Dockerfile

This file was deleted.

2 changes: 1 addition & 1 deletion License
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2016 Cameron Flannery
Copyright (c) 2025 Cameron Flannery

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
38 changes: 0 additions & 38 deletions build_env.sh

This file was deleted.

1 change: 0 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
Expand Down
83 changes: 83 additions & 0 deletions openrocketengine/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
"""OpenRocketEngine - Tools for liquid rocket engine design and analysis.

This package provides a comprehensive toolkit for designing and analyzing
liquid propellant rocket engines using isentropic flow equations.

Example:
>>> from openrocketengine import EngineInputs, design_engine
>>> from openrocketengine.units import newtons, megapascals, kelvin, meters, pascals
>>>
>>> inputs = EngineInputs(
... thrust=newtons(5000),
... chamber_pressure=megapascals(2.0),
... chamber_temp=kelvin(3200),
... exit_pressure=pascals(101325),
... molecular_weight=22.0,
... gamma=1.2,
... lstar=meters(1.0),
... mixture_ratio=2.0,
... )
>>> performance, geometry = design_engine(inputs)
>>> print(f"Isp: {performance.isp.value:.1f} s")
"""

__version__ = "0.2.0"

# Core engine design
from openrocketengine.engine import (
EngineGeometry,
EngineInputs,
EnginePerformance,
compute_geometry,
compute_performance,
design_engine,
format_geometry_summary,
format_performance_summary,
isp_at_altitude,
thrust_at_altitude,
)

# Nozzle contour generation
from openrocketengine.nozzle import (
NozzleContour,
conical_contour,
full_chamber_contour,
generate_nozzle_from_geometry,
rao_bell_contour,
)

# Visualization
from openrocketengine.plotting import (
plot_engine_cross_section,
plot_engine_dashboard,
plot_nozzle_contour,
plot_performance_vs_altitude,
)

__all__ = [
# Version
"__version__",
# Engine dataclasses
"EngineInputs",
"EnginePerformance",
"EngineGeometry",
# Engine computation
"compute_performance",
"compute_geometry",
"design_engine",
"thrust_at_altitude",
"isp_at_altitude",
"format_performance_summary",
"format_geometry_summary",
# Nozzle
"NozzleContour",
"rao_bell_contour",
"conical_contour",
"full_chamber_contour",
"generate_nozzle_from_geometry",
# Plotting
"plot_engine_cross_section",
"plot_nozzle_contour",
"plot_performance_vs_altitude",
"plot_engine_dashboard",
]
80 changes: 0 additions & 80 deletions openrocketengine/core/interface.py

This file was deleted.

Loading