processpi 0.1.2.12__tar.gz → 0.2.0__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 (146) hide show
  1. {processpi-0.1.2.12 → processpi-0.2.0}/PKG-INFO +11 -1
  2. {processpi-0.1.2.12 → processpi-0.2.0}/README.md +10 -0
  3. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/__init__.py +1 -1
  4. processpi-0.2.0/processpi/units/__init__.py +67 -0
  5. {processpi-0.1.2.12 → processpi-0.2.0}/processpi.egg-info/PKG-INFO +11 -1
  6. {processpi-0.1.2.12 → processpi-0.2.0}/pyproject.toml +2 -1
  7. {processpi-0.1.2.12 → processpi-0.2.0}/setup.py +1 -1
  8. processpi-0.1.2.12/processpi/units/__init__.py +0 -40
  9. {processpi-0.1.2.12 → processpi-0.2.0}/LICENSE +0 -0
  10. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/__init__.py +0 -0
  11. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/__init__.py +0 -0
  12. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/base.py +0 -0
  13. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/engine.py +0 -0
  14. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/__init__.py +0 -0
  15. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/flow_type.py +0 -0
  16. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/friction_factor_colebrookwhite.py +0 -0
  17. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/optimium_pipe_dia.py +0 -0
  18. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/pressure_drop_darcy.py +0 -0
  19. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/pressure_drop_fanning.py +0 -0
  20. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/pressure_drop_hazen_williams.py +0 -0
  21. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/pump_power.py +0 -0
  22. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/reynolds_number.py +0 -0
  23. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/fluids/velocity.py +0 -0
  24. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/__init__.py +0 -0
  25. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/biot.py +0 -0
  26. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/boiling_chen.py +0 -0
  27. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/combined_modes.py +0 -0
  28. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/condensation.py +0 -0
  29. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/condensation_dropwise.py +0 -0
  30. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/condensation_nusselt.py +0 -0
  31. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/conduction_heat_loss.py +0 -0
  32. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/convection_heat_loss.py +0 -0
  33. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/crossflow_tube.py +0 -0
  34. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/fourier.py +0 -0
  35. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/fourierlaw.py +0 -0
  36. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/grashof.py +0 -0
  37. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/heat_exchanger_area.py +0 -0
  38. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/lmtd.py +0 -0
  39. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/newton_cooling.py +0 -0
  40. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/ntu.py +0 -0
  41. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/nusselt.py +0 -0
  42. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/overall_u.py +0 -0
  43. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/peclet.py +0 -0
  44. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/prandtl.py +0 -0
  45. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/radial_cylinder.py +0 -0
  46. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/radiation_blackbody.py +0 -0
  47. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/radiation_exchange.py +0 -0
  48. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/radiation_greybody.py +0 -0
  49. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/radiation_viewfactor.py +0 -0
  50. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/resistance.py +0 -0
  51. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/reyleigh.py +0 -0
  52. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/rohsenow_boiling.py +0 -0
  53. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/heat_transfer/stefan_boltzmann.py +0 -0
  54. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/mass_transfer/__init__.py +0 -0
  55. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/mass_transfer/distillation_stage_count.py +0 -0
  56. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/mass_transfer/drying_rate.py +0 -0
  57. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/reaction_engineering/__init__.py +0 -0
  58. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/reaction_engineering/catalyst_activity.py +0 -0
  59. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/reaction_engineering/reaction_rate.py +0 -0
  60. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/reaction_engineering/residence_time.py +0 -0
  61. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/thermodynamics/__init__.py +0 -0
  62. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/thermodynamics/enthalpy_change.py +0 -0
  63. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/thermodynamics/entropy_change.py +0 -0
  64. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/calculations/thermodynamics/heat_of_vaporization.py +0 -0
  65. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/__init__.py +0 -0
  66. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/aceticacid.py +0 -0
  67. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/acetone.py +0 -0
  68. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/acrylicacid.py +0 -0
  69. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/air.py +0 -0
  70. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/ammonia.py +0 -0
  71. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/base.py +0 -0
  72. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/benzene.py +0 -0
  73. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/benzoicacid.py +0 -0
  74. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/bromine.py +0 -0
  75. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/butane.py +0 -0
  76. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/carbondioxide.py +0 -0
  77. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/carbonmonoxide.py +0 -0
  78. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/carbontetrachloride.py +0 -0
  79. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/chlorine.py +0 -0
  80. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/chlorobenzene.py +0 -0
  81. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/chloroform.py +0 -0
  82. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/chloromethane.py +0 -0
  83. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/constants.py +0 -0
  84. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/cyanogen.py +0 -0
  85. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/cyclohexene.py +0 -0
  86. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/ethane.py +0 -0
  87. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/ethanol.py +0 -0
  88. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/ethylacetate.py +0 -0
  89. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/gas.py +0 -0
  90. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/inorganic_liquid.py +0 -0
  91. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/methanol.py +0 -0
  92. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/oil.py +0 -0
  93. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/organic_liquid.py +0 -0
  94. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/steam.py +0 -0
  95. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/toluene.py +0 -0
  96. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/vapor.py +0 -0
  97. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/components/water.py +0 -0
  98. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/constants.py +0 -0
  99. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/base.py +0 -0
  100. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/design_rules.py +0 -0
  101. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/engine.py +0 -0
  102. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/equipment.py +0 -0
  103. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/fittings.py +0 -0
  104. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/insulation.py +0 -0
  105. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/materials.py +0 -0
  106. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/network.py +0 -0
  107. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/nozzle.py +0 -0
  108. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/pipelineresults.py +0 -0
  109. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/pipes.py +0 -0
  110. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/piping_costs.py +0 -0
  111. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/pumps.py +0 -0
  112. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/selection.py +0 -0
  113. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/standards.py +0 -0
  114. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/pipelines/vessel.py +0 -0
  115. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/area.py +0 -0
  116. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/base.py +0 -0
  117. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/density.py +0 -0
  118. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/diameter.py +0 -0
  119. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/dimensionless.py +0 -0
  120. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/heat_flow.py +0 -0
  121. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/heat_flux.py +0 -0
  122. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/heat_of_vaporization.py +0 -0
  123. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/heat_transfer_coefficient.py +0 -0
  124. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/length.py +0 -0
  125. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/mass.py +0 -0
  126. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/mass_flowrate.py +0 -0
  127. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/power.py +0 -0
  128. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/pressure.py +0 -0
  129. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/specific_heat.py +0 -0
  130. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/strings.py +0 -0
  131. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/temperature.py +0 -0
  132. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/thermal_conductivity.py +0 -0
  133. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/thermal_resistance.py +0 -0
  134. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/velocity.py +0 -0
  135. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/viscosity.py +0 -0
  136. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/volume.py +0 -0
  137. {processpi-0.1.2.12 → processpi-0.2.0}/processpi/units/volumetric_flowrate.py +0 -0
  138. {processpi-0.1.2.12 → processpi-0.2.0}/processpi.egg-info/SOURCES.txt +0 -0
  139. {processpi-0.1.2.12 → processpi-0.2.0}/processpi.egg-info/dependency_links.txt +0 -0
  140. {processpi-0.1.2.12 → processpi-0.2.0}/processpi.egg-info/requires.txt +0 -0
  141. {processpi-0.1.2.12 → processpi-0.2.0}/processpi.egg-info/top_level.txt +0 -0
  142. {processpi-0.1.2.12 → processpi-0.2.0}/setup.cfg +0 -0
  143. {processpi-0.1.2.12 → processpi-0.2.0}/tests/test_engine_network.py +0 -0
  144. {processpi-0.1.2.12 → processpi-0.2.0}/tests/test_network.py +0 -0
  145. {processpi-0.1.2.12 → processpi-0.2.0}/tests/test_pipeline_network.py +0 -0
  146. {processpi-0.1.2.12 → processpi-0.2.0}/tests/test_variables.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: processpi
