v0.4.0 #53

Merged
profitroll merged 108 commits from dev into master 2024-09-08 02:54:11 +03:00
11 changed files with 90 additions and 13 deletions
Showing only changes of commit 09d43d3426 - Show all commits

1
.gitignore vendored
View File

@ -154,6 +154,7 @@ cython_debug/
# Custom
.mise.toml
.vscode/
.venv_linux/
.venv_windows/

View File

@ -21,6 +21,7 @@ classifiers = [
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Utilities",
]
@ -44,7 +45,7 @@ speed = { file = "requirements/speed.txt" }
where = ["src"]
[tool.black]
target-version = ['py38', 'py39', 'py310', 'py311']
target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
line-length = 94
[tool.isort]

View File

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

View File

@ -1,12 +1,12 @@
black~=24.8.0
build==1.2.2
isort==5.13.2
mypy~=1.11.0
mypy~=1.11.2
pylint==3.2.7
pytest-asyncio~=0.24.0
pytest-cov~=5.0.0
pytest~=8.3.1
pytest~=8.3.2
tox==4.18.1
twine~=5.1.0
types-aiofiles~=24.1.0.20240626
types-ujson~=5.10.0.20240515
# Disabled async libraries for now
# types-aiofiles~=24.1.0.20240626
# pytest-asyncio~=0.24.0

2
requirements/dist.txt Normal file
View File

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

View File

@ -3,6 +3,7 @@ from .gis import Gis
from .journey import Journey
from .leg import Leg
from .message import Channel, Message, Url
from .platform_type import PlatformType
from .stop import Stop, StopTrip
from .ticket import Ticket
from .trip import Trip

View File

@ -0,0 +1,17 @@
from typing import Any, Mapping, Union
from pyrmv.enums.platform_type_type import PlatformTypeType
class PlatformType:
"""Platform information."""
def __init__(self, data: Mapping[str, Any]):
self.type: PlatformTypeType = (
PlatformTypeType.U if "type" not in data else PlatformTypeType(data.get("type"))
)
self.text: Union[str, None] = data.get("text")
self.hidden: bool = bool(data.get("hidden"))
self.lon: float = data["lon"]
self.lat: float = data["lat"]
self.alt: int = data["alt"]

View File

@ -4,6 +4,7 @@ from .board_type import BoardArrivalType, BoardDepartureType
from .filter_mode import FilterMode
from .lang import Language
from .location_type import LocationType
from .platform_type_type import PlatformTypeType
from .product import Product
from .rt_mode import RealTimeMode
from .search_mode import SearchMode

View File

@ -0,0 +1,51 @@
from enum import Enum, auto
class PlatformTypeType(Enum):
"""Enumeration used to declare types of platform type.
* U - Undefined
* PL - Platform/track at train station
* ST - Stop at bus or tram station
* GA - Terminal/Gate at airport
* PI - Pier if ship or ferry
* SL - Slot/parking space if bike or car
* FL - Floor in buildings or at footpath
* CI - Check-in/entrance
* CO - Check-out/exit
* X - No explicit type
* H - Hide platform information
"""
U = auto()
"Undefined"
PL = auto()
"Platform/track at train station"
ST = auto()
"Stop at bus or tram station"
GA = auto()
"Terminal/Gate at airport"
PI = auto()
"Pier if ship or ferry"
SL = auto()
"Slot/parking space if bike or car"
FL = auto()
"Floor in buildings or at footpath"
CI = auto()
"Check-in/entrance"
CO = auto()
"Check-out/exit"
X = auto()
"No explicit type"
H = auto()
"Hide platform information"

View File

@ -20,9 +20,12 @@ def test_board_departure(api_client: Client, sample_stop_id: str):
def test_him_search(api_client: Client):
assert isinstance(
api_client.him_search(time_end=datetime.now() + timedelta(days=10))[0], Message
)
response = api_client.him_search(time_end=datetime.now() + timedelta(days=10))
if len(response) != 0:
assert isinstance(response[0], Message)
else:
assert isinstance(response, list)
def test_journey_detail(api_client: Client, sample_journey_id: str):

View File

@ -1,6 +1,6 @@
[tox]
minversion = 3.8.0
envlist = py38, py39, py310, py311
envlist = py38, py39, py310, py311, py312
isolated_build = true
[gh-actions]
@ -9,6 +9,7 @@ python =
3.9: py39
3.10: py310
3.11: py311
3.12: py312
[testenv]
setenv =
@ -21,4 +22,3 @@ deps =
-r{toxinidir}/requirements/speed.txt
commands =
pytest --basetemp={envtmpdir} --cov=pyrmv --cov-report term-missing