eetlijst-python 0.0.3__tar.gz → 0.0.4__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 (88) hide show
  1. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/PKG-INFO +1 -1
  2. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/pyproject.toml +1 -1
  3. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/eetlijst.py +2 -0
  4. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/__init__.py +1 -0
  5. eetlijst_python-0.0.4/src/eetlijst/services/me/__init__.py +1 -0
  6. eetlijst_python-0.0.4/src/eetlijst/services/me/me.py +53 -0
  7. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/PKG-INFO +1 -1
  8. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/SOURCES.txt +2 -0
  9. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/README.md +0 -0
  10. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/setup.cfg +0 -0
  11. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/__init__.py +0 -0
  12. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/exceptions.py +0 -0
  13. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/__init__.py +0 -0
  14. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_attendances.py +0 -0
  15. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_events.py +0 -0
  16. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_expenses.py +0 -0
  17. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_groups.py +0 -0
  18. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_settlements.py +0 -0
  19. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/all_users_in_group.py +0 -0
  20. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/app_status.py +0 -0
  21. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/async_base_client.py +0 -0
  22. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/automatic_events.py +0 -0
  23. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/base_model.py +0 -0
  24. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/client.py +0 -0
  25. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_expense.py +0 -0
  26. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_group.py +0 -0
  27. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_list_item.py +0 -0
  28. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_many_list_items.py +0 -0
  29. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/create_settlement.py +0 -0
  30. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/enums.py +0 -0
  31. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/exceptions.py +0 -0
  32. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/fragments.py +0 -0
  33. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_attendance.py +0 -0
  34. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_event.py +0 -0
  35. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_group.py +0 -0
  36. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_user.py +0 -0
  37. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/get_user_in_group.py +0 -0
  38. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/group_total_expense.py +0 -0
  39. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/input_types.py +0 -0
  40. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/join_group.py +0 -0
  41. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/list_items.py +0 -0
  42. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/remove_account.py +0 -0
  43. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/settle_unsettled_expenses.py +0 -0
  44. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/settlement_expenses.py +0 -0
  45. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_attendance.py +0 -0
  46. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_event.py +0 -0
  47. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_expense.py +0 -0
  48. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_expense_distribution.py +0 -0
  49. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_group.py +0 -0
  50. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_list_item.py +0 -0
  51. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_many_attendance.py +0 -0
  52. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_user.py +0 -0
  53. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_user_in_group.py +0 -0
  54. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/generated/update_users_in_group.py +0 -0
  55. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/app/__init__.py +0 -0
  56. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/app/app.py +0 -0
  57. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/app/transformers.py +0 -0
  58. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/event_attendance/__init__.py +0 -0
  59. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/event_attendance/event_attendance.py +0 -0
  60. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/event_attendance/transformers.py +0 -0
  61. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/events/__init__.py +0 -0
  62. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/events/events.py +0 -0
  63. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/events/transformers.py +0 -0
  64. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/expenses/__init__.py +0 -0
  65. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/expenses/expenses.py +0 -0
  66. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/expenses/transformers.py +0 -0
  67. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/expenses/utils.py +0 -0
  68. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_list/__init__.py +0 -0
  69. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_list/group_list.py +0 -0
  70. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_list/transformers.py +0 -0
  71. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_users/__init__.py +0 -0
  72. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_users/group_users.py +0 -0
  73. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/group_users/transformers.py +0 -0
  74. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/groups/__init__.py +0 -0
  75. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/groups/groups.py +0 -0
  76. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/groups/transformers.py +0 -0
  77. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/__init__.py +0 -0
  78. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/settlements.py +0 -0
  79. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/transformers.py +0 -0
  80. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/settlements/utils.py +0 -0
  81. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/users/__init__.py +0 -0
  82. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/users/transformers.py +0 -0
  83. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/services/users/users.py +0 -0
  84. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/utils/__init__.py +0 -0
  85. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst/utils/datetime.py +0 -0
  86. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/dependency_links.txt +0 -0
  87. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/requires.txt +0 -0
  88. {eetlijst_python-0.0.3 → eetlijst_python-0.0.4}/src/eetlijst_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eetlijst-python
3
- Version: 0.0.3
3
+ Version: 0.0.4
4
4
  Summary: Python rewrite of the Eetlijst GraphQL client
5
5
  Requires-Python: <3.15,>=3.14
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "eetlijst-python"
3
- version = "0.0.3"
3
+ version = "0.0.4"
4
4
  description = "Python rewrite of the Eetlijst GraphQL client"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.14,<3.15"
@@ -12,6 +12,7 @@ from eetlijst.services import (
12
12
  GroupList,
13
13
  Groups,
14
14
  GroupUsers,
15
+ Me,
15
16
  Settlements,
16
17
  Users,
17
18
  )
@@ -57,3 +58,4 @@ class Eetlijst:
57
58
  self.expenses = Expenses(self._client, settlements)
58
59
 
59
60
  self.users = Users(self._client)
61
+ self.me = Me(api_key, self.users)
@@ -5,5 +5,6 @@ from .expenses import Expenses
5
5
  from .group_list import GroupList
6
6
  from .group_users import GroupUsers
7
7
  from .groups import Groups
8
+ from .me import Me
8
9
  from .settlements import Settlements
9
10
  from .users import Users
@@ -0,0 +1 @@
1
+ from .me import Me
@@ -0,0 +1,53 @@
1
+ import base64
2
+ import json
3
+ from datetime import datetime, timezone
4
+ from typing import Any, Optional
5
+
6
+ from eetlijst.services.users import Users
7
+
8
+
9
+ class Me:
10
+ def __init__(self, api_key: str, users: Users):
11
+ self._users = users
12
+ payload = self._decode_payload(api_key)
13
+
14
+ self.user_id: Optional[str] = payload.get("sub")
15
+ self.name: Optional[str] = payload.get("name")
16
+
17
+ iat_timestamp = payload.get("iat")
18
+ self.issued_at: Optional[datetime] = (
19
+ datetime.fromtimestamp(iat_timestamp, tz=timezone.utc)
20
+ if iat_timestamp is not None
21
+ else None
22
+ )
23
+
24
+ exp_timestamp = payload.get("exp")
25
+ self.expires: Optional[datetime] = (
26
+ datetime.fromtimestamp(exp_timestamp, tz=timezone.utc)
27
+ if exp_timestamp is not None
28
+ else None
29
+ )
30
+
31
+ async def get(self):
32
+ if not self.user_id:
33
+ raise ValueError(
34
+ "Cannot fetch user profile: missing 'sub' (user_id) in JWT."
35
+ )
36
+ return await self._users.get(self.user_id)
37
+
38
+ @staticmethod
39
+ def _decode_payload(token: str) -> dict[str, Any]:
40
+ try:
41
+ if token.lower().startswith("bearer "):
42
+ token = token[7:]
43
+
44
+ parts = token.split(".")
45
+ if len(parts) != 3:
46
+ return {}
47
+
48
+ payload_b64 = parts[1]
49
+ padding = "=" * (-len(payload_b64) % 4)
50
+ decoded_bytes = base64.urlsafe_b64decode(payload_b64 + padding)
51
+ return json.loads(decoded_bytes.decode("utf-8"))
52
+ except Exception:
53
+ return {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eetlijst-python
3
- Version: 0.0.3
3
+ Version: 0.0.4
4
4
  Summary: Python rewrite of the Eetlijst GraphQL client
5
5
  Requires-Python: <3.15,>=3.14
6
6
  Description-Content-Type: text/markdown
@@ -68,6 +68,8 @@ src/eetlijst/services/group_users/transformers.py
68
68
  src/eetlijst/services/groups/__init__.py
69
69
  src/eetlijst/services/groups/groups.py
70
70
  src/eetlijst/services/groups/transformers.py
71
+ src/eetlijst/services/me/__init__.py
72
+ src/eetlijst/services/me/me.py
71
73
  src/eetlijst/services/settlements/__init__.py
72
74
  src/eetlijst/services/settlements/settlements.py
73
75
  src/eetlijst/services/settlements/transformers.py