apexdevkit 1.12.2__tar.gz → 1.12.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 (40) hide show
  1. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/PKG-INFO +1 -1
  2. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/repository/base.py +2 -2
  3. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/repository/decorator.py +4 -9
  4. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/repository/in_memory.py +3 -0
  5. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/repository/interface.py +3 -1
  6. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/repository/sqlite.py +15 -9
  7. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/pyproject.toml +1 -1
  8. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/LICENSE +0 -0
  9. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/README.md +0 -0
  10. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/__init__.py +0 -0
  11. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/annotation/__init__.py +0 -0
  12. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/annotation/deprecate.py +0 -0
  13. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/environment.py +0 -0
  14. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/error.py +0 -0
  15. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fastapi/__init__.py +0 -0
  16. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fastapi/builder.py +0 -0
  17. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fastapi/dependable.py +0 -0
  18. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fastapi/docs.py +0 -0
  19. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fastapi/resource.py +0 -0
  20. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fastapi/response.py +0 -0
  21. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fastapi/router.py +0 -0
  22. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fastapi/schema.py +0 -0
  23. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fastapi/service.py +0 -0
  24. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/fluent.py +0 -0
  25. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/formatter.py +0 -0
  26. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/http/__init__.py +0 -0
  27. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/http/fake.py +0 -0
  28. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/http/fluent.py +0 -0
  29. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/http/httpx.py +0 -0
  30. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/http/json.py +0 -0
  31. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/http/url.py +0 -0
  32. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/py.typed +0 -0
  33. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/repository/__init__.py +0 -0
  34. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/repository/connector.py +0 -0
  35. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/repository/database.py +0 -0
  36. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/repository/mongo.py +0 -0
  37. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/testing/__init__.py +0 -0
  38. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/testing/database.py +0 -0
  39. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/testing/fake.py +0 -0
  40. {apexdevkit-1.12.2 → apexdevkit-1.12.4}/apexdevkit/testing/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apexdevkit
3
- Version: 1.12.2
3
+ Version: 1.12.4
4
4
  Summary: Apex Development Tools for python.
5
5
  Author: Apex Dev
6
6
  Author-email: dev@apex.ge
@@ -1,6 +1,6 @@
1
1
  from typing import Any, Generic, Iterator
2
2
 
3
- from apexdevkit.repository.interface import IdT, ItemT
3
+ from apexdevkit.repository.interface import IdT, ItemT, Repository
4
4
 
5
5
 
6
6
  class RepositoryBase(Generic[IdT, ItemT]): # pragma: no cover
@@ -22,7 +22,7 @@ class RepositoryBase(Generic[IdT, ItemT]): # pragma: no cover
22
22
  def delete(self, item_id: IdT) -> None:
23
23
  raise NotImplementedError
24
24
 
25
- def bind(self, **kwargs: Any) -> None:
25
+ def bind(self, **kwargs: Any) -> Repository[IdT, ItemT]:
26
26
  raise NotImplementedError
27
27
 
28
28
  def __iter__(self) -> Iterator[ItemT]:
@@ -1,14 +1,12 @@
1
1
  from dataclasses import dataclass
2
- from typing import Any, Generic, Iterator, TypeVar
2
+ from typing import Iterator
3
3
 
4
- from apexdevkit.repository import Repository
5
-
6
- ItemT = TypeVar("ItemT")
7
- IdT = TypeVar("IdT", contravariant=True)
4
+ from apexdevkit.repository.base import RepositoryBase
5
+ from apexdevkit.repository.interface import IdT, ItemT, Repository
8
6
 
9
7
 
10
8
  @dataclass
11
- class RepositoryDecorator(Generic[IdT, ItemT]):
9
+ class RepositoryDecorator(RepositoryBase[IdT, ItemT]):
12
10
  inner: Repository[IdT, ItemT]
13
11
 
14
12
  def create(self, item: ItemT) -> ItemT:
@@ -29,9 +27,6 @@ class RepositoryDecorator(Generic[IdT, ItemT]):
29
27
  def delete(self, item_id: IdT) -> None:
30
28
  self.inner.delete(item_id)
31
29
 
