eetlijst-python 0.0.3__tar.gz → 0.0.5__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.5}/PKG-INFO +1 -1
  2. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/pyproject.toml +1 -1
  3. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/eetlijst.py +2 -0
  4. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/__init__.py +1 -0
  5. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/events/events.py +1 -1
  6. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/expenses/expenses.py +1 -1
  7. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/groups/groups.py +1 -1
  8. eetlijst_python-0.0.5/src/eetlijst/services/me/__init__.py +1 -0
  9. eetlijst_python-0.0.5/src/eetlijst/services/me/me.py +53 -0
  10. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/settlements/settlements.py +2 -2
  11. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst_python.egg-info/PKG-INFO +1 -1
  12. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst_python.egg-info/SOURCES.txt +2 -0
  13. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/README.md +0 -0
  14. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/setup.cfg +0 -0
  15. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/__init__.py +0 -0
  16. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/exceptions.py +0 -0
  17. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/__init__.py +0 -0
  18. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/all_attendances.py +0 -0
  19. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/all_events.py +0 -0
  20. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/all_expenses.py +0 -0
  21. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/all_groups.py +0 -0
  22. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/all_settlements.py +0 -0
  23. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/all_users_in_group.py +0 -0
  24. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/app_status.py +0 -0
  25. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/async_base_client.py +0 -0
  26. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/automatic_events.py +0 -0
  27. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/base_model.py +0 -0
  28. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/client.py +0 -0
  29. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/create_expense.py +0 -0
  30. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/create_group.py +0 -0
  31. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/create_list_item.py +0 -0
  32. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/create_many_list_items.py +0 -0
  33. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/create_settlement.py +0 -0
  34. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/enums.py +0 -0
  35. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/exceptions.py +0 -0
  36. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/fragments.py +0 -0
  37. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/get_attendance.py +0 -0
  38. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/get_event.py +0 -0
  39. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/get_group.py +0 -0
  40. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/get_user.py +0 -0
  41. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/get_user_in_group.py +0 -0
  42. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/group_total_expense.py +0 -0
  43. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/input_types.py +0 -0
  44. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/join_group.py +0 -0
  45. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/list_items.py +0 -0
  46. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/remove_account.py +0 -0
  47. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/settle_unsettled_expenses.py +0 -0
  48. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/settlement_expenses.py +0 -0
  49. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_attendance.py +0 -0
  50. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_event.py +0 -0
  51. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_expense.py +0 -0
  52. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_expense_distribution.py +0 -0
  53. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_group.py +0 -0
  54. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_list_item.py +0 -0
  55. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_many_attendance.py +0 -0
  56. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_user.py +0 -0
  57. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_user_in_group.py +0 -0
  58. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/generated/update_users_in_group.py +0 -0
  59. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/app/__init__.py +0 -0
  60. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/app/app.py +0 -0
  61. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/app/transformers.py +0 -0
  62. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/event_attendance/__init__.py +0 -0
  63. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/event_attendance/event_attendance.py +0 -0
  64. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/event_attendance/transformers.py +0 -0
  65. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/events/__init__.py +0 -0
  66. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/events/transformers.py +0 -0
  67. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/expenses/__init__.py +0 -0
  68. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/expenses/transformers.py +0 -0
  69. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/expenses/utils.py +0 -0
  70. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/group_list/__init__.py +0 -0
  71. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/group_list/group_list.py +0 -0
  72. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/group_list/transformers.py +0 -0
  73. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/group_users/__init__.py +0 -0
  74. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/group_users/group_users.py +0 -0
  75. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/group_users/transformers.py +0 -0
  76. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/groups/__init__.py +0 -0
  77. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/groups/transformers.py +0 -0
  78. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/settlements/__init__.py +0 -0
  79. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/settlements/transformers.py +0 -0
  80. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/settlements/utils.py +0 -0
  81. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/users/__init__.py +0 -0
  82. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/users/transformers.py +0 -0
  83. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/services/users/users.py +0 -0
  84. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/utils/__init__.py +0 -0
  85. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst/utils/datetime.py +0 -0
  86. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst_python.egg-info/dependency_links.txt +0 -0
  87. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/src/eetlijst_python.egg-info/requires.txt +0 -0
  88. {eetlijst_python-0.0.3 → eetlijst_python-0.0.5}/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.5
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.5"
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
@@ -65,7 +65,7 @@ class Events:
65
65
 
66
66
  order_data = order
67
67
  if order is None:
68
- order_data = [eetschema_event_order_by(start_date=order_by.desc)]
68
+ order_data = [eetschema_event_order_by(start_date=order_by.asc)]
69
69
 
70
70
  result = await self._client.all_events(
71
71
  where_data,
@@ -55,7 +55,7 @@ class Expenses:
55
55
 
56
56
  order_data = order
57
57
  if order_data is None:
58
- order_data = [eetschema_expense_order_by(created_at=order_by.desc)]
58
+ order_data = [eetschema_expense_order_by(created_at=order_by.asc)]
59
59
 
60
60
  result = await self._client.all_expenses(
61
61
  where=where_data,
@@ -56,7 +56,7 @@ class Groups:
56
56
 
57
57
  order_data = order or [
58
58
  eetschema_users_in_group_order_by(
59
- group=eetschema_group_order_by(created_at=order_by.desc)
59
+ group=eetschema_group_order_by(created_at=order_by.asc)
60
60
  )
61
61
  ]
62
62
 
@@ -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 {}
@@ -67,7 +67,7 @@ class Settlements:
67
67
  else eetschema_settlements_bool_exp(group_id=group_filter)
68
68
  )
69
69
 
70
- order_data = order or [eetschema_settlements_order_by(created_at=order_by.desc)]
70
+ order_data = order or [eetschema_settlements_order_by(created_at=order_by.asc)]
71
71
 
72
72
  result = await self._client.all_settlements(
73
73
  where=where_data,
@@ -216,7 +216,7 @@ class Settlements:
216
216
  settlement_expense_id=settlement_expense_filter,
217
217
  )
218
218
 
219
- order_data = order or [eetschema_expense_order_by(created_at=order_by.desc)]
219
+ order_data = order or [eetschema_expense_order_by(created_at=order_by.asc)]
220
220
 
221
221
  result = await self._client.settlement_expenses(
222
222
  where=where_data,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eetlijst-python
3
- Version: 0.0.3
3
+ Version: 0.0.5
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