apexdevkit 1.25.3__tar.gz → 1.25.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 (54) hide show
  1. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/PKG-INFO +1 -1
  2. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/builder.py +4 -0
  3. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/dependable.py +23 -18
  4. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/pyproject.toml +1 -1
  5. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/LICENSE +0 -0
  6. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/README.md +0 -0
  7. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/__init__.py +0 -0
  8. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/annotation/__init__.py +0 -0
  9. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/annotation/deprecate.py +0 -0
  10. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/date.py +0 -0
  11. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/environment.py +0 -0
  12. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/error.py +0 -0
  13. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/__init__.py +0 -0
  14. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/docs.py +0 -0
  15. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/name.py +0 -0
  16. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/resource.py +0 -0
  17. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/response.py +0 -0
  18. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/router.py +0 -0
  19. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/schema.py +0 -0
  20. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fastapi/service.py +0 -0
  21. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/fluent.py +0 -0
  22. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/formatter.py +0 -0
  23. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/http/__init__.py +0 -0
  24. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/http/fake.py +0 -0
  25. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/http/fluent.py +0 -0
  26. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/http/httpx/__init__.py +0 -0
  27. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/http/httpx/client.py +0 -0
  28. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/http/httpx/hooks.py +0 -0
  29. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/http/json.py +0 -0
  30. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/http/url.py +0 -0
  31. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/id.py +0 -0
  32. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/key_fn.py +0 -0
  33. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/py.typed +0 -0
  34. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/query/__init__.py +0 -0
  35. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/query/generator.py +0 -0
  36. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/query/query.py +0 -0
  37. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/__init__.py +0 -0
  38. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/base.py +0 -0
  39. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/connector.py +0 -0
  40. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/database.py +0 -0
  41. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/decorator.py +0 -0
  42. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/in_memory.py +0 -0
  43. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/interface.py +0 -0
  44. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/mssql.py +0 -0
  45. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/repository.py +0 -0
  46. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/sql.py +0 -0
  47. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/repository/sqlite.py +0 -0
  48. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/server.py +0 -0
  49. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/synchronization.py +0 -0
  50. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/testing/__init__.py +0 -0
  51. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/testing/database.py +0 -0
  52. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/testing/fake.py +0 -0
  53. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/testing/rest.py +0 -0
  54. {apexdevkit-1.25.3 → apexdevkit-1.25.4}/apexdevkit/value.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apexdevkit
3
- Version: 1.25.3
3
+ Version: 1.25.4
4
4
  Summary: Apex Development Tools for python.
5
5
  License-File: LICENSE
6
6
  Author: Apex Dev
@@ -10,6 +10,7 @@ from fastapi.middleware.cors import CORSMiddleware
10
10
  from fastapi.responses import JSONResponse
11
11
 
12
12
  from apexdevkit.error import ApiError
13
+ from apexdevkit.fastapi.dependable import DependableBuilder
13
14
  from apexdevkit.fastapi.service import RestfulService
14
15
 
15
16
 
@@ -86,6 +87,9 @@ class RestfulServiceBuilder(ABC):
86
87
  parent_id: str = field(init=False)
87
88
  user: Any = field(init=False)
88
89
 
90
+ def as_dependable(self) -> DependableBuilder:
91
+ return DependableBuilder.from_builder(self)
92
+
89
93
  def with_user(self, user: Any) -> RestfulServiceBuilder:
90
94
  self.user = user
91
95
 
@@ -6,8 +6,6 @@ from fastapi import Depends, Path
6
6
  from fastapi.requests import Request
7
7
 
8
8
  from apexdevkit.error import ApiError, DoesNotExistError, ForbiddenError
9
- from apexdevkit.fastapi import RestfulServiceBuilder
10
- from apexdevkit.fastapi.builder import PreBuilt
11
9
  from apexdevkit.fastapi.name import RestfulName
12
10
  from apexdevkit.fastapi.response import RestfulResponse
13
11
  from apexdevkit.fastapi.service import RestfulService
@@ -20,8 +18,19 @@ def inject(dependency: str) -> Any: # pragma: no cover
20
18
  return Depends(get)
21
19
 
22
20
 
