sciform 0.1.0__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.
- {sciform-0.1.0/src/sciform.egg-info → sciform-0.2.0}/PKG-INFO +1 -1
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform/__init__.py +1 -1
- sciform-0.2.0/src/sciform/sfloat.py +73 -0
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform/unc_format.py +0 -3
- {sciform-0.1.0 → sciform-0.2.0/src/sciform.egg-info}/PKG-INFO +1 -1
- sciform-0.1.0/src/sciform/sfloat.py +0 -20
- {sciform-0.1.0 → sciform-0.2.0}/LICENSE +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/README.md +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/pyproject.toml +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/setup.cfg +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform/format.py +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform/format_utils.py +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform/grouping.py +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform/modes.py +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform/prefix.py +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform.egg-info/SOURCES.txt +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform.egg-info/dependency_links.txt +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/src/sciform.egg-info/top_level.txt +0 -0
- {sciform-0.1.0 → sciform-0.2.0}/tests/test.py +0 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
from sciform.format import parse_format_spec, format_float
|
2
|
+
|
3
|
+
|
4
|
+
class sfloat(float):
|
5
|
+
def __format__(self, format_spec: str):
|
6
|
+
format_spec_data = parse_format_spec(format_spec)
|
7
|
+
return format_float(self, format_spec_data)
|
8
|
+
|
9
|
+
@classmethod
|
10
|
+
def to_sfloat(cls, num: float) -> 'sfloat':
|
11
|
+
return cls(num)
|
12
|
+
|
13
|
+
def __abs__(self) -> 'sfloat':
|
14
|
+
return self.to_sfloat(super().__abs__())
|
15
|
+
|
16
|
+
def __add__(self, x: float) -> 'sfloat':
|
17
|
+
return self.to_sfloat(super().__add__(x))
|
18
|
+
|
19
|
+
def __divmod__(self, x: float) -> tuple['sfloat', 'sfloat']:
|
20
|
+
div, mod = super().__divmod__(x)
|
21
|
+
return self.to_sfloat(div), self.to_sfloat(mod)
|
22
|
+
|
23
|
+
def __float__(self) -> 'sfloat':
|
24
|
+
return self.to_sfloat(super().__float__())
|
25
|
+
|
26
|
+
def __floordiv__(self, x: float) -> 'sfloat':
|
27
|
+
return self.to_sfloat(super().__floordiv__(x))
|
28
|
+
|
29
|
+
def __mod__(self, x: float) -> 'sfloat':
|
30
|
+
return self.to_sfloat(super().__mod__(x))
|
31
|
+
|
32
|
+
def __mul__(self, x: float) -> 'sfloat':
|
33
|
+
return self.to_sfloat(super().__mul__(x))
|
34
|
+
|
35
|
+
def __neg__(self) -> 'sfloat':
|
36
|
+
return self.to_sfloat(super().__neg__())
|
37
|
+
|
38
|
+
def __pos__(self) -> 'sfloat':
|
39
|
+
return self.to_sfloat(super().__pos__())
|
40
|
+
|
41
|
+
def __pow__(self, x: float, mod: None = ...) -> 'sfloat':
|
42
|
+
return self.to_sfloat(super().__pow__(x, mod))
|
43
|
+
|
44
|
+
def __radd__(self, x: float) -> 'sfloat':
|
45
|
+
return self.to_sfloat(super().__radd__(x))
|
46
|
+
|
47
|
+
def __rdivmod__(self, x: float) -> tuple['sfloat', 'sfloat']:
|
48
|
+
div, mod = super().__rdivmod__(x)
|
49
|
+
return self.to_sfloat(div), self.to_sfloat(mod)
|
50
|
+
|
51
|
+
def __rfloordiv__(self, x: float) -> 'sfloat':
|
52
|
+
return self.to_sfloat(super().__rfloordiv__(x))
|
53
|
+
|
54
|
+
def __rmod__(self, x: float) -> 'sfloat':
|
55
|
+
return self.to_sfloat(super().__rmod__(x))
|
56
|
+
|
57
|
+
def __rmul__(self, x: float) -> 'sfloat':
|
58
|
+
return self.to_sfloat(super().__rmul__(x))
|
59
|
+
|
60
|
+
def __rpow__(self, x: float, mod: None = ...) -> 'sfloat':
|
61
|
+
return self.to_sfloat(super().__rpow__(x, mod))
|
62
|
+
|
63
|
+
def __rsub__(self, x: float) -> 'sfloat':
|
64
|
+
return self.to_sfloat(super().__rsub__(x))
|
65
|
+
|
66
|
+
def __rtruediv__(self, x: float) -> 'sfloat':
|
67
|
+
return self.to_sfloat(super().__rtruediv__(x))
|
68
|
+
|
69
|
+
def __sub__(self, x: float) -> 'sfloat':
|
70
|
+
return self.to_sfloat(super().__sub__(x))
|
71
|
+
|
72
|
+
def __truediv__(self, x: float) -> 'sfloat':
|
73
|
+
return self.to_sfloat(super().__truediv__(x))
|
@@ -1,20 +0,0 @@
|
|
1
|
-
from sciform.format import parse_format_spec, format_float
|
2
|
-
|
3
|
-
|
4
|
-
class sfloat(float):
|
5
|
-
def __format__(self, format_spec: str):
|
6
|
-
format_spec_data = parse_format_spec(format_spec)
|
7
|
-
return format_float(self, format_spec_data)
|
8
|
-
|
9
|
-
|
10
|
-
def main():
|
11
|
-
num = sfloat(20750042)
|
12
|
-
fmt = '__r'
|
13
|
-
print(f'{num=}')
|
14
|
-
print(f'{fmt=}')
|
15
|
-
num_fmted = f'{num:{fmt}}'
|
16
|
-
print(num_fmted)
|
17
|
-
|
18
|
-
|
19
|
-
if __name__ == "__main__":
|
20
|
-
main()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|