mirror of
https://github.com/diodeinc/pcb.git
synced 2026-09-14 20:17:19 +08:00
1b6dad8243
PhysicalRange has a better typing strategy. Signed-off-by: akhilles <akhilvelagapudi@gmail.com>
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
# Pure units
|
||
PI = 3.14159265358979323846
|
||
|
||
# Toleranced units
|
||
Time = builtin.physical_value("s")
|
||
Current = builtin.physical_value("A")
|
||
Voltage = builtin.physical_value("V")
|
||
Capacitance = builtin.physical_value("F")
|
||
Resistance = builtin.physical_value("Ohm")
|
||
Inductance = builtin.physical_value("Ohm")
|
||
Frequency = builtin.physical_value("Hz")
|
||
Temperature = builtin.physical_value("K")
|
||
Charge = builtin.physical_value("C")
|
||
Power = builtin.physical_value("W")
|
||
Energy = builtin.physical_value("J")
|
||
MagneticFlux = builtin.physical_value("Wb")
|
||
Conductance = builtin.physical_value("S")
|
||
|
||
VoltageRange = builtin.physical_range("V")
|
||
CurrentRange = builtin.physical_range("A")
|
||
ResistanceRange = builtin.physical_range("Ohm")
|
||
CapacitanceRange = builtin.physical_range("F")
|
||
InductanceRange = builtin.physical_range("H")
|
||
FrequencyRange = builtin.physical_range("Hz")
|
||
TemperatureRange = builtin.physical_range("K")
|
||
TimeRange = builtin.physical_range("s")
|
||
PowerRange = builtin.physical_range("W")
|
||
|
||
print(VoltageRange("1.1–3.6V"))
|
||
print(VoltageRange("11–26 V (12 V nom.)"))
|
||
print(VoltageRange("11V to 26V"))
|
||
print(VoltageRange("11V to 26V (13V nom.)"))
|
||
print(VoltageRange(min=11, nominal=16, max=26))
|
||
print(VoltageRange(min=1.1, nominal=1.6, max=2.6))
|
||
print(VoltageRange("15V 10%"))
|
||
print(VoltageRange(Voltage(15)))
|
||
print(VoltageRange("11V to 26V", nominal="16V"))
|
||
print(VoltageRange(min="11V", nominal="16", max="26V"))
|
||
|
||
print(serialize(VoltageRange("1.1–3.6V")))
|
||
print(serialize(VoltageRange("1.1–3.6V (1.2 V nom.)")))
|
||
|
||
voltage_range = VoltageRange("11–26 V (12 V nom.)")
|
||
print(voltage_range.min)
|
||
print(voltage_range.nominal)
|
||
print(voltage_range.max)
|
||
print(voltage_range.unit)
|