internetdata 1.2.0__tar.gz → 2.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. {internetdata-1.2.0 → internetdata-2.0.0}/PKG-INFO +1 -1
  2. {internetdata-1.2.0 → internetdata-2.0.0}/spec/openapi.yaml +25 -23
  3. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/__init__.py +1 -1
  4. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/api/database_v_2/database_checksum_v2.py +10 -10
  5. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/api/database_v_2/download_database_v2.py +10 -10
  6. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/__init__.py +4 -10
  7. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database.py +38 -48
  8. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_checksum_v2_response_200.py +4 -4
  9. internetdata-1.2.0/src/internetdata/_generated/models/download_database_v2_format.py → internetdata-2.0.0/src/internetdata/_generated/models/database_format.py +1 -1
  10. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_version.py +4 -4
  11. internetdata-1.2.0/src/internetdata/_generated/models/database_standing.py → internetdata-2.0.0/src/internetdata/_generated/models/standing.py +1 -1
  12. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/aio.py +3 -4
  13. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/client.py +3 -4
  14. {internetdata-1.2.0 → internetdata-2.0.0}/tests/helpers.py +2 -0
  15. internetdata-1.2.0/src/internetdata/_generated/models/database_checksum_v2_format.py +0 -9
  16. internetdata-1.2.0/src/internetdata/_generated/models/database_checksum_v2_response_200_format.py +0 -9
  17. internetdata-1.2.0/src/internetdata/_generated/models/database_version_formats_item.py +0 -9
  18. {internetdata-1.2.0 → internetdata-2.0.0}/.gitignore +0 -0
  19. {internetdata-1.2.0 → internetdata-2.0.0}/LICENSE +0 -0
  20. {internetdata-1.2.0 → internetdata-2.0.0}/README.md +0 -0
  21. {internetdata-1.2.0 → internetdata-2.0.0}/pyproject.toml +0 -0
  22. {internetdata-1.2.0 → internetdata-2.0.0}/scripts/download-spec.sh +0 -0
  23. {internetdata-1.2.0 → internetdata-2.0.0}/scripts/generate.sh +0 -0
  24. {internetdata-1.2.0 → internetdata-2.0.0}/scripts/publish.sh +0 -0
  25. {internetdata-1.2.0 → internetdata-2.0.0}/scripts/v2_subset.py +0 -0
  26. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_core.py +0 -0
  27. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/__init__.py +0 -0
  28. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/api/__init__.py +0 -0
  29. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/api/database_v_2/__init__.py +0 -0
  30. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/api/database_v_2/database_metadata_v2.py +0 -0
  31. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/api/database_v_2/list_databases.py +0 -0
  32. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/api/database_v_2/list_downloads.py +0 -0
  33. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/client.py +0 -0
  34. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/errors.py +0 -0
  35. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_license_type_type_1.py +0 -0
  36. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_license_type_type_2_type_1.py +0 -0
  37. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_license_type_type_3_type_1.py +0 -0
  38. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_metadata.py +0 -0
  39. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_metadata_column.py +0 -0
  40. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_metadata_sample.py +0 -0
  41. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_metadata_sample_additional_property_item.py +0 -0
  42. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_metadata_schema.py +0 -0
  43. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/database_metadata_size.py +0 -0
  44. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/db_checksums.py +0 -0
  45. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/download.py +0 -0
  46. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/download_outcome.py +0 -0
  47. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/error.py +0 -0
  48. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/list_databases_response_200.py +0 -0
  49. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/models/list_downloads_response_200.py +0 -0
  50. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/_generated/types.py +0 -0
  51. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/errors.py +0 -0
  52. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/models.py +0 -0
  53. {internetdata-1.2.0 → internetdata-2.0.0}/src/internetdata/py.typed +0 -0
  54. {internetdata-1.2.0 → internetdata-2.0.0}/testdata/testdata.json +0 -0
  55. {internetdata-1.2.0 → internetdata-2.0.0}/tests/conftest.py +0 -0
  56. {internetdata-1.2.0 → internetdata-2.0.0}/tests/test_client.py +0 -0
  57. {internetdata-1.2.0 → internetdata-2.0.0}/tests/test_conformance.py +0 -0
  58. {internetdata-1.2.0 → internetdata-2.0.0}/tests/test_download.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: internetdata
