Skip to content

Commit e27ab6e

Browse files
FlightCategory added (supersedes #19) Implements #18 (#21)
* Add FlightCategory enumeration for flight types Defines an enumeration for flight categories used in the Flightradar24 SDK. * Update __init__.py * Supersedes #19 --------- Co-authored-by: harikcecaps4-max <harikcecaps4@gmail.com>
1 parent cf1e105 commit e27ab6e

4 files changed

Lines changed: 42 additions & 8 deletions

File tree

src/fr24sdk/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# SPDX-License-Identifier: MIT
44
"""Exposes data models for the Flightradar24 SDK."""
55

6+
from .flight_category import FlightCategory
67
from .airline import AirlineLight
78
from .airport import AirportFull, AirportLight, Country, Timezone
89
from .flight import (
@@ -27,6 +28,7 @@
2728

2829
__all__ = [
2930
"AirlineLight",
31+
"FlightCategory",
3032
"AirportFull",
3133
"AirportLight",
3234
"Country",
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# SPDX-FileCopyrightText: Copyright Flightradar24
2+
#
3+
# SPDX-License-Identifier: MIT
4+
"""Flight category enumeration for the Flightradar24 SDK."""
5+
6+
from enum import Enum
7+
8+
9+
class FlightCategory(str, Enum):
10+
"""Enumeration of FlightRadar24 flight categories.
11+
12+
Maps character literals used by the FR24 API to identify different
13+
types of aircraft and flight operations.
14+
"""
15+
16+
PASSENGER = "P"
17+
CARGO = "C"
18+
MILITARY_AND_GOVERNMENT = "M"
19+
BUSINESS_JETS = "J"
20+
GENERAL_AVIATION = "T"
21+
HELICOPTERS = "H"
22+
LIGHTER_THAN_AIR = "B"
23+
GLIDERS = "G"
24+
DRONES = "D"
25+
GROUND_VEHICLES = "V"
26+
OTHER = "O"
27+
NON_CATEGORIZED = "N"
28+
29+
def __str__(self) -> str:
30+
return self.value

src/fr24sdk/resources/historic/positions.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
Boundary,
2424
AltitudeRange,
2525
)
26+
from ...models.flight_category import FlightCategory
2627
from ...models.regex_patterns import (
2728
FLIGHT_NUMBER_PATTERN,
2829
CALLSIGN_PATTERN,
@@ -73,7 +74,7 @@ class _HistoricPositionsParams(BaseModel):
7374
list[Annotated[str, StringConstraints(pattern=SQUAWK_PATTERN)]]
7475
] = Field(default=None, max_length=15)
7576
categories: Optional[
76-
list[Annotated[str, StringConstraints(pattern=SERVICE_TYPES_PATTERN)]]
77+
list[Union[FlightCategory, Annotated[str, StringConstraints(pattern=SERVICE_TYPES_PATTERN)]]]
7778
] = Field(default=None, max_length=15)
7879
data_sources: Optional[
7980
list[Annotated[str, StringConstraints(pattern=DATA_SOURCE_PATTERN)]]
@@ -136,7 +137,7 @@ def get_light(
136137
aircraft: Optional[str] = None,
137138
altitude_ranges: Optional[list[Union[AltitudeRange, str]]] = None,
138139
squawks: Optional[list[str]] = None,
139-
categories: Optional[list[str]] = None,
140+
categories: Optional[list[Union[FlightCategory, str]]] = None,
140141
data_sources: Optional[list[str]] = None,
141142
gspeed: Optional[Union[int, str]] = None,
142143
limit: Optional[int] = None,
@@ -183,7 +184,7 @@ def get_full(
183184
aircraft: Optional[str] = None,
184185
altitude_ranges: Optional[list[Union[AltitudeRange, str]]] = None,
185186
squawks: Optional[list[str]] = None,
186-
categories: Optional[list[str]] = None,
187+
categories: Optional[list[Union[FlightCategory, str]]] = None,
187188
data_sources: Optional[list[str]] = None,
188189
gspeed: Optional[Union[int, str]] = None,
189190
limit: Optional[int] = None,
@@ -230,7 +231,7 @@ def count(
230231
aircraft: Optional[str] = None,
231232
altitude_ranges: Optional[list[Union[AltitudeRange, str]]] = None,
232233
squawks: Optional[list[str]] = None,
233-
categories: Optional[list[str]] = None,
234+
categories: Optional[list[Union[FlightCategory, str]]] = None,
234235
data_sources: Optional[list[str]] = None,
235236
gspeed: Optional[Union[int, str]] = None,
236237
) -> CountResponse:

src/fr24sdk/resources/live/positions.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
FlightPositionsFullResponse,
1818
CountResponse,
1919
)
20+
from ...models.flight_category import FlightCategory
2021
from ...models.geographic import (
2122
Boundary,
2223
AltitudeRange,
@@ -67,7 +68,7 @@ class _LivePositionsParams(BaseModel):
6768
list[Annotated[str, StringConstraints(pattern=SQUAWK_PATTERN)]]
6869
] = Field(default=None, max_length=15)
6970
categories: Optional[
70-
list[Annotated[str, StringConstraints(pattern=SERVICE_TYPES_PATTERN)]]
71+
list[Union[FlightCategory, Annotated[str, StringConstraints(pattern=SERVICE_TYPES_PATTERN)]]]
7172
] = Field(default=None, max_length=15)
7273
data_sources: Optional[
7374
list[Annotated[str, StringConstraints(pattern=DATA_SOURCE_PATTERN)]]
@@ -111,7 +112,7 @@ def get_light(
111112
aircraft: Optional[str] = None,
112113
altitude_ranges: Optional[list[Union[AltitudeRange, str]]] = None,
113114
squawks: Optional[list[str]] = None,
114-
categories: Optional[list[str]] = None,
115+
categories: Optional[list[Union[FlightCategory, str]]] = None,
115116
data_sources: Optional[list[str]] = None,
116117
airspaces: Optional[list[str]] = None,
117118
gspeed: Optional[Union[int, str]] = None,
@@ -156,7 +157,7 @@ def get_full(
156157
aircraft: Optional[str] = None,
157158
altitude_ranges: Optional[list[Union[AltitudeRange, str]]] = None,
158159
squawks: Optional[list[str]] = None,
159-
categories: Optional[list[str]] = None,
160+
categories: Optional[list[Union[FlightCategory, str]]] = None,
160161
data_sources: Optional[list[str]] = None,
161162
airspaces: Optional[list[str]] = None,
162163
gspeed: Optional[Union[int, str]] = None,
@@ -201,7 +202,7 @@ def count(
201202
aircraft: Optional[str] = None,
202203
altitude_ranges: Optional[list[Union[AltitudeRange, str]]] = None,
203204
squawks: Optional[list[str]] = None,
204-
categories: Optional[list[str]] = None,
205+
categories: Optional[list[Union[FlightCategory, str]]] = None,
205206
data_sources: Optional[list[str]] = None,
206207
gspeed: Optional[Union[int, str]] = None,
207208
) -> CountResponse:

0 commit comments

Comments
 (0)