32
- def bind(self, **kwargs: Any) -> None:
33
- self.inner.bind(**kwargs)
34
-
35
30
  def __iter__(self) -> Iterator[ItemT]:
36
31
  return self.inner.__iter__()
37
32
 
@@ -36,6 +36,9 @@ class InMemoryRepository(RepositoryBase[IdT, ItemT]):
36
36
  self.create(item)
37
37
  return self
38
38
 
39
+ def bind(self, **kwargs: Any) -> Self:
40
+ return self
41
+
39
42
  def create_many(self, items: list[ItemT]) -> list[ItemT]:
40
43
  for item in items:
41
44
  self.create(item)
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  from typing import Any, Iterator, Protocol, TypeVar
2
4
 
3
5
  ItemT = TypeVar("ItemT")
@@ -23,7 +25,7 @@ class Repository(Protocol[IdT, ItemT]): # pragma: no cover
23
25
  def delete(self, item_id: IdT) -> None:
24
26
  pass
25
27
 
26
- def bind(self, **kwargs: Any) -> None:
28
+ def bind(self, **kwargs: Any) -> Repository[IdT, ItemT]:
27
29
  pass
28
30
 
29
31
  def __iter__(self) -> Iterator[ItemT]:
@@ -14,6 +14,9 @@ class SqliteRepository(RepositoryBase[IdT, ItemT]):
14
14
  db: Database
15
15
  table: SqlTable[ItemT]
16
16
 
17
+ def bind(self, **kwargs: Any) -> SqliteRepository[IdT, ItemT]:
18
+ return SqliteRepository(self.db, self.table.bind(**kwargs))
19
+
17
20
  def __iter__(self) -> Iterator[ItemT]:
18
21
  for raw in self.db.execute(self.table.select_all()).fetch_all():
19
22
  yield self.table.load(raw)
@@ -62,32 +65,35 @@ class SqliteRepository(RepositoryBase[IdT, ItemT]):
62
65
 
63
66
 
64
67
  class SqlTable(Generic[ItemT]): # pragma: no cover
68
+ def bind(self, **kwargs: Any) -> SqlTable[ItemT]:
69
+ return self
70
+
65
71
  def count_all(self) -> DatabaseCommand:
66
- raise NotImplementedError("Not implemented")
72
+ raise NotImplementedError
67
73
 
68
74
  def insert(self, item: ItemT) -> DatabaseCommand:
69
- raise NotImplementedError("Not implemented")
75
+ raise NotImplementedError
70
76
 
71
77
  def select(self, item_id: str) -> DatabaseCommand:
72
- raise NotImplementedError("Not implemented")
78
+ raise NotImplementedError
73
79
 
74
80
  def select_duplicate(self, item: ItemT) -> DatabaseCommand:
75
- raise NotImplementedError("Not implemented")
81
+ raise NotImplementedError
76
82
 
77
83
  def select_all(self) -> DatabaseCommand:
78
- raise NotImplementedError("Not implemented")
84
+ raise NotImplementedError
79
85
 
80
86
  def update(self, item: ItemT) -> DatabaseCommand:
81
- raise NotImplementedError("Not implemented")
87
+ raise NotImplementedError
82
88
 
83
89
  def delete(self, item_id: str) -> DatabaseCommand:
84
- raise NotImplementedError("Not implemented")
90
+ raise NotImplementedError
85
91
 
86
92
  def delete_all(self) -> DatabaseCommand:
87
- raise NotImplementedError("Not implemented")
93
+ raise NotImplementedError
88
94
 
89
95
  def load(self, data: dict[str, Any]) -> ItemT:
90
- raise NotImplementedError("Not implemented")
96
+ raise NotImplementedError
91
97
 
92
98
  def duplicate(self, item: ItemT) -> ExistsError:
93
99
  return ExistsError(item).with_duplicate(lambda i: "Unknown")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "apexdevkit"
3
- version = "1.12.2"
3
+ version = "1.12.4"
4
4
  description = "Apex Development Tools for python."
5
5
  authors = ["Apex Dev <dev@apex.ge>"]
6
6
  readme = "README.md"
File without changes
File without changes