@@ -31,6 +31,7 @@ import abc
3131
3232from functools import cache
3333
34+
3435class Dimension (abc.ABC ):
3536 """ Dimension abstraction.
3637
@@ -62,8 +63,7 @@ class _Acceleration(Dimension):
6263 @cache
6364 def valid_base_units () -> tuple[Value , ...]:
6465 return (
65- default_unit_database.known_units['m']
66- / default_unit_database.known_units['s'] ** 2,
66+ default_unit_database.known_units['m'] / default_unit_database.known_units['s'] ** 2,
6767 )
6868
6969 def _value_class(self ) -> type[Value]:
@@ -74,13 +74,14 @@ class _Acceleration(Dimension):
7474
7575
7676class ValueWithDimension(Dimension , Value ):
77- def __init__ (self , val , unit = None , validate:bool = True ):
77+ def __init__ (self , val , unit = None , validate: bool = True ):
7878 super ().__init__(val, unit = unit)
7979 if validate and not type (self ).is_valid(self ):
8080 raise ValueError (f' {self.unit} is not a valid unit for dimension {type(self)}' )
8181
82+
8283class ArrayWithDimension (Dimension , ValueArray ):
83- def __init__ (self , val , unit = None , validate:bool = True ):
84+ def __init__ (self , val , unit = None , validate: bool = True ):
8485 super ().__init__(val, unit = unit)
8586 if validate and not type (self ).is_valid(self ):
8687 raise ValueError (f' {self.unit} is not a valid unit for dimension {type(self)}' )
@@ -121,9 +122,7 @@ class _AngularFrequency(Dimension):
121122 @cache
122123 def valid_base_units () -> tuple[Value , ...]:
123124 return (
124- default_unit_database.known_units['rad']
125- * default_unit_database.known_units['Hz']
126- * 2,
125+ default_unit_database.known_units['rad'] * default_unit_database.known_units['Hz'] * 2,
127126 )
128127
129128 def _value_class(self ) -> type[Value]:
@@ -228,8 +227,7 @@ class _Density(Dimension):
228227 @cache
229228 def valid_base_units () -> tuple[Value , ...]:
230229 return (
231- default_unit_database.known_units['kg']
232- / default_unit_database.known_units['m'] ** 3,
230+ default_unit_database.known_units['kg'] / default_unit_database.known_units['m'] ** 3,
233231 )
234232
235233 def _value_class(self ) -> type[Value]:
@@ -554,10 +552,8 @@ class _Noise(Dimension):
554552 @cache
555553 def valid_base_units () -> tuple[Value , ...]:
556554 return (
557- default_unit_database.known_units['V']
558- / default_unit_database.known_units['Hz'] ** 0.5,
559- default_unit_database.known_units['watt']
560- / default_unit_database.known_units['Hz'],
555+ default_unit_database.known_units['V'] / default_unit_database.known_units['Hz'] ** 0.5,
556+ default_unit_database.known_units['watt'] / default_unit_database.known_units['Hz'],
561557 )
562558
563559 def _value_class(self ) -> type[Value]:
@@ -658,10 +654,7 @@ class _Speed(Dimension):
658654 @staticmethod
659655 @cache
660656 def valid_base_units () -> tuple[Value , ...]:
661- return (
662- default_unit_database.known_units['m']
663- / default_unit_database.known_units['s'],
664- )
657+ return (default_unit_database.known_units['m'] / default_unit_database.known_units['s'],)
665658
666659 def _value_class(self ) -> type[Value]:
667660 return Speed
@@ -682,8 +675,7 @@ class _SurfaceDensity(Dimension):
682675 @cache
683676 def valid_base_units () -> tuple[Value , ...]:
684677 return (
685- default_unit_database.known_units['kg']
686- / default_unit_database.known_units['m'] ** 2,
678+ default_unit_database.known_units['kg'] / default_unit_database.known_units['m'] ** 2,
687679 )
688680
689681 def _value_class(self ) -> type[Value]:
@@ -745,8 +737,7 @@ class _Torque(Dimension):
745737 @cache
746738 def valid_base_units () -> tuple[Value , ...]:
747739 return (
748- default_unit_database.known_units['newton']
749- * default_unit_database.known_units['m'],
740+ default_unit_database.known_units['newton'] * default_unit_database.known_units['m'],
750741 )
751742
752743 def _value_class(self ) -> type[Value]:
0 commit comments