-
-
Notifications
You must be signed in to change notification settings - Fork 3
Comparing changes
Open a pull request
base repository: RocketPy-Team/Infinity-API
base: master
head repository: RocketPy-Team/Infinity-API
compare: drop-22apr
- 14 commits
- 17 files changed
- 5 contributors
Commits on Mar 1, 2026
-
ENH: portable .rpy flight import/export and notebook generation (#56, #…
…57) Replace dill-based binary serialization with RocketPy's native JSON-based .rpy format (RocketPyEncoder/RocketPyDecoder), making flight export and import architecture-, OS-, and Python-version- agnostic. Add POST /flights/upload to import .rpy files by decomposing them into Environment, Motor, Rocket and Flight models persisted through the standard CRUD pipeline. Add GET /flights/{id}/notebook to export a flight as a Jupyter notebook that loads the .rpy file via load_from_rpy. Closes #56, closes #57. Made-with: Cursor
Configuration menu - View commit details
-
Copy full SHA for 50be27f - Browse repository at this point
Copy the full SHA 50be27fView commit details -
MNT: address PR review comments from CodeRabbit and Copilot
- Fix implicit string concatenation in notebook source (Pylint W1404) - Update FlightImported.message to say ".rpy file" instead of "binary" - Add 10 MB upload size guard with HTTP 413 on POST /flights/upload - Extract tanks for LIQUID/HYBRID motors in _extract_motor to satisfy MotorModel validation (new _extract_tanks and _to_float helpers) - Add comment explaining default_fins schema fallback - Tighten test assertion on import success message - Add pre-yield cache_clear() in environments test fixture Made-with: Cursor
Configuration menu - View commit details
-
Copy full SHA for ee13c2f - Browse repository at this point
Copy the full SHA ee13c2fView commit details
Commits on Mar 9, 2026
-
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 5d291c7 - Browse repository at this point
Copy the full SHA 5d291c7View commit details -
MNT: address second round of PR review comments
- Add HTTP 413 to /upload route OpenAPI responses schema - Move grain_fields construction inside SOLID|HYBRID match branch to avoid AttributeError on LIQUID/GENERIC motors - Add test for oversized .rpy upload returning HTTP 413 Made-with: Cursor
Configuration menu - View commit details
-
Copy full SHA for 5eb763f - Browse repository at this point
Copy the full SHA 5eb763fView commit details -
MNT: address third round of PR review comments
- Guard from_rpy against non-dict JSON payloads (e.g. [] or "foo") that would AttributeError instead of hitting the 422 path - Change notebook to resimulate=True so flight.all_info() has computed outputs available after loading an .rpy with include_outputs=False Made-with: Cursor
Configuration menu - View commit details
-
Copy full SHA for 525fa96 - Browse repository at this point
Copy the full SHA 525fa96View commit details -
MNT: wrap initial_liquid_mass and initial_gas_mass with _to_float
Consistent with all other tank-kind fields — these attributes can be Function objects in RocketPy, so they need the same scalar extraction to avoid Pydantic validation failures. Made-with: Cursor
Configuration menu - View commit details
-
Copy full SHA for 3882575 - Browse repository at this point
Copy the full SHA 3882575View commit details
Commits on Apr 20, 2026
-
ENH: add /rockets/{id}/drawing-geometry endpoint
Exposes structured drawing geometry that mirrors rocketpy.Rocket.draw(), so clients can redraw a rocket using the same shape math rocketpy uses without server-side rendering or duplicated geometry logic in the UI. Response carries per-surface shape_x/shape_y arrays, body tube segments, motor patch polygons (nozzle, chamber, grains, tanks, outline), rail button positions, sensors, t=0 CG/CP, and drawing bounds. Coordinates are already transformed into the draw frame rocketpy uses. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 64b2ea9 - Browse repository at this point
Copy the full SHA 64b2ea9View commit details -
Configuration menu - View commit details
-
Copy full SHA for c4ef363 - Browse repository at this point
Copy the full SHA c4ef363View commit details -
Configuration menu - View commit details
-
Copy full SHA for 45032d8 - Browse repository at this point
Copy the full SHA 45032d8View commit details -
ENH: validate dry_inertia per motor_kind + default tank discretize
Align MotorModel and MotorTank with RocketPy's actual constructor requirements so invalid motors are rejected at the API boundary with a clear error rather than crashing deep inside RocketPy at simulate time. - MotorModel.validate_dry_inertia_for_kind: SOLID / LIQUID / HYBRID motors in RocketPy require dry_inertia with no default. Only GenericMotor accepts (0, 0, 0). Reject the default tuple for every kind except GENERIC with a message the user can act on. - MotorTank.discretize: change to Optional[int] = 100 to match the RocketPy Tank classes' default. Forms can now omit the field and still submit successfully. - stub_motor_dump fixture: use dry_inertia=[0.1, 0.1, 0.1] so tests that override motor_kind to SOLID / LIQUID / HYBRID still pass the new validator without each having to add a dry_inertia override locally.
Configuration menu - View commit details
-
Copy full SHA for bf0c365 - Browse repository at this point
Copy the full SHA bf0c365View commit details -
ENH: render GenericMotor chamber patch in drawing-geometry
RocketPy's rocket.draw() does not draw a combustion chamber for GenericMotor because _MotorPlots._generate_combustion_chamber reads grain-only attributes (grain_initial_height, grain_outer_radius, etc.) that GenericMotor lacks — it only emits a nozzle. Users who populate chamber_radius / chamber_height / chamber_position then saw no chamber in the jarvis playground. Add a GenericMotor branch in RocketService._build_motor_geometry that constructs an equivalent rectangular chamber patch from the chamber_* fields. Vertex ordering mirrors _generate_combustion_chamber so the patch flows through _generate_motor_region for outline assembly the same way a SolidMotor chamber does. Patch is emitted with role='chamber', flowing through the existing drawingMotorSchema + GeometryRocket renderer without frontend changes.
Configuration menu - View commit details
-
Copy full SHA for 6836650 - Browse repository at this point
Copy the full SHA 6836650View commit details
Commits on Apr 22, 2026
-
Configuration menu - View commit details
-
Copy full SHA for edf06e5 - Browse repository at this point
Copy the full SHA edf06e5View commit details -
Merge remote-tracking branch 'origin/feat/flight-binary-and-notebook-…
…export' into drop-22apr
Configuration menu - View commit details
-
Copy full SHA for 058f62a - Browse repository at this point
Copy the full SHA 058f62aView commit details -
Configuration menu - View commit details
-
Copy full SHA for f8a9e40 - Browse repository at this point
Copy the full SHA f8a9e40View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...drop-22apr