3
- Version: 0.1.2.12
3
+ Version: 0.2.0
4
4
  Summary: Python toolkit for chemical engineering simulations, equipment design, and unit conversions
5
5
  Home-page: https://github.com/varma666/ProcessPi
6
6
  Author: Raviteja Varma Nadimpalli
@@ -81,6 +81,16 @@ Dynamic: requires-python
81
81
  </a>
82
82
  </p>
83
83
 
84
+ <p align="center">
85
+ <a href="https://colab.research.google.com/github/varma666/ProcessPi/blob/main/notebooks/getting_started.ipynb">
86
+ <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open in Colab"/>
87
+ </a>
88
+ <a href="https://mybinder.org/v2/gh/varma666/ProcessPi/HEAD?filepath=notebooks/getting_started.ipynb">
89
+ <img src="https://mybinder.org/badge_logo.svg" alt="Launch Binder"/>
90
+ </a>
91
+ </p>
92
+
93
+
84
94
  <p align="center">
85
95
  <em>Built with ❤️ for chemical engineers.</em>
86
96
  </p>
@@ -35,6 +35,16 @@
35
35
  </a>
36
36
  </p>
37
37
 
38
+ <p align="center">
39
+ <a href="https://colab.research.google.com/github/varma666/ProcessPi/blob/main/notebooks/getting_started.ipynb">
40
+ <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open in Colab"/>
41
+ </a>
42
+ <a href="https://mybinder.org/v2/gh/varma666/ProcessPi/HEAD?filepath=notebooks/getting_started.ipynb">
43
+ <img src="https://mybinder.org/badge_logo.svg" alt="Launch Binder"/>
44
+ </a>
45
+ </p>
46
+
47
+
38
48
  <p align="center">