21
+ class _ServiceBuilder(Protocol):
22
+ def with_user(self, user: Any) -> "_ServiceBuilder":
23
+ pass
24
+
25
+ def with_parent(self, identity: str) -> "_ServiceBuilder":
26
+ pass
27
+
28
+ def build(self) -> RestfulService: # pragma: no cover
29
+ pass
30
+
31
+
23
32
  class _Dependency(Protocol):
24
- def as_dependable(self) -> type[RestfulServiceBuilder]:
33
+ def as_dependable(self) -> type[_ServiceBuilder]:
25
34
  pass
26
35
 
27
36
 
@@ -48,19 +57,19 @@ class ParentDependency:
48
57
  parent: RestfulName
49
58
  dependency: _Dependency
50
59
 
51
- def as_dependable(self) -> type[RestfulServiceBuilder]:
60
+ def as_dependable(self) -> type[_ServiceBuilder]:
52
61
  Builder = self.dependency.as_dependable()
53
62
  ParentId = Annotated[
54
63
  str, Path(alias=self.parent.singular.replace("-", "_") + "_id")
55
64
  ]
56
65
 
57
- def _(builder: Builder, parent_id: ParentId) -> RestfulServiceBuilder:
66
+ def _(builder: Builder, parent_id: ParentId) -> _ServiceBuilder:
58
67
  try:
59
68
  return builder.with_parent(parent_id)
60
69
  except DoesNotExistError as e:
61
70
  raise ApiError(404, RestfulResponse(self.parent).not_found(e)) from e
62
71
 
63
- return Annotated[RestfulServiceBuilder, Depends(_)]
72
+ return Annotated[_ServiceBuilder, Depends(_)]
64
73
 
65
74
 
66
75
  @dataclass(frozen=True)
@@ -68,28 +77,28 @@ class UserDependency:
68
77
  extract_user: Callable[..., Any]
69
78
  dependency: _Dependency
70
79
 
71
- def as_dependable(self) -> type[RestfulServiceBuilder]:
80
+ def as_dependable(self) -> type[_ServiceBuilder]:
72
81
  Builder = self.dependency.as_dependable()
73
82
  User = Annotated[Any, Depends(self.extract_user)]
74
83
 
75
- def _(builder: Builder, user: User) -> RestfulServiceBuilder:
84
+ def _(builder: Builder, user: User) -> _ServiceBuilder:
76
85
  return builder.with_user(user)
77
86
 
78
- return Annotated[RestfulServiceBuilder, Depends(_)]
87
+ return Annotated[_ServiceBuilder, Depends(_)]
79
88
 
80
89
 
81
- _BuilderCallable = Callable[..., RestfulServiceBuilder]
90
+ _BuilderCallable = Callable[..., _ServiceBuilder]
82
91
 
83
92
 
84
93
  @dataclass(frozen=True)
85
94
  class BuilderCallableDependency:
86
95
  create_builder: _BuilderCallable
87
96
 
88
- def as_dependable(self) -> type[RestfulServiceBuilder]:
89
- def _() -> RestfulServiceBuilder:
97
+ def as_dependable(self) -> type[_ServiceBuilder]:
98
+ def _() -> _ServiceBuilder:
90
99
  return self.create_builder()
91
100
 
92
- return Annotated[RestfulServiceBuilder, Depends(_)]
101
+ return Annotated[_ServiceBuilder, Depends(_)]
93
102
 
94
103
 
95
104
  @dataclass(frozen=True)
@@ -101,13 +110,9 @@ class DependableBuilder:
101
110
  return cls(BuilderCallableDependency(value))
102
111
 
103
112
  @classmethod
104
- def from_builder(cls, value: RestfulServiceBuilder) -> "DependableBuilder":
113
+ def from_builder(cls, value: _ServiceBuilder) -> "DependableBuilder":
105
114
  return cls(BuilderCallableDependency(lambda: value))
106
115
 
107
- @classmethod
108
- def from_service(cls, value: RestfulService) -> "DependableBuilder":
109
- return cls(BuilderCallableDependency(lambda: PreBuilt(value)))
110
-
111
116
  def with_parent(self, value: RestfulName) -> "DependableBuilder":
112
117
  return DependableBuilder(ParentDependency(value, self.dependency))
113
118
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "apexdevkit"
3
- version = "1.25.3"
3
+ version = "1.25.4"
4
4
  description = "Apex Development Tools for python."
5
5
  readme = "README.md"
6
6
  authors = [
File without changes
File without changes