rtbnext 1.0.0__tar.gz → 1.0.2__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 (39) hide show
  1. {rtbnext-1.0.0 → rtbnext-1.0.2}/.gitignore +4 -3
  2. {rtbnext-1.0.0 → rtbnext-1.0.2}/LICENSE +21 -21
  3. {rtbnext-1.0.0 → rtbnext-1.0.2}/PKG-INFO +6 -2
  4. {rtbnext-1.0.0 → rtbnext-1.0.2}/README.md +132 -128
  5. {rtbnext-1.0.0 → rtbnext-1.0.2}/pyproject.toml +103 -103
  6. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/__init__.py +34 -26
  7. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/_version.py +7 -7
  8. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/core/cache.py +102 -102
  9. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/core/http_client.py +154 -153
  10. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/core/loader.py +174 -173
  11. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/core/parser.py +85 -84
  12. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/core/rate_limiter.py +86 -86
  13. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/defaults.py +27 -26
  14. rtbnext-1.0.2/src/rtbnext/endpoint/__init__.py +19 -0
  15. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/endpoint/base.py +80 -80
  16. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/endpoint/filter.py +113 -112
  17. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/endpoint/list.py +86 -85
  18. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/endpoint/mover.py +36 -33
  19. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/endpoint/profile.py +166 -158
  20. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/endpoint/stats.py +162 -156
  21. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/endpoint/system.py +27 -25
  22. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/resource/base.py +207 -206
  23. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/resource/collectable.py +196 -201
  24. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/resource/collection.py +313 -313
  25. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/resource/dateable.py +59 -59
  26. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/resource/indexable.py +91 -91
  27. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/resource/series.py +266 -266
  28. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/rtbnext.py +107 -107
  29. rtbnext-1.0.2/src/rtbnext/schema/__init__.py +21 -0
  30. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/schema/assets.py +101 -101
  31. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/schema/filter.py +35 -35
  32. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/schema/generic.py +105 -105
  33. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/schema/list.py +74 -64
  34. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/schema/mover.py +40 -40
  35. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/schema/profile.py +137 -137
  36. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/schema/stats.py +133 -133
  37. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/schema/system.py +15 -15
  38. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/utils.py +36 -36
  39. {rtbnext-1.0.0 → rtbnext-1.0.2}/src/rtbnext/py.typed +0 -0
@@ -1,3 +1,4 @@
1
- .venv/
2
- __pycache__/
3
- dist/
1
+ .venv/
2
+ __pycache__/
3
+ dist/
4
+ .pypirc
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 RTBNext by Paul Köhler (komed3)
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 RTBNext by Paul Köhler (komed3)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: rtbnext
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: Official Python SDK for the RTBNext API.
5
5
  Project-URL: Homepage, https://rtbnext.de
6
6
  Project-URL: Documentation, https://sdk.rtbnext.de
@@ -33,6 +33,10 @@ Description-Content-Type: text/markdown
33
33
 
34
34
  # rtbnext
35
35
 
36
+ [![Static Badge](https://img.shields.io/badge/sdk-rtbnext?style=for-the-badge&label=rtbnext&color=%23d3ff1a)](https://rtbnext.de)
37
+ [![PyPI License](https://img.shields.io/pypi/l/rtbnext?style=for-the-badge)](https://github.com/rtbnext/sdk-python/blob/master/LICENSE)
38
+ [![PyPI Version](https://img.shields.io/pypi/v/rtbnext?style=for-the-badge)](https://pypi.org/project/rtbnext)
39
+
36
40
  **Official Python SDK for the RTBNext API.**
37
41
 
38
42
  The RTBNext SDK provides a typed, asynchronous interface for accessing billionaire profiles, lists, filters, statistics, historical data and system information from the [RTBNext API](https://api.rtbnext.de).
@@ -1,128 +1,132 @@
1
- # rtbnext
2
-
3
- **Official Python SDK for the RTBNext API.**
4
-
5
- The RTBNext SDK provides a typed, asynchronous interface for accessing billionaire profiles, lists, filters, statistics, historical data and system information from the [RTBNext API](https://api.rtbnext.de).
6
-
7
- The SDK follows a consistent resource-oriented design: resources are loaded lazily, cached according to the configured cache mode, and expose typed helper methods for collections, time series and indexed data.
8
-
9
- The package includes Python type information and is compatible with static type checkers such as Pyright, Pylance and mypy.
10
-
11
- To find a list of all available API endpoints, please refer to the [API Documentation](https://docs.rtbnext.de). Also visit the [API endpoint](https://api.rtbnext.de) or review the [SDK Documentation](https://sdk.rtbnext.de) for additional details. For updates on current issues or maintenance, please refer to the [System Status](https://status.rtbnext.de).
12
-
13
- ## Installation
14
-
15
- Install the package using pip:
16
-
17
- ```bash
18
- pip install rtbnext
19
- ```
20
-
21
- ## First usage
22
-
23
- Every client application **must identify** itself when creating an SDK instance. This information is sent with API requests and helps to provide transparency about API consumers.
24
-
25
- ```py
26
- import asyncio
27
-
28
- from rtbnext import ClientIdentity, rtbnext
29
-
30
-
31
- async def main() -> None:
32
- async with rtbnext(
33
- client= ClientIdentity(
34
- name= "my-application",
35
- version= "1.0.0",
36
- contact= "https://example.com/contact"
37
- )
38
- ) as client:
39
-
40
- stats = await client.stats.global_.data()
41
- print( stats["count"] )
42
-
43
-
44
- asyncio.run( main() )
45
- ```
46
-
47
- The client identity consists of:
48
-
49
- - `name` — application or project name
50
- - `version` — application version
51
- - `contact` — optional contact URL
52
- - `email` — optional contact email address
53
-
54
- ## Core concepts
55
-
56
- ### Lazy resources
57
-
58
- Resources are not downloaded when they are created. Data is loaded only when it is requested.
59
-
60
- ```py
61
- profile = client.profile.get( "bill-gates" )
62
-
63
- # No request has been made yet.
64
-
65
- data = await profile.meta.data()
66
- ```
67
-
68
- ### Collections
69
-
70
- Collection resources provide filtering, searching, sorting and paging helpers.
71
-
72
- ```py
73
- profiles = await client.profile.index.collection()
74
-
75
- for profile in profiles.search( "bill" ).order_by( "networth", descending= True ).take( 5 ):
76
- print( item.raw["name"], item.raw["uri"] )
77
- ```
78
-
79
- ### Time series
80
-
81
- Historical data can be accessed through typed time-series resources.
82
-
83
- ```py
84
- history = await client.profile.get( "bill-gates" ).history.series()
85
- print( history.latest )
86
- ```
87
-
88
- Time series collections support date-based navigation and cursor operations:
89
-
90
- ```py
91
- history.seek( "2026-01-01" )
92
-
93
- while ( point := history.next ) is not None:
94
- print( point["date"], point["networth"] )
95
- ```
96
-
97
- ## Cache behavior
98
-
99
- The SDK includes a configurable resource cache layer that follows HTTP cache semantics. Resources are cached according to the selected cache mode and server-provided cache headers.
100
-
101
- Supported cache modes:
102
-
103
- - `ttl` — uses the server-defined cache lifetime (`Cache-Control`)
104
- - `revalidate` — performs conditional requests using validators such as `ETag` and `Last-Modified`
105
- - `session` — keeps resources during the lifetime of the SDK instance
106
-
107
- The SDK does not bypass HTTP cache validation. Expired resources are refreshed according to the configured mode to prevent serving outdated data indefinitely.
108
-
109
- A custom cache implementation can be provided by implementing the `Cache` protocol. This allows applications to integrate their own storage solutions, such as databases, filesystem caches or distributed cache systems.
110
-
111
- The cache interface requires the following operations:
112
-
113
- - retrieve a cached resource state
114
- - store a resource state
115
- - delete a resource
116
- - clear the cache
117
- - report the current cache size
118
-
119
- ## Requirements
120
-
121
- - Python 3.12+
122
- - httpx 0.28+
123
-
124
- ## License
125
-
126
- **Copyright © 2026 RTBNext**
127
- Created and maintained by [Paul Köhler](https://komed3.de) (komed3).
128
- Licensed under the [MIT License](./LICENSE).
1
+ # rtbnext
2
+
3
+ [![Static Badge](https://img.shields.io/badge/sdk-rtbnext?style=for-the-badge&label=rtbnext&color=%23d3ff1a)](https://rtbnext.de)
4
+ [![PyPI License](https://img.shields.io/pypi/l/rtbnext?style=for-the-badge)](https://github.com/rtbnext/sdk-python/blob/master/LICENSE)
5
+ [![PyPI Version](https://img.shields.io/pypi/v/rtbnext?style=for-the-badge)](https://pypi.org/project/rtbnext)
6
+
7
+ **Official Python SDK for the RTBNext API.**
8
+
9
+ The RTBNext SDK provides a typed, asynchronous interface for accessing billionaire profiles, lists, filters, statistics, historical data and system information from the [RTBNext API](https://api.rtbnext.de).
10
+
11
+ The SDK follows a consistent resource-oriented design: resources are loaded lazily, cached according to the configured cache mode, and expose typed helper methods for collections, time series and indexed data.
12
+
13
+ The package includes Python type information and is compatible with static type checkers such as Pyright, Pylance and mypy.
14
+
15
+ To find a list of all available API endpoints, please refer to the [API Documentation](https://docs.rtbnext.de). Also visit the [API endpoint](https://api.rtbnext.de) or review the [SDK Documentation](https://sdk.rtbnext.de) for additional details. For updates on current issues or maintenance, please refer to the [System Status](https://status.rtbnext.de).
16
+
17
+ ## Installation
18
+
19
+ Install the package using pip:
20
+
21
+ ```bash
22
+ pip install rtbnext
23
+ ```
24
+
25
+ ## First usage
26
+
27
+ Every client application **must identify** itself when creating an SDK instance. This information is sent with API requests and helps to provide transparency about API consumers.
28
+
29
+ ```py
30
+ import asyncio
31
+
32
+ from rtbnext import ClientIdentity, rtbnext
33
+
34
+
35
+ async def main() -> None:
36
+ async with rtbnext(
37
+ client= ClientIdentity(
38
+ name= "my-application",
39
+ version= "1.0.0",
40
+ contact= "https://example.com/contact"
41
+ )
42
+ ) as client:
43
+
44
+ stats = await client.stats.global_.data()
45
+ print( stats["count"] )
46
+
47
+
48
+ asyncio.run( main() )
49
+ ```
50
+
51
+ The client identity consists of:
52
+
53
+ - `name` — application or project name
54
+ - `version` — application version
55
+ - `contact` — optional contact URL
56
+ - `email` — optional contact email address
57
+
58
+ ## Core concepts
59
+
60
+ ### Lazy resources
61
+
62
+ Resources are not downloaded when they are created. Data is loaded only when it is requested.
63
+
64
+ ```py
65
+ profile = client.profile.get( "bill-gates" )
66
+
67
+ # No request has been made yet.
68
+
69
+ data = await profile.meta.data()
70
+ ```
71
+
72
+ ### Collections
73
+
74
+ Collection resources provide filtering, searching, sorting and paging helpers.
75
+
76
+ ```py
77
+ profiles = await client.profile.index.collection()
78
+
79
+ for profile in profiles.search( "bill" ).order_by( "networth", descending= True ).take( 5 ):
80
+ print( item.raw["name"], item.raw["uri"] )
81
+ ```
82
+
83
+ ### Time series
84
+
85
+ Historical data can be accessed through typed time-series resources.
86
+
87
+ ```py
88
+ history = await client.profile.get( "bill-gates" ).history.series()
89
+ print( history.latest )
90
+ ```
91
+
92
+ Time series collections support date-based navigation and cursor operations:
93
+
94
+ ```py
95
+ history.seek( "2026-01-01" )
96
+
97
+ while ( point := history.next ) is not None:
98
+ print( point["date"], point["networth"] )
99
+ ```
100
+
101
+ ## Cache behavior
102
+
103
+ The SDK includes a configurable resource cache layer that follows HTTP cache semantics. Resources are cached according to the selected cache mode and server-provided cache headers.
104
+
105
+ Supported cache modes:
106
+
107
+ - `ttl` — uses the server-defined cache lifetime (`Cache-Control`)
108
+ - `revalidate` — performs conditional requests using validators such as `ETag` and `Last-Modified`
109
+ - `session` — keeps resources during the lifetime of the SDK instance
110
+
111
+ The SDK does not bypass HTTP cache validation. Expired resources are refreshed according to the configured mode to prevent serving outdated data indefinitely.
112
+
113
+ A custom cache implementation can be provided by implementing the `Cache` protocol. This allows applications to integrate their own storage solutions, such as databases, filesystem caches or distributed cache systems.
114
+
115
+ The cache interface requires the following operations:
116
+
117
+ - retrieve a cached resource state
118
+ - store a resource state
119
+ - delete a resource
120
+ - clear the cache
121
+ - report the current cache size
122
+
123
+ ## Requirements
124
+
125
+ - Python 3.12+
126
+ - httpx 0.28+
127
+
128
+ ## License
129
+
130
+ **Copyright © 2026 RTBNext**
131
+ Created and maintained by [Paul Köhler](https://komed3.de) (komed3).
132
+ Licensed under the [MIT License](./LICENSE).
@@ -1,103 +1,103 @@
1
- [build-system]
2
- build-backend = "hatchling.build"
3
- requires = [
4
- "hatchling >= 1.27"
5
- ]
6
-
7
- [project]
8
- name = "rtbnext"
9
- version = "1.0.0"
10
- description = "Official Python SDK for the RTBNext API."
11
- readme = "README.md"
12
- license = "MIT"
13
- requires-python = ">= 3.12"
14
-
15
- authors = [
16
- { name = "Paul Köhler (komed3)", email = "webmaster@komed3.de" }
17
- ]
18
-
19
- keywords = [
20
- "rtbnext",
21
- "billionaires",
22
- "api",
23
- "sdk"
24
- ]
25
-
26
- classifiers = [
27
- "Development Status :: 5 - Production/Stable",
28
- "Intended Audience :: Developers",
29
- "License :: OSI Approved :: MIT License",
30
- "Programming Language :: Python :: 3 :: Only",
31
- "Programming Language :: Python :: 3",
32
- "Programming Language :: Python :: 3.12",
33
- "Programming Language :: Python :: 3.13",
34
- "Programming Language :: Python :: 3.14",
35
- "Operating System :: OS Independent",
36
- "Typing :: Typed"
37
- ]
38
-
39
- dependencies = [
40
- "httpx >= 0.28"
41
- ]
42
-
43
- [project.urls]
44
- Homepage = "https://rtbnext.de"
45
- Documentation = "https://sdk.rtbnext.de"
46
- Repository = "https://github.com/rtbnext/sdk-python"
47
- "Bug Tracker" = "https://github.com/rtbnext/sdk-python/issues"
48
-
49
- [project.optional-dependencies]
50
- dev = [
51
- "build >= 1.5",
52
- "hatchling >= 1.27",
53
- "twine >= 7.0",
54
- "pylint >= 4.0",
55
- "isort >= 8.0",
56
- "pre-commit >= 4.6"
57
- ]
58
-
59
- [tool.hatch.build.targets.wheel]
60
- packages = [
61
- "src/rtbnext"
62
- ]
63
-
64
- [tool.hatch.build.targets.sdist]
65
- include = [
66
- "src/rtbnext",
67
- "LICENSE",
68
- "README.md"
69
- ]
70
-
71
- [tool.hatch.build.targets.wheel.force-include]
72
- "src/rtbnext/py.typed" = "rtbnext/py.typed"
73
-
74
- [tool.pylint]
75
- ignore = [
76
- "examples",
77
- ".venv",
78
- "node_modules",
79
- "__pycache__"
80
- ]
81
-
82
- [tool.pylint.design]
83
- min-public-methods = 0
84
- max-attributes = 12
85
- max-args = 12
86
-
87
- [tool.pylint.messages_control]
88
- disable = [
89
- "duplicate-code",
90
- "unnecessary-ellipsis"
91
- ]
92
-
93
- [tool.isort]
94
- profile = "black"
95
- multi_line_output = 5
96
- include_trailing_comma = false
97
- line_length = 100
98
- skip = [
99
- "examples",
100
- ".venv",
101
- "node_modules",
102
- "__pycache__"
103
- ]
1
+ [build-system]
2
+ build-backend = "hatchling.build"
3
+ requires = [
4
+ "hatchling >= 1.27"
5
+ ]
6
+
7
+ [project]
8
+ name = "rtbnext"
9
+ version = "1.0.2"
10
+ description = "Official Python SDK for the RTBNext API."
11
+ readme = "README.md"
12
+ license = "MIT"
13
+ requires-python = ">= 3.12"
14
+
15
+ authors = [
16
+ { name = "Paul Köhler (komed3)", email = "webmaster@komed3.de" }
17
+ ]
18
+
19
+ keywords = [
20
+ "rtbnext",
21
+ "billionaires",
22
+ "api",
23
+ "sdk"
24
+ ]
25
+
26
+ classifiers = [
27
+ "Development Status :: 5 - Production/Stable",
28
+ "Intended Audience :: Developers",
29
+ "License :: OSI Approved :: MIT License",
30
+ "Programming Language :: Python :: 3 :: Only",
31
+ "Programming Language :: Python :: 3",
32
+ "Programming Language :: Python :: 3.12",
33
+ "Programming Language :: Python :: 3.13",
34
+ "Programming Language :: Python :: 3.14",
35
+ "Operating System :: OS Independent",
36
+ "Typing :: Typed"
37
+ ]
38
+
39
+ dependencies = [
40
+ "httpx >= 0.28"
41
+ ]
42
+
43
+ [project.urls]
44
+ Homepage = "https://rtbnext.de"
45
+ Documentation = "https://sdk.rtbnext.de"
46
+ Repository = "https://github.com/rtbnext/sdk-python"
47
+ "Bug Tracker" = "https://github.com/rtbnext/sdk-python/issues"
48
+
49
+ [project.optional-dependencies]
50
+ dev = [
51
+ "build >= 1.5",
52
+ "hatchling >= 1.27",
53
+ "twine >= 7.0",
54
+ "pylint >= 4.0",
55
+ "isort >= 8.0",
56
+ "pre-commit >= 4.6"
57
+ ]
58
+
59
+ [tool.hatch.build.targets.wheel]
60
+ packages = [
61
+ "src/rtbnext"
62
+ ]
63
+
64
+ [tool.hatch.build.targets.sdist]
65
+ include = [
66
+ "src/rtbnext",
67
+ "LICENSE",
68
+ "README.md"
69
+ ]
70
+
71
+ [tool.hatch.build.targets.wheel.force-include]
72
+ "src/rtbnext/py.typed" = "rtbnext/py.typed"
73
+
74
+ [tool.pylint]
75
+ ignore = [
76
+ "examples",
77
+ ".venv",
78
+ "node_modules",
79
+ "__pycache__"
80
+ ]
81
+
82
+ [tool.pylint.design]
83
+ min-public-methods = 0
84
+ max-attributes = 12
85
+ max-args = 12
86
+
87
+ [tool.pylint.messages_control]
88
+ disable = [
89
+ "duplicate-code",
90
+ "unnecessary-ellipsis"
91
+ ]
92
+
93
+ [tool.isort]
94
+ profile = "black"
95
+ multi_line_output = 5
96
+ include_trailing_comma = false
97
+ line_length = 100
98
+ skip = [
99
+ "examples",
100
+ ".venv",
101
+ "node_modules",
102
+ "__pycache__"
103
+ ]
@@ -1,26 +1,34 @@
1
- """
2
- RTBNext Python SDK
3
-
4
- Official Python SDK for the RTBNext API.
5
-
6
- Provides access to all RTBNext API endpoints, resources, and data models.
7
- The SDK offers lazy loading, transparent caching, automatic revalidation,
8
- and a resource-oriented API for working with lists, profiles, filters,
9
- statistics, and time series data.
10
-
11
- Author: Paul Köhler (komed3)
12
- License: MIT
13
- """
14
-
15
- from rtbnext._version import __version__
16
- from rtbnext.core.http_client import ClientIdentity
17
- from rtbnext.core.loader import CacheMode, CacheType
18
- from rtbnext.rtbnext import RTBNext, rtbnext
19
-
20
- __all__ = [
21
- "RTBNext",
22
- "rtbnext",
23
- "ClientIdentity",
24
- "CacheType",
25
- "CacheMode"
26
- ]
1
+ """
2
+ RTBNext Python SDK
3
+
4
+ Official Python SDK for the RTBNext API.
5
+
6
+ Provides access to all RTBNext API endpoints, resources, and data models.
7
+ The SDK offers lazy loading, transparent caching, automatic revalidation,
8
+ and a resource-oriented API for working with lists, profiles, filters,
9
+ statistics, and time series data.
10
+
11
+ Author: Paul Köhler (komed3)
12
+ License: MIT
13
+ """
14
+
15
+ from rtbnext._version import __version__
16
+ from rtbnext.core.cache import Cache
17
+ from rtbnext.core.http_client import ClientIdentity
18
+ from rtbnext.core.loader import CacheMode, CacheType
19
+ from rtbnext.core.rate_limiter import RateLimitMode
20
+ from rtbnext.resource.base import ResourceEvent
21
+ from rtbnext.resource.series import AggregatePeriod
22
+ from rtbnext.rtbnext import RTBNext, rtbnext
23
+
24
+ __all__ = [
25
+ "RTBNext",
26
+ "rtbnext",
27
+ "ClientIdentity",
28
+ "RateLimitMode",
29
+ "CacheType",
30
+ "CacheMode",
31
+ "ResourceEvent",
32
+ "AggregatePeriod",
33
+ "Cache"
34
+ ]
@@ -1,7 +1,7 @@
1
- """
2
- Version
3
-
4
- Declares the RTBNext Python SDK version.
5
- """
6
-
7
- __version__ = "1.0.0"
1
+ """
2
+ Version
3
+
4
+ Declares the RTBNext Python SDK version.
5
+ """
6
+
7
+ __version__ = "1.0.2"