39
49
  <em>Built with ❤️ for chemical engineers.</em>
40
50
  </p>
@@ -23,7 +23,7 @@ __all__ = []
23
23
  _pipelines_dir = Path(__file__).parent
24
24
 
25
25
  # Files to skip for dynamic imports
26
- _excluded = {"__init__.py", "todo.md", "processpi_pipeline_engine_features.md"}
26
+ _excluded = {"__init__.py", "todo.md", "processpi_pipeline_engine_features.md","example.txt"}
27
27
 
28
28
  # -------------------------------------------------------------------
29
29
  # Dynamic discovery of pipeline components
@@ -0,0 +1,67 @@
1
+ """
2
+ ProcessPI Units Module
3
+ ======================
4
+
5
+ Automatically discovers and exposes all unit variable classes in this package.
6
+ The base class `Variable` is always included.
7
+
8
+ Example:
9
+ from processpi.units import Length, Pressure, Temperature
10
+ """
11
+
12
+ import importlib
13
+ import inspect
14
+ from pathlib import Path
15
+
16
+ # -------------------------------------------------------------------
17
+ # Base class import
18
+ # -------------------------------------------------------------------
19
+ from .base import Variable
20
+ from .area import Area
21
+ from .density import Density
22
+ from .diameter import Diameter
23
+ from .dimensionless import Dimensionless
24
+ from .heat_flow import HeatFlow
25
+ from .heat_flux import HeatFlux
26
+ from .heat_of_vaporization import HeatOfVaporization
27
+ from .heat_transfer_coefficient import HeatTransferCoefficient
28
+ from .length import Length
29
+ from .mass_flowrate import MassFlowRate
30
+ from .mass import Mass
31
+ from .power import Power
32
+ from .pressure import Pressure
33
+ from .specific_heat import SpecificHeat
34
+ from .strings import StringUnit
35
+ from .temperature import Temperature
36
+ from .thermal_conductivity import ThermalConductivity
37
+ from .thermal_resistance import ThermalResistance
38
+ from .velocity import Velocity
39
+ from .viscosity import Viscosity
40
+ from .volume import Volume
41
+ from .volumetric_flowrate import VolumetricFlowRate
42
+
43
+ __all__ = ["Variable",
44
+ "Area",
45
+ "Density",
46
+ "Diameter",
47
+ "Dimensionless",
48
+ "HeatFlow",
49
+ "HeatFlux",
50
+ "HeatOfVaporization",
51
+ "HeatTransferCoefficient",
52
+ "Length",
53
+ "MassFlowRate",
54
+ "Mass",
55
+ "Power",
56
+ "Pressure",
57
+ "SpecificHeat",
58
+ "StringUnit",
59
+ "Temperature",
60
+ "ThermalConductivity",
61
+ "ThermalResistance",
62
+ "Velocity",
63
+ "Viscosity",
64
+ "Volume",
65
+ "VolumetricFlowRate"
66
+ ]
67
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: processpi
3
- Version: 0.1.2.12
3
+ Version: 0.2.0
4
4
  Summary: Python toolkit for chemical engineering simulations, equipment design, and unit conversions
