qena-shared-lib 0.1.19__tar.gz → 0.1.20__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 (50) hide show
  1. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/PKG-INFO +1 -1
  2. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/pyproject.toml +1 -1
  3. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/http/__init__.py +3 -0
  4. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/mongodb.py +29 -5
  5. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/message/__init__.py +3 -0
  6. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/README.md +0 -0
  7. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/__init__.py +0 -0
  8. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/alias.py +0 -0
  9. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/application.py +0 -0
  10. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/background.py +0 -0
  11. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/cache.py +0 -0
  12. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/dependencies/__init__.py +0 -0
  13. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/dependencies/http.py +0 -0
  14. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/dependencies/miscellaneous.py +0 -0
  15. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/enums.py +0 -0
  16. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/eventbus.py +0 -0
  17. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/exception_handling.py +0 -0
  18. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/exceptions.py +0 -0
  19. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/http/_base.py +0 -0
  20. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/http/_exception_handlers.py +0 -0
  21. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/http/_request.py +0 -0
  22. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/http/_response.py +0 -0
  23. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/kafka/__init__.py +0 -0
  24. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/kafka/_base.py +0 -0
  25. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/kafka/_consumer.py +0 -0
  26. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/kafka/_exception_handlers.py +0 -0
  27. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/kafka/_producer.py +0 -0
  28. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/logging.py +0 -0
  29. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/py.typed +0 -0
  30. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/__init__.py +0 -0
  31. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/_base.py +0 -0
  32. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/_channel.py +0 -0
  33. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/_exception_handlers.py +0 -0
  34. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/_listener.py +0 -0
  35. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/_pool.py +0 -0
  36. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/_publisher.py +0 -0
  37. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/_rpc_client.py +0 -0
  38. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/message/_inbound.py +0 -0
  39. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/rabbitmq/message/_outbound.py +0 -0
  40. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/redis.py +0 -0
  41. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/remotelogging/__init__.py +0 -0
  42. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/remotelogging/_base.py +0 -0
  43. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/remotelogging/logstash/__init__.py +0 -0
  44. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/remotelogging/logstash/_base.py +0 -0
  45. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/remotelogging/logstash/_http_sender.py +0 -0
  46. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/remotelogging/logstash/_tcp_sender.py +0 -0
  47. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/scheduler.py +0 -0
  48. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/security.py +0 -0
  49. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/sync.py +0 -0
  50. {qena_shared_lib-0.1.19 → qena_shared_lib-0.1.20}/src/qena_shared_lib/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: qena-shared-lib
3
- Version: 0.1.19
3
+ Version: 0.1.20
4
4
  Summary: A shared tools for other services
5
5
  Requires-Dist: fastapi[all]==0.115.6
6
6
  Requires-Dist: prometheus-client==0.21.1
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "qena-shared-lib"
3
- version = "0.1.19"
3
+ version = "0.1.20"
4
4
  description = "A shared tools for other services"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -1,3 +1,5 @@
1
+ from pydantic import Field
2
+
1
3
  from ._base import (
2
4
  ROUTE_HANDLER_ATTRIBUTE,
3
5
  APIRouter,
@@ -68,6 +70,7 @@ __all__ = [
68
70
  "Cookie",
69
71
  "delete",
70
72
  "Depends",
73
+ "Field",
71
74
  "File",
72
75
  "FileResponse",
73
76
  "Form",
@@ -14,7 +14,16 @@ from typing import (
14
14
 
15
15
  from bson.objectid import ObjectId
16
16
  from pydantic import BeforeValidator, Field, field_serializer
17
- from pymongo import AsyncMongoClient, IndexModel
17
+ from pymongo import (
18
+ ASCENDING,
19
+ DESCENDING,
20
+ GEO2D,
21
+ GEOSPHERE,
22
+ HASHED,
23
+ TEXT,
24
+ AsyncMongoClient,
25
+ IndexModel,
26
+ )
18
27
  from pymongo.asynchronous.client_session import AsyncClientSession
19
28
  from pymongo.asynchronous.collection import AsyncCollection
20
29
  from pymongo.asynchronous.database import AsyncDatabase
@@ -25,14 +34,22 @@ from .logging import LoggerFactory
25
34
 
26
35
  __all__ = [
27
36
  "AggregatedDocument",
37
+ "ASCENDING",
38
+ "AsyncClientSession",
39
+ "DESCENDING",
28
40
  "Document",
29
41
  "EmbeddedDocument",
42
+ "Field",
43
+ "GEO2D",
44
+ "GEOSPHERE",
45
+ "HASHED",
30
46
  "IndexManager",
31
47
  "IndexModel",
32
48
  "MongoDBManager",
33
49
  "MongoDBObjectId",
34
50
  "ProjectedDocument",
35
51
  "RepositoryBase",
52
+ "TEXT",
36
53
  "validate_object_id",
37
54
  ]
38
55
 
@@ -235,11 +252,9 @@ S = TypeVar("S")
235
252
 
236
253
 
237
254
  class RepositoryBase(Generic[T]):
238
- def __init__(
239
- self, db: MongoDBManager, session: AsyncClientSession | None = None
240
- ) -> None:
255
+ def __init__(self, db: MongoDBManager) -> None:
241
256
  self._db = db
242
- self._session = session
257
+ self._session = None
243
258
  self._document_type = None
244
259
 
245
260
  @property
@@ -254,6 +269,15 @@ class RepositoryBase(Generic[T]):
254
269
  def session(self) -> AsyncClientSession | None:
255
270
  return self._session
256
271
 
272
+ @session.setter
273
+ def session(self, session: AsyncClientSession) -> None:
274
+ if session.has_ended:
275
+ raise RuntimeError(
276
+ f"session with id {session.session_id} has already ended"
277
+ )
278
+
279
+ self._session = session
280
+
257
281
  @property
258
282
  def document_type(self) -> type[T]:
259
283
  document_type = self._document_type
@@ -1,3 +1,5 @@
1
+ from pydantic import Field
2
+
1
3
  from ._inbound import (
2
4
  CamelCaseInboundMessage,
3
5
  InboundMessage,
@@ -12,6 +14,7 @@ from ._outbound import (
12
14
  __all__ = [
13
15
  "CamelCaseInboundMessage",
14
16
  "CamelCaseOutboundMessage",
17
+ "Field",
15
18
  "InboundMessage",
16
19
  "OutboundMessage",
17
20
  "SnakeCaseInboundMessage",