Skip to content

Commit c84b047

Browse files
committed
Require record arguments to be keyword arguments
This makes it easier to maintain going forward.
1 parent 79ca31d commit c84b047

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

HISTORY.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ History
1010
* BREAKING: The ``raw`` attribute on the model classes has been replaced
1111
with a ``to_dict()`` method. This can be used to get a representation of
1212
the object that is suitable for serialization.
13+
* BREAKING: The record classes now require all arguments other than ``locales``
14+
to be keyword arguments.
1315
* BREAKING: ``geoip2.mixins`` has been made internal. This normally would not
1416
have been used by external code.
1517
* IMPORTANT: Python 3.9 or greater is required. If you are using an older

geoip2/records.py

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ class PlaceRecord(Record, metaclass=ABCMeta):
3232

3333
def __init__(
3434
self,
35-
locales: Optional[Sequence[str]] = None,
36-
names: Optional[Dict[str, str]] = None,
35+
locales: Optional[Sequence[str]],
36+
names: Optional[Dict[str, str]],
3737
) -> None:
3838
if locales is None:
3939
locales = ["en"]
@@ -93,7 +93,8 @@ class City(PlaceRecord):
9393

9494
def __init__(
9595
self,
96-
locales: Optional[Sequence[str]] = None,
96+
locales: Optional[Sequence[str]],
97+
*,
9798
confidence: Optional[int] = None,
9899
geoname_id: Optional[int] = None,
99100
names: Optional[Dict[str, str]] = None,
@@ -147,7 +148,8 @@ class Continent(PlaceRecord):
147148

148149
def __init__(
149150
self,
150-
locales: Optional[Sequence[str]] = None,
151+
locales: Optional[Sequence[str]],
152+
*,
151153
code: Optional[str] = None,
152154
geoname_id: Optional[int] = None,
153155
names: Optional[Dict[str, str]] = None,
@@ -217,7 +219,8 @@ class Country(PlaceRecord):
217219

218220
def __init__(
219221
self,
220-
locales: Optional[Sequence[str]] = None,
222+
locales: Optional[Sequence[str]],
223+
*,
221224
confidence: Optional[int] = None,
222225
geoname_id: Optional[int] = None,
223226
is_in_european_union: bool = False,
@@ -298,7 +301,8 @@ class RepresentedCountry(Country):
298301

299302
def __init__(
300303
self,
301-
locales: Optional[Sequence[str]] = None,
304+
locales: Optional[Sequence[str]],
305+
*,
302306
confidence: Optional[int] = None,
303307
geoname_id: Optional[int] = None,
304308
is_in_european_union: bool = False,
@@ -310,7 +314,12 @@ def __init__(
310314
) -> None:
311315
self.type = type
312316
super().__init__(
313-
locales, confidence, geoname_id, is_in_european_union, iso_code, names
317+
locales,
318+
confidence=confidence,
319+
geoname_id=geoname_id,
320+
is_in_european_union=is_in_european_union,
321+
iso_code=iso_code,
322+
names=names,
314323
)
315324

316325

@@ -391,6 +400,7 @@ class Location(Record):
391400

392401
def __init__(
393402
self,
403+
*,
394404
average_income: Optional[int] = None,
395405
accuracy_radius: Optional[int] = None,
396406
latitude: Optional[float] = None,
@@ -425,7 +435,7 @@ class MaxMind(Record):
425435

426436
queries_remaining: Optional[int]
427437

428-
def __init__(self, queries_remaining: Optional[int] = None, **_) -> None:
438+
def __init__(self, *, queries_remaining: Optional[int] = None, **_) -> None:
429439
self.queries_remaining = queries_remaining
430440

431441

@@ -460,7 +470,7 @@ class Postal(Record):
460470
confidence: Optional[int]
461471

462472
def __init__(
463-
self, code: Optional[str] = None, confidence: Optional[int] = None, **_
473+
self, *, code: Optional[str] = None, confidence: Optional[int] = None, **_
464474
) -> None:
465475
self.code = code
466476
self.confidence = confidence
@@ -519,7 +529,8 @@ class Subdivision(PlaceRecord):
519529

520530
def __init__(
521531
self,
522-
locales: Optional[Sequence[str]] = None,
532+
locales: Optional[Sequence[str]],
533+
*,
523534
confidence: Optional[int] = None,
524535
geoname_id: Optional[int] = None,
525536
iso_code: Optional[str] = None,
@@ -850,6 +861,7 @@ class Traits(Record):
850861

851862
def __init__(
852863
self,
864+
*,
853865
autonomous_system_number: Optional[int] = None,
854866
autonomous_system_organization: Optional[str] = None,
855867
connection_type: Optional[str] = None,

0 commit comments

Comments
 (0)