5
5
  Home-page: https://github.com/varma666/ProcessPi
6
6
  Author: Raviteja Varma Nadimpalli
@@ -81,6 +81,16 @@ Dynamic: requires-python
81
81
  </a>
82
82
  </p>
83
83
 
84
+ <p align="center">
85
+ <a href="https://colab.research.google.com/github/varma666/ProcessPi/blob/main/notebooks/getting_started.ipynb">
86
+ <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open in Colab"/>
87
+ </a>
88
+ <a href="https://mybinder.org/v2/gh/varma666/ProcessPi/HEAD?filepath=notebooks/getting_started.ipynb">
89
+ <img src="https://mybinder.org/badge_logo.svg" alt="Launch Binder"/>
90
+ </a>
91
+ </p>
92
+
93
+
84
94
  <p align="center">
85
95
  <em>Built with ❤️ for chemical engineers.</em>
86
96
  </p>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "processpi"
7
- version = "0.1.2.12"
7
+ version = "0.2.0"
8
8
  description = "Python toolkit for chemical engineering simulations, equipment design, and unit conversions"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -29,3 +29,4 @@ Homepage = "https://github.com/varma666/ProcessPi"
29
29
  BugTracker = "https://github.com/varma666/ProcessPi/issues"
30
30
  SourceCode = "https://github.com/varma666/ProcessPi"
31
31
 
32
+
@@ -1,4 +1,4 @@
1
- __version__ = "0.1.2.12"
1
+ __version__ = "0.2.0"
2
2
 
3
3
  from setuptools import setup, find_packages
4
4
  from pathlib import Path
@@ -1,40 +0,0 @@
1
- """
2
- ProcessPI Units Module
3
- ======================
4
-
5
- Automatically discovers and exposes all unit variable classes in this package.
6
- The base class `Variable` is always included.
7
-
8
- Example:
9
- from processpi.units import Length, Pressure, Temperature
10
- """
11
-
12
- import importlib
13
- import inspect
14
- from pathlib import Path
15
-
16
- # -------------------------------------------------------------------
17
- # Base class import
18
- # -------------------------------------------------------------------
19
- from .base import Variable
20
-
21
- __all__ = ["Variable"]
22
-
23
- # -------------------------------------------------------------------
24
- # Dynamic discovery of unit classes
25
- # -------------------------------------------------------------------
26
- _units_dir = Path(__file__).parent
27
- _excluded = {"__init__.py", "base.py", "example.txt", "strings.py"}
28
-
29
- for file in _units_dir.glob("*.py"):
30
- if file.name in _excluded:
31
- continue
32
-
33
- module_name = file.stem
34
- module = importlib.import_module(f".{module_name}", package=__name__)
35
-
36
- # Promote top-level classes to namespace
37
- for cls_name, cls_obj in inspect.getmembers(module, inspect.isclass):
38
- if cls_obj.__module__ == module.__name__:
39
- globals()[cls_name] = cls_obj
40
- __all__.append(cls_name)
File without changes
File without changes