sweatstack 0.50.0__tar.gz → 0.52.0__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 (29) hide show
  1. {sweatstack-0.50.0 → sweatstack-0.52.0}/CHANGELOG.md +13 -0
  2. {sweatstack-0.50.0 → sweatstack-0.52.0}/PKG-INFO +1 -1
  3. {sweatstack-0.50.0 → sweatstack-0.52.0}/pyproject.toml +1 -1
  4. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/client.py +1 -1
  5. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/streamlit.py +4 -3
  6. {sweatstack-0.50.0 → sweatstack-0.52.0}/.claude/settings.local.json +0 -0
  7. {sweatstack-0.50.0 → sweatstack-0.52.0}/.gitignore +0 -0
  8. {sweatstack-0.50.0 → sweatstack-0.52.0}/.python-version +0 -0
  9. {sweatstack-0.50.0 → sweatstack-0.52.0}/DEVELOPMENT.md +0 -0
  10. {sweatstack-0.50.0 → sweatstack-0.52.0}/Makefile +0 -0
  11. {sweatstack-0.50.0 → sweatstack-0.52.0}/README.md +0 -0
  12. {sweatstack-0.50.0 → sweatstack-0.52.0}/playground/.ipynb_checkpoints/Untitled-checkpoint.ipynb +0 -0
  13. {sweatstack-0.50.0 → sweatstack-0.52.0}/playground/README.md +0 -0
  14. {sweatstack-0.50.0 → sweatstack-0.52.0}/playground/Sweat Stack examples/Getting started.ipynb +0 -0
  15. {sweatstack-0.50.0 → sweatstack-0.52.0}/playground/Untitled.ipynb +0 -0
  16. {sweatstack-0.50.0 → sweatstack-0.52.0}/playground/hello.py +0 -0
  17. {sweatstack-0.50.0 → sweatstack-0.52.0}/playground/pyproject.toml +0 -0
  18. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/Sweat Stack examples/Getting started.ipynb +0 -0
  19. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/__init__.py +0 -0
  20. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/cli.py +0 -0
  21. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/constants.py +0 -0
  22. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/ipython_init.py +0 -0
  23. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/jupyterlab_oauth2_startup.py +0 -0
  24. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/openapi_schemas.py +0 -0
  25. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/py.typed +0 -0
  26. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/schemas.py +0 -0
  27. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/sweatshell.py +0 -0
  28. {sweatstack-0.50.0 → sweatstack-0.52.0}/src/sweatstack/utils.py +0 -0
  29. {sweatstack-0.50.0 → sweatstack-0.52.0}/uv.lock +0 -0
@@ -6,6 +6,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
 
9
+ ## [0.52.0] - 2025-09-10
10
+
11
+ ### Changed
12
+ - Changed the default timeout for the HTTP client to 60 seconds.
13
+
14
+
15
+ ## [0.51.0] - 2025-08-28
16
+
17
+ ### Added
18
+
19
+ - Added a new `show_logout` parameter to the `ss.StreamlitAuth.authenticate()` method that allows for disabling the logout button. The logout button can be shown by calling `ss.StreamlitAuth.logout_button()`. This is for example useful when you want to show the login button on the main page, but the logout button in the sidebar.
20
+
21
+
9
22
  ## [0.50.0] - 2025-08-25
10
23
 
11
24
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sweatstack
3
- Version: 0.50.0
3
+ Version: 0.52.0
4
4
  Summary: The official Python client for SweatStack
5
5
  Author-email: Aart Goossens <aart@gssns.io>
6
6
  Requires-Python: >=3.9
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sweatstack"
3
- version = "0.50.0"
3
+ version = "0.52.0"
4
4
  description = "The official Python client for SweatStack"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -647,7 +647,7 @@ class Client(OAuth2Mixin, DelegationMixin, TokenStorageMixin, LocalCacheMixin):
647
647
  if self.api_key:
648
648
  headers["Authorization"] = f"Bearer {self.api_key}"
649
649
 
650
- with httpx.Client(base_url=self.url, headers=headers) as client:
650
+ with httpx.Client(base_url=self.url, headers=headers, timeout=60) as client:
651
651
  yield client
652
652
 
653
653
  def _print_response_and_raise(self, response: httpx.Response):
@@ -50,7 +50,7 @@ class StreamlitAuth:
50
50
  self.api_key = st.session_state.get("sweatstack_api_key")
51
51
  self.client = Client(self.api_key, streamlit_compatible=True)
52
52
 
53
- def _show_sweatstack_logout(self):
53
+ def logout_button(self):
54
54
  if st.button("Logout"):
55
55
  self.api_key = None
56
56
  self.client = Client(streamlit_compatible=True)
@@ -146,7 +146,7 @@ class StreamlitAuth:
146
146
  """
147
147
  return self.api_key is not None
148
148
 
149
- def authenticate(self, login_label: str | None = None):
149
+ def authenticate(self, login_label: str | None = None, show_logout: bool = True):
150
150
  """Authenticates the user with SweatStack.
151
151
 
152
152
  This method handles the authentication flow for SweatStack in a Streamlit app.
@@ -168,7 +168,8 @@ class StreamlitAuth:
168
168
  if not st.session_state.get("sweatstack_auth_toast_shown", False):
169
169
  st.toast("SweatStack authentication successful!", icon="✅")
170
170
  st.session_state["sweatstack_auth_toast_shown"] = True
171
- self._show_sweatstack_logout()
171
+ if show_logout:
172
+ self.logout_button()
172
173
  elif code := st.query_params.get("code"):
173
174
  self._exchange_token(code)
174
175
  st.query_params.clear()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes