Skip to content

Commit 454526b

Browse files
committed
Fixed Python 3.9 compatibility
1 parent 0aa9f1e commit 454526b

2 files changed

Lines changed: 11 additions & 42 deletions

File tree

py_ballisticcalc/unit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
from dataclasses import dataclass
77
from enum import IntEnum
88
from math import pi
9-
from typing import NamedTuple, Union, TypeVar, Optional, Tuple, Final, Protocol, override, runtime_checkable, \
9+
from typing import NamedTuple, Union, TypeVar, Optional, Tuple, Final, Protocol, runtime_checkable, \
1010
SupportsFloat, SupportsInt, Hashable, Generic, Mapping, Any, Iterable, Sequence, Callable, Generator
1111

12-
from typing_extensions import Self, TypeAlias
12+
from typing_extensions import Self, TypeAlias, override
1313

1414
from py_ballisticcalc.exceptions import UnitTypeError, UnitConversionError, UnitAliasError
1515
from py_ballisticcalc.logger import logger

tests/test_incomplete_shots.py

Lines changed: 9 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -29,40 +29,20 @@ def check_end_point(hit_result):
2929
assert last_point_height < 1e-10 # Basically zero; allow for rounding
3030

3131
extra_data = False
32-
try:
33-
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data)
34-
except RangeError as e:
35-
print(f'{e.reason} {len(e.incomplete_trajectory)=}')
36-
if e.reason in [RangeError.MaximumDropReached, RangeError.MinimumAltitudeReached]:
37-
hit_result = HitResult(shot, e.incomplete_trajectory, extra=extra_data)
32+
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data, raise_range_error=False)
3833
print_out_trajectory_compact(hit_result)
3934
check_end_point(hit_result)
4035

41-
try:
42-
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data, trajectory_step=range)
43-
except RangeError as e:
44-
print(f'{e.reason} {len(e.incomplete_trajectory)=}')
45-
if e.reason in [RangeError.MaximumDropReached, RangeError.MinimumAltitudeReached]:
46-
hit_result = HitResult(shot, e.incomplete_trajectory, extra=extra_data)
36+
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data, trajectory_step=range, raise_range_error=False)
4737
print_out_trajectory_compact(hit_result)
4838
check_end_point(hit_result)
4939

5040
extra_data = True
51-
try:
52-
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data)
53-
except RangeError as e:
54-
print(f'{e.reason} {len(e.incomplete_trajectory)=}')
55-
if e.reason in [RangeError.MaximumDropReached, RangeError.MinimumAltitudeReached]:
56-
hit_result = HitResult(shot, e.incomplete_trajectory, extra=extra_data)
41+
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data, raise_range_error=False)
5742
print_out_trajectory_compact(hit_result)
5843
check_end_point(hit_result)
5944

60-
try:
61-
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data, trajectory_step=range)
62-
except RangeError as e:
63-
print(f'{e.reason} {len(e.incomplete_trajectory)=}')
64-
if e.reason in [RangeError.MaximumDropReached, RangeError.MinimumAltitudeReached]:
65-
hit_result = HitResult(shot, e.incomplete_trajectory, extra=extra_data)
45+
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data, trajectory_step=range, raise_range_error=False)
6646
print_out_trajectory_compact(hit_result)
6747
check_end_point(hit_result)
6848

@@ -108,13 +88,8 @@ def test_no_duplicate_points(loaded_engine_instance):
10888
cMaximumDrop=-10.0,
10989
)
11090
calc = Calculator(config=config, engine=loaded_engine_instance)
111-
try:
112-
extra_data = False
113-
hit_result = calc.fire(shot, range, extra_data=extra_data, trajectory_step=Distance.Meter(100))
114-
except RangeError as e:
115-
print(f'{e.reason} {len(e.incomplete_trajectory)=}')
116-
if e.reason in [RangeError.MaximumDropReached, RangeError.MinimumAltitudeReached]:
117-
hit_result = HitResult(shot, e.incomplete_trajectory, extra=extra_data)
91+
extra_data = False
92+
hit_result = calc.fire(shot, range, extra_data=extra_data, trajectory_step=Distance.Meter(100), raise_range_error=False)
11893
print_out_trajectory_compact(hit_result)
11994
assert len(hit_result.trajectory) >= 2
12095
assert hit_result[-2] != hit_result[-1]
@@ -133,15 +108,9 @@ def test_no_duplicated_point_many_trajectories(zero_height_calc):
133108
angle = 0
134109
while angle <= 90:
135110
shot = shot_with_relative_angle_in_degrees(angle)
136-
try:
137-
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data)
138-
except RangeError as e:
139-
if e.reason in [RangeError.MaximumDropReached, RangeError.MinimumAltitudeReached]:
140-
print(f'Got range error {e=}')
141-
hit_result = HitResult(shot, e.incomplete_trajectory, extra_data)
142-
143-
else:
144-
raise e
111+
hit_result = zero_height_calc.fire(shot, range, extra_data=extra_data, raise_range_error=False)
112+
if hit_result.error is not None:
113+
print(f'Got {hit_result.error=}')
145114
print(f'{len(hit_result.trajectory)=}')
146115
assert len(hit_result.trajectory) == len(set(hit_result.trajectory))
147116
angle += 10

0 commit comments

Comments
 (0)