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.
Files changed (106) hide show
  1. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/PKG-INFO +22 -20
  2. rocketpy-1.3.0.post1/pyproject.toml +77 -0
  3. rocketpy-1.3.0.post1/requirements.txt +7 -0
  4. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/__init__.py +12 -1
  5. rocketpy-1.3.0.post1/rocketpy/_encoders.py +43 -0
  6. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/environment/environment.py +328 -143
  7. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/environment/environment_analysis.py +2 -6
  8. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/mathutils/function.py +522 -567
  9. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/mathutils/vector_matrix.py +1 -2
  10. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/hybrid_motor.py +18 -20
  11. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/liquid_motor.py +5 -10
  12. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/motor.py +36 -41
  13. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/solid_motor.py +3 -6
  14. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/tank_geometry.py +1 -4
  15. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/environment_analysis_plots.py +1 -1
  16. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/flight_plots.py +2 -5
  17. rocketpy-1.3.0.post1/rocketpy/plots/monte_carlo_plots.py +165 -0
  18. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/rocket_plots.py +168 -144
  19. rocketpy-1.3.0.post1/rocketpy/prints/flight_prints.py +433 -0
  20. rocketpy-1.3.0.post1/rocketpy/prints/monte_carlo_prints.py +27 -0
  21. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/aero_surface.py +19 -8
  22. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/components.py +11 -1
  23. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/parachute.py +6 -0
  24. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/rocket.py +175 -26
  25. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/simulation/__init__.py +1 -0
  26. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/simulation/flight.py +541 -713
  27. rocketpy-1.3.0.post1/rocketpy/simulation/monte_carlo.py +876 -0
  28. rocketpy-1.3.0.post1/rocketpy/stochastic/__init__.py +21 -0
  29. rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_aero_surfaces.py +434 -0
  30. rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_environment.py +188 -0
  31. rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_flight.py +131 -0
  32. rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_generic_motor.py +193 -0
  33. rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_model.py +536 -0
  34. rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_motor_model.py +19 -0
  35. rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_parachute.py +121 -0
  36. rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_rocket.py +586 -0
  37. rocketpy-1.3.0.post1/rocketpy/stochastic/stochastic_solid_motor.py +222 -0
  38. rocketpy-1.3.0.post1/rocketpy/tools.py +937 -0
  39. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy.egg-info/PKG-INFO +22 -20
  40. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy.egg-info/SOURCES.txt +17 -3
  41. rocketpy-1.3.0.post1/rocketpy.egg-info/requires.txt +32 -0
  42. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy.egg-info/top_level.txt +0 -1
  43. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_environment.py +67 -70
  44. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_flight.py +33 -33
  45. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_function.py +28 -2
  46. rocketpy-1.3.0.post1/tests/test_monte_carlo.py +171 -0
  47. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_plots.py +4 -4
  48. rocketpy-1.2.2/rocketpy/prints/flight_prints.py +0 -474
  49. rocketpy-1.2.2/rocketpy/tools.py +0 -455
  50. rocketpy-1.2.2/rocketpy.egg-info/requires.txt +0 -28
  51. rocketpy-1.2.2/setup.py +0 -46
  52. rocketpy-1.2.2/tests/__init__.py +0 -0
  53. rocketpy-1.2.2/tests/conftest.py +0 -1315
  54. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/LICENSE +0 -0
  55. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/README.md +0 -0
  56. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/control/__init__.py +0 -0
  57. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/control/controller.py +0 -0
  58. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/environment/__init__.py +0 -0
  59. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/mathutils/__init__.py +0 -0
  60. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/__init__.py +0 -0
  61. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/fluid.py +0 -0
  62. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/motors/tank.py +0 -0
  63. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/__init__.py +0 -0
  64. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/aero_surface_plots.py +0 -0
  65. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/compare/__init__.py +0 -0
  66. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/compare/compare.py +0 -0
  67. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/compare/compare_flights.py +0 -0
  68. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/environment_plots.py +0 -0
  69. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/fluid_plots.py +0 -0
  70. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/hybrid_motor_plots.py +0 -0
  71. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/liquid_motor_plots.py +0 -0
  72. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/motor_plots.py +0 -0
  73. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/solid_motor_plots.py +0 -0
  74. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/tank_geometry_plots.py +0 -0
  75. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/plots/tank_plots.py +0 -0
  76. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/__init__.py +0 -0
  77. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/aero_surface_prints.py +0 -0
  78. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/compare_prints.py +0 -0
  79. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/controller_prints.py +0 -0
  80. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/environment_analysis_prints.py +0 -0
  81. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/environment_prints.py +0 -0
  82. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/fluid_prints.py +0 -0
  83. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/hybrid_motor_prints.py +0 -0
  84. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/liquid_motor_prints.py +0 -0
  85. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/motor_prints.py +0 -0
  86. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/parachute_prints.py +0 -0
  87. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/rocket_prints.py +0 -0
  88. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/solid_motor_prints.py +0 -0
  89. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/tank_geometry_prints.py +0 -0
  90. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/prints/tank_prints.py +0 -0
  91. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/rocket/__init__.py +0 -0
  92. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/simulation/flight_data_importer.py +0 -0
  93. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/units.py +0 -0
  94. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy/utilities.py +0 -0
  95. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/rocketpy.egg-info/dependency_links.txt +0 -0
  96. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/setup.cfg +0 -0
  97. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_environment_analysis.py +0 -0
  98. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_flight_data_importer.py +0 -0
  99. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_genericmotor.py +0 -0
  100. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_hybridmotor.py +0 -0
  101. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_liquidmotor.py +0 -0
  102. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_rocket.py +0 -0
  103. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_solidmotor.py +0 -0
  104. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_tank.py +0 -0
  105. {rocketpy-1.2.2 → rocketpy-1.3.0.post1}/tests/test_tools_matrix.py +0 -0
  106. {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.2.2
3
+ Version: 1.3.0.post1
4
4
  Summary: Advanced 6-DOF trajectory simulation for High-Power Rocketry.
5
- Home-page: https://github.com/RocketPy-Team/RocketPy
6
- Author: Giovani Hidalgo Ceotto
7
- Author-email: ghceotto@gmail.com
8
- Maintainer: RocketPy Developers
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: IPython; extra == "env-analysis"
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: numpy>=1.13; extra == "all"
30
- Requires-Dist: scipy>=1.0; extra == "all"
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
+ ]
@@ -0,0 +1,7 @@
1
+ numpy>=1.13
2
+ scipy>=1.0
3
+ matplotlib>=3.0
4
+ netCDF4>=1.6.4
5
+ requests
6
+ pytz
7
+ simplekml
@@ -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)