processpi 0.0.0__py3-none-any.whl

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 (96) hide show
  1. processpi/__init__.py +1 -0
  2. processpi/calculations/__init__.py +3 -0
  3. processpi/calculations/base.py +55 -0
  4. processpi/calculations/engine.py +69 -0
  5. processpi/calculations/fluids/__init__.py +13 -0
  6. processpi/calculations/fluids/cool_brook_white.py +49 -0
  7. processpi/calculations/fluids/flow_type.py +37 -0
  8. processpi/calculations/fluids/optimium_pipe_dia.py +45 -0
  9. processpi/calculations/fluids/pressure_drop_darcy.py +25 -0
  10. processpi/calculations/fluids/pressure_drop_fanning.py +25 -0
  11. processpi/calculations/fluids/pump_power.py +34 -0
  12. processpi/calculations/fluids/reynolds_number.py +24 -0
  13. processpi/calculations/fluids/velocity.py +36 -0
  14. processpi/calculations/heat_transfer/__init__.py +4 -0
  15. processpi/calculations/heat_transfer/conduction_heat_loss.py +26 -0
  16. processpi/calculations/heat_transfer/convection_heat_loss.py +23 -0
  17. processpi/calculations/heat_transfer/heat_exchanger_area.py +26 -0
  18. processpi/calculations/mass_transfer/__init__.py +3 -0
  19. processpi/calculations/mass_transfer/distillation_stage_count.py +346 -0
  20. processpi/calculations/mass_transfer/drying_rate.py +132 -0
  21. processpi/calculations/reaction_engineering/__init__.py +4 -0
  22. processpi/calculations/reaction_engineering/catalyst_activity.py +109 -0
  23. processpi/calculations/reaction_engineering/reaction_rate.py +143 -0
  24. processpi/calculations/reaction_engineering/residence_time.py +80 -0
  25. processpi/calculations/thermodynamics/__init__.py +4 -0
  26. processpi/calculations/thermodynamics/enthalpy_change.py +23 -0
  27. processpi/calculations/thermodynamics/entropy_change.py +25 -0
  28. processpi/calculations/thermodynamics/heat_of_vaporization.py +20 -0
  29. processpi/components/__init__.py +5 -0
  30. processpi/components/aceticacid.py +19 -0
  31. processpi/components/acetone.py +20 -0
  32. processpi/components/acrylicacid.py +19 -0
  33. processpi/components/air.py +20 -0
  34. processpi/components/ammonia.py +19 -0
  35. processpi/components/base.py +85 -0
  36. processpi/components/benzene.py +40 -0
  37. processpi/components/benzoicacid.py +19 -0
  38. processpi/components/bromine.py +19 -0
  39. processpi/components/butane.py +19 -0
  40. processpi/components/carbondioxide.py +19 -0
  41. processpi/components/carbonmonoxide.py +17 -0
  42. processpi/components/carbontetrachloride.py +17 -0
  43. processpi/components/chlorine.py +17 -0
  44. processpi/components/chlorobenzene.py +17 -0
  45. processpi/components/chloroform.py +17 -0
  46. processpi/components/chloromethane.py +17 -0
  47. processpi/components/cyanogen.py +17 -0
  48. processpi/components/cyclohexene.py +17 -0
  49. processpi/components/ethane.py +17 -0
  50. processpi/components/ethanol.py +20 -0
  51. processpi/components/ethylacetate.py +17 -0
  52. processpi/components/methanol.py +20 -0
  53. processpi/components/toluene.py +22 -0
  54. processpi/components/water.py +24 -0
  55. processpi/pipelines/__init__.py +0 -0
  56. processpi/pipelines/base.py +76 -0
  57. processpi/pipelines/design_rules.py +91 -0
  58. processpi/pipelines/engine.py +718 -0
  59. processpi/pipelines/equipment.py +32 -0
  60. processpi/pipelines/fittings.py +76 -0
  61. processpi/pipelines/insulation.py +0 -0
  62. processpi/pipelines/materials.py +102 -0
  63. processpi/pipelines/network.py +277 -0
  64. processpi/pipelines/pipelineresults.py +95 -0
  65. processpi/pipelines/pipes.py +84 -0
  66. processpi/pipelines/pumps.py +83 -0
  67. processpi/pipelines/selection.py +89 -0
  68. processpi/pipelines/standards.py +279 -0
  69. processpi/pipelines/vessel.py +34 -0
  70. processpi/units/__init__.py +38 -0
  71. processpi/units/area.py +51 -0
  72. processpi/units/base.py +57 -0
  73. processpi/units/density.py +47 -0
  74. processpi/units/diameter.py +58 -0
  75. processpi/units/dimensionless.py +42 -0
  76. processpi/units/heat_flux.py +46 -0
  77. processpi/units/heat_of_vaporization.py +47 -0
  78. processpi/units/heat_transfer_coefficient.py +45 -0
  79. processpi/units/length.py +47 -0
  80. processpi/units/mass.py +50 -0
  81. processpi/units/mass_flowrate.py +50 -0
  82. processpi/units/pressure.py +57 -0
  83. processpi/units/specific_heat.py +47 -0
  84. processpi/units/strings.py +31 -0
  85. processpi/units/temperature.py +51 -0
  86. processpi/units/thermal_conductivity.py +45 -0
  87. processpi/units/thermal_resistance.py +46 -0
  88. processpi/units/velocity.py +45 -0
  89. processpi/units/viscosity.py +78 -0
  90. processpi/units/volume.py +50 -0
  91. processpi/units/volumetric_flowrate.py +52 -0
  92. processpi-0.0.0.dist-info/METADATA +5 -0
  93. processpi-0.0.0.dist-info/RECORD +96 -0
  94. processpi-0.0.0.dist-info/WHEEL +5 -0
  95. processpi-0.0.0.dist-info/licenses/LICENSE +21 -0
  96. processpi-0.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,45 @@
