rocketpy 1.2.2__tar.gz → 1.3.0.post1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/PKG-INFO +22 -20
- rocketpy-1.3.0.post1/pyproject.toml +77 -0
- rocketpy-1.3.0.post1/requirements.txt +7 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/__init__.py +12 -1
- rocketpy-1.3.0.post1/rocketpy/_encoders.py +43 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/environment/environment.py +328 -143
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/environment/environment_analysis.py +2 -6
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/mathutils/function.py +522 -567
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/mathutils/vector_matrix.py +1 -2
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/hybrid_motor.py +18 -20
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/liquid_motor.py +5 -10
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/motor.py +36 -41
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/solid_motor.py +3 -6
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/tank_geometry.py +1 -4
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/environment_analysis_plots.py +1 -1
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/flight_plots.py +2 -5
- rocketpy-1.3.0.post1/rocketpy/plots/monte_carlo_plots.py +165 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/rocket_plots.py +168 -144
- rocketpy-1.3.0.post1/rocketpy/prints/flight_prints.py +433 -0
- rocketpy-1.3.0.post1/rocketpy/prints/monte_carlo_prints.py +27 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/aero_surface.py +19 -8
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/components.py +11 -1
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/parachute.py +6 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/rocket.py +175 -26
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/simulation/__init__.py +1 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/simulation/flight.py +541 -713
- rocketpy-1.3.0.post1/rocketpy/simulation/monte_carlo.py +876 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/__init__.py +21 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_aero_surfaces.py +434 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_environment.py +188 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_flight.py +131 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_generic_motor.py +193 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_model.py +536 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_motor_model.py +19 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_parachute.py +121 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_rocket.py +586 -0
- rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_solid_motor.py +222 -0
- rocketpy-1.3.0.post1/rocketpy/tools.py +937 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy.egg-info/PKG-INFO +22 -20
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy.egg-info/SOURCES.txt +17 -3
- rocketpy-1.3.0.post1/rocketpy.egg-info/requires.txt +32 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy.egg-info/top_level.txt +0 -1
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_environment.py +67 -70
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_flight.py +33 -33
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_function.py +28 -2
- rocketpy-1.3.0.post1/tests/test_monte_carlo.py +171 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_plots.py +4 -4
- rocketpy-1.2.2/rocketpy/prints/flight_prints.py +0 -474
- rocketpy-1.2.2/rocketpy/tools.py +0 -455
- rocketpy-1.2.2/rocketpy.egg-info/requires.txt +0 -28
- rocketpy-1.2.2/setup.py +0 -46
- rocketpy-1.2.2/tests/__init__.py +0 -0
- rocketpy-1.2.2/tests/conftest.py +0 -1315
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/LICENSE +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/README.md +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/control/__init__.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/control/controller.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/environment/__init__.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/mathutils/__init__.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/__init__.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/fluid.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/tank.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/__init__.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/aero_surface_plots.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/compare/__init__.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/compare/compare.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/compare/compare_flights.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/environment_plots.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/fluid_plots.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/hybrid_motor_plots.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/liquid_motor_plots.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/motor_plots.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/solid_motor_plots.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/tank_geometry_plots.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/tank_plots.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/__init__.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/aero_surface_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/compare_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/controller_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/environment_analysis_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/environment_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/fluid_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/hybrid_motor_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/liquid_motor_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/motor_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/parachute_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/rocket_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/solid_motor_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/tank_geometry_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/tank_prints.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/__init__.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/simulation/flight_data_importer.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/units.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/utilities.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy.egg-info/dependency_links.txt +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/setup.cfg +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_environment_analysis.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_flight_data_importer.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_genericmotor.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_hybridmotor.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_liquidmotor.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_rocket.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_solidmotor.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_tank.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_tools_matrix.py +0 -0
- {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_tools_vector.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: rocketpy
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.0.post1
|
|
4
4
|
Summary: Advanced 6-DOF trajectory simulation for High-Power Rocketry.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Author-email: Giovani Hidalgo Ceotto <ghceotto@gmail.com>
|
|
6
|
+
Project-URL: homepage, https://rocketpy.org/
|
|
7
|
+
Project-URL: documentation, https://docs.rocketpy.org/
|
|
8
|
+
Project-URL: repository, https://github.com/RocketPy-Team/RocketPy
|
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
|
10
10
|
Classifier: License :: OSI Approved :: MIT License
|
|
11
11
|
Classifier: Operating System :: OS Independent
|
|
@@ -19,25 +19,27 @@ Requires-Dist: netCDF4>=1.6.4
|
|
|
19
19
|
Requires-Dist: requests
|
|
20
20
|
Requires-Dist: pytz
|
|
21
21
|
Requires-Dist: simplekml
|
|
22
|
+
Provides-Extra: tests
|
|
23
|
+
Requires-Dist: pytest; extra == "tests"
|
|
24
|
+
Requires-Dist: pytest-coverage; extra == "tests"
|
|
25
|
+
Requires-Dist: black[jupyter]; extra == "tests"
|
|
26
|
+
Requires-Dist: flake8-black; extra == "tests"
|
|
27
|
+
Requires-Dist: flake8-pyproject; extra == "tests"
|
|
28
|
+
Requires-Dist: pandas; extra == "tests"
|
|
29
|
+
Requires-Dist: numericalunits==1.25; extra == "tests"
|
|
30
|
+
Requires-Dist: pylint; extra == "tests"
|
|
31
|
+
Requires-Dist: isort; extra == "tests"
|
|
22
32
|
Provides-Extra: env-analysis
|
|
23
|
-
Requires-Dist: timezonefinder; extra == "env-analysis"
|
|
24
33
|
Requires-Dist: windrose>=1.6.8; extra == "env-analysis"
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist: ipywidgets>=7.6.3; extra == "env-analysis"
|
|
34
|
+
Requires-Dist: timezonefinder; extra == "env-analysis"
|
|
27
35
|
Requires-Dist: jsonpickle; extra == "env-analysis"
|
|
36
|
+
Requires-Dist: ipython; extra == "env-analysis"
|
|
37
|
+
Requires-Dist: ipywidgets>=7.6.3; extra == "env-analysis"
|
|
38
|
+
Provides-Extra: monte-carlo
|
|
39
|
+
Requires-Dist: imageio; extra == "monte-carlo"
|
|
28
40
|
Provides-Extra: all
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist:
|
|
31
|
-
Requires-Dist: matplotlib>=3.0; extra == "all"
|
|
32
|
-
Requires-Dist: netCDF4>=1.6.4; extra == "all"
|
|
33
|
-
Requires-Dist: requests; extra == "all"
|
|
34
|
-
Requires-Dist: pytz; extra == "all"
|
|
35
|
-
Requires-Dist: simplekml; extra == "all"
|
|
36
|
-
Requires-Dist: timezonefinder; extra == "all"
|
|
37
|
-
Requires-Dist: windrose>=1.6.8; extra == "all"
|
|
38
|
-
Requires-Dist: IPython; extra == "all"
|
|
39
|
-
Requires-Dist: ipywidgets>=7.6.3; extra == "all"
|
|
40
|
-
Requires-Dist: jsonpickle; extra == "all"
|
|
41
|
+
Requires-Dist: rocketpy[env-analysis]; extra == "all"
|
|
42
|
+
Requires-Dist: rocketpy[monte-carlo]; extra == "all"
|
|
41
43
|
|
|
42
44
|
<picture>
|
|
43
45
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/RocketPy-Team/RocketPy/master/docs/static/RocketPy_Logo_white.png">
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "rocketpy"
|
|
3
|
+
version = "1.3.0.post1"
|
|
4
|
+
description="Advanced 6-DOF trajectory simulation for High-Power Rocketry."
|
|
5
|
+
dynamic = ["dependencies"]
|
|
6
|
+
readme = "README.md"
|
|
7
|
+
requires-python = ">=3.8"
|
|
8
|
+
authors = [
|
|
9
|
+
{name = "Giovani Hidalgo Ceotto", email = "ghceotto@gmail.com"}
|
|
10
|
+
]
|
|
11
|
+
classifiers = [
|
|
12
|
+
"Programming Language :: Python :: 3",
|
|
13
|
+
"License :: OSI Approved :: MIT License",
|
|
14
|
+
"Operating System :: OS Independent",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
[project.urls]
|
|
18
|
+
homepage = "https://rocketpy.org/"
|
|
19
|
+
documentation = "https://docs.rocketpy.org/"
|
|
20
|
+
repository = "https://github.com/RocketPy-Team/RocketPy"
|
|
21
|
+
|
|
22
|
+
[build-system]
|
|
23
|
+
requires = ["setuptools>=42", "wheel"]
|
|
24
|
+
build-backend = "setuptools.build_meta"
|
|
25
|
+
|
|
26
|
+
[tool.setuptools]
|
|
27
|
+
packages = { find = { where = ["."], include = ["rocketpy*"] } }
|
|
28
|
+
|
|
29
|
+
[tool.setuptools.dynamic]
|
|
30
|
+
dependencies = { file = ["requirements.txt"] }
|
|
31
|
+
|
|
32
|
+
[project.optional-dependencies]
|
|
33
|
+
tests = [
|
|
34
|
+
"pytest",
|
|
35
|
+
"pytest-coverage",
|
|
36
|
+
"black[jupyter]",
|
|
37
|
+
"flake8-black",
|
|
38
|
+
"flake8-pyproject",
|
|
39
|
+
"pandas",
|
|
40
|
+
"numericalunits==1.25",
|
|
41
|
+
"pylint",
|
|
42
|
+
"isort"
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
env-analysis = [
|
|
46
|
+
"windrose>=1.6.8",
|
|
47
|
+
"timezonefinder",
|
|
48
|
+
"jsonpickle",
|
|
49
|
+
"ipython",
|
|
50
|
+
"ipywidgets>=7.6.3"
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
monte-carlo = [
|
|
54
|
+
"imageio",
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
all = ["rocketpy[env-analysis]", "rocketpy[monte-carlo]"]
|
|
58
|
+
|
|
59
|
+
[tool.black]
|
|
60
|
+
line-length = 88
|
|
61
|
+
include = '\.py$|\.ipynb$'
|
|
62
|
+
skip-string-normalization = true
|
|
63
|
+
|
|
64
|
+
[tool.coverage.report]
|
|
65
|
+
# Regexes for lines to exclude from consideration
|
|
66
|
+
exclude_also = [
|
|
67
|
+
#Don't complain about exceptions or warnings not being covered by tests
|
|
68
|
+
"warnings.warn*"
|
|
69
|
+
]
|
|
70
|
+
|
|
71
|
+
[tool.flake8]
|
|
72
|
+
max-line-length = 88
|
|
73
|
+
max-module-lines = 3000
|
|
74
|
+
ignore = ['E203', 'W503']
|
|
75
|
+
exclude = [
|
|
76
|
+
'.git,__pycache__',
|
|
77
|
+
]
|
|
@@ -37,4 +37,15 @@ from .rocket import (
|
|
|
37
37
|
Tail,
|
|
38
38
|
TrapezoidalFins,
|
|
39
39
|
)
|
|
40
|
-
from .simulation import Flight
|
|
40
|
+
from .simulation import Flight, MonteCarlo
|
|
41
|
+
from .stochastic import (
|
|
42
|
+
StochasticEllipticalFins,
|
|
43
|
+
StochasticEnvironment,
|
|
44
|
+
StochasticFlight,
|
|
45
|
+
StochasticNoseCone,
|
|
46
|
+
StochasticParachute,
|
|
47
|
+
StochasticRocket,
|
|
48
|
+
StochasticSolidMotor,
|
|
49
|
+
StochasticTail,
|
|
50
|
+
StochasticTrapezoidalFins,
|
|
51
|
+
)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Defines a custom JSON encoder for RocketPy objects."""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
import types
|
|
5
|
+
|
|
6
|
+
import numpy as np
|
|
7
|
+
|
|
8
|
+
from rocketpy.mathutils.function import Function
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class RocketPyEncoder(json.JSONEncoder):
|
|
12
|
+
"""NOTE: This is still under construction, please don't use it yet."""
|
|
13
|
+
|
|
14
|
+
def default(self, o):
|
|
15
|
+
if isinstance(
|
|
16
|
+
o,
|
|
17
|
+
(
|
|
18
|
+
np.int_,
|
|
19
|
+
np.intc,
|
|
20
|
+
np.intp,
|
|
21
|
+
np.int8,
|
|
22
|
+
np.int16,
|
|
23
|
+
np.int32,
|
|
24
|
+
np.int64,
|
|
25
|
+
np.uint8,
|
|
26
|
+
np.uint16,
|
|
27
|
+
np.uint32,
|
|
28
|
+
np.uint64,
|
|
29
|
+
),
|
|
30
|
+
):
|
|
31
|
+
return int(o)
|
|
32
|
+
elif isinstance(o, (np.float_, np.float16, np.float32, np.float64)):
|
|
33
|
+
return float(o)
|
|
34
|
+
elif isinstance(o, np.ndarray):
|
|
35
|
+
return o.tolist()
|
|
36
|
+
elif hasattr(o, "to_dict"):
|
|
37
|
+
return o.to_dict()
|
|
38
|
+
# elif isinstance(o, Function):
|
|
39
|
+
# return o.__dict__()
|
|
40
|
+
elif isinstance(o, (Function, types.FunctionType)):
|
|
41
|
+
return repr(o)
|
|
42
|
+
else:
|
|
43
|
+
return json.JSONEncoder.default(self, o)
|