posthoganalytics 7.4.2__tar.gz → 7.4.3__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 (65) hide show
  1. {posthoganalytics-7.4.2/posthoganalytics.egg-info → posthoganalytics-7.4.3}/PKG-INFO +1 -1
  2. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/langchain/callbacks.py +11 -9
  3. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/version.py +1 -1
  4. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3/posthoganalytics.egg-info}/PKG-INFO +1 -1
  5. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/LICENSE +0 -0
  6. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/MANIFEST.in +0 -0
  7. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/README.md +0 -0
  8. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/__init__.py +0 -0
  9. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/__init__.py +0 -0
  10. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/anthropic/__init__.py +0 -0
  11. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/anthropic/anthropic.py +0 -0
  12. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/anthropic/anthropic_async.py +0 -0
  13. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/anthropic/anthropic_converter.py +0 -0
  14. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/anthropic/anthropic_providers.py +0 -0
  15. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/gemini/__init__.py +0 -0
  16. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/gemini/gemini.py +0 -0
  17. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/gemini/gemini_async.py +0 -0
  18. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/gemini/gemini_converter.py +0 -0
  19. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/langchain/__init__.py +0 -0
  20. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/openai/__init__.py +0 -0
  21. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/openai/openai.py +0 -0
  22. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/openai/openai_async.py +0 -0
  23. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/openai/openai_converter.py +0 -0
  24. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/openai/openai_providers.py +0 -0
  25. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/sanitization.py +0 -0
  26. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/types.py +0 -0
  27. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/ai/utils.py +0 -0
  28. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/args.py +0 -0
  29. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/client.py +0 -0
  30. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/consumer.py +0 -0
  31. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/contexts.py +0 -0
  32. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/exception_capture.py +0 -0
  33. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/exception_utils.py +0 -0
  34. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/feature_flags.py +0 -0
  35. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/flag_definition_cache.py +0 -0
  36. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/integrations/__init__.py +0 -0
  37. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/integrations/django.py +0 -0
  38. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/poller.py +0 -0
  39. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/py.typed +0 -0
  40. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/request.py +0 -0
  41. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/__init__.py +0 -0
  42. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_before_send.py +0 -0
  43. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_client.py +0 -0
  44. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_consumer.py +0 -0
  45. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_contexts.py +0 -0
  46. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_exception_capture.py +0 -0
  47. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_feature_flag.py +0 -0
  48. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_feature_flag_result.py +0 -0
  49. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_feature_flags.py +0 -0
  50. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_flag_definition_cache.py +0 -0
  51. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_module.py +0 -0
  52. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_request.py +0 -0
  53. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_size_limited_dict.py +0 -0
  54. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_types.py +0 -0
  55. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/test/test_utils.py +0 -0
  56. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/types.py +0 -0
  57. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics/utils.py +0 -0
  58. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics.egg-info/SOURCES.txt +0 -0
  59. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics.egg-info/dependency_links.txt +0 -0
  60. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics.egg-info/requires.txt +0 -0
  61. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/posthoganalytics.egg-info/top_level.txt +0 -0
  62. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/pyproject.toml +0 -0
  63. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/setup.cfg +0 -0
  64. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/setup.py +0 -0
  65. {posthoganalytics-7.4.2 → posthoganalytics-7.4.3}/setup_analytics.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: posthoganalytics
3
- Version: 7.4.2
3
+ Version: 7.4.3
4
4
  Summary: Integrate PostHog into any python application.
5
5
  Home-page: https://github.com/posthog/posthog-python
6
6
  Author: Posthog
@@ -773,9 +773,11 @@ def _parse_usage_model(
773
773
  for mapped_key, dataclass_key in field_mapping.items()
774
774
  },
775
775
  )
776
- # For Anthropic providers, LangChain reports input_tokens as the sum of input and cache read tokens.
776
+ # For Anthropic providers, LangChain reports input_tokens as the sum of all input tokens.
777
777
  # Our cost calculation expects them to be separate for Anthropic, so we subtract cache tokens.
778
- # For other providers (OpenAI, etc.), input_tokens already includes cache tokens as expected.
778
+ # Both cache_read and cache_write tokens should be subtracted since Anthropic's raw API
779
+ # reports input_tokens as tokens NOT read from or used to create a cache.
780
+ # For other providers (OpenAI, etc.), input_tokens already excludes cache tokens as expected.
779
781
  # Match logic consistent with plugin-server: exact match on provider OR substring match on model
780
782
  is_anthropic = False
781
783
  if provider and provider.lower() == "anthropic":
@@ -783,14 +785,14 @@ def _parse_usage_model(
783
785
  elif model and "anthropic" in model.lower():
784
786
  is_anthropic = True
785
787
 
786
- if (
787
- is_anthropic
788
- and normalized_usage.input_tokens
789
- and normalized_usage.cache_read_tokens
790
- ):
791
- normalized_usage.input_tokens = max(
792
- normalized_usage.input_tokens - normalized_usage.cache_read_tokens, 0
788
+ if is_anthropic and normalized_usage.input_tokens:
789
+ cache_tokens = (normalized_usage.cache_read_tokens or 0) + (
790
+ normalized_usage.cache_write_tokens or 0
793
791
  )
792
+ if cache_tokens > 0:
793
+ normalized_usage.input_tokens = max(
794
+ normalized_usage.input_tokens - cache_tokens, 0
795
+ )
794
796
  return normalized_usage
795
797
 
796
798
 
@@ -1,4 +1,4 @@
1
- VERSION = "7.4.2"
1
+ VERSION = "7.4.3"
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: 7.4.2
3
+ Version: 7.4.3
4
4
  Summary: Integrate PostHog into any python application.
5
5
  Home-page: https://github.com/posthog/posthog-python
6
6
  Author: Posthog