growthbook 1.4.0__tar.gz → 1.4.1__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 (26) hide show
  1. {growthbook-1.4.0/growthbook.egg-info → growthbook-1.4.1}/PKG-INFO +1 -1
  2. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/__init__.py +1 -1
  3. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/growthbook.py +10 -5
  4. {growthbook-1.4.0 → growthbook-1.4.1/growthbook.egg-info}/PKG-INFO +1 -1
  5. {growthbook-1.4.0 → growthbook-1.4.1}/setup.cfg +1 -1
  6. {growthbook-1.4.0 → growthbook-1.4.1}/LICENSE +0 -0
  7. {growthbook-1.4.0 → growthbook-1.4.1}/MANIFEST.in +0 -0
  8. {growthbook-1.4.0 → growthbook-1.4.1}/README.md +0 -0
  9. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/common_types.py +0 -0
  10. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/core.py +0 -0
  11. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/growthbook_client.py +0 -0
  12. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/plugins/__init__.py +0 -0
  13. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/plugins/base.py +0 -0
  14. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/plugins/growthbook_tracking.py +0 -0
  15. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/plugins/request_context.py +0 -0
  16. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook/py.typed +0 -0
  17. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook.egg-info/SOURCES.txt +0 -0
  18. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook.egg-info/dependency_links.txt +0 -0
  19. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook.egg-info/requires.txt +0 -0
  20. {growthbook-1.4.0 → growthbook-1.4.1}/growthbook.egg-info/top_level.txt +0 -0
  21. {growthbook-1.4.0 → growthbook-1.4.1}/pyproject.toml +0 -0
  22. {growthbook-1.4.0 → growthbook-1.4.1}/setup.py +0 -0
  23. {growthbook-1.4.0 → growthbook-1.4.1}/tests/conftest.py +0 -0
  24. {growthbook-1.4.0 → growthbook-1.4.1}/tests/test_growthbook.py +0 -0
  25. {growthbook-1.4.0 → growthbook-1.4.1}/tests/test_growthbook_client.py +0 -0
  26. {growthbook-1.4.0 → growthbook-1.4.1}/tests/test_plugins.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: growthbook
3
- Version: 1.4.0
3
+ Version: 1.4.1
4
4
  Summary: Powerful Feature flagging and A/B testing for Python apps
5
5
  Home-page: https://github.com/growthbook/growthbook-python
6
6
  Author: GrowthBook
@@ -18,5 +18,5 @@ from .plugins import (
18
18
  )
19
19
 
20
20
  # x-release-please-start-version
21
- __version__ = "1.4.0"
21
+ __version__ = "1.4.1"
22
22
  # x-release-please-end
@@ -120,12 +120,13 @@ class InMemoryStickyBucketService(AbstractStickyBucketService):
120
120
 
121
121
 
122
122
  class SSEClient:
123
- def __init__(self, api_host, client_key, on_event, reconnect_delay=5, headers=None):
123
+ def __init__(self, api_host, client_key, on_event, reconnect_delay=5, headers=None, timeout = 30):
124
124
  self.api_host = api_host
125
125
  self.client_key = client_key
126
126
 
127
127
  self.on_event = on_event
128
128
  self.reconnect_delay = reconnect_delay
129
+ self.timeout = timeout
129
130
 
130
131
  self._sse_session = None
131
132
  self._sse_thread = None
@@ -173,7 +174,8 @@ class SSEClient:
173
174
 
174
175
  while self.is_running:
175
176
  try:
176
- async with aiohttp.ClientSession(headers=self.headers) as session:
177
+ async with aiohttp.ClientSession(headers=self.headers,
178
+ timeout=aiohttp.ClientTimeout(total=self.timeout)) as session:
177
179
  self._sse_session = session
178
180
 
179
181
  async with session.get(url) as response:
@@ -407,10 +409,10 @@ class FeatureRepository(object):
407
409
  return data
408
410
 
409
411
 
410
- def startAutoRefresh(self, api_host, client_key, cb):
412
+ def startAutoRefresh(self, api_host, client_key, cb, streaming_timeout=30):
411
413
  if not client_key:
412
414
  raise ValueError("Must specify `client_key` to start features streaming")
413
- self.sse_client = self.sse_client or SSEClient(api_host=api_host, client_key=client_key, on_event=cb)
415
+ self.sse_client = self.sse_client or SSEClient(api_host=api_host, client_key=client_key, on_event=cb, timeout=streaming_timeout)
414
416
  self.sse_client.connect()
415
417
 
416
418
  def stopAutoRefresh(self):
@@ -443,6 +445,7 @@ class GrowthBook(object):
443
445
  sticky_bucket_identifier_attributes: List[str] = None,
444
446
  savedGroups: dict = {},
445
447
  streaming: bool = False,
448
+ streaming_timeout: int = 30,
446
449
  plugins: List = None,
447
450
  # Deprecated args
448
451
  trackingCallback=None,
@@ -471,6 +474,7 @@ class GrowthBook(object):
471
474
  self._trackingCallback = on_experiment_viewed or trackingCallback
472
475
 
473
476
  self._streaming = streaming
477
+ self._streaming_timeout = streaming_timeout
474
478
 
475
479
  # Deprecated args
476
480
  self._user = user
@@ -587,7 +591,8 @@ class GrowthBook(object):
587
591
  feature_repo.startAutoRefresh(
588
592
  api_host=self._api_host,
589
593
  client_key=self._client_key,
590
- cb=self._dispatch_sse_event
594
+ cb=self._dispatch_sse_event,
595
+ streaming_timeout=self._streaming_timeout
591
596
  )
592
597
 
593
598
  def stopAutoRefresh(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: growthbook
3
- Version: 1.4.0
3
+ Version: 1.4.1
4
4
  Summary: Powerful Feature flagging and A/B testing for Python apps
5
5
  Home-page: https://github.com/growthbook/growthbook-python
6
6
  Author: GrowthBook
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 1.4.0
2
+ current_version = 1.4.1
3
3
  commit = True
4
4
  tag = True
5
5
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes