qnty 0.0.8__py3-none-any.whl → 0.1.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 (74) hide show
  1. qnty/__init__.py +140 -59
  2. qnty/constants/__init__.py +10 -0
  3. qnty/constants/numerical.py +18 -0
  4. qnty/constants/solvers.py +6 -0
  5. qnty/constants/tests.py +6 -0
  6. qnty/dimensions/__init__.py +23 -0
  7. qnty/dimensions/base.py +97 -0
  8. qnty/dimensions/field_dims.py +126 -0
  9. qnty/dimensions/field_dims.pyi +128 -0
  10. qnty/dimensions/signature.py +111 -0
  11. qnty/equations/__init__.py +4 -0
  12. qnty/equations/equation.py +220 -0
  13. qnty/equations/system.py +130 -0
  14. qnty/expressions/__init__.py +40 -0
  15. qnty/expressions/formatter.py +188 -0
  16. qnty/expressions/functions.py +74 -0
  17. qnty/expressions/nodes.py +701 -0
  18. qnty/expressions/types.py +70 -0
  19. qnty/extensions/plotting/__init__.py +0 -0
  20. qnty/extensions/reporting/__init__.py +0 -0
  21. qnty/problems/__init__.py +145 -0
  22. qnty/problems/composition.py +1031 -0
  23. qnty/problems/problem.py +695 -0
  24. qnty/problems/rules.py +145 -0
  25. qnty/problems/solving.py +1216 -0
  26. qnty/problems/validation.py +127 -0
  27. qnty/quantities/__init__.py +29 -0
  28. qnty/quantities/base_qnty.py +677 -0
  29. qnty/quantities/field_converters.py +24004 -0
  30. qnty/quantities/field_qnty.py +1012 -0
  31. qnty/quantities/field_setter.py +12320 -0
  32. qnty/quantities/field_vars.py +6325 -0
  33. qnty/quantities/field_vars.pyi +4191 -0
  34. qnty/solving/__init__.py +0 -0
  35. qnty/solving/manager.py +96 -0
  36. qnty/solving/order.py +403 -0
  37. qnty/solving/solvers/__init__.py +13 -0
  38. qnty/solving/solvers/base.py +82 -0
  39. qnty/solving/solvers/iterative.py +165 -0
  40. qnty/solving/solvers/simultaneous.py +475 -0
  41. qnty/units/__init__.py +1 -0
  42. qnty/units/field_units.py +10507 -0
  43. qnty/units/field_units.pyi +2461 -0
  44. qnty/units/prefixes.py +203 -0
  45. qnty/{unit.py → units/registry.py} +89 -61
  46. qnty/utils/__init__.py +16 -0
  47. qnty/utils/caching/__init__.py +23 -0
  48. qnty/utils/caching/manager.py +401 -0
  49. qnty/utils/error_handling/__init__.py +66 -0
  50. qnty/utils/error_handling/context.py +39 -0
  51. qnty/utils/error_handling/exceptions.py +96 -0
  52. qnty/utils/error_handling/handlers.py +171 -0
  53. qnty/utils/logging.py +40 -0
  54. qnty/utils/protocols.py +164 -0
  55. qnty/utils/scope_discovery.py +420 -0
  56. qnty-0.1.0.dist-info/METADATA +199 -0
  57. qnty-0.1.0.dist-info/RECORD +60 -0
  58. qnty/dimension.py +0 -186
  59. qnty/equation.py +0 -297
  60. qnty/expression.py +0 -553
  61. qnty/prefixes.py +0 -229
  62. qnty/unit_types/base.py +0 -47
  63. qnty/units.py +0 -8113
  64. qnty/variable.py +0 -300
  65. qnty/variable_types/base.py +0 -58
  66. qnty/variable_types/expression_variable.py +0 -106
  67. qnty/variable_types/typed_variable.py +0 -87
  68. qnty/variables.py +0 -2298
  69. qnty/variables.pyi +0 -6148
  70. qnty-0.0.8.dist-info/METADATA +0 -355
  71. qnty-0.0.8.dist-info/RECORD +0 -19
  72. /qnty/{unit_types → extensions}/__init__.py +0 -0
  73. /qnty/{variable_types → extensions/integration}/__init__.py +0 -0
  74. {qnty-0.0.8.dist-info → qnty-0.1.0.dist-info}/WHEEL +0 -0
qnty/__init__.py CHANGED
@@ -2,17 +2,26 @@
2
2
  Qnty - High-Performance Unit System for Engineering
3
3
  ====================================================
4
4
 