3
- Version: 1.2.0
3
+ Version: 2.0.0
4
4
  Summary: Official Python client library for the InternetData API. Download and verify licensed IP datasets.
5
5
  Project-URL: Homepage, https://internetdata.io
6
6
  Project-URL: Documentation, https://docs.internetdata.io
@@ -8,7 +8,7 @@ info:
8
8
  email: dev@internetdata.io
9
9
  url: https://internetdata.io
10
10
  termsOfService: https://internetdata.io/terms-of-service/
11
- version: 2026.09.09
11
+ version: 2026.09.13
12
12
  servers:
13
13
  - url: https://internetdata.io
14
14
  security:
@@ -162,10 +162,7 @@ paths:
162
162
  id:
163
163
  type: string
164
164
  format:
165
- type: string
166
- enum:
167
- - csvgz
168
- - mmdb
165
+ $ref: '#/components/schemas/DatabaseFormat'
169
166
  checksums:
170
167
  $ref: '#/components/schemas/DbChecksums'
171
168
  '400':
@@ -362,11 +359,7 @@ components:
362
359
  required: true
363
360
  description: Database file format.
364
361
  schema:
365
- type: string
366
- enum:
367
- - csvgz
368
- - mmdb
369
- example: mmdb
362
+ $ref: '#/components/schemas/DatabaseFormat'
370
363
  schemas:
371
364
  Error:
372
365
  type: object
@@ -378,6 +371,23 @@ components:
378
371
  description: |
379
372
  A machine-readable result code. Deliberately not an enum: a code
380
373
  added later must stay parseable by a client generated today.
374
+ DatabaseFormat:
375
+ type: string
376
+ description: A file format a database version is published in.
377
+ enum:
378
+ - csvgz
379
+ - mmdb
380
+ example: mmdb
381
+ Standing:
382
+ type: string
383
+ description: |
384
+ Where your licence for a database family stands today. `licensed` is a
385
+ live grant, `expired` one whose term has ended, and `unlicensed` a
386
+ database published but never bought.
387
+ enum:
388
+ - licensed
389
+ - expired
390
+ - unlicensed
381
391
  Database:
382
392
  type: object
383
393
  description: |
@@ -392,6 +402,8 @@ components:
392
402
  - license_type
393
403
  - starts
394
404
  - expires
405
+ - renews_at
406
+ - notice_due_at
395
407
  - versions
396
408
  properties:
397
409
  base:
@@ -405,14 +417,7 @@ components:
405
417
  type: string
406
418
  description: One line on what the newest version contains.
407
419
  standing:
408
- type: string
409
- enum:
410
- - licensed
411
- - expired
412
- - unlicensed
413
- description: |
414
- `licensed` is a live grant, `expired` one whose term has ended, and
415
- `unlicensed` a database published but never bought.
420
+ $ref: '#/components/schemas/Standing'
416
421
  license_type:
417
422
  type: string
418
423
  nullable: true
@@ -423,7 +428,7 @@ components:
423
428
  - null
424
429
  description: |
425
430
  What your licence permits you to do with the data. Null when there
426
- is no licence.
431
+ is no licence, which is every family with standing `unlicensed`.
427
432
  starts:
428
433
  type: string
429
434
  format: date-time
@@ -481,10 +486,7 @@ components:
481
486
  not a gap - the `_provider` catalogs are keyed by provider id, so no
482
487
  MMDB exists for them.
483
488
  items:
484
- type: string
485
- enum:
486
- - csvgz
487
- - mmdb
489
+ $ref: '#/components/schemas/DatabaseFormat'
488
490
  Download:
489
491
  type: object
490
492
  description: One download ATTEMPT, refusals included.
@@ -26,7 +26,7 @@ from .models import (
26
26
  Standing,
27
27
  )
28
28
 
29
- __version__ = "1.2.0"
29
+ __version__ = "2.0.0"
30
30
 