1
+ from .base import Variable
2
+
3
+ class Velocity(Variable):
4
+ """
5
+ Represents a Velocity quantity.
6
+ Default SI unit: meters per second (m/s).
7
+
8
+ Example:
9
+ v1 = Velocity(10) # 10 m/s
10
+ v2 = Velocity(36, "km/hr") # 36 kilometers per hour
11
+ """
12
+
13
+ _conversion = {
14
+ "m/s": 1,
15
+ "km/h": 1 / 3.6,
16
+ "cm/s": 0.01,
17
+ "ft/s": 0.3048,
18
+ "mph": 0.44704 # miles per hour to m/s
19
+ }
20
+
21
+ def __init__(self, value, units="m/s"):
22
+ if units not in self._conversion:
23
+ raise ValueError(f"{units} is not a valid unit for Velocity")
24
+ base_value = round(value * self._conversion[units], 6)
25
+ super().__init__(base_value, "m/s")
26
+ self.original_value = value
27
+ self.original_unit = units
28
+
29
+ def to(self, target_unit):
30
+ if target_unit not in self._conversion:
31
+ raise ValueError(f"{target_unit} is not a valid unit for Velocity")
32
+ converted_value = self.value / self._conversion[target_unit]
33
+ return Velocity(converted_value, target_unit)
34
+
35
+ def __add__(self, other):
36
+ if not isinstance(other, Velocity):
37
+ raise TypeError("Addition only allowed between Velocity objects")
38
+ result_in_base = self.value + other.value
39
+ return Velocity(result_in_base / self._conversion[self.original_unit], self.original_unit)
40
+
41
+ def __eq__(self, other):
42
+ return isinstance(other, Velocity) and self.value == other.value
43
+
44
+ def __repr__(self):
45
+ return f"{self.original_value} {self.original_unit}"
@@ -0,0 +1,78 @@
1
+ from .base import Variable
2
+
3
+ class Viscosity(Variable):
4
+ """
5
+ Represents a viscosity quantity.
6
+ Supports both dynamic viscosity (Pa·s) and kinematic viscosity (m²/s).
7
+
8
+ Example:
9
+ v1 = Viscosity(1e-3, units="Pa·s") # Dynamic viscosity
10
+ v2 = Viscosity(1, units="cSt") # Kinematic viscosity
11
+ """
12
+
13
+ _dynamic_conversion = {
14
+ "Pa·s": 1,
15
+ "mPa·s": 1e-3,
16
+ "cP": 1e-3, # Centipoise
17
+ "P": 0.1 # Poise
18
+ }
19
+
20
+ _kinematic_conversion = {
21
+ "m2/s": 1,
22
+ "cm2/s": 1e-4,
23
+ "mm2/s": 1e-6,
24
+ "cSt": 1e-6,
25
+ "St": 1e-4
26
+ }
27
+
28
+ def __init__(self, value, units="Pa·s"):
29
+ if value < 0:
30
+ raise ValueError("Viscosity must be a non-negative value")
31
+
32
+ if units in self._dynamic_conversion:
33
+ self.viscosity_type = "dynamic"
34
+ base_value = round(value * self._dynamic_conversion[units], 10)
35
+ base_unit = "Pa·s"
36
+ elif units in self._kinematic_conversion:
37
+ self.viscosity_type = "kinematic"
38
+ base_value = round(value * self._kinematic_conversion[units], 10)
39
+ base_unit = "m2/s"
40
+ else:
41
+ raise ValueError(f"{units} is not a valid unit for Viscosity")
42
+
43
+ super().__init__(base_value, base_unit)
44
+ self.original_value = value
45
+ self.original_unit = units
46
+
47
+ def to(self, target_unit):
48
+ if self.viscosity_type == "dynamic":
49
+ if target_unit not in self._dynamic_conversion:
50
+ raise ValueError(f"{target_unit} is not a valid unit for dynamic viscosity")
51
+ converted_value = self.value / self._dynamic_conversion[target_unit]
52
+ elif self.viscosity_type == "kinematic":
53
+ if target_unit not in self._kinematic_conversion:
54
+ raise ValueError(f"{target_unit} is not a valid unit for kinematic viscosity")
55
+ converted_value = self.value / self._kinematic_conversion[target_unit]
56
+ else:
57
+ raise ValueError("Unknown viscosity type")
58
+
59
+ return Viscosity(converted_value, target_unit)
60
+
61
+ def __add__(self, other):
62
+ if not isinstance(other, Viscosity):
63
+ raise TypeError("Addition only allowed between Viscosity objects")
64
+ if self.viscosity_type != other.viscosity_type:
65
+ raise ValueError("Cannot add viscosities of different types")
66
+ result_in_base = self.value + other.value
67
+ conversion_dict = self._dynamic_conversion if self.viscosity_type == "dynamic" else self._kinematic_conversion
68
+ return Viscosity(result_in_base / conversion_dict[self.original_unit], self.original_unit)
69
+
70
+ def __eq__(self, other):
71
+ return (
72
+ isinstance(other, Viscosity) and
73
+ self.value == other.value and
74
+ self.viscosity_type == other.viscosity_type
75
+ )
76
+
77
+ def __repr__(self):
78
+ return f"{self.original_value} {self.original_unit} ({self.viscosity_type})"
@@ -0,0 +1,50 @@
1
+ from .base import Variable
2
+
3
+ class Volume(Variable):
4
+ """
5
+ Represents a Volume quantity.
6
+ Default SI unit: Cubic Meter (m3).
7
+
8
+ Example:
9
+ v1 = Volume(1, "L")
10
+ v2 = Volume(0.001, "m3")
11
+ """
12
+
13
+ _conversion = {
14
+ "m3": 1,
15
+ "L": 0.001,
16
+ "mL": 0.000001,
17
+ "cm3": 0.000001,
18
+ "ft3": 0.0283168,
19
+ "in3": 0.0000163871,
20
+ "gal": 0.00378541, # US gallon
21
+ "bbl": 0.158987 # Oil barrel
22
+ }
23
+
24
+ def __init__(self, value, units="m3"):
25
+ if value < 0:
26
+ raise ValueError("Volume must be non-negative")
27
+ if units not in self._conversion:
28
+ raise TypeError(f"{units} is not a valid unit for Volume")
29
+ base_value = round(value * self._conversion[units], 6)
30
+ super().__init__(base_value, "m3")
31
+ self.original_value = value
32
+ self.original_unit = units
33
+
34
+ def to(self, target_unit):
35
+ if target_unit not in self._conversion:
36
+ raise TypeError(f"{target_unit} is not a valid unit for Volume")
37
+ converted_value = self.value / self._conversion[target_unit]
38
+ return Volume(round(converted_value, 6), target_unit)
39
+
40
+ def __add__(self, other):
41
+ if not isinstance(other, Volume):
42
+ raise TypeError("Addition only supported between Volume instances")
43
+ total = self.value + other.value
44
+ return Volume(round(total, 6), "m3")
45
+
46
+ def __eq__(self, other):
47
+ return isinstance(other, Volume) and self.value == other.value
48
+
49
+ def __repr__(self):
50
+ return f"{self.original_value} {self.original_unit}"
@@ -0,0 +1,52 @@
1
+ from .base import Variable
2
+
3
+ class VolumetricFlowRate(Variable):
4
+ """
5
+ Represents a Volumetric Flow Rate quantity.
6
+ Default SI unit: Cubic meters per second (m³/s).
7
+
8
+ Example:
9
+ v1 = VolumetricFlowRate(2, "m3/h")
10
+ v2 = VolumetricFlowRate(500, "L/min")
11
+ """
12
+
13
+ _conversion = {
14
+ "m3/s": 1,
15
+ "m3/h": 1 / 3600,
16
+ "L/s": 1 / 1000,
17
+ "L/min": 1 / (1000 * 60),
18
+ "L/h": 1 / (1000 * 3600),
19
+ "ft3/s": 0.0283168,
20
+ "ft3/min": 0.0283168 / 60,
21
+ "ft3/h": 0.0283168 / 3600,
22
+ "gal/min": 0.00378541 / 60,
23
+ "gal/h": 0.00378541 / 3600
24
+ }
25
+
26
+ def __init__(self, value, units="m3/s"):
27
+ if value < 0:
28
+ raise ValueError("Volumetric flow rate must be non-negative")
29
+ if units not in self._conversion:
30
+ raise TypeError(f"{units} is not a valid volumetric flow rate unit")
31
+ base_value = round(value * self._conversion[units], 6)
32
+ super().__init__(base_value, "m3/s")
33
+ self.original_value = value
34
+ self.original_unit = units
35
+
36
+ def to(self, target_unit):
37
+ if target_unit not in self._conversion:
38
+ raise TypeError(f"{target_unit} is not a valid unit for VolumetricFlowRate")
39
+ converted_value = self.value / self._conversion[target_unit]
40
+ return VolumetricFlowRate(round(converted_value, 6), target_unit)
41
+
42
+ def __add__(self, other):
43
+ if not isinstance(other, VolumetricFlowRate):
44
+ raise TypeError("Addition only supported between VolumetricFlowRate instances")
45
+ total = self.value + other.value
46
+ return VolumetricFlowRate(round(total, 6), "m3/s")
47
+
48
+ def __eq__(self, other):
49
+ return isinstance(other, VolumetricFlowRate) and self.value == other.value
50
+
51
+ def __repr__(self):
52
+ return f"{self.original_value} {self.original_unit}"
@@ -0,0 +1,5 @@
1
+ Metadata-Version: 2.4
2
+ Name: processpi
3
+ Version: 0.0.0
4
+ License-File: LICENSE
5
+ Dynamic: license-file
@@ -0,0 +1,96 @@
1
+ processpi/__init__.py,sha256=Pru0BlFBASFCFo7McHdohtKkUtgMPDwbGfyUZlE2_Vw,21
2
+ processpi/calculations/__init__.py,sha256=-dhANriHEnrtXMn9Wszcx5h4RFZU4awtwZNeFlVQKeo,122
3
+ processpi/calculations/base.py,sha256=sJ7xEiAIPzEfT3NbsDtFeJeISCBF4xU6c95phoLlJXI,1354
4
+ processpi/calculations/engine.py,sha256=2GvLs6XyFMMcAO-Xoc24s8_Y45g0v4OX8D_i8D_q--Y,2370
5
+ processpi/calculations/fluids/__init__.py,sha256=qVzjAO1iXt-8_GDLHixpFGmrHnpUKxfMUia2efQW810,603
6
+ processpi/calculations/fluids/cool_brook_white.py,sha256=nyAtZXHg0Lg6Llhr3DeMZkbwoVLiU90JcvCjWOso98M,1432
7
+ processpi/calculations/fluids/flow_type.py,sha256=-oAFOcvBcSKvVWUxSlfqGI4kzL8OA5TzY2lEh8ByoI8,939
8
+ processpi/calculations/fluids/optimium_pipe_dia.py,sha256=RHoIcHEO6ckHmVFKg5K5CX_f4ugXgodgw64BESrI5NM,1419
9
+ processpi/calculations/fluids/pressure_drop_darcy.py,sha256=mr3hp0Sqe4T6f1kpdKJwjvVoytbdQkPfGLLMP3Sd-gw,1008
10
+ processpi/calculations/fluids/pressure_drop_fanning.py,sha256=iMA42_PvlYFSTKCzKb8ZRaoKIFWnTaMIHCKD_jMQN20,1009
11
+ processpi/calculations/fluids/pump_power.py,sha256=_a8k2ns5VPDgiJfXr3w02qxE-3uEsb2BSQXWtXiByYo,1259
12
+ processpi/calculations/fluids/reynolds_number.py,sha256=u8zWxlHCzum5FikFds9tS2bHSr7LaIhWfkkaAtCgkp0,827
13
+ processpi/calculations/fluids/velocity.py,sha256=ZE_NIEgtxOvgRP03Bpt7YGD5BtsNmuC8G9vubER7GCI,942
14
+ processpi/calculations/heat_transfer/__init__.py,sha256=FE4xek8D9fS3hheJrfm_Q2Ik8PuxBK89qBKoNCIxJ0Q,232
15
+ processpi/calculations/heat_transfer/conduction_heat_loss.py,sha256=S_twFP2wQJZu7bC9N7EOzww5eWxI8g8QGTUNHC1-l0c,1057
16
+ processpi/calculations/heat_transfer/convection_heat_loss.py,sha256=4uyviLf7YMoRBrsxECd1o1Fv1s1rMZPMSeX8bYb7ReM,797
17
+ processpi/calculations/heat_transfer/heat_exchanger_area.py,sha256=xa52Wb5WM98tiZ9DtWJUgRTbHqMsa0knyy8NMLLjNVU,981
18
+ processpi/calculations/mass_transfer/__init__.py,sha256=UBbu2shxLLSQ1jk0kJ0CqW16gEFCjA4At5jKANqa2mo,151
19
+ processpi/calculations/mass_transfer/distillation_stage_count.py,sha256=wCfxlDivGON49P7AaB9slzUTF1S9vDcXTviLvsdRrhM,13606
20
+ processpi/calculations/mass_transfer/drying_rate.py,sha256=DdnnkGbYf8sP2jXJty76Bunvl9NMuiKGHMdoFMPVU6M,5231
21
+ processpi/calculations/reaction_engineering/__init__.py,sha256=lnOankPmqF49ArQPY8pSfZ_HX37EPup4-Rx_CjxwXsY,193
22
+ processpi/calculations/reaction_engineering/catalyst_activity.py,sha256=sxoeHX8VP_lDlgm5dY3ZzuroOgY6DPNo5YuEAq4tJpY,4010
23
+ processpi/calculations/reaction_engineering/reaction_rate.py,sha256=s4eARIwf86WK1nu2J8k-BrX7b8gnAOJzSXmlwjrddG4,6204
24
+ processpi/calculations/reaction_engineering/residence_time.py,sha256=oIco_vNO45UsOnisTWs-ipMeyeD13wNKrgojIz772bQ,2707
25
+ processpi/calculations/thermodynamics/__init__.py,sha256=4H0mbBlwMboVmfV6lEZ5gH54JuQi5Imjmcn0tFNSBcs,206
26
+ processpi/calculations/thermodynamics/enthalpy_change.py,sha256=5xR-eOlJkN8cuuKyA9ca3-ejuiuEYC80lr3kN-xjD9w,865
27
+ processpi/calculations/thermodynamics/entropy_change.py,sha256=Ipg7umRNGLSWwswYYcAX8H5l8r_57AIG15Q4NzMlif8,1063
28
+ processpi/calculations/thermodynamics/heat_of_vaporization.py,sha256=A7I2kvA-rhG9jgiRA0Dn7cJuHqbHgLOjuHvDKDX6qdw,675
29
+ processpi/components/__init__.py,sha256=paUmN0yzyjfqdiL35bLmdwD9HIC0ZM3ZajohHwBKhe8,103
30
+ processpi/components/aceticacid.py,sha256=fQ7ciZjfupqm4LH1EmPh78M2SrwBZgsIuyZ6naxsHDA,934
31
+ processpi/components/acetone.py,sha256=PeKwI0LnitvXmvbcZd3B55jY2YYv1yLzePn9vepcofQ,931
32
+ processpi/components/acrylicacid.py,sha256=CkRp0ZTLcErOnbqlDihm7beNl_G8-nsVeQvzmZUUp2Q,932
33
+ processpi/components/air.py,sha256=ipo9UcgDv-ItmgEYyzIbvMPvwobduD8uFFWjQEw38yU,935
34
+ processpi/components/ammonia.py,sha256=P8WKDlYV1QcFJ30XJd8M42TBkZW3PXBvmn6uEcboDMY,934
35
+ processpi/components/base.py,sha256=jOb1viibs5OuZOMQo5a4TPXZ2NfmsEXLVTrsjUXC1m8,3578
36
+ processpi/components/benzene.py,sha256=aRiTXPer_H6KDHoZwZvgYF7e_CYF36juT7ajtiaB6vQ,1777
37
+ processpi/components/benzoicacid.py,sha256=76bQo8wo-BU31JPH4VHHq4yBlfooygqXSG_lTVySOsM,912
38
+ processpi/components/bromine.py,sha256=rfIBoK9wyo3qKCe0Z2GQv7kB0TFv7MGIG8ZASqA1UO0,933
39
+ processpi/components/butane.py,sha256=jwUryS9DsZd_kYuqvsrYIC5FCAuLoJ9HCFWU9xDZY0k,949
40
+ processpi/components/carbondioxide.py,sha256=R04R6N6e5Mpv5RBdaBKv4mocARIc3QpcmcQdLdTrj5M,943
41
+ processpi/components/carbonmonoxide.py,sha256=wNdO68FO2TiEmTLfAN0gGMYS3NZsMjLnXW3LD6BQ4uQ,933
42
+ processpi/components/carbontetrachloride.py,sha256=uiPWMANgLP3OWZ5YhPyrU3HR1dn0Ray-F8Gyr30Fe-o,948
43
+ processpi/components/chlorine.py,sha256=yKSYzExp2BapO2nTuvQMf994dqCFXyhktXJk8DWm2AQ,911
44
+ processpi/components/chlorobenzene.py,sha256=6mNFJ3dKTINuBnCqbQ-Eq0UZjECvXcrzTHqZUw-b7C4,958
45
+ processpi/components/chloroform.py,sha256=FXfuW0eAhIIkTu9w6c2jCTVEsiGZ8IKq3_sv8I0aeog,921
46
+ processpi/components/chloromethane.py,sha256=rXWiBTfPb7nNW0psOsGzlvl5ZT9p4CVR2rk3oATOoek,942
47
+ processpi/components/cyanogen.py,sha256=bbE_UERPXM9G_i-Z9cP08-TkfgCLUv4ZpgIGj_biAJo,912
48
+ processpi/components/cyclohexene.py,sha256=dn81uJ3_ASmKV6aogGKHoIRsSrPxuS0wiErB9AEP9Q4,935
49
+ processpi/components/ethane.py,sha256=mdCrdSwO_mKgfQaPOg1Z3zRDHfcaHKE8lLQsEwo_X9Q,939
50
+ processpi/components/ethanol.py,sha256=_DIiMDsAzFwQiAHFsb9URR4bXLvRcFPW-6r1pMhxmeY,942
51
+ processpi/components/ethylacetate.py,sha256=KgLklDrimnbi6t60XPM0TMaMZdTNP04buxNc2lUept4,929
52
+ processpi/components/methanol.py,sha256=D4WtrMxogswtdNUVZq2-MtSIZVryYYSfO_UTs3UoLYU,930
53
+ processpi/components/toluene.py,sha256=gq39yyo5UuV_VVrdNpxKK5eqIlj3wIu6EKs44gFGHzw,942
54
+ processpi/components/water.py,sha256=csCUyJDqeOEKD-RsdFmSQ4cb2l76VNZ6yKN7dUXNJ10,1106
55
+ processpi/pipelines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ processpi/pipelines/base.py,sha256=9Qa4Mc1Qs4zKUvW_pggi1_EBS36pQNipFD5OandBRp8,2177
57
+ processpi/pipelines/design_rules.py,sha256=04AsK9cbVPHBYvpjv90GqVcZHuO8E-luEV-HjalkN6Y,3676
58
+ processpi/pipelines/engine.py,sha256=sCskkcdVgdlnb7KPsbVbQQFQ2wCn5SAWT8GUYAYSw7Q,32692
59
+ processpi/pipelines/equipment.py,sha256=xNGsJJed3T6bDz854cWvmQhFyLoAVf8U-r3mCRMCC9Y,1106
60
+ processpi/pipelines/fittings.py,sha256=PTk_2GTR_0bwgqe8dsYOp0uJVot0nCo0QShQ1kqXav4,2333
61
+ processpi/pipelines/insulation.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ processpi/pipelines/materials.py,sha256=7LXbj1Z8ZuzOiOAwsVEP9DPdNsBBYBASoS-O39KJnzk,3208
63
+ processpi/pipelines/network.py,sha256=CQhOCdt71_NZ08yTmTdf6_hU-f1NiINK1Fue8lYsECM,13517
64
+ processpi/pipelines/pipelineresults.py,sha256=SuiKj-y6pxiBpNhUVnIYBC2ozrcPN8EfE6WApYdP0zY,4123
65
+ processpi/pipelines/pipes.py,sha256=oZAFySe0DBgkLBzBwo2GApze12GHqNNwB0SB4N2GOuQ,3363
66
+ processpi/pipelines/pumps.py,sha256=Rk8QKcVhETQ5yuSuI6ZzJlVuCbeQ3MpQYDBHCg-_Ze8,3071
67
+ processpi/pipelines/selection.py,sha256=RzETuc94I1Mtnw3kGRjCVmPx1NZiXNtkz1OrNrvMl9Y,3047
68
+ processpi/pipelines/standards.py,sha256=tnzYFc4UXMXvP7ktm9HOMiP3Isb4RRJe0Nrt8MLpRQQ,9286
69
+ processpi/pipelines/vessel.py,sha256=5gVA1sOOtUxCGuVH_3O9gAmxvkWIpNI8nQNlclKheFA,1189
70
+ processpi/units/__init__.py,sha256=v44m-5WtSY_9Hepz3iLoLpN8xEUwSyP-VMDj3tNuFWI,1232
71
+ processpi/units/area.py,sha256=jHxfvFCWcEsJ3VgMdNJMO7iAdzc9EHFGiGFiUDrMh8k,1558
72
+ processpi/units/base.py,sha256=Zu85mje1syU3P9ZGWhoBAtCyUQ89a35gvdtgoMQ_egA,1795
73
+ processpi/units/density.py,sha256=1Ze4pWvjzhdc8sXE9QC8HkpS6PX3-HfoTFakEvhKdSk,1678
74
+ processpi/units/diameter.py,sha256=B2uJUL8iHMlbneXvcX6FYfeUR4uDP0sOKDLOy9t19mo,1772
75
+ processpi/units/dimensionless.py,sha256=5JxYqb37hiBjpU6kEnX2HftpQ5m4kOvmXIqr-APRzFE,1507
76
+ processpi/units/heat_flux.py,sha256=TSRYY8BO80HmqX-4M90WG5Dz4dcJPyGpLCucWgwoMnM,1597
77
+ processpi/units/heat_of_vaporization.py,sha256=2YP6PB1wacZXMVQXPqZRqeVT_vm-mj3sKqsGMTp27VM,1799
78
+ processpi/units/heat_transfer_coefficient.py,sha256=QFjsYYoFjyTXdYRvLmnO6Iw4FVMQuieaRgevIdqWUeE,1750
79
+ processpi/units/length.py,sha256=zSE7zgn-Gply6fi_H6LpF6TG4b8RQv1Qu_XVuFAg3R8,1594
80
+ processpi/units/mass.py,sha256=aJfHwyIj1h13RFAcEh60FVNRFvTJF8cZDJHKshV8L-0,1527
81
+ processpi/units/mass_flowrate.py,sha256=MpHR8s1h35o6vmmABokFFT1Ic7-CT3Efgd0CYuIJzWk,1679
82
+ processpi/units/pressure.py,sha256=OVeeQkhsdcLBO4bCKufs94IQeihfxvnGdPBkE2nbd1A,1838
83
+ processpi/units/specific_heat.py,sha256=3pMrE3fFZr1Btv-eMle-nDcQYfw-VZhlfULqaygvO-I,1652
84
+ processpi/units/strings.py,sha256=Wd_z90WNXRAM7e1czahXZva5pY2TVEMQiy6QLI_hABc,996
85
+ processpi/units/temperature.py,sha256=GAy5LSH1pzmTX9e40mUrfGlAA5WGpy4PhfSXg_a3Vbs,1732
86
+ processpi/units/thermal_conductivity.py,sha256=GGPvYwNaN9NprbpK7ldWgazi49-FL-M1013rv8VNXdQ,1689
87
+ processpi/units/thermal_resistance.py,sha256=H9KdRoh71_iAigj1AEzWvGMwFNmZX-nyW8fSrTuC6gU,1701
88
+ processpi/units/velocity.py,sha256=Wi3U7qcQbxqjAZuD40Lf6MEv3Jos21NAZ1FLMrn9Lxc,1545
89
+ processpi/units/viscosity.py,sha256=_bVr6J6WGDElCnFNaFYCHL-UsURhBidyzomO8ieYTdM,2989
90
+ processpi/units/volume.py,sha256=E57IavNqBGNODeNgQWIbQDhD0Qkpuu_IXS2GClfronE,1589
91
+ processpi/units/volumetric_flowrate.py,sha256=EdO9PqvejIYG5w1Aso1kPaq_1DZx_odF8zn7GojrKkc,1843
92
+ processpi-0.0.0.dist-info/licenses/LICENSE,sha256=LLsk14Te6RdTqzUcdcrr3PnPSVyEyGkosJ3sOonPDdA,1082
93
+ processpi-0.0.0.dist-info/METADATA,sha256=J1bOit2xel2_ISkoYgb3jbbKyUG_MsN5wtllQmCxsUg,97
94
+ processpi-0.0.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
95
+ processpi-0.0.0.dist-info/top_level.txt,sha256=7B_zECJiP0SK4Az60RbpE9NO5VhA_Enhkq84jnp9eo0,10
96
+ processpi-0.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Raviteja Varma Nadimpalli
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ processpi