5
- A fast, type-safe unit system library for Python with dimensional safety
6
- and optimized unit conversions for engineering calculations.
5
+ A fast, type-safe unit system library for Python with dimensional safety and optimized unit conversions for engineering calculations.
7
6
  """
8
7
 
9
- from .dimension import BaseDimension, DimensionSignature
10
- from .equation import Equation
11
- from .expression import Expression
12
- from .unit import registry
13
- from .units import register_all_units
14
- from .variable import FastQuantity, TypeSafeSetter, TypeSafeVariable
15
- from .variables import (
8
+ # from . import (quantity, expressions)
9
+
10
+ from .expressions import (
11
+ abs_expr,
12
+ cond_expr,
13
+ cos,
14
+ exp,
15
+ ln,
16
+ log10,
17
+ max_expr,
18
+ min_expr,
19
+ sin,
20
+ sqrt,
21
+ tan,
22
+ )
23
+ from .problems import Problem
24
+ from .quantities.field_vars import (
16
25
  AbsorbedDose,
17
26
  Acceleration,
18
27
  ActivationEnergy,
@@ -27,6 +36,9 @@ from .variables import (
27
36
  Concentration,
28
37
  Dimensionless,
29
38
  DynamicFluidity,
39
+ ElectricalConductance,
40
+ ElectricalPermittivity,
41
+ ElectricalResistivity,
30
42
  ElectricCapacitance,
31
43
  ElectricCharge,
32
44
  ElectricCurrentIntensity,
@@ -35,9 +47,6 @@ from .variables import (
35
47
  ElectricInductance,
36
48
  ElectricPotential,
37
49
  ElectricResistance,
38
- ElectricalConductance,
39
- ElectricalPermittivity,
40
- ElectricalResistivity,
41
50
  EnergyFlux,
42
51
  EnergyHeatWork,
43
52
  EnergyPerUnitArea,
@@ -119,56 +128,128 @@ from .variables import (
119
128
  VolumetricFlowRate,
120
129
  VolumetricFlux,
121
130
  VolumetricMassFlowRate,
122
- Wavenumber
131
+ Wavenumber,
123
132
  )
124
133
 
125
- # Register all units to the global registry
126
- register_all_units(registry)
127
-
128
- # Finalize registry after all registrations
129
- registry.finalize_registration()
130
-
131
134
  # Define public API
132
135
  __all__ = [
133
- # Core variable types (most commonly used)
134
- "Dimensionless", "Length", "Pressure", "Temperature", "Time", "Mass",
135
- "Volume", "Area", "Force", "EnergyHeatWork", "PowerThermalDuty",
136
-
137
- # Core classes for advanced usage
138
- "FastQuantity", "TypeSafeVariable", "TypeSafeSetter",
139
- "DimensionSignature", "BaseDimension",
140
- "Expression", "Equation",
141
-
142
- # All other variable types (96 additional types)
143
- "AbsorbedDose", "Acceleration", "ActivationEnergy", "AmountOfSubstance",
144
- "AnglePlane", "AngleSolid", "AngularAcceleration", "AngularMomentum",
145
- "AreaPerUnitVolume", "AtomicWeight", "Concentration", "DynamicFluidity",
146
- "ElectricCapacitance", "ElectricCharge", "ElectricCurrentIntensity",
147
- "ElectricDipoleMoment", "ElectricFieldStrength", "ElectricInductance",
148
- "ElectricPotential", "ElectricResistance", "ElectricalConductance",
149
- "ElectricalPermittivity", "ElectricalResistivity", "EnergyFlux",
150
- "EnergyPerUnitArea", "ForceBody", "ForcePerUnitMass",
151
- "FrequencyVoltageRatio", "FuelConsumption", "HeatOfCombustion",
152
- "HeatOfFusion", "HeatOfVaporization", "HeatTransferCoefficient",
153
- "Illuminance", "KineticEnergyOfTurbulence", "LinearMassDensity",
154
- "LinearMomentum", "LuminanceSelf", "LuminousFlux", "LuminousIntensity",
155
- "MagneticField", "MagneticFlux", "MagneticInductionFieldStrength",
156
- "MagneticMoment", "MagneticPermeability", "MagnetomotiveForce",
157
- "MassDensity", "MassFlowRate", "MassFlux", "MassFractionOfI",
158
- "MassTransferCoefficient", "MolalityOfSoluteI", "MolarConcentrationByMass",
159
- "MolarFlowRate", "MolarFlux", "MolarHeatCapacity", "MolarityOfI",
160
- "MoleFractionOfI", "MomentOfInertia", "MomentumFlowRate", "MomentumFlux",
161
- "NormalityOfSolution", "ParticleDensity", "Percent", "Permeability",
162
- "PhotonEmissionRate", "PowerPerUnitMass", "PowerPerUnitVolume",
163
- "RadiationDoseEquivalent", "RadiationExposure", "Radioactivity",
164
- "SecondMomentOfArea", "SecondRadiationConstantPlanck", "SpecificEnthalpy",
165
- "SpecificGravity", "SpecificHeatCapacityConstantPressure",
166
- "SpecificLength", "SpecificSurface", "SpecificVolume", "Stress",
167
- "SurfaceMassDensity", "SurfaceTension", "ThermalConductivity", "Torque",
168
- "TurbulenceEnergyDissipationRate", "VelocityAngular", "VelocityLinear",
169
- "ViscosityDynamic", "ViscosityKinematic", "VolumeFractionOfI",
170
- "VolumetricCalorificHeatingValue", "VolumetricCoefficientOfExpansion",
171
- "VolumetricFlowRate", "VolumetricFlux", "VolumetricMassFlowRate",
136
+ "abs_expr",
137
+ "min_expr",
138
+ "max_expr",
139
+ "cond_expr",
140
+ "sin",
141
+ "cos",
142
+ "tan",
143
+ "sqrt",
144
+ "ln",
145
+ "log10",
146
+ "exp",
147
+ "Problem",
148
+ "AbsorbedDose",
149
+ "Acceleration",
150
+ "ActivationEnergy",
151
+ "AmountOfSubstance",
152
+ "AnglePlane",
153
+ "AngleSolid",
154
+ "AngularAcceleration",
155
+ "AngularMomentum",
156
+ "Area",
157
+ "AreaPerUnitVolume",
158
+ "AtomicWeight",
159
+ "Concentration",
160
+ "Dimensionless",
161
+ "DynamicFluidity",
162
+ "ElectricalConductance",
163
+ "ElectricalPermittivity",
164
+ "ElectricalResistivity",
165
+ "ElectricCapacitance",
166
+ "ElectricCharge",
167
+ "ElectricCurrentIntensity",
168
+ "ElectricDipoleMoment",
169
+ "ElectricFieldStrength",
170
+ "ElectricInductance",
171
+ "ElectricPotential",
172
+ "ElectricResistance",
173
+ "EnergyFlux",
174
+ "EnergyHeatWork",
175
+ "EnergyPerUnitArea",
176
+ "Force",
177
+ "ForceBody",
178
+ "ForcePerUnitMass",
179
+ "FrequencyVoltageRatio",
180
+ "FuelConsumption",
181
+ "HeatOfCombustion",
182
+ "HeatOfFusion",
183
+ "HeatOfVaporization",
184
+ "HeatTransferCoefficient",
185
+ "Illuminance",
186
+ "KineticEnergyOfTurbulence",
187
+ "Length",
188
+ "LinearMassDensity",
189
+ "LinearMomentum",
190
+ "LuminanceSelf",
191
+ "LuminousFlux",
192
+ "LuminousIntensity",
193
+ "MagneticField",
194
+ "MagneticFlux",
195
+ "MagneticInductionFieldStrength",
196
+ "MagneticMoment",
197
+ "MagneticPermeability",
198
+ "MagnetomotiveForce",
199
+ "Mass",
200
+ "MassDensity",
201
+ "MassFlowRate",
202
+ "MassFlux",
203
+ "MassFractionOfI",
204
+ "MassTransferCoefficient",
205
+ "MolalityOfSoluteI",
206
+ "MolarConcentrationByMass",
207
+ "MolarFlowRate",
208
+ "MolarFlux",
209
+ "MolarHeatCapacity",
210
+ "MolarityOfI",
211
+ "MoleFractionOfI",
212
+ "MomentOfInertia",
213
+ "MomentumFlowRate",
214
+ "MomentumFlux",
215
+ "NormalityOfSolution",
216
+ "ParticleDensity",
217
+ "Percent",
218
+ "Permeability",
219
+ "PhotonEmissionRate",
220
+ "PowerPerUnitMass",
221
+ "PowerPerUnitVolume",
222
+ "PowerThermalDuty",
223
+ "Pressure",
224
+ "RadiationDoseEquivalent",
225
+ "RadiationExposure",
226
+ "Radioactivity",
227
+ "SecondMomentOfArea",
228
+ "SecondRadiationConstantPlanck",
229
+ "SpecificEnthalpy",
230
+ "SpecificGravity",
231
+ "SpecificHeatCapacityConstantPressure",
232
+ "SpecificLength",
233
+ "SpecificSurface",
234
+ "SpecificVolume",
235
+ "Stress",
236
+ "SurfaceMassDensity",
237
+ "SurfaceTension",
238
+ "Temperature",
239
+ "ThermalConductivity",
240
+ "Time",
241
+ "Torque",
242
+ "TurbulenceEnergyDissipationRate",
243
+ "VelocityAngular",
244
+ "VelocityLinear",
245
+ "ViscosityDynamic",
246
+ "ViscosityKinematic",
247
+ "Volume",
248
+ "VolumeFractionOfI",
249
+ "VolumetricCalorificHeatingValue",
250
+ "VolumetricCoefficientOfExpansion",
251
+ "VolumetricFlowRate",
252
+ "VolumetricFlux",
253
+ "VolumetricMassFlowRate",
172
254
  "Wavenumber",
173
255
  ]
174
-
@@ -0,0 +1,10 @@
1
+ """
2
+ Mathematical and numerical constants used throughout the qnty library.
3
+
4
+ This module centralizes magic numbers and tolerances to improve maintainability
5
+ and consistency across the codebase.
6
+ """
7
+
8
+ from .numerical import *
9
+ from .solvers import *
10
+ from .tests import *
@@ -0,0 +1,18 @@
1
+ # Numerical tolerances for floating point comparisons
2
+ FLOAT_EQUALITY_TOLERANCE = 1e-10
3
+ """Default tolerance for floating point equality comparisons."""
4
+
5
+ DIVISION_BY_ZERO_THRESHOLD = 1e-15
6
+ """Threshold below which a value is considered effectively zero for division."""
7
+
8
+ CONDITION_EVALUATION_THRESHOLD = 1e-10
9
+ """Threshold for evaluating conditional expressions as true/false."""
10
+
11
+ DIMENSIONAL_PRECISION_TOLERANCE = 1e-10
12
+ """Tolerance for dimensional signature comparisons."""
13
+
14
+ PREFIX_LOOKUP_TOLERANCE = 1e-10
15
+ """Default tolerance for SI prefix factor lookup."""
16
+
17
+ PREFIX_LOOKUP_MIN_TOLERANCE = 1e-15
18
+ """Minimum tolerance for SI prefix factor lookup to avoid expensive searches."""
@@ -0,0 +1,6 @@
1
+ # Solver defaults
2
+ SOLVER_DEFAULT_TOLERANCE = 1e-10
3
+ """Default numerical tolerance for equation solving convergence."""
4
+
5
+ SOLVER_DEFAULT_MAX_ITERATIONS = 100
6
+ """Default maximum iterations for iterative solvers."""
@@ -0,0 +1,6 @@
1
+ # Test tolerances
2
+ TEST_PRECISION_TOLERANCE = 1e-6
3
+ """Tolerance used in tests for validating calculated results."""
4
+
5
+ TEST_DIMENSION_TOLERANCE = 1e-10
6
+ """Tolerance used in tests for dimensional signature comparisons."""
@@ -0,0 +1,23 @@
1
+ """
2
+ Core Dimensions Module
3
+ ======================
4
+
5
+ Core dimensional analysis components providing compile-time type safety.
6
+
7
+ This module provides the fundamental building blocks for qnty's dimensional analysis system:
8
+ - BaseDimension: Prime-number-encoded base dimensions
9
+ - DimensionSignature: Ultra-fast dimensional compatibility checking
10
+ """
11
+
12
+ from .base import BASE_DIMENSIONS, DIMENSION_SYMBOLS, PRIME_MAP, BaseDimension, DimensionConfig
13
+ from .field_dims import * # noqa: F403
14
+ from .signature import DimensionSignature
15
+
16
+ __all__ = (
17
+ "BaseDimension",
18
+ "DimensionSignature",
19
+ "DimensionConfig",
20
+ "BASE_DIMENSIONS",
21
+ "DIMENSION_SYMBOLS",
22
+ "PRIME_MAP"
23
+ )
@@ -0,0 +1,97 @@
1
+ """
2
+ Base Dimensions
3
+ ===============
4
+
5
+ Core base dimensions using prime number encoding for efficient dimensional analysis.
6
+
7
+ This file contains the fundamental dimensional primitives for the qnty system.
8
+ """
9
+
10
+ from dataclasses import dataclass
11
+ from enum import IntEnum
12
+ from types import MappingProxyType
13
+
14
+
15
+ class BaseDimension(IntEnum):
16
+ """Base dimensions as prime numbers for efficient bit operations."""
17
+
18
+ DIMENSIONLESS = 1 # Must be 1 to act as identity
19
+ LENGTH = 2
20
+ MASS = 3
21
+ TIME = 5
22
+ CURRENT = 7
23
+ TEMPERATURE = 11
24
+ AMOUNT = 13
25
+ LUMINOSITY = 17
26
+
27
+
28
+ @dataclass(frozen=True)
29
+ class DimensionConfig:
30
+ """Immutable configuration for a base dimension."""
31
+ prime: BaseDimension
32
+ params: MappingProxyType[str, int]
33
+
34
+
35
+ # Immutable dimension symbols for display
36
+ DIMENSION_SYMBOLS: MappingProxyType[str, str] = MappingProxyType(
37
+ {
38
+ "length": "L",
39
+ "mass": "M",
40
+ "time": "T",
41
+ "current": "A",
42
+ "temp": "Θ",
43
+ "amount": "N",
44
+ "luminosity": "J",
45
+ }
46
+ )
47
+
48
+ # Immutable base dimensions configuration for generators
49
+ BASE_DIMENSIONS: MappingProxyType[str, DimensionConfig] = MappingProxyType(
50
+ {
51
+ "LENGTH": DimensionConfig(
52
+ BaseDimension.LENGTH,
53
+ MappingProxyType({"length": 1})
54
+ ),
55
+ "MASS": DimensionConfig(
56
+ BaseDimension.MASS,
57
+ MappingProxyType({"mass": 1})
58
+ ),
59
+ "TIME": DimensionConfig(
60
+ BaseDimension.TIME,
61
+ MappingProxyType({"time": 1})
62
+ ),
63
+ "CURRENT": DimensionConfig(
64
+ BaseDimension.CURRENT,
65
+ MappingProxyType({"current": 1})
66
+ ),
67
+ "TEMPERATURE": DimensionConfig(
68
+ BaseDimension.TEMPERATURE,
69
+ MappingProxyType({"temp": 1})
70
+ ),
71
+ "AMOUNT": DimensionConfig(
72
+ BaseDimension.AMOUNT,
73
+ MappingProxyType({"amount": 1})
74
+ ),
75
+ "LUMINOSITY": DimensionConfig(
76
+ BaseDimension.LUMINOSITY,
77
+ MappingProxyType({"luminosity": 1})
78
+ ),
79
+ "DIMENSIONLESS": DimensionConfig(
80
+ BaseDimension.DIMENSIONLESS,
81
+ MappingProxyType({})
82
+ ),
83
+ }
84
+ )
85
+
86
+ # Immutable prime mapping for signature calculations
87
+ PRIME_MAP: MappingProxyType[str, BaseDimension] = MappingProxyType(
88
+ {
89
+ "length": BaseDimension.LENGTH,
90
+ "mass": BaseDimension.MASS,
91
+ "time": BaseDimension.TIME,
92
+ "current": BaseDimension.CURRENT,
93
+ "temp": BaseDimension.TEMPERATURE,
94
+ "amount": BaseDimension.AMOUNT,
95
+ "luminosity": BaseDimension.LUMINOSITY,
96
+ }
97
+ )
@@ -0,0 +1,126 @@
1
+ """
2
+ Dimension System
3
+ ================
4
+
5
+ Compile-time dimensional analysis using type system for ultra-fast operations.
6
+
7
+ This file contains dimension constants for all engineering fields.
8
+ """
9
+
10
+ from .signature import DimensionSignature
11
+
12
+ # Dimension signature constants - computed from prime factorization
13
+ _SIGNATURES: dict[str, int | float] = {
14
+ "ABSORBED_DOSE": 0.16, # L^2 T^-2
15
+ "ACCELERATION": 0.08, # L T^-2
16
+ "ACTIVATION_ENERGY": 0.01230769231, # N^-1 L^2 T^-2
17
+ "AMOUNT_OF_SUBSTANCE": 13, # N
18
+ "ANGLE_PLANE": 1, # Dimensionless
19
+ "ANGLE_SOLID": 1, # Dimensionless
20
+ "ANGULAR_ACCELERATION": 0.04, # T^-2
21
+ "ANGULAR_MOMENTUM": 2.4, # L^2 M T^-1
22
+ "AREA": 4, # L^2
23
+ "AREA_PER_UNIT_VOLUME": 0.5, # L^-1
24
+ "ATOMIC_WEIGHT": 0.2307692308, # N^-1 M
25
+ "CONCENTRATION": 0.375, # L^-3 M
26
+ "DIMENSIONLESS": 1, # Dimensionless
27
+ "DYNAMIC_FLUIDITY": 3.333333333, # L M^-1 T
28
+ "ELECTRIC_CAPACITANCE": 2552.083333, # A^2 L^-2 M^-1 T^4
29
+ "ELECTRIC_CHARGE": 2.692307692, # N^-1 A T
30
+ "ELECTRIC_CURRENT_INTENSITY": 7, # A
31
+ "ELECTRIC_DIPOLE_MOMENT": 70, # A L T
32
+ "ELECTRIC_FIELD_STRENGTH": 0.006857142857, # A^-1 L M T^-3
33
+ "ELECTRIC_INDUCTANCE": 0.009795918367, # A^-2 L^2 M T^-2
34
+ "ELECTRIC_POTENTIAL": 0.01371428571, # A^-1 L^2 M T^-3
35
+ "ELECTRIC_RESISTANCE": 0.001959183673, # A^-2 L^2 M T^-3
36
+ "ELECTRICAL_CONDUCTANCE": 510.4166667, # A^2 L^-2 M^-1 T^3
37
+ "ELECTRICAL_PERMITTIVITY": 1276.041667, # A^2 L^-3 M^-1 T^4
38
+ "ELECTRICAL_RESISTIVITY": 0.003918367347, # A^-2 L^3 M T^-3
39
+ "ENERGY_FLUX": 0.024, # M T^-3
40
+ "ENERGY_HEAT_WORK": 0.48, # L^2 M T^-2
41
+ "ENERGY_PER_UNIT_AREA": 0.12, # M T^-2
42
+ "FORCE": 0.24, # L M T^-2
43
+ "FORCE_BODY": 0.03, # L^-2 M T^-2
44
+ "FORCE_PER_UNIT_MASS": 0.08, # L T^-2
45
+ "FREQUENCY_VOLTAGE_RATIO": 72.91666667, # A L^-2 M^-1 T^3
46
+ "FUEL_CONSUMPTION": 0.25, # L^-2
47
+ "HEAT_OF_COMBUSTION": 0.16, # L^2 T^-2
48
+ "HEAT_OF_FUSION": 0.16, # L^2 T^-2
49
+ "HEAT_OF_VAPORIZATION": 0.16, # L^2 T^-2
50
+ "HEAT_TRANSFER_COEFFICIENT": 0.002181818182, # M Θ^-1 T^-3
51
+ "ILLUMINANCE": 0.25, # L^-2 L
52
+ "KINETIC_ENERGY_OF_TURBULENCE": 0.16, # L^2 T^-2
53
+ "LENGTH": 2, # L
54
+ "LINEAR_MASS_DENSITY": 1.5, # L^-1 M
55
+ "LINEAR_MOMENTUM": 1.2, # L M T^-1
56
+ "LUMINANCE_SELF": 0.25, # L^-2 L
57
+ "LUMINOUS_FLUX": 1, # L
58
+ "LUMINOUS_INTENSITY": 1, # L
59
+ "MAGNETIC_FIELD": 3.5, # A L^-1
60
+ "MAGNETIC_FLUX": 0.06857142857, # A^-1 L^2 M T^-2
61
+ "MAGNETIC_INDUCTION_FIELD_STRENGTH": 0.01714285714, # A^-1 M T^-2
62
+ "MAGNETIC_MOMENT": 28, # A L^2
63
+ "MAGNETIC_PERMEABILITY": 0.009795918367, # A^-2 L^2 M T^-2
64
+ "MAGNETOMOTIVE_FORCE": 7, # A
65
+ "MASS": 3, # M
66
+ "MASS_DENSITY": 0.375, # L^-3 M
67
+ "MASS_FLOW_RATE": 0.6, # M T^-1
68
+ "MASS_FLUX": 0.15, # L^-2 M T^-1
69
+ "MASS_FRACTION_OF_I": 1, # Dimensionless
70
+ "MASS_TRANSFER_COEFFICIENT": 0.15, # L^-2 M T^-1
71
+ "MOLALITY_OF_SOLUTE_I": 4.333333333, # N M^-1
72
+ "MOLAR_CONCENTRATION_BY_MASS": 13, # N
73
+ "MOLAR_FLOW_RATE": 2.6, # N T^-1
74
+ "MOLAR_FLUX": 0.65, # N L^-2 T^-1
75
+ "MOLAR_HEAT_CAPACITY": 0.001118881119, # N^-1 L^2 Θ^-1 T^-2
76
+ "MOLARITY_OF_I": 1.625, # N L^-3
77
+ "MOLE_FRACTION_OF_I": 1, # Dimensionless
78
+ "MOMENT_OF_INERTIA": 12, # L^2 M
79
+ "MOMENTUM_FLOW_RATE": 0.24, # L M T^-2
80
+ "MOMENTUM_FLUX": 0.06, # L^-1 M T^-2
81
+ "NORMALITY_OF_SOLUTION": 1.625, # N L^-3
82
+ "PARTICLE_DENSITY": 0.125, # L^-3
83
+ "PERCENT": 1, # Dimensionless
84
+ "PERMEABILITY": 4, # L^2
85
+ "PHOTON_EMISSION_RATE": 0.05, # L^-2 T^-1
86
+ "POWER_PER_UNIT_MASS": 0.032, # L^2 T^-3
87
+ "POWER_PER_UNIT_VOLUME": 0.012, # L^-1 M T^-3
88
+ "POWER_THERMAL_DUTY": 0.096, # L^2 M T^-3
89
+ "PRESSURE": 0.06, # L^-1 M T^-2
90
+ "RADIATION_DOSE_EQUIVALENT": 0.16, # L^2 T^-2
91
+ "RADIATION_EXPOSURE": 11.66666667, # A M^-1 T
92
+ "RADIOACTIVITY": 0.2, # T^-1
93
+ "SECOND_MOMENT_OF_AREA": 16, # L^4
94
+ "SECOND_RADIATION_CONSTANT_PLANCK": 22, # L Θ
95
+ "SPECIFIC_ENTHALPY": 0.16, # L^2 T^-2
96
+ "SPECIFIC_GRAVITY": 1, # Dimensionless
97
+ "SPECIFIC_HEAT_CAPACITY_CONSTANT_PRESSURE": 0.04363636364, # L^2 M Θ^-1 T^-2
98
+ "SPECIFIC_LENGTH": 0.6666666667, # L M^-1
99
+ "SPECIFIC_SURFACE": 1.333333333, # L^2 M^-1
100
+ "SPECIFIC_VOLUME": 2.666666667, # L^3 M^-1
101
+ "STRESS": 0.06, # L^-1 M T^-2
102
+ "SURFACE_MASS_DENSITY": 0.75, # L^-2 M
103
+ "SURFACE_TENSION": 0.12, # M T^-2
104
+ "TEMPERATURE": 11, # Θ
105
+ "THERMAL_CONDUCTIVITY": 0.528, # L M Θ T^-3
106
+ "TIME": 5, # T
107
+ "TORQUE": 0.48, # L^2 M T^-2
108
+ "TURBULENCE_ENERGY_DISSIPATION_RATE": 0.032, # L^2 T^-3
109
+ "VELOCITY_ANGULAR": 0.2, # T^-1
110
+ "VELOCITY_LINEAR": 0.4, # L T^-1
111
+ "VISCOSITY_DYNAMIC": 0.3, # L^-1 M T^-1
112
+ "VISCOSITY_KINEMATIC": 0.8, # L^2 T^-1
113
+ "VOLUME": 8, # L^3
114
+ "VOLUME_FRACTION_OF_I": 1, # Dimensionless
115
+ "VOLUMETRIC_CALORIFIC_HEATING_VALUE": 0.06, # L^-1 M T^-2
116
+ "VOLUMETRIC_COEFFICIENT_OF_EXPANSION": 0.03409090909, # L^-3 M Θ^-1
117
+ "VOLUMETRIC_FLOW_RATE": 1.6, # L^3 T^-1
118
+ "VOLUMETRIC_FLUX": 0.4, # L T^-1
119
+ "VOLUMETRIC_MASS_FLOW_RATE": 0.075, # L^-3 M T^-1
120
+ "WAVENUMBER": 0.5, # L^-1
121
+ }
122
+
123
+ # Generate all dimension constants programmatically to avoid duplication
124
+ for _name, _signature in _SIGNATURES.items():
125
+ globals()[_name] = DimensionSignature(_signature)
126
+
@@ -0,0 +1,128 @@
1
+ """
2
+ Type stubs for field_dims module.
3
+
4
+ This file provides type information for the dynamically generated dimension constants.
5
+ """
6
+
7
+ from .signature import DimensionSignature
8
+
9
+ # Dimension signature constants lookup
10
+ _SIGNATURES: dict[str, int | float]
11
+
12
+ # Lazy loading cache
13
+ _dimension_cache: dict[str, DimensionSignature]
14
+
15
+ # Module attribute access function
16
+ def __getattr__(name: str) -> DimensionSignature: ...
17
+
18
+ # All dynamically generated dimension constants
19
+ ABSORBED_DOSE: DimensionSignature
20
+ ACCELERATION: DimensionSignature
21
+ ACTIVATION_ENERGY: DimensionSignature
22
+ AMOUNT_OF_SUBSTANCE: DimensionSignature
23
+ ANGLE_PLANE: DimensionSignature
24
+ ANGLE_SOLID: DimensionSignature
25
+ ANGULAR_ACCELERATION: DimensionSignature
26
+ ANGULAR_MOMENTUM: DimensionSignature
27
+ AREA: DimensionSignature
28
+ AREA_PER_UNIT_VOLUME: DimensionSignature
29
+ ATOMIC_WEIGHT: DimensionSignature
30
+ CONCENTRATION: DimensionSignature
31
+ DIMENSIONLESS: DimensionSignature
32
+ DYNAMIC_FLUIDITY: DimensionSignature
33
+ ELECTRIC_CAPACITANCE: DimensionSignature
34
+ ELECTRIC_CHARGE: DimensionSignature
35
+ ELECTRIC_CURRENT_INTENSITY: DimensionSignature
36
+ ELECTRIC_DIPOLE_MOMENT: DimensionSignature
37
+ ELECTRIC_FIELD_STRENGTH: DimensionSignature
38
+ ELECTRIC_INDUCTANCE: DimensionSignature
39
+ ELECTRIC_POTENTIAL: DimensionSignature
40
+ ELECTRIC_RESISTANCE: DimensionSignature
41
+ ELECTRICAL_CONDUCTANCE: DimensionSignature
42
+ ELECTRICAL_PERMITTIVITY: DimensionSignature
43
+ ELECTRICAL_RESISTIVITY: DimensionSignature
44
+ ENERGY_FLUX: DimensionSignature
45
+ ENERGY_HEAT_WORK: DimensionSignature
46
+ ENERGY_PER_UNIT_AREA: DimensionSignature
47
+ FORCE: DimensionSignature
48
+ FORCE_BODY: DimensionSignature
49
+ FORCE_PER_UNIT_MASS: DimensionSignature
50
+ FREQUENCY_VOLTAGE_RATIO: DimensionSignature
51
+ FUEL_CONSUMPTION: DimensionSignature
52
+ HEAT_OF_COMBUSTION: DimensionSignature
53
+ HEAT_OF_FUSION: DimensionSignature
54
+ HEAT_OF_VAPORIZATION: DimensionSignature
55
+ HEAT_TRANSFER_COEFFICIENT: DimensionSignature
56
+ ILLUMINANCE: DimensionSignature
57
+ KINETIC_ENERGY_OF_TURBULENCE: DimensionSignature
58
+ LENGTH: DimensionSignature
59
+ LINEAR_MASS_DENSITY: DimensionSignature
60
+ LINEAR_MOMENTUM: DimensionSignature
61
+ LUMINANCE_SELF: DimensionSignature
62
+ LUMINOUS_FLUX: DimensionSignature
63
+ LUMINOUS_INTENSITY: DimensionSignature
64
+ MAGNETIC_FIELD: DimensionSignature
65
+ MAGNETIC_FLUX: DimensionSignature
66
+ MAGNETIC_INDUCTION_FIELD_STRENGTH: DimensionSignature
67
+ MAGNETIC_MOMENT: DimensionSignature
68
+ MAGNETIC_PERMEABILITY: DimensionSignature
69
+ MAGNETOMOTIVE_FORCE: DimensionSignature
70
+ MASS: DimensionSignature
71
+ MASS_DENSITY: DimensionSignature
72
+ MASS_FLOW_RATE: DimensionSignature
73
+ MASS_FLUX: DimensionSignature
74
+ MASS_FRACTION_OF_I: DimensionSignature
75
+ MASS_TRANSFER_COEFFICIENT: DimensionSignature
76
+ MOLALITY_OF_SOLUTE_I: DimensionSignature
77
+ MOLAR_CONCENTRATION_BY_MASS: DimensionSignature
78
+ MOLAR_FLOW_RATE: DimensionSignature
79
+ MOLAR_FLUX: DimensionSignature
80
+ MOLAR_HEAT_CAPACITY: DimensionSignature
81
+ MOLARITY_OF_I: DimensionSignature
82
+ MOLE_FRACTION_OF_I: DimensionSignature
83
+ MOMENT_OF_INERTIA: DimensionSignature
84
+ MOMENTUM_FLOW_RATE: DimensionSignature
85
+ MOMENTUM_FLUX: DimensionSignature
86
+ NORMALITY_OF_SOLUTION: DimensionSignature
87
+ PARTICLE_DENSITY: DimensionSignature
88
+ PERCENT: DimensionSignature
89
+ PERMEABILITY: DimensionSignature
90
+ PHOTON_EMISSION_RATE: DimensionSignature
91
+ POWER_PER_UNIT_MASS: DimensionSignature
92
+ POWER_PER_UNIT_VOLUME: DimensionSignature
93
+ POWER_THERMAL_DUTY: DimensionSignature
94
+ PRESSURE: DimensionSignature
95
+ RADIATION_DOSE_EQUIVALENT: DimensionSignature
96
+ RADIATION_EXPOSURE: DimensionSignature
97
+ RADIOACTIVITY: DimensionSignature
98
+ SECOND_MOMENT_OF_AREA: DimensionSignature
99
+ SECOND_RADIATION_CONSTANT_PLANCK: DimensionSignature
100
+ SPECIFIC_ENTHALPY: DimensionSignature
101
+ SPECIFIC_GRAVITY: DimensionSignature
102
+ SPECIFIC_HEAT_CAPACITY_CONSTANT_PRESSURE: DimensionSignature
103
+ SPECIFIC_LENGTH: DimensionSignature
104
+ SPECIFIC_SURFACE: DimensionSignature
105
+ SPECIFIC_VOLUME: DimensionSignature
106
+ STRESS: DimensionSignature
107
+ SURFACE_MASS_DENSITY: DimensionSignature
108
+ SURFACE_TENSION: DimensionSignature
109
+ TEMPERATURE: DimensionSignature
110
+ THERMAL_CONDUCTIVITY: DimensionSignature
111
+ TIME: DimensionSignature
112
+ TORQUE: DimensionSignature
113
+ TURBULENCE_ENERGY_DISSIPATION_RATE: DimensionSignature
114
+ VELOCITY_ANGULAR: DimensionSignature
115
+ VELOCITY_LINEAR: DimensionSignature
116
+ VISCOSITY_DYNAMIC: DimensionSignature
117
+ VISCOSITY_KINEMATIC: DimensionSignature
118
+ VOLUME: DimensionSignature
119
+ VOLUME_FRACTION_OF_I: DimensionSignature
120
+ VOLUMETRIC_CALORIFIC_HEATING_VALUE: DimensionSignature
121
+ VOLUMETRIC_COEFFICIENT_OF_EXPANSION: DimensionSignature
122
+ VOLUMETRIC_FLOW_RATE: DimensionSignature
123
+ VOLUMETRIC_FLUX: DimensionSignature
124
+ VOLUMETRIC_MASS_FLOW_RATE: DimensionSignature
125
+ WAVENUMBER: DimensionSignature
126
+
127
+ # Module exports
128
+ __all__: list[str]