python-sdk-remote 0.0.112__tar.gz → 0.0.113__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.

Potentially problematic release.


This version of python-sdk-remote might be problematic. Click here for more details.

Files changed (20) hide show
  1. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/PKG-INFO +3 -2
  2. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/utilities.py +52 -3
  3. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote.egg-info/PKG-INFO +3 -2
  4. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote.egg-info/requires.txt +1 -0
  5. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/setup.py +4 -3
  6. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/README.md +0 -0
  7. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/pyproject.toml +0 -0
  8. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/__init__.py +0 -0
  9. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/constants.py +0 -0
  10. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/http_response.py +0 -0
  11. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/item.py +0 -0
  12. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/mini_logger.py +0 -0
  13. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/our_object.py +0 -0
  14. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/unified_json.py +0 -0
  15. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/valid_json_versions.py +0 -0
  16. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote/src/validate_environment.py +0 -0
  17. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote.egg-info/SOURCES.txt +0 -0
  18. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote.egg-info/dependency_links.txt +0 -0
  19. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/python_sdk_remote.egg-info/top_level.txt +0 -0
  20. {python_sdk_remote-0.0.112 → python_sdk_remote-0.0.113}/setup.cfg +0 -0
@@ -1,15 +1,16 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-sdk-remote
3
- Version: 0.0.112
3
+ Version: 0.0.113
4
4
  Summary: PyPI Package for Circles Python SDK Local Python
5
5
  Home-page: https://github.com/circles-zone/python-sdk-remote-python-package
6
6
  Author: Circles
7
- Author-email: info@circles.ai
7
+ Author-email: info@circlez.ai
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: Other/Proprietary License
10
10
  Classifier: Operating System :: OS Independent
11
11
  Description-Content-Type: text/markdown
12
12
  Requires-Dist: python-dotenv
13
13
  Requires-Dist: url-remote
14
+ Requires-Dist: pyjwt
14
15
 
15
16
  This is a package for sharing common functions used in different repositories
@@ -1,4 +1,6 @@
1
1
  import json
2
+ import jwt
3
+ import re
2
4
  import os
3
5
  from datetime import date, datetime, time, timedelta
4
6
  from urllib.parse import urlparse
@@ -7,7 +9,8 @@ from dotenv import load_dotenv
7
9
  from url_remote.environment_name_enum import EnvironmentName
8
10
 
9
11
  from .mini_logger import MiniLogger as logger
10
- from .http_response import (create_authorization_http_headers, get_user_jwt_from_event, # noqa - used for backwards compatibility
12
+ from .http_response import (create_authorization_http_headers, # noqa - used for backwards compatibility
13
+ get_user_jwt_from_event,
11
14
  create_return_http_headers, create_error_http_response, create_ok_http_response,
12
15
  create_http_body)
13
16
 
@@ -287,7 +290,6 @@ def our_get_env(key: str, default: str = None, raise_if_not_found: bool = True,
287
290
  return env_var
288
291
 
289
292
 
290
-
291
293
  def get_sql_hostname() -> str:
292
294
  return our_get_env("RDS_HOSTNAME")
293
295
 
@@ -300,5 +302,52 @@ def get_sql_password() -> str:
300
302
  return our_get_env("RDS_PASSWORD")
301
303
 
302
304
 
305
+ def get_smartlink_jwt_secret_key() -> str:
306
+ return our_get_env("SMARTLINK_JWT_SECRET_KEY", raise_if_empty=True)
307
+
308
+
309
+ def encode_jwt(payload: dict, key: str) -> str:
310
+ """Example:
311
+ payload = {
312
+ "user_id": 123,
313
+ "username": "john_doe",
314
+ "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1)
315
+ }
316
+ """
317
+ return jwt.encode(payload, key, algorithm='HS256')
318
+
319
+
320
+ def decode_jwt(token: str, key: str) -> dict:
321
+ """key can be private / public"""
322
+ return jwt.decode(token, key, algorithms=['HS256'])
323
+
324
+
325
+ def obfuscate_log_dict(log_dict: dict) -> dict:
326
+ """
327
+ Obfuscate keys:
328
+ - %password%
329
+ - %secret%
330
+ - %token%
331
+ - %jwt%
332
+ - %e%mail%
333
+ - %phone%
334
+ - %name% (first / last / nick / user etc.)
335
+ - %address%
336
+ - %ssn%
337
+ """
338
+ environment_name = get_environment_name()
339
+ if environment_name == EnvironmentName.PLAY1.value:
340
+ return log_dict
341
+ obfuscated_log_dict = {}
342
+ for key, value in log_dict.items():
343
+ if isinstance(value, dict):
344
+ obfuscated_log_dict[key] = obfuscate_log_dict(value)
345
+ elif re.search(r'password|secret|token|jwt|e[\-_]?mail|phone|name|address|ssn', key, re.IGNORECASE):
346
+ obfuscated_log_dict[key] = "***"
347
+ else:
348
+ obfuscated_log_dict[key] = value
349
+ return obfuscated_log_dict
350
+
351
+
303
352
  def remove_digits(text: str) -> str:
304
- return ''.join([i for i in text if not i.isdigit()])
353
+ return ''.join(i for i in text if not i.isdigit())
@@ -1,15 +1,16 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-sdk-remote
3
- Version: 0.0.112
3
+ Version: 0.0.113
4
4
  Summary: PyPI Package for Circles Python SDK Local Python
5
5
  Home-page: https://github.com/circles-zone/python-sdk-remote-python-package
6
6
  Author: Circles
7
- Author-email: info@circles.ai
7
+ Author-email: info@circlez.ai
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: Other/Proprietary License
10
10
  Classifier: Operating System :: OS Independent
11
11
  Description-Content-Type: text/markdown
12
12
  Requires-Dist: python-dotenv
13
13
  Requires-Dist: url-remote
14
+ Requires-Dist: pyjwt
14
15
 
15
16
  This is a package for sharing common functions used in different repositories
@@ -7,9 +7,9 @@ package_dir = PACKAGE_NAME.replace("-", "_")
7
7
  # python -m build needs pyproject.toml or setup.py
8
8
  setuptools.setup(
9
9
  name=PACKAGE_NAME,
10
- version='0.0.112', # https://pypi.org/project/python-sdk-remote/
10
+ version='0.0.113', # https://pypi.org/project/python-sdk-remote/
11
11
  author="Circles",
12
- author_email="info@circles.ai",
12
+ author_email="info@circlez.ai",
13
13
  description="PyPI Package for Circles Python SDK Local Python",
14
14
  long_description="This is a package for sharing common functions used in different repositories",
15
15
  long_description_content_type="text/markdown",
@@ -24,6 +24,7 @@ setuptools.setup(
24
24
  ],
25
25
  install_requires=[
26
26
  "python-dotenv",
27
- "url-remote"
27
+ "url-remote",
28
+ "pyjwt",
28
29
  ]
29
30
  )