apitally 0.9.0__py3-none-any.whl → 0.10.0__py3-none-any.whl

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.
apitally/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.9.0"
1
+ __version__ = "0.10.0"
apitally/django.py CHANGED
@@ -164,12 +164,14 @@ class ApitallyMiddleware:
164
164
 
165
165
  def get_consumer(self, request: HttpRequest) -> Optional[str]:
166
166
  try:
167
- if hasattr(request, "consumer_identifier"):
167
+ if hasattr(request, "apitally_consumer"):
168
+ return str(request.apitally_consumer)
169
+ if hasattr(request, "consumer_identifier"): # Keeping this for legacy support
168
170
  return str(request.consumer_identifier)
169
171
  if self.config is not None and self.config.identify_consumer_callback is not None:
170
- consumer_identifier = self.config.identify_consumer_callback(request)
171
- if consumer_identifier is not None:
172
- return str(consumer_identifier)
172
+ consumer = self.config.identify_consumer_callback(request)
173
+ if consumer is not None:
174
+ return str(consumer)
173
175
  except Exception: # pragma: no cover
174
176
  logger.exception("Failed to get consumer identifier for request")
175
177
  return None
apitally/flask.py CHANGED
@@ -115,7 +115,11 @@ class ApitallyMiddleware:
115
115
  return environ["PATH_INFO"], False
116
116
 
117
117
  def get_consumer(self) -> Optional[str]:
118
- return str(g.consumer_identifier) if "consumer_identifier" in g else None
118
+ if "apitally_consumer" in g:
119
+ return str(g.apitally_consumer)
120
+ if "consumer_identifier" in g: # Keeping this for legacy support
121
+ return str(g.consumer_identifier)
122
+ return None
119
123
 
120
124
 
121
125
  def _get_app_info(app: Flask, app_version: Optional[str] = None, openapi_url: Optional[str] = None) -> Dict[str, Any]:
apitally/litestar.py CHANGED
@@ -168,12 +168,14 @@ class ApitallyPlugin(InitPluginProtocol):
168
168
  return False # pragma: no cover
169
169
 
170
170
  def get_consumer(self, request: Request) -> Optional[str]:
171
- if hasattr(request.state, "consumer_identifier"):
171
+ if hasattr(request.state, "apitally_consumer"):
172
+ return str(request.state.apitally_consumer)
173
+ if hasattr(request.state, "consumer_identifier"): # Keeping this for legacy support
172
174
  return str(request.state.consumer_identifier)
173
175
  if self.identify_consumer_callback is not None:
174
- consumer_identifier = self.identify_consumer_callback(request)
175
- if consumer_identifier is not None:
176
- return str(consumer_identifier)
176
+ consumer = self.identify_consumer_callback(request)
177
+ if consumer is not None:
178
+ return str(consumer)
177
179
  return None
178
180
 
179
181
 
apitally/starlette.py CHANGED
@@ -142,12 +142,14 @@ class ApitallyMiddleware(BaseHTTPMiddleware):
142
142
  return request.url.path, False
143
143
 
144
144
  def get_consumer(self, request: Request) -> Optional[str]:
145
- if hasattr(request.state, "consumer_identifier"):
145
+ if hasattr(request.state, "apitally_consumer"):
146
+ return str(request.state.apitally_consumer)
147
+ if hasattr(request.state, "consumer_identifier"): # Keeping this for legacy support
146
148
  return str(request.state.consumer_identifier)
147
149
  if self.identify_consumer_callback is not None:
148
- consumer_identifier = self.identify_consumer_callback(request)
149
- if consumer_identifier is not None:
150
- return str(consumer_identifier)
150
+ consumer = self.identify_consumer_callback(request)
151
+ if consumer is not None:
152
+ return str(consumer)
151
153
  return None
152
154
 
153
155
 
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apitally
3
- Version: 0.9.0
4
- Summary: API monitoring for REST APIs built with FastAPI, Flask, Django, Starlette and Litestar.
3
+ Version: 0.10.0
4
+ Summary: Simple API monitoring & analytics for REST APIs built with FastAPI, Flask, Django, Starlette and Litestar.
5
5
  Home-page: https://apitally.io
6
6
  License: MIT
7
7
  Author: Apitally
@@ -42,20 +42,20 @@ Requires-Dist: sentry-sdk (>=2.2.0) ; extra == "sentry"
42
42
  Requires-Dist: starlette (>=0.21.0,<1.0.0) ; extra == "fastapi" or extra == "starlette"
43
43
  Requires-Dist: uritemplate (>=3.0.0) ; extra == "django-rest-framework"
44
44
  Project-URL: Documentation, https://docs.apitally.io
45
- Project-URL: Repository, https://github.com/apitally/python-client
45
+ Project-URL: Repository, https://github.com/apitally/apitally-py
46
46
  Description-Content-Type: text/markdown
47
47
 
48
48
  <p align="center">
49
49
  <picture>
50
50
  <source media="(prefers-color-scheme: dark)" srcset="https://assets.apitally.io/logos/logo-vertical-dark.png">
51
51
  <source media="(prefers-color-scheme: light)" srcset="https://assets.apitally.io/logos/logo-vertical-light.png">
52
- <img alt="Apitally logo" src="https://assets.apitally.io/logos/logo-vertical-light.png">
52
+ <img alt="Apitally logo" src="https://assets.apitally.io/logos/logo-vertical-light.png" width="150">
53
53
  </picture>
54
54
  </p>
55
55
 
56
56
  <p align="center"><b>API monitoring made easy.</b></p>
57
57
 
58
- <p align="center"><i>Apitally is a simple and affordable API monitoring tool with a focus on data privacy.<br>It is super easy to use for API projects in Python or Node.js and never collects sensitive data.</i></p>
58
+ <p align="center"><i>Apitally is a simple API monitoring & analytics tool with a focus on data privacy.<br>It is super easy to use for API projects in Python or Node.js and never collects sensitive data.</i></p>
59
59
 
60
60
  <p align="center">🔗 <b><a href="https://apitally.io" target="_blank">apitally.io</a></b></p>
61
61
 
@@ -65,8 +65,8 @@ Description-Content-Type: text/markdown
65
65
 
66
66
  # Apitally client library for Python
67
67
 
68
- [![Tests](https://github.com/apitally/python-client/actions/workflows/tests.yaml/badge.svg?event=push)](https://github.com/apitally/python-client/actions)
69
- [![Codecov](https://codecov.io/gh/apitally/python-client/graph/badge.svg?token=UNLYBY4Y3V)](https://codecov.io/gh/apitally/python-client)
68
+ [![Tests](https://github.com/apitally/apitally-py/actions/workflows/tests.yaml/badge.svg?event=push)](https://github.com/apitally/apitally-py/actions)
69
+ [![Codecov](https://codecov.io/gh/apitally/apitally-py/graph/badge.svg?token=UNLYBY4Y3V)](https://codecov.io/gh/apitally/apitally-py)
70
70
  [![PyPI](https://img.shields.io/pypi/v/apitally?logo=pypi&logoColor=white&color=%23006dad)](https://pypi.org/project/apitally/)
71
71
 
72
72
  This client library for Apitally currently supports the following Python web
@@ -1,19 +1,19 @@
1
- apitally/__init__.py,sha256=H9NWRZb7NbeRRPLP_V1fARmLNXranorVM-OOY-8_2ug,22
1
+ apitally/__init__.py,sha256=v4zmKjsKOPZbp6BrWoz7iK4ST0sdZdUh9bQSJmluZ5o,23
2
2
  apitally/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  apitally/client/asyncio.py,sha256=uR5JlH37G6gZvAJ7A1gYOGkjn3zjC-4I6avA1fncXHs,4433
4
4
  apitally/client/base.py,sha256=VWtHTkA6UT5aV37i_CXUvcfmYrabjHGBhzbDU6EeH1A,12785
5
5
  apitally/client/logging.py,sha256=QMsKIIAFo92PNBUleeTgsrsQa7SEal-oJa1oOHUr1wI,507
6
6
  apitally/client/threading.py,sha256=ihQzUStrSQFynpqXgFpseAXrHuc5Et1QvG-YHlzqDr8,4831
7
7
  apitally/common.py,sha256=GbVmnXxhRvV30d7CfCQ9r0AeXj14Mv9Jm_Yd1bRWP28,1088
8
- apitally/django.py,sha256=Ym590Tiz1Qnk-IgFcna8r-XkSgcln2riziSPZCwD9nw,12812
8
+ apitally/django.py,sha256=ZsCKTUq4V3nCwIcrO8_3mPQFuPRiriqRSxQ8IPMRoOQ,12922
9
9
  apitally/django_ninja.py,sha256=iMvZd7j04nbOLpJgYxs7tpbsyXlZuhmHjcswXMvyUlU,82
10
10
  apitally/django_rest_framework.py,sha256=iMvZd7j04nbOLpJgYxs7tpbsyXlZuhmHjcswXMvyUlU,82
11
11
  apitally/fastapi.py,sha256=Q3n2bVREKQ_V_2yCQ48ngPtr-NJxDskpT_l20xhSbpM,85
12
- apitally/flask.py,sha256=Utn92aXXl_1f4bKvuf4iZDB4v1vVLpeW5p1tF57Kf-8,5552
13
- apitally/litestar.py,sha256=1-skfFDKjYa7y6mOdNvjR4YGtsQbNA0iGQP1jyre41Q,7978
12
+ apitally/flask.py,sha256=iD2mbFqrWoEFFmDNXUtR32OYwlHob4I3tJT90-kwcnw,5691
13
+ apitally/litestar.py,sha256=fgpdIlOpXS7TYFM02GUXk78H8WuJgDWMePPsQf-Pw1I,8092
14
14
  apitally/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- apitally/starlette.py,sha256=kyXgzw0L90GUOZCgjuwM3q0uOpPX-hD0TQb2Wgqbqb8,7767
16
- apitally-0.9.0.dist-info/LICENSE,sha256=vbLzC-4TddtXX-_AFEBKMYWRlxC_MN0g66QhPxo8PgY,1065
17
- apitally-0.9.0.dist-info/METADATA,sha256=SsnJeg47jd8Q8MP9RXC9mbmweeE8ywLCxOLtQks3VKQ,6815
18
- apitally-0.9.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
19
- apitally-0.9.0.dist-info/RECORD,,
15
+ apitally/starlette.py,sha256=e0PoLTrihHioLGDF1TThjlsiyYtusa6Or6GKCX7Y9NQ,7881
16
+ apitally-0.10.0.dist-info/LICENSE,sha256=vbLzC-4TddtXX-_AFEBKMYWRlxC_MN0g66QhPxo8PgY,1065
17
+ apitally-0.10.0.dist-info/METADATA,sha256=qS7p_ikNFk2H474nD7yI6KdZ5jPM3IuC7EQ5F9Nrbas,6834
18
+ apitally-0.10.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
19
+ apitally-0.10.0.dist-info/RECORD,,