Compare commits

...

30 Commits
master ... dev

Author SHA1 Message Date
a3eb99793e Update dependency pytest-cov to v6
Some checks failed
Tests / test (3.10) (pull_request) Successful in -1m41s
Tests / test (3.11) (pull_request) Successful in -1m41s
Tests / test (3.12) (pull_request) Successful in -1m34s
Tests / test (3.8) (pull_request) Failing after -2m34s
Tests / test (3.9) (pull_request) Successful in -1m44s
Tests / test (3.10) (push) Successful in -1m41s
Tests / test (3.11) (push) Successful in -1m44s
Tests / test (3.12) (push) Successful in -1m36s
Tests / test (3.8) (push) Failing after -2m36s
Tests / test (3.9) (push) Successful in -1m44s
2024-10-29 22:25:23 +02:00
fb4ba9144a Merge pull request 'Update dependency mypy to ~=1.13.0' (#68) from renovate/mypy-1.x into dev
All checks were successful
Tests / test (3.10) (push) Successful in -1m16s
Tests / test (3.11) (push) Successful in -1m15s
Tests / test (3.12) (push) Successful in -1m4s
Tests / test (3.9) (push) Successful in -1m12s
Tests / test (3.8) (push) Successful in -1m15s
Reviewed-on: #68
2024-10-23 02:14:45 +03:00
0fe90e13a8 Update dependency mypy to ~=1.13.0
All checks were successful
Tests / test (3.10) (pull_request) Successful in -1m10s
Tests / test (3.12) (pull_request) Successful in -1m4s
Tests / test (3.8) (pull_request) Successful in -1m14s
Tests / test (3.11) (pull_request) Successful in -1m17s
Tests / test (3.9) (pull_request) Successful in -1m18s
2024-10-23 01:28:51 +03:00
608d3a775c Update dependency tox to v4.23.2
All checks were successful
Tests / test (3.11) (pull_request) Successful in -1m16s
Tests / test (3.8) (pull_request) Successful in -1m13s
Tests / test (3.10) (pull_request) Successful in -1m16s
Tests / test (3.12) (pull_request) Successful in -1m7s
Tests / test (3.9) (pull_request) Successful in -1m16s
Tests / test (3.10) (push) Successful in -1m17s
Tests / test (3.11) (push) Successful in -1m21s
Tests / test (3.12) (push) Successful in -1m7s
Tests / test (3.8) (push) Successful in -1m18s
Tests / test (3.9) (push) Successful in -1m16s
2024-10-22 18:12:10 +03:00
94034a1b1a Merge pull request 'Update dependency tox to v4.23.0' (#66) from renovate/tox-4.x into dev
Some checks failed
Tests / test (3.10) (push) Successful in -53s
Tests / test (3.11) (push) Failing after -58s
Tests / test (3.12) (push) Successful in -45s
Tests / test (3.8) (push) Failing after -57s
Tests / test (3.9) (push) Successful in -56s
Reviewed-on: #66
2024-10-17 09:55:43 +03:00
ed735fa605 Update dependency tox to v4.23.0
All checks were successful
Tests / test (3.11) (pull_request) Successful in -56s
Tests / test (3.12) (pull_request) Successful in -40s
Tests / test (3.8) (pull_request) Successful in -48s
Tests / test (3.9) (pull_request) Successful in -54s
Tests / test (3.10) (pull_request) Successful in -54s
2024-10-17 07:40:09 +03:00
5699a7ce86 Update dependency tox to v4.22.0
Some checks failed
Tests / test (3.10) (pull_request) Successful in -44s
Tests / test (3.11) (pull_request) Successful in -45s
Tests / test (3.12) (pull_request) Successful in -32s
Tests / test (3.8) (pull_request) Successful in -43s
Tests / test (3.9) (pull_request) Successful in -41s
Tests / test (3.10) (push) Failing after -45s
Tests / test (3.11) (push) Successful in -46s
Tests / test (3.12) (push) Successful in -35s
Tests / test (3.8) (push) Successful in -47s
Tests / test (3.9) (push) Failing after -45s
2024-10-15 22:29:54 +03:00
87d24f3da1 Update dependency mypy to ~=1.12.0
All checks were successful
Tests / test (3.10) (pull_request) Successful in -40s
Tests / test (3.11) (pull_request) Successful in -45s
Tests / test (3.12) (pull_request) Successful in -32s
Tests / test (3.8) (pull_request) Successful in -45s
Tests / test (3.9) (pull_request) Successful in -43s
Tests / test (3.10) (push) Successful in -42s
Tests / test (3.11) (push) Successful in -44s
Tests / test (3.12) (push) Successful in -34s
Tests / test (3.8) (push) Successful in -44s
Tests / test (3.9) (push) Successful in -45s
2024-10-14 15:22:03 +03:00
b64b02b6b4 Update dependency xmltodict to ~=0.14.0
Some checks failed
Tests / test (3.10) (pull_request) Successful in 2s
Tests / test (3.11) (pull_request) Successful in -26s
Tests / test (3.12) (pull_request) Failing after -16s
Tests / test (3.8) (pull_request) Successful in -30s
Tests / test (3.9) (pull_request) Successful in -31s
Tests / test (3.10) (push) Successful in -26s
Tests / test (3.11) (push) Successful in -34s
Tests / test (3.12) (push) Successful in -23s
Tests / test (3.8) (push) Successful in -32s
Tests / test (3.9) (push) Successful in -26s
2024-10-08 22:46:23 +03:00
4a376d0522 Update dependency isodate to ~=0.7.0
All checks were successful
Tests / test (3.10) (pull_request) Successful in -28s
Tests / test (3.11) (pull_request) Successful in -27s
Tests / test (3.12) (pull_request) Successful in -13s
Tests / test (3.8) (pull_request) Successful in -24s
Tests / test (3.9) (pull_request) Successful in -23s
Tests / test (3.10) (push) Successful in -22s
Tests / test (3.11) (push) Successful in -27s
Tests / test (3.12) (push) Successful in -22s
Tests / test (3.8) (push) Successful in -29s
Tests / test (3.9) (push) Successful in -29s
2024-10-08 06:04:32 +03:00
52b86c257d revert 0e89fd0350
All checks were successful
Tests / test (3.10) (push) Successful in -27s
Tests / test (3.11) (push) Successful in -20s
Tests / test (3.12) (push) Successful in -14s
Tests / test (3.8) (push) Successful in -26s
Tests / test (3.9) (push) Successful in -25s
revert Update dependency pylint to ==3.3.1,<3.4.0
2024-10-07 14:21:38 +03:00
0e89fd0350 Update dependency pylint to ==3.3.1,<3.4.0
Some checks failed
Tests / test (3.10) (pull_request) Successful in -21s
Tests / test (3.11) (pull_request) Successful in -21s
Tests / test (3.12) (pull_request) Successful in -15s
Tests / test (3.8) (pull_request) Failing after -1m11s
Tests / test (3.9) (pull_request) Successful in -26s
Tests / test (3.10) (push) Successful in -26s
Tests / test (3.11) (push) Successful in -30s
Tests / test (3.12) (push) Successful in -20s
Tests / test (3.8) (push) Failing after -1m10s
Tests / test (3.9) (push) Successful in -29s
2024-10-07 14:04:03 +03:00
b507a70615 Merge pull request 'Update dependency tox to v4.21.2' (#58) from renovate/tox-4.x into dev
All checks were successful
Tests / test (3.11) (push) Successful in -19s
Tests / test (3.12) (push) Successful in -13s
Tests / test (3.8) (push) Successful in -24s
Tests / test (3.9) (push) Successful in -22s
Tests / test (3.10) (push) Successful in -28s
Reviewed-on: #58
2024-10-07 13:47:40 +03:00
a0b9d2a6da revert f04733c0
All checks were successful
Tests / test (3.10) (push) Successful in -20s
Tests / test (3.11) (push) Successful in -24s
Tests / test (3.12) (push) Successful in -19s
Tests / test (3.8) (push) Successful in -25s
Tests / test (3.9) (push) Successful in -28s
2024-10-07 13:36:11 +03:00
1d78e6c55e Update dependency tox to v4.21.2
Some checks failed
Tests / test (3.11) (pull_request) Successful in -15s
Tests / test (3.12) (pull_request) Successful in -5s
Tests / test (3.9) (pull_request) Successful in -15s
Tests / test (3.10) (pull_request) Successful in -21s
Tests / test (3.8) (pull_request) Failing after -1m9s
2024-10-06 22:23:08 +03:00
affb4007e4 Update dependency build to v1.2.2.post1
Some checks failed
Tests / test (3.10) (pull_request) Successful in -13s
Tests / test (3.11) (pull_request) Successful in -20s
Tests / test (3.12) (pull_request) Successful in -3s
Tests / test (3.8) (pull_request) Failing after -1m6s
Tests / test (3.9) (pull_request) Successful in -13s
Tests / test (3.10) (push) Successful in -11s
Tests / test (3.11) (push) Successful in -16s
Tests / test (3.12) (push) Failing after -3s
Tests / test (3.8) (push) Failing after -1m4s
Tests / test (3.9) (push) Failing after -11s
2024-10-06 21:20:00 +03:00
c8b42ce818 Merge pull request 'Update dependency tox to v4.21.0' (#57) from renovate/tox-4.x into dev
Some checks failed
Tests / test (3.10) (push) Successful in 45s
Tests / test (3.11) (push) Successful in 9s
Tests / test (3.12) (push) Successful in 14s
Tests / test (3.8) (push) Failing after -46s
Tests / test (3.9) (push) Successful in 4s
Reviewed-on: #57
2024-10-01 23:12:54 +03:00
f23beec5ad Update dependency tox to v4.21.0
Some checks failed
Tests / test (3.10) (pull_request) Successful in 11s
Tests / test (3.11) (pull_request) Successful in 1s
Tests / test (3.12) (pull_request) Successful in 12s
Tests / test (3.8) (pull_request) Failing after -41s
Tests / test (3.9) (pull_request) Successful in 7s
2024-10-01 07:40:01 +03:00
87841b4037 Update dependency pylint to v3.3.1
Some checks failed
Tests / test (3.10) (pull_request) Failing after 34s
Tests / test (3.11) (pull_request) Successful in 34s
Tests / test (3.12) (pull_request) Failing after 46s
Tests / test (3.8) (pull_request) Failing after -15s
Tests / test (3.9) (pull_request) Successful in 32s
Tests / test (3.10) (push) Failing after 35s
Tests / test (3.11) (push) Successful in 31s
Tests / test (3.12) (push) Failing after 40s
Tests / test (3.8) (push) Failing after -15s
Tests / test (3.9) (push) Successful in 35s
2024-09-24 15:11:43 +03:00
f04733c093 Update dependency pylint to v3.3.0
Some checks failed
Tests / test (3.10) (pull_request) Successful in 48s
Tests / test (3.11) (pull_request) Failing after 47s
Tests / test (3.12) (pull_request) Failing after 58s
Tests / test (3.8) (pull_request) Failing after -2s
Tests / test (3.9) (pull_request) Successful in 48s
Tests / test (3.10) (push) Failing after 46s
Tests / test (3.11) (push) Failing after 47s
Tests / test (3.12) (push) Successful in 52s
Tests / test (3.8) (push) Failing after 0s
Tests / test (3.9) (push) Failing after 44s
2024-09-20 16:22:59 +03:00
4412dd133c Merge pull request 'Update dependency tox to v4.20.0' (#54) from renovate/tox-4.x into dev
All checks were successful
Tests / test (3.10) (push) Successful in 53s
Tests / test (3.11) (push) Successful in 53s
Tests / test (3.8) (push) Successful in 49s
Tests / test (3.9) (push) Successful in 54s
Tests / test (3.12) (push) Successful in 57s
Reviewed-on: #54
2024-09-19 23:10:15 +03:00
e3a8e385b9 Merge branch 'dev' into renovate/tox-4.x
All checks were successful
Tests / test (3.10) (pull_request) Successful in 49s
Tests / test (3.11) (pull_request) Successful in 48s
Tests / test (3.12) (pull_request) Successful in 57s
Tests / test (3.8) (pull_request) Successful in 46s
Tests / test (3.9) (pull_request) Successful in 52s
2024-09-19 23:10:05 +03:00
dfb472a4e8
Possibly fixed false positives on exception detection
All checks were successful
Tests / test (3.10) (push) Successful in 48s
Tests / test (3.11) (push) Successful in 46s
Tests / test (3.12) (push) Successful in 56s
Tests / test (3.8) (push) Successful in 47s
Tests / test (3.9) (push) Successful in 50s
2024-09-19 22:03:57 +02:00
c06d90b7ce
Fixed unavailable Message attributes 2024-09-19 22:03:23 +02:00
9e12b53c3b
Trip.duration and Trip.real_time_duration are now nullable 2024-09-19 22:03:02 +02:00
19971e6e71
Fixed a rare bug with locals() being changed during iteration 2024-09-19 21:56:24 +02:00
5f30c68edb Update dependency tox to v4.20.0
Some checks failed
Tests / test (3.10) (pull_request) Successful in 1m44s
Tests / test (3.12) (pull_request) Successful in 1m14s
Tests / test (3.8) (pull_request) Successful in 55s
Tests / test (3.11) (pull_request) Failing after 50s
Tests / test (3.9) (pull_request) Failing after 55s
2024-09-19 06:56:49 +03:00
956c4c30ea Added handling for SVC_PARAM error
Some checks failed
Tests / test (3.10) (push) Successful in 1s
Tests / test (3.11) (push) Successful in 0s
Tests / test (3.12) (push) Failing after 7s
Tests / test (3.8) (push) Successful in -2s
Tests / test (3.9) (push) Successful in -4s
2024-09-15 00:55:16 +02:00
c70982755d Improved and cleaned up imports 2024-09-15 00:54:56 +02:00
483aae38b3
Added Python 3.12 to testing matrix
All checks were successful
Tests / test (3.10) (push) Successful in 23s
Tests / test (3.11) (push) Successful in 25s
Tests / test (3.12) (push) Successful in 1m4s
Tests / test (3.8) (push) Successful in 23s
Tests / test (3.9) (push) Successful in 21s
2024-09-08 01:58:25 +02:00
21 changed files with 64 additions and 58 deletions

View File

@ -15,7 +15,7 @@ jobs:
container: catthehacker/ubuntu:act-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v3

View File

@ -1,3 +1,3 @@
requests~=2.32.3
xmltodict~=0.13.0
isodate~=0.6.1
xmltodict~=0.14.0
isodate~=0.7.0

View File

@ -1,10 +1,10 @@
black~=24.8.0
isort==5.13.2
mypy~=1.11.2
pylint==3.2.7
pytest-cov~=5.0.0
mypy~=1.13.0
pylint==3.2.7,<3.3.0
pytest-cov~=6.0.0
pytest~=8.3.2
tox==4.18.1
tox==4.23.2
types-ujson~=5.10.0.20240515
# Disabled async libraries for now

View File

@ -1,2 +1,2 @@
build==1.2.2
build==1.2.2.post1
twine~=5.1.1

View File

@ -1,10 +1,10 @@
from datetime import datetime
from typing import Any, List, Mapping, Union
from pyrmv.classes.journey import Journey
from pyrmv.classes.message import Message
from pyrmv.classes.stop import Stop
from pyrmv.utility import ref_upgrade
from ..classes.journey import Journey
from ..classes.message import Message
from ..classes.stop import Stop
from ..utility import ref_upgrade
class LineArrival:

View File

@ -1,7 +1,7 @@
from datetime import datetime, timedelta
from typing import List, OrderedDict, Union
from pyrmv.classes import (
from ..classes import (
BoardArrival,
BoardDeparture,
Journey,
@ -10,7 +10,7 @@ from pyrmv.classes import (
StopTrip,
Trip,
)
from pyrmv.enums import (
from ..enums import (
AffectedJourneyMode,
AffectedJourneyStopMode,
BoardArrivalType,
@ -22,15 +22,15 @@ from pyrmv.enums import (
SearchMode,
SelectionMode,
)
from pyrmv.raw import board_arrival as raw_board_arrival
from pyrmv.raw import board_departure as raw_board_departure
from pyrmv.raw import him_search as raw_him_search
from pyrmv.raw import journey_detail as raw_journey_detail
from pyrmv.raw import stop_by_coords as raw_stop_by_coords
from pyrmv.raw import stop_by_name as raw_stop_by_name
from pyrmv.raw import trip_find as raw_trip_find
from pyrmv.raw import trip_recon as raw_trip_recon
from pyrmv.utility import find_exception
from ..raw import board_arrival as raw_board_arrival
from ..raw import board_departure as raw_board_departure
from ..raw import him_search as raw_him_search
from ..raw import journey_detail as raw_journey_detail
from ..raw import stop_by_coords as raw_stop_by_coords
from ..raw import stop_by_name as raw_stop_by_name
from ..raw import trip_find as raw_trip_find
from ..raw import trip_recon as raw_trip_recon
from ..utility import find_exception
try:
from typing import Literal
@ -150,7 +150,7 @@ class Client:
boardType=board_type.code,
)
find_exception(board_raw)
find_exception(board_raw.copy())
return BoardArrival(
board_raw,
@ -219,7 +219,7 @@ class Client:
boardType=board_type.code,
)
find_exception(board_raw)
find_exception(board_raw.copy())
return BoardDeparture(
board_raw,
@ -343,7 +343,7 @@ class Client:
minprio=priority_min,
)
find_exception(messages_raw)
find_exception(messages_raw.copy())
if "Message" in messages_raw:
messages.extend(Message(message) for message in messages_raw["Message"])
@ -402,7 +402,7 @@ class Client:
toIdx=to_index,
)
find_exception(journey_raw)
find_exception(journey_raw.copy())
return Journey(journey_raw)
@ -481,7 +481,7 @@ class Client:
locationSelectionMode=selection_mode, # type: ignore
)
find_exception(stops_raw)
find_exception(stops_raw.copy())
if "stopLocationOrCoordLocation" in stops_raw:
for stop in stops_raw["stopLocationOrCoordLocation"]:
@ -536,7 +536,7 @@ class Client:
accessId=self.access_id, inputString=query, lang=lang.code, maxNo=1
)
find_exception(stops_raw)
find_exception(stops_raw.copy())
if len(stops_raw["stopLocationOrCoordLocation"]) <= 0:
return None
@ -642,7 +642,7 @@ class Client:
filterMode=filter_mode.code,
)
find_exception(stops_raw)
find_exception(stops_raw.copy())
if "stopLocationOrCoordLocation" in stops_raw:
for stop in stops_raw["stopLocationOrCoordLocation"]:
@ -833,7 +833,7 @@ class Client:
withFreq=frequency,
)
find_exception(trips_raw)
find_exception(trips_raw.copy())
if "Trip" in trips_raw:
trips.extend(Trip(trip) for trip in trips_raw["Trip"])
@ -913,7 +913,7 @@ class Client:
trafficMessages=messages,
)
find_exception(trips_raw)
find_exception(trips_raw.copy())
if "Trip" in trips_raw:
trips.extend(Trip(trip) for trip in trips_raw["Trip"])

View File

@ -1,8 +1,8 @@
from typing import Any, List, Mapping, Union
from pyrmv.classes.message import Message
from pyrmv.classes.stop import Stop
from pyrmv.utility import ref_upgrade
from ..classes.message import Message
from ..classes.stop import Stop
from ..utility import ref_upgrade
class Journey:

View File

@ -3,9 +3,9 @@ from typing import Any, List, Mapping, Union
from isodate import Duration, parse_duration
from pyrmv.classes.gis import Gis
from pyrmv.classes.message import Message
from pyrmv.classes.stop import StopTrip
from ..classes.gis import Gis
from ..classes.message import Message
from ..classes.stop import StopTrip
class Leg:

View File

@ -3,7 +3,7 @@ from typing import Any, List, Mapping, Union
from isodate import Duration, parse_duration
from pyrmv.classes.stop import Stop
from ..classes.stop import Stop
class Url:
@ -59,9 +59,9 @@ class Message:
self.channels.extend(Channel(channel) for channel in data["channel"])
self.id: str = data["id"]
self.active: bool = data["act"]
self.head: str = data["head"]
self.lead: str = data["lead"]
self.text: str = data["text"]
self.head: str = "" if "head" not in data else data["head"]
self.lead: str = "" if "lead" not in data else data["lead"]
self.text: str = "" if "text" not in data else data["text"]
self.company: Union[str, None] = data.get("company")
self.category: Union[str, None] = data.get("category")
self.priority: Union[int, None] = data.get("priority")

View File

@ -1,6 +1,6 @@
from typing import Any, Mapping, Union
from pyrmv.enums.platform_type_type import PlatformTypeType
from ..enums.platform_type_type import PlatformTypeType
class PlatformType:

View File

@ -3,8 +3,8 @@ from typing import List, Union
from isodate import Duration, parse_duration
from pyrmv.classes.leg import Leg
from pyrmv.classes.stop import StopTrip
from ..classes.leg import Leg
from ..classes.stop import StopTrip
class Trip:
@ -19,8 +19,10 @@ class Trip:
self.index: int = data["idx"]
self.id: str = data["tripId"]
self.ctx_recon: str = data["ctxRecon"]
self.duration: Union[Duration, timedelta] = parse_duration(data["duration"])
self.real_time_duration: Union[Duration, timedelta] = (
self.duration: Union[Duration, timedelta, None] = (
None if "duration" not in data else parse_duration(data["duration"])
)
self.real_time_duration: Union[Duration, timedelta, None] = (
None if "rtDuration" not in data else parse_duration(data["rtDuration"])
)
self.checksum: str = data["checksum"]

View File

@ -3,7 +3,7 @@
from enum import Enum
from pyrmv.const import PRODUCTS
from ..const import PRODUCTS
class AutoName(Enum):

View File

@ -64,7 +64,7 @@ def board_arrival(
payload = {}
headers = {"Accept": "application/json"} if json else {"Accept": "application/xml"}
for var, val in locals().items():
for var, val in locals().copy().items():
if str(var) == "date":
if val != None:
if isinstance(val, datetime):

View File

@ -65,7 +65,7 @@ def board_departure(
payload = {}
headers = {"Accept": "application/json"} if json else {"Accept": "application/xml"}
for var, val in locals().items():
for var, val in locals().copy().items():
if str(var) == "date":
if val != None:
if isinstance(val, datetime):

View File

@ -4,7 +4,7 @@ from typing import OrderedDict, Union
from requests import get
from xmltodict import parse as xmlparse
from pyrmv.utility import weekdays_bitmask
from ..utility import weekdays_bitmask
try:
from typing import Literal
@ -97,7 +97,7 @@ def him_search(
payload = {}
headers = {"Accept": "application/json"} if json else {"Accept": "application/xml"}
for var, val in locals().items():
for var, val in locals().copy().items():
if str(var) in {"dateB", "dateE"}:
if val != None:
if isinstance(val, datetime):

View File

@ -55,7 +55,7 @@ def journey_detail(
payload = {}
headers = {"Accept": "application/json"} if json else {"Accept": "application/xml"}
for var, val in locals().items():
for var, val in locals().copy().items():
if str(var) == "rtMode":
if val != None:
payload["rtMode"] = val.upper()

View File

@ -54,7 +54,7 @@ def stop_by_coords(
payload = {}
headers = {"Accept": "application/json"} if json else {"Accept": "application/xml"}
for var, val in locals().items():
for var, val in locals().copy().items():
if str(var) == "stopType":
if val != None:
payload["type"] = val.upper()

View File

@ -65,7 +65,7 @@ def stop_by_name(
payload = {}
headers = {"Accept": "application/json"} if json else {"Accept": "application/xml"}
for var, val in locals().items():
for var, val in locals().copy().items():
if str(var) == "inputString":
if val != None:
payload["input"] = val

View File

@ -201,7 +201,7 @@ def trip_find(
payload = {}
headers = {"Accept": "application/json"} if json else {"Accept": "application/xml"}
for var, val in locals().items():
for var, val in locals().copy().items():
if str(var) == "date":
if val != None:
if isinstance(val, datetime):

View File

@ -87,7 +87,7 @@ def trip_recon(
payload = {}
headers = {"Accept": "application/json"} if json else {"Accept": "application/xml"}
for var, val in locals().items():
for var, val in locals().copy().items():
if str(var) == "date":
if val != None:
if isinstance(val, datetime):

View File

@ -1,4 +1,4 @@
from pyrmv.errors import (
from ..errors import (
ApiAuthError,
ApiFormatError,
ApiParamError,
@ -26,6 +26,7 @@ from pyrmv.errors import (
SvcNoResultError,
SvcProductError,
SvcSearchError,
SvcParamError,
UnknownError,
)
@ -86,6 +87,9 @@ def find_exception(data: dict):
elif data["errorCode"] == "SVC_CTX":
raise SvcContextError()
elif data["errorCode"] == "SVC_PARAM":
raise SvcParamError(errorCode=data["errorCode"], errorText=data["errorText"])
elif data["errorCode"] == "SVC_NO_RESULT":
raise SvcNoResultError()