posthoganalytics 6.0.3__py3-none-any.whl → 6.0.4__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.
@@ -1,5 +1,6 @@
1
1
  from typing import TYPE_CHECKING, cast
2
2
  from posthoganalytics import contexts
3
+ from posthoganalytics.client import Client
3
4
 
4
5
  if TYPE_CHECKING:
5
6
  from django.http import HttpRequest, HttpResponse # noqa: F401
@@ -16,7 +17,8 @@ class PosthogContextMiddleware:
16
17
  - Request Method as $request_method
17
18
 
18
19
  The context will also auto-capture exceptions and send them to PostHog, unless you disable it by setting
19
- `POSTHOG_MW_CAPTURE_EXCEPTIONS` to `False` in your Django settings.
20
+ `POSTHOG_MW_CAPTURE_EXCEPTIONS` to `False` in your Django settings. The exceptions are captured using the
21
+ global client, unless the setting `POSTHOG_MW_CLIENT` is set to a custom client instance
20
22
 
21
23
  The middleware behaviour is customisable through 3 additional functions:
22
24
  - `POSTHOG_MW_EXTRA_TAGS`, which is a Callable[[HttpRequest], Dict[str, Any]] expected to return a dictionary of additional tags to be added to the context.
@@ -74,6 +76,13 @@ class PosthogContextMiddleware:
74
76
  else:
75
77
  self.capture_exceptions = True
76
78
 
79
+ if hasattr(settings, "POSTHOG_MW_CLIENT") and isinstance(
80
+ settings.POSTHOG_MW_CLIENT, Client
81
+ ):
82
+ self.client = cast("Optional[Client]", settings.POSTHOG_MW_CLIENT)
83
+ else:
84
+ self.client = None
85
+
77
86
  def extract_tags(self, request):
78
87
  # type: (HttpRequest) -> Dict[str, Any]
79
88
  tags = {}
@@ -153,7 +162,7 @@ class PosthogContextMiddleware:
153
162
  if self.request_filter and not self.request_filter(request):
154
163
  return self.get_response(request)
155
164
 
156
- with contexts.new_context(self.capture_exceptions):
165
+ with contexts.new_context(self.capture_exceptions, client=self.client):
157
166
  for k, v in self.extract_tags(request).items():
158
167
  contexts.tag(k, v)
159
168
 
@@ -1,4 +1,4 @@
1
- VERSION = "6.0.3"
1
+ VERSION = "6.0.4"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  print(VERSION, end="") # noqa: T201
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: posthoganalytics
3
- Version: 6.0.3
3
+ Version: 6.0.4
4
4
  Summary: Integrate PostHog into any python application.
5
5
  Home-page: https://github.com/posthog/posthog-python
6
6
  Author: Posthog
@@ -11,7 +11,7 @@ posthoganalytics/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  posthoganalytics/request.py,sha256=TaeySYpcvHMf5Ftf5KqqlO0VPJpirKBCRrThlS04Kew,6124
12
12
  posthoganalytics/types.py,sha256=INxWBOEQc0xgPcap6FdQNSU7zuQBmKShYaGzyuHKql8,9128
13
13
  posthoganalytics/utils.py,sha256=-0w-OLcCaoldkbBebPzQyBzLJSo9G9yBOg8NDVz7La8,16088
14
- posthoganalytics/version.py,sha256=65DkL33wptG_S3mMCSglSwcvQWT2uqT8FwNKosP44_8,87
14
+ posthoganalytics/version.py,sha256=32RMq8t4f1854luLt5ho5jLI7HSIEs-meJIXyzaT6iw,87
15
15
  posthoganalytics/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  posthoganalytics/ai/utils.py,sha256=5-2XfmetCs0v9otBoux7-IEG933wAnKLSGS6oYLqCkw,19529
17
17
  posthoganalytics/ai/anthropic/__init__.py,sha256=fFhDOiRzTXzGQlgnrRDL-4yKC8EYIl8NW4a2QNR6xRU,368
@@ -27,7 +27,7 @@ posthoganalytics/ai/openai/openai.py,sha256=iL_cwctaAhPdXNo4EpIZooOWGyjNj0W-OUEo
27
27
  posthoganalytics/ai/openai/openai_async.py,sha256=KxPCd5imF5iZ9VkJ12HjCO2skaF1tHsHveAknIqV93g,23769
28
28
  posthoganalytics/ai/openai/openai_providers.py,sha256=EMuEvdHSOFbrhmfuU0is7pBVWS3ReAUT0PZqgMXdyjk,3884
29
29
  posthoganalytics/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- posthoganalytics/integrations/django.py,sha256=NUC2XHZxQ3XmfqPaVKrAvVma4284eFqq-x0NQTRdaUU,5998
30
+ posthoganalytics/integrations/django.py,sha256=BdBo6nvY6cjKMYPpKTzvwiICCLIhCOyslgqwFCObPzo,6441
31
31
  posthoganalytics/test/__init__.py,sha256=VYgM6xPbJbvS-xhIcDiBRs0MFC9V_jT65uNeerCz_rM,299
32
32
  posthoganalytics/test/test_before_send.py,sha256=A1_UVMewhHAvO39rZDWfS606vG_X-q0KNXvh5DAKiB8,7930
33
33
  posthoganalytics/test/test_client.py,sha256=msR101AXAyDrglWMJ1MjSw59o6CsXSXnjZ0pwIG-MDk,74571
@@ -42,8 +42,8 @@ posthoganalytics/test/test_request.py,sha256=Zc0VbkjpVmj8mKokQm9rzdgTr0b1U44vvMY
42
42
  posthoganalytics/test/test_size_limited_dict.py,sha256=-5IQjIEr_-Dql24M0HusdR_XroOMrtgiT0v6ZQCRvzo,774
43
43
  posthoganalytics/test/test_types.py,sha256=bRPHdwVpP7hu7emsplU8UVyzSQptv6PaG5lAoOD_BtM,7595
44
44
  posthoganalytics/test/test_utils.py,sha256=sqUTbfweVcxxFRd3WDMFXqPMyU6DvzOBeAOc68Py9aw,9620
45
- posthoganalytics-6.0.3.dist-info/licenses/LICENSE,sha256=wGf9JBotDkSygFj43m49oiKlFnpMnn97keiZKF-40vE,2450
46
- posthoganalytics-6.0.3.dist-info/METADATA,sha256=EPpHk0WvqHtRnzCqhAuyrivFQV9ftS3yIGFZMmJ3qfk,6024
47
- posthoganalytics-6.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
48
- posthoganalytics-6.0.3.dist-info/top_level.txt,sha256=8QsNIqIkBh1p2TXvKp0Em9ZLZKwe3uIqCETyW4s1GOE,17
49
- posthoganalytics-6.0.3.dist-info/RECORD,,
45
+ posthoganalytics-6.0.4.dist-info/licenses/LICENSE,sha256=wGf9JBotDkSygFj43m49oiKlFnpMnn97keiZKF-40vE,2450
46
+ posthoganalytics-6.0.4.dist-info/METADATA,sha256=XFHAzPEaUrGKWSVPYHPeJHv-XpITG9_OnpGcQudBThk,6024
47
+ posthoganalytics-6.0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
48
+ posthoganalytics-6.0.4.dist-info/top_level.txt,sha256=8QsNIqIkBh1p2TXvKp0Em9ZLZKwe3uIqCETyW4s1GOE,17
49
+ posthoganalytics-6.0.4.dist-info/RECORD,,