kopia lustrzana https://github.com/glidernet/python-ogn-client
remove OgnParseError
rodzic
ef25a71a7d
commit
ab45567015
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
## 2.0.0: unreleased
|
## 2.0.0: unreleased
|
||||||
- parser: use rust parser as default
|
- parser: use rust parser as default
|
||||||
|
- parser: removed OgnParseError since only invalid APRS don't pass the parser
|
||||||
|
|
||||||
## 1.3.3: - 2025-05-21
|
## 1.3.3: - 2025-05-21
|
||||||
- parser: use rust parser with option "use_rust_parser=True" (default for v2.0.0)
|
- parser: use rust parser with option "use_rust_parser=True" (default for v2.0.0)
|
||||||
|
|
|
||||||
|
|
@ -31,16 +31,14 @@ beacon = parse("FLRDDDEAD>APRS,qAS,EDER:/114500h5029.86N/00956.98E'342/049/A=005
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from ogn.client import AprsClient
|
from ogn.client import AprsClient
|
||||||
from ogn.parser import parse, ParseError
|
from ogn.parser import parse, AprsParseError
|
||||||
|
|
||||||
def process_beacon(raw_message):
|
def process_beacon(raw_message):
|
||||||
try:
|
try:
|
||||||
beacon = parse(raw_message)
|
beacon = parse(raw_message)
|
||||||
print('Received {aprs_type}: {raw_message}'.format(**beacon))
|
print('Received {aprs_type}: {raw_message}'.format(**beacon))
|
||||||
except ParseError as e:
|
except AprsParseError as e:
|
||||||
print('Error, {}'.format(e.message))
|
print('Error, {}'.format(e.message))
|
||||||
except NotImplementedError as e:
|
|
||||||
print('{}: {}'.format(e, raw_message))
|
|
||||||
|
|
||||||
client = AprsClient(aprs_user='N0CALL')
|
client = AprsClient(aprs_user='N0CALL')
|
||||||
client.connect()
|
client.connect()
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
from ogn.parser import parse as parse_module # noqa: F40 --- only for test functions. Without this a mock of parse would mock the function instead of the module
|
from ogn.parser import parse as parse_module # noqa: F40 --- only for test functions. Without this a mock of parse would mock the function instead of the module
|
||||||
from ogn.parser.parse import parse # noqa: F401
|
from ogn.parser.parse import parse # noqa: F401
|
||||||
from ogn.parser.exceptions import ParseError, AprsParseError, OgnParseError # noqa: F401
|
from ogn.parser.exceptions import AprsParseError # noqa: F401
|
||||||
|
|
|
||||||
|
|
@ -3,23 +3,9 @@ exception definitions
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
class ParseError(Exception):
|
class AprsParseError(Exception):
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class AprsParseError(ParseError):
|
|
||||||
"""Parse error while parsing an aprs packet."""
|
"""Parse error while parsing an aprs packet."""
|
||||||
def __init__(self, aprs_string):
|
def __init__(self, aprs_string):
|
||||||
self.aprs_string = aprs_string
|
self.aprs_string = aprs_string
|
||||||
|
|
||||||
self.message = f"This is not a valid APRS packet: {aprs_string}"
|
self.message = f"This is not a valid APRS packet: {aprs_string}"
|
||||||
super(AprsParseError, self).__init__(self.message)
|
|
||||||
|
|
||||||
|
|
||||||
class OgnParseError(ParseError):
|
|
||||||
"""Parse error while parsing an ogn message from aprs comment."""
|
|
||||||
def __init__(self, aprs_comment):
|
|
||||||
self.aprs_comment = aprs_comment
|
|
||||||
|
|
||||||
self.message = f"This is not a valid OGN message: {aprs_comment}"
|
|
||||||
super(OgnParseError, self).__init__(self.message)
|
|
||||||
|
|
|
||||||
|
|
@ -134,12 +134,8 @@ def test_50_live_messages():
|
||||||
global remaining_messages
|
global remaining_messages
|
||||||
if raw_message[0] == '#':
|
if raw_message[0] == '#':
|
||||||
return
|
return
|
||||||
try:
|
message = parse(raw_message)
|
||||||
message = parse(raw_message)
|
print(f"{message['aprs_type']}: {raw_message}")
|
||||||
print(f"{message['aprs_type']}: {raw_message}")
|
|
||||||
except NotImplementedError as e:
|
|
||||||
print(f"{e}: {raw_message}")
|
|
||||||
return
|
|
||||||
if remaining_messages > 0:
|
if remaining_messages > 0:
|
||||||
remaining_messages -= 1
|
remaining_messages -= 1
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -15,13 +15,10 @@ def _parse_valid_beacon_data_file(filename, beacon_type):
|
||||||
if line.strip() == '':
|
if line.strip() == '':
|
||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
message = parse(line, datetime(2015, 4, 10, 17, 0))
|
||||||
message = parse(line, datetime(2015, 4, 10, 17, 0))
|
assert message is not None
|
||||||
assert message is not None
|
if message['aprs_type'] == 'position' or message['aprs_type'] == 'status':
|
||||||
if message['aprs_type'] == 'position' or message['aprs_type'] == 'status':
|
assert message['beacon_type'] == beacon_type
|
||||||
assert message['beacon_type'] == beacon_type
|
|
||||||
except NotImplementedError as e:
|
|
||||||
print(e)
|
|
||||||
|
|
||||||
|
|
||||||
def test_flyxc_beacons():
|
def test_flyxc_beacons():
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,12 @@ import pytest
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from ogn.parser.telnet_parser import parse
|
from ogn.parser.telnet_parser import parse
|
||||||
from ogn.parser.exceptions import ParseError
|
from ogn.parser.exceptions import AprsParseError
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip("Not yet implemented")
|
@pytest.mark.skip("Not yet implemented")
|
||||||
def test_telnet_fail_corrupt():
|
def test_telnet_fail_corrupt():
|
||||||
with pytest.raises(ParseError):
|
with pytest.raises(AprsParseError):
|
||||||
parse('This is rubbish')
|
parse('This is rubbish')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue