Avatar for the hgrecco user
hgrecco
pint
BlogDocsChangelog

Improve type annotations for `Quantity`'s arithmetic methods

#2303
Comparing
RBerga06:typing-plain-quantity-2
(
73d97c5
) with
master
(
92dc7b7
)
CodSpeed Performance Gauge
+1%
Untouched
448
Skipped
448

Benchmarks

896 total
test_getattr[True-angstrom]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+11%
6.4 µs5.8 µs
test_getattr[True-millisecond]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+9%
6.4 µs5.9 µs
test_to_units_container_registry[True-angstrom/minute]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+8%
12.6 µs11.6 µs
test_op2[sub-keys6]
pint/testsuite/benchmarks/test_20_quantity.py
CodSpeed Performance Gauge
+8%
35.6 µs33.1 µs
test_to_units_container_detached[False-kilometer/second]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+7%
12.7 µs11.8 µs
test_to_units_container_detached[False-angstrom/minute]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+7%
12.5 µs11.7 µs
test_to_units_container_registry[False-kilometer/second]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+7%
12.6 µs11.8 µs
test_to_units_container_detached[True-kilometer/second]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+7%
12.7 µs11.9 µs
test_to_units_container_registry[False-angstrom/minute]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+7%
12.5 µs11.7 µs
test_to_units_container_detached[True-angstrom/minute]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+6%
12.5 µs11.8 µs
test_op2[add-keys10]
pint/testsuite/benchmarks/test_20_quantity.py
CodSpeed Performance Gauge
+6%
35.7 µs33.5 µs
test_op2[add-keys13]
pint/testsuite/benchmarks/test_20_quantity.py
CodSpeed Performance Gauge
+6%
35.2 µs33.3 µs
test_import
pint/testsuite/benchmarks/test_00_common.py
CodSpeed Performance Gauge
+5%
338.5 ms321.7 ms
test_op2[lt-keys2]
pint/testsuite/benchmarks/test_30_numpy.py
CodSpeed Performance Gauge
+5%
42.3 µs40.2 µs
test_op2[eq-keys19]
pint/testsuite/benchmarks/test_20_quantity.py
CodSpeed Performance Gauge
+5%
3.5 µs3.3 µs
test_op2[add-keys18]
pint/testsuite/benchmarks/test_20_quantity.py
CodSpeed Performance Gauge
+5%
35 µs33.4 µs
test_to_units_container_registry[True-kilometer/second]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+5%
12.7 µs12.1 µs
test_getitem[True-minute]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+5%
48.9 µs46.6 µs
test_op2[add-keys20]
pint/testsuite/benchmarks/test_20_quantity.py
CodSpeed Performance Gauge
+5%
35.2 µs33.6 µs
test_base_units[True-meter]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+5%
7.7 µs7.3 µs
test_to_units_container_detached[False-angstrom]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+5%
3.6 µs3.4 µs
test_base_units[True-kilometer/second]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+5%
6.5 µs6.2 µs
test_parse_units[False-angstrom]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+5%
3.8 µs3.7 µs
test_parse_units[True-kilometer]
pint/testsuite/benchmarks/test_10_registry.py
CodSpeed Performance Gauge
+4%
3.8 µs3.7 µs
test_op2[less-keys4]
pint/testsuite/benchmarks/test_30_numpy.py
CodSpeed Performance Gauge
+4%
32.9 µs31.5 µs

Commits

Click on a commit to change the comparison range
Base
master
92dc7b7
+76.15%
fix: Annotate `Quantity.__round__` to return `Quantity` instead of `PlainQuantity`
673e370
27 days ago
by RBerga06
-37.87%
fix: use `SupportsAbs` from `typing` and reuse `T` instead of defining a new type variable
650e786
27 days ago
by RBerga06
-40.75%
fix: remove an accidentally duplicated import
b0870fa
27 days ago
by RBerga06
+2.13%
feat: annotate `PlainQuantity.from_tuple`'s arguments
5ae2563
27 days ago
by RBerga06
+1.15%
fix: don't use optype at runtime
e537374
22 days ago
by RBerga06
+4.26%
feat: type `[Plain]Quantity.tolist()`
67eb151
22 days ago
by RBerga06
-6.75%
fix: correctly type `__reduce__`
4476708
22 days ago
by RBerga06
+80.8%
feat: correctly annotate `__iter__`
2815f43
22 days ago
by RBerga06
-78.99%
fix: ensure type checkers treat type aliases as such
5aa3749
20 days ago
by RBerga06
-2.07%
fix: treat `Q_` and `U_` as type aliases in tests
f68ea9a
20 days ago
by RBerga06
-1.8%
fix(typing): when `TYPE_CHECKING`, import `Quantity` directly from `registry`.
1558cd7
10 days ago
by RBerga06
+30.32%
feat(tests): use `assert_type` to test unary operators
af96082
10 days ago
by RBerga06
-29.1%
fix(tests): use string annotations in `assert_type`
4991cb6
10 days ago
by RBerga06
-0.86%
feat(tests): test rounding with two arguments
57f898a
10 days ago
by RBerga06
+0.51%
feat(tests): annotate more tests
1270c72
10 days ago
by RBerga06
+4.77%
feat: annotate `__iadd__` and `__isub__` for simple cases
1e95f2c
10 days ago
by RBerga06
+24.61%
fix: annotate `Unit.__rmul__` and `Unit.__mul__`
c4e5efe
10 days ago
by RBerga06
+18.82%
fix: simplify `__round__` annotation to help type inference
0f521d2
9 days ago
by RBerga06
-45.36%
feat: annotate `__add__`, `__sub__`
7c4d857
9 days ago
by RBerga06
+3.33%
fix: simplify `__rsub__` annotation for datetime special case
3031497
9 days ago
by RBerga06
-2.24%
feat: annotate other in-place arithmetic methods
e7fbfd5
9 days ago
by RBerga06
-0.48%
fix: use `ClassVar` in test setup
84a99bb
9 days ago
by RBerga06
+28.88%
fix: silence missing overload implementation messages
beaa2c6
9 days ago
by RBerga06
-7.71%
fix: import all generic types from their respective modules
3ff3b0c
9 days ago
by RBerga06
-18.06%
feat: annotate `from_list` and `from_sequence`.
b626643
9 days ago
by RBerga06
+25.58%
feat: annotate `__mul__` and `__matmul__`
ddc0bfc
9 days ago
by RBerga06
-6.02%
fix: dtype guess
622b99f
9 days ago
by RBerga06
+20.09%
fix: types `from_sequence`/`from_list` types
1833dad
9 days ago
by RBerga06
-40.44%
Merge branch 'master' into typing-plain-quantity-2
308464e
9 days ago
by RBerga06
-1.29%
feat(ci): add optype to typecheck environment
c4b218a
9 days ago
by RBerga06
+0.85%
fix: make `MagnitudeT` in `PlainQuantity` covariant
dd03293
9 days ago
by RBerga06
+26.89%
refactor: make use of `MagnitudeT_co`'s covariance
c3936be
9 days ago
by RBerga06
-26.45%
fix: use `self.__*__` at runtime inside `__r*__` instead of function aliasing
955d49a
9 days ago
by RBerga06
-2.31%
feat: add PR to CHANGES
5f761e1
9 days ago
by RBerga06
-0.55%
fix(typing): forced `MagnitudeT` to be covariant in `Quantity` as well.
c177e01
9 days ago
by RBerga06
+1.42%
fix: missing colon
73d97c5
9 days ago
by RBerga06
© 2026 CodSpeed Technology
Home Terms Privacy Docs