31
31
  __all__ = [
32
32
  "DEFAULT_BASE_URL",
@@ -5,8 +5,8 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.database_checksum_v2_format import DatabaseChecksumV2Format
9
8
  from ...models.database_checksum_v2_response_200 import DatabaseChecksumV2Response200
9
+ from ...models.database_format import DatabaseFormat
10
10
  from ...models.error import Error
11
11
  from ...types import UNSET, Response
12
12
 
@@ -14,7 +14,7 @@ from ...types import UNSET, Response
14
14
  def _get_kwargs(
15
15
  *,
16
16
  id: str,
17
- format_: DatabaseChecksumV2Format,
17
+ format_: DatabaseFormat,
18
18
  ) -> dict[str, Any]:
19
19
 
20
20
  params: dict[str, Any] = {}
@@ -89,7 +89,7 @@ def sync_detailed(
89
89
  *,
90
90
  client: AuthenticatedClient,
91
91
  id: str,
92
- format_: DatabaseChecksumV2Format,
92
+ format_: DatabaseFormat,
93
93
  ) -> Response[DatabaseChecksumV2Response200 | Error]:
94
94
  """Checksums
95
95
 
@@ -97,7 +97,7 @@ def sync_detailed(
97
97
 
98
98
  Args:
99
99
  id (str): Example: vpn_ip_v1.
100
- format_ (DatabaseChecksumV2Format): Example: mmdb.
100
+ format_ (DatabaseFormat): A file format a database version is published in. Example: mmdb.
101
101
 
102
102
  Raises:
103
103
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -123,7 +123,7 @@ def sync(
123
123
  *,
124
124
  client: AuthenticatedClient,
125
125
  id: str,
126
- format_: DatabaseChecksumV2Format,
126
+ format_: DatabaseFormat,
127
127
  ) -> DatabaseChecksumV2Response200 | Error | None:
128
128
  """Checksums
129
129
 
@@ -131,7 +131,7 @@ def sync(
131
131
 
132
132
  Args:
133
133
  id (str): Example: vpn_ip_v1.
134
- format_ (DatabaseChecksumV2Format): Example: mmdb.
134
+ format_ (DatabaseFormat): A file format a database version is published in. Example: mmdb.
135
135
 
136
136
  Raises:
137
137
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -152,7 +152,7 @@ async def asyncio_detailed(
152
152
  *,
153
153
  client: AuthenticatedClient,
154
154
  id: str,
155
- format_: DatabaseChecksumV2Format,
155
+ format_: DatabaseFormat,
156
156
  ) -> Response[DatabaseChecksumV2Response200 | Error]:
157
157
  """Checksums
158
158
 
@@ -160,7 +160,7 @@ async def asyncio_detailed(
160
160
 
161
161
  Args:
162
162
  id (str): Example: vpn_ip_v1.
163
- format_ (DatabaseChecksumV2Format): Example: mmdb.
163
+ format_ (DatabaseFormat): A file format a database version is published in. Example: mmdb.
164
164
 
165
165
  Raises:
166
166
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -184,7 +184,7 @@ async def asyncio(
184
184
  *,
185
185
  client: AuthenticatedClient,
186
186
  id: str,
187
- format_: DatabaseChecksumV2Format,
187
+ format_: DatabaseFormat,
188
188
  ) -> DatabaseChecksumV2Response200 | Error | None:
189
189
  """Checksums
190
190
 
@@ -192,7 +192,7 @@ async def asyncio(
192
192
 
193
193
  Args:
194
194
  id (str): Example: vpn_ip_v1.
195
- format_ (DatabaseChecksumV2Format): Example: mmdb.
195
+ format_ (DatabaseFormat): A file format a database version is published in. Example: mmdb.
196
196
 
197
197
  Raises:
198
198
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -5,7 +5,7 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.download_database_v2_format import DownloadDatabaseV2Format
8
+ from ...models.database_format import DatabaseFormat
9
9
  from ...models.error import Error
10
10
  from ...types import UNSET, Response
11
11
 
@@ -13,7 +13,7 @@ from ...types import UNSET, Response
13
13
  def _get_kwargs(
14
14
  *,
15
15
  id: str,
16
- format_: DownloadDatabaseV2Format,
16
+ format_: DatabaseFormat,
17
17
  ) -> dict[str, Any]:
18
18
 
19
19
  params: dict[str, Any] = {}
@@ -87,7 +87,7 @@ def sync_detailed(
87
87
  *,
88
88
  client: AuthenticatedClient,
89
89
  id: str,
90
- format_: DownloadDatabaseV2Format,
90
+ format_: DatabaseFormat,
91
91
  ) -> Response[Any | Error]:
92
92
  """Download
93
93
 
@@ -96,7 +96,7 @@ def sync_detailed(
96
96
 
97
97
  Args:
98
98
  id (str): Example: vpn_ip_v1.
99
- format_ (DownloadDatabaseV2Format): Example: mmdb.
99
+ format_ (DatabaseFormat): A file format a database version is published in. Example: mmdb.
100
100
 
101
101
  Raises:
102
102
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -122,7 +122,7 @@ def sync(
122
122
  *,
123
123
  client: AuthenticatedClient,
124
124
  id: str,
125
- format_: DownloadDatabaseV2Format,
125
+ format_: DatabaseFormat,
126
126
  ) -> Any | Error | None:
127
127
  """Download
128
128
 
@@ -131,7 +131,7 @@ def sync(
131
131
 
132
132
  Args:
133
133
  id (str): Example: vpn_ip_v1.
134
- format_ (DownloadDatabaseV2Format): Example: mmdb.
134
+ format_ (DatabaseFormat): A file format a database version is published in. Example: mmdb.
135
135
 
136
136
  Raises:
137
137
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -152,7 +152,7 @@ async def asyncio_detailed(
152
152
  *,
153
153
  client: AuthenticatedClient,
154
154
  id: str,
155
- format_: DownloadDatabaseV2Format,
155
+ format_: DatabaseFormat,
156
156
  ) -> Response[Any | Error]:
157
157
  """Download
158
158
 
@@ -161,7 +161,7 @@ async def asyncio_detailed(
161
161
 
162
162
  Args:
163
163
  id (str): Example: vpn_ip_v1.
164
- format_ (DownloadDatabaseV2Format): Example: mmdb.
164
+ format_ (DatabaseFormat): A file format a database version is published in. Example: mmdb.
165
165
 
166
166
  Raises:
167
167
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -185,7 +185,7 @@ async def asyncio(
185
185
  *,
186
186
  client: AuthenticatedClient,
187
187
  id: str,
188
- format_: DownloadDatabaseV2Format,
188
+ format_: DatabaseFormat,
189
189
  ) -> Any | Error | None:
190
190
  """Download
191
191
 
@@ -194,7 +194,7 @@ async def asyncio(
194
194
 
195
195
  Args:
196
196
  id (str): Example: vpn_ip_v1.
197
- format_ (DownloadDatabaseV2Format): Example: mmdb.
197
+ format_ (DatabaseFormat): A file format a database version is published in. Example: mmdb.
198
198
 
199
199
  Raises:
200
200
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -1,9 +1,8 @@
1
1
  """Contains all the data models used in inputs/outputs"""
2
2
 
3
3
  from .database import Database
4
- from .database_checksum_v2_format import DatabaseChecksumV2Format
5
4
  from .database_checksum_v2_response_200 import DatabaseChecksumV2Response200
6
- from .database_checksum_v2_response_200_format import DatabaseChecksumV2Response200Format
5
+ from .database_format import DatabaseFormat
7
6
  from .database_license_type_type_1 import DatabaseLicenseTypeType1
8
7
  from .database_license_type_type_2_type_1 import DatabaseLicenseTypeType2Type1
9
8
  from .database_license_type_type_3_type_1 import DatabaseLicenseTypeType3Type1
@@ -15,22 +14,19 @@ from .database_metadata_sample_additional_property_item import (
15
14
  )
16
15
  from .database_metadata_schema import DatabaseMetadataSchema
17
16
  from .database_metadata_size import DatabaseMetadataSize
18
- from .database_standing import DatabaseStanding
19
17
  from .database_version import DatabaseVersion
20
- from .database_version_formats_item import DatabaseVersionFormatsItem
21
18
  from .db_checksums import DbChecksums
22
19
  from .download import Download
23
- from .download_database_v2_format import DownloadDatabaseV2Format
24
20
  from .download_outcome import DownloadOutcome
25
21
  from .error import Error
26
22
  from .list_databases_response_200 import ListDatabasesResponse200
27
23
  from .list_downloads_response_200 import ListDownloadsResponse200
24
+ from .standing import Standing
28
25
 
29
26
  __all__ = (
30
27
  "Database",
31
- "DatabaseChecksumV2Format",
32
28
  "DatabaseChecksumV2Response200",
33
- "DatabaseChecksumV2Response200Format",
29
+ "DatabaseFormat",
34
30
  "DatabaseLicenseTypeType1",
35
31
  "DatabaseLicenseTypeType2Type1",
36
32
  "DatabaseLicenseTypeType3Type1",
@@ -40,14 +36,12 @@ __all__ = (
40
36
  "DatabaseMetadataSampleAdditionalPropertyItem",
41
37
  "DatabaseMetadataSchema",
42
38
  "DatabaseMetadataSize",
43
- "DatabaseStanding",
44
39
  "DatabaseVersion",
45
- "DatabaseVersionFormatsItem",
46
40
  "DbChecksums",
47
41
  "Download",
48
- "DownloadDatabaseV2Format",
49
42
  "DownloadOutcome",
50
43
  "Error",
51
44
  "ListDatabasesResponse200",
52
45
  "ListDownloadsResponse200",
46
+ "Standing",
53
47
  )
@@ -10,8 +10,7 @@ from attrs import field as _attrs_field
10
10
  from ..models.database_license_type_type_1 import DatabaseLicenseTypeType1
11
11
  from ..models.database_license_type_type_2_type_1 import DatabaseLicenseTypeType2Type1
12
12
  from ..models.database_license_type_type_3_type_1 import DatabaseLicenseTypeType3Type1
13
- from ..models.database_standing import DatabaseStanding
14
- from ..types import UNSET, Unset
13
+ from ..models.standing import Standing
15
14
 
16
15
  if TYPE_CHECKING:
17
16
  from ..models.database_version import DatabaseVersion
@@ -30,27 +29,28 @@ class Database:
30
29
  base (str): The family, e.g. `vpn_ip`. What a licence is held against. Example: vpn_ip.
31
30
  name (str): Example: VPN IP.
32
31
  summary (str): One line on what the newest version contains.
33
- standing (DatabaseStanding): `licensed` is a live grant, `expired` one whose term has ended, and
34
- `unlicensed` a database published but never bought.
32
+ standing (Standing): Where your licence for a database family stands today. `licensed` is a
33
+ live grant, `expired` one whose term has ended, and `unlicensed` a
34
+ database published but never bought.
35
35
  license_type (DatabaseLicenseTypeType1 | DatabaseLicenseTypeType2Type1 | DatabaseLicenseTypeType3Type1 | None):
36
36
  What your licence permits you to do with the data. Null when there
37
- is no licence.
37
+ is no licence, which is every family with standing `unlicensed`.
38
38
  starts (datetime.datetime | None):
39
39
  expires (datetime.datetime | None): A hard stop. Null when the licence has no end date, which is the normal case
40
40
  for a rolling agreement, and when there is no licence. A rolling licence reports its turnover date in renews_at
41
41
  instead.
42
+ renews_at (datetime.datetime | None): When a rolling licence next renews. Null when the licence has no defined
43
+ term, when expires sets a hard stop instead, and when there is no licence.
44
+ notice_due_at (datetime.datetime | None): The last day notice of non-renewal can be given for the term ending at
45
+ renews_at. Null whenever renews_at is, and when the agreement records no notice period.
42
46
  versions (list[DatabaseVersion]): Every published version of this family, oldest first. Old versions
43
47
  are frozen rather than migrated, so both stay downloadable.
44
- renews_at (datetime.datetime | None | Unset): When a rolling licence next renews. Null when the licence has no
45
- defined term, when expires sets a hard stop instead, and when there is no licence.
46
- notice_due_at (datetime.datetime | None | Unset): The last day notice of non-renewal can be given for the term
47
- ending at renews_at. Null whenever renews_at is, and when the agreement records no notice period.
48
48
  """
49
49
 
50
50
  base: str
51
51
  name: str
52
52
  summary: str
53
- standing: DatabaseStanding
53
+ standing: Standing
54
54
  license_type: (
55
55
  DatabaseLicenseTypeType1
56
56
  | DatabaseLicenseTypeType2Type1
@@ -59,9 +59,9 @@ class Database:
59
59
  )
60
60
  starts: datetime.datetime | None
61
61
  expires: datetime.datetime | None
62
+ renews_at: datetime.datetime | None
63
+ notice_due_at: datetime.datetime | None
62
64
  versions: list[DatabaseVersion]
63
- renews_at: datetime.datetime | None | Unset = UNSET
64
- notice_due_at: datetime.datetime | None | Unset = UNSET
65
65
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
66
66
 
67
67
  def to_dict(self) -> dict[str, Any]:
@@ -95,27 +95,23 @@ class Database:
95
95
  else:
96
96
  expires = self.expires
97
97
 
98
- versions = []
99
- for versions_item_data in self.versions:
100
- versions_item = versions_item_data.to_dict()
101
- versions.append(versions_item)
102
-
103
- renews_at: None | str | Unset
104
- if isinstance(self.renews_at, Unset):
105
- renews_at = UNSET
106
- elif isinstance(self.renews_at, datetime.datetime):
98
+ renews_at: None | str
99
+ if isinstance(self.renews_at, datetime.datetime):
107
100
  renews_at = self.renews_at.isoformat()
108
101
  else:
109
102
  renews_at = self.renews_at
110
103
 
111
- notice_due_at: None | str | Unset
112
- if isinstance(self.notice_due_at, Unset):
113
- notice_due_at = UNSET
114
- elif isinstance(self.notice_due_at, datetime.datetime):
104
+ notice_due_at: None | str
105
+ if isinstance(self.notice_due_at, datetime.datetime):
115
106
  notice_due_at = self.notice_due_at.isoformat()
116
107
  else:
117
108
  notice_due_at = self.notice_due_at
118
109
 
110
+ versions = []
111
+ for versions_item_data in self.versions:
112
+ versions_item = versions_item_data.to_dict()
113
+ versions.append(versions_item)
114
+
119
115
  field_dict: dict[str, Any] = {}
120
116
  field_dict.update(self.additional_properties)
121
117
  field_dict.update(
@@ -127,13 +123,11 @@ class Database:
127
123
  "license_type": license_type,
128
124
  "starts": starts,
129
125
  "expires": expires,
126
+ "renews_at": renews_at,
127
+ "notice_due_at": notice_due_at,
130
128
  "versions": versions,
131
129
  }
132
130
  )
133
- if renews_at is not UNSET:
134
- field_dict["renews_at"] = renews_at
135
- if notice_due_at is not UNSET:
136
- field_dict["notice_due_at"] = notice_due_at
137
131
 
138
132
  return field_dict
139
133
 
@@ -148,7 +142,7 @@ class Database:
148
142
 
149
143
  summary = d.pop("summary")
150
144
 
151
- standing = DatabaseStanding(d.pop("standing"))
145
+ standing = Standing(d.pop("standing"))
152
146
 
153
147
  def _parse_license_type(
154
148
  data: object,
@@ -224,18 +218,9 @@ class Database:
224
218
 
225
219
  expires = _parse_expires(d.pop("expires"))
226
220
 
227
- versions = []
228
- _versions = d.pop("versions")
229
- for versions_item_data in _versions:
230
- versions_item = DatabaseVersion.from_dict(versions_item_data)
231
-
232
- versions.append(versions_item)
233
-
234
- def _parse_renews_at(data: object) -> datetime.datetime | None | Unset:
221
+ def _parse_renews_at(data: object) -> datetime.datetime | None:
235
222
  if data is None:
236
223
  return data
237
- if isinstance(data, Unset):
238
- return data
239
224
  try:
240
225
  if not isinstance(data, str):
241
226
  raise TypeError()
@@ -244,15 +229,13 @@ class Database:
244
229
  return renews_at_type_0
245
230
  except (TypeError, ValueError, AttributeError, KeyError):
246
231
  pass
247
- return cast(datetime.datetime | None | Unset, data)
232
+ return cast(datetime.datetime | None, data)
248
233
 
249
- renews_at = _parse_renews_at(d.pop("renews_at", UNSET))
234
+ renews_at = _parse_renews_at(d.pop("renews_at"))
250
235
 
251
- def _parse_notice_due_at(data: object) -> datetime.datetime | None | Unset:
236
+ def _parse_notice_due_at(data: object) -> datetime.datetime | None:
252
237
  if data is None:
253
238
  return data
254
- if isinstance(data, Unset):
255
- return data
256
239
  try:
257
240
  if not isinstance(data, str):
258
241
  raise TypeError()
@@ -261,9 +244,16 @@ class Database:
261
244
  return notice_due_at_type_0
262
245
  except (TypeError, ValueError, AttributeError, KeyError):
263
246
  pass
264
- return cast(datetime.datetime | None | Unset, data)
247
+ return cast(datetime.datetime | None, data)
265
248
 
266
- notice_due_at = _parse_notice_due_at(d.pop("notice_due_at", UNSET))
249
+ notice_due_at = _parse_notice_due_at(d.pop("notice_due_at"))
250
+
251
+ versions = []
252
+ _versions = d.pop("versions")
253
+ for versions_item_data in _versions:
254
+ versions_item = DatabaseVersion.from_dict(versions_item_data)
255
+
256
+ versions.append(versions_item)
267
257
 
268
258
  database = cls(
269
259
  base=base,
@@ -273,9 +263,9 @@ class Database:
273
263
  license_type=license_type,
274
264
  starts=starts,
275
265
  expires=expires,
276
- versions=versions,
277
266
  renews_at=renews_at,
278
267
  notice_due_at=notice_due_at,
268
+ versions=versions,
279
269
  )
280
270
 
281
271
  database.additional_properties = d
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Any, Self, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- from ..models.database_checksum_v2_response_200_format import DatabaseChecksumV2Response200Format
9
+ from ..models.database_format import DatabaseFormat
10
10
 
11
11
  if TYPE_CHECKING:
12
12
  from ..models.db_checksums import DbChecksums
@@ -20,12 +20,12 @@ class DatabaseChecksumV2Response200:
20
20
  """
21
21
  Attributes:
22
22
  id (str):
23
- format_ (DatabaseChecksumV2Response200Format):
23
+ format_ (DatabaseFormat): A file format a database version is published in. Example: mmdb.
24
24
  checksums (DbChecksums):
25
25
  """
26
26
 
27
27
  id: str
28
- format_: DatabaseChecksumV2Response200Format
28
+ format_: DatabaseFormat
29
29
  checksums: DbChecksums
30
30
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
31
 
@@ -55,7 +55,7 @@ class DatabaseChecksumV2Response200:
55
55
  d = dict(src_dict)
56
56
  id = d.pop("id")
57
57
 
58
- format_ = DatabaseChecksumV2Response200Format(d.pop("format"))
58
+ format_ = DatabaseFormat(d.pop("format"))
59
59
 
60
60
  checksums = DbChecksums.from_dict(d.pop("checksums"))
61
61
 
@@ -1,7 +1,7 @@
1
1
  from enum import StrEnum
2
2
 
3
3
 
4
- class DownloadDatabaseV2Format(StrEnum):
4
+ class DatabaseFormat(StrEnum):
5
5
  CSVGZ = "csvgz"
6
6
  MMDB = "mmdb"
7
7
 
@@ -6,7 +6,7 @@ from typing import Any, Self, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- from ..models.database_version_formats_item import DatabaseVersionFormatsItem
9
+ from ..models.database_format import DatabaseFormat
10
10
 
11
11
  T = TypeVar("T", bound="DatabaseVersion")
12
12
 
@@ -18,7 +18,7 @@ class DatabaseVersion:
18
18
  id (str): The versioned id. Pass this to `download`, `checksum` and `metadata`. Example: vpn_ip_v1.
19
19
  version (int): Example: 1.
20
20
  summary (str):
21
- formats (list[DatabaseVersionFormatsItem]): The formats this version is BUILT in. Asking for another is a 400,
21
+ formats (list[DatabaseFormat]): The formats this version is BUILT in. Asking for another is a 400,
22
22
  not a gap - the `_provider` catalogs are keyed by provider id, so no
23
23
  MMDB exists for them.
24
24
  """
@@ -26,7 +26,7 @@ class DatabaseVersion:
26
26
  id: str
27
27
  version: int
28
28
  summary: str
29
- formats: list[DatabaseVersionFormatsItem]
29
+ formats: list[DatabaseFormat]
30
30
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
31
 
32
32
  def to_dict(self) -> dict[str, Any]:
@@ -66,7 +66,7 @@ class DatabaseVersion:
66
66
  formats = []
67
67
  _formats = d.pop("formats")
68
68
  for formats_item_data in _formats:
69
- formats_item = DatabaseVersionFormatsItem(formats_item_data)
69
+ formats_item = DatabaseFormat(formats_item_data)
70
70
 
71
71
  formats.append(formats_item)
72
72
 
@@ -1,7 +1,7 @@
1
1
  from enum import StrEnum
2
2
 
3
3
 
4
- class DatabaseStanding(StrEnum):
4
+ class Standing(StrEnum):
5
5
  EXPIRED = "expired"
6
6
  LICENSED = "licensed"
7
7
  UNLICENSED = "unlicensed"
@@ -45,8 +45,7 @@ from ._generated.api.database_v_2 import (
45
45
  list_downloads,
46
46
  )
47
47
  from ._generated.client import AuthenticatedClient
48
- from ._generated.models.database_checksum_v2_format import DatabaseChecksumV2Format
49
- from ._generated.models.download_database_v2_format import DownloadDatabaseV2Format
48
+ from ._generated.models.database_format import DatabaseFormat
50
49
  from .errors import InternetDataError
51
50
  from .models import Database, DatabaseMetadata, Download, Format, to_metadata
52
51
 
@@ -153,7 +152,7 @@ class AsyncDatabaseApi:
153
152
  lambda: database_checksum_v2.asyncio_detailed(
154
153
  client=self._client,
155
154
  id=database_id,
156
- format_=DatabaseChecksumV2Format(format),
155
+ format_=DatabaseFormat(format),
157
156
  )
158
157
  )
159
158
  return parse_body(unwrap(res), checksums_of)
@@ -186,7 +185,7 @@ class AsyncDatabaseApi:
186
185
  lambda: download_database_v2.asyncio_detailed(
187
186
  client=self._client,
188
187
  id=database_id,
189
- format_=DownloadDatabaseV2Format(format),
188
+ format_=DatabaseFormat(format),
190
189
  )
191
190
  )
192
191
  return redirect_location(res)
@@ -40,8 +40,7 @@ from ._generated.api.database_v_2 import (
40
40
  list_downloads,
41
41
  )
42
42
  from ._generated.client import AuthenticatedClient
43
- from ._generated.models.database_checksum_v2_format import DatabaseChecksumV2Format
44
- from ._generated.models.download_database_v2_format import DownloadDatabaseV2Format
43
+ from ._generated.models.database_format import DatabaseFormat
45
44
  from .errors import InternetDataError
46
45
  from .models import Database, DatabaseMetadata, Download, Format, to_metadata
47
46
 
@@ -166,7 +165,7 @@ class DatabaseApi:
166
165
  lambda: database_checksum_v2.sync_detailed(
167
166
  client=self._client,
168
167
  id=database_id,
169
- format_=DatabaseChecksumV2Format(format),
168
+ format_=DatabaseFormat(format),
170
169
  )
171
170
  )
172
171
  return parse_body(unwrap(res), checksums_of)
@@ -201,7 +200,7 @@ class DatabaseApi:
201
200
  lambda: download_database_v2.sync_detailed(
202
201
  client=self._client,
203
202
  id=database_id,
204
- format_=DownloadDatabaseV2Format(format),
203
+ format_=DatabaseFormat(format),
205
204
  )
206
205
  )
207
206
  return redirect_location(res)
@@ -162,6 +162,8 @@ def database(base: str, **overrides: Any) -> dict[str, Any]:
162
162
  "license_type": "standard",
163
163
  "starts": "2026-01-01T00:00:00.000Z",
164
164
  "expires": None,
165
+ "renews_at": None,
166
+ "notice_due_at": None,
165
167
  "versions": [
166
168
  {
167
169
  "id": f"{base}_v1",
@@ -1,9 +0,0 @@
1
- from enum import StrEnum
2
-
3
-
4
- class DatabaseChecksumV2Format(StrEnum):
5
- CSVGZ = "csvgz"
6
- MMDB = "mmdb"
7
-
8
- def __str__(self) -> str:
9
- return str(self.value)
@@ -1,9 +0,0 @@
1
- from enum import StrEnum
2
-
3
-
4
- class DatabaseChecksumV2Response200Format(StrEnum):
5
- CSVGZ = "csvgz"
6
- MMDB = "mmdb"
7
-
8
- def __str__(self) -> str:
9
- return str(self.value)
@@ -1,9 +0,0 @@
1
- from enum import StrEnum
2
-
3
-
4
- class DatabaseVersionFormatsItem(StrEnum):
5
- CSVGZ = "csvgz"
6
- MMDB = "mmdb"
7
-
8
- def __str__(self) -> str:
9
- return str(self.value)
File without changes
File without changes
File without changes