fast-clean 1.2.1__tar.gz → 1.2.3__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 (77) hide show
  1. {fast_clean-1.2.1 → fast_clean-1.2.3}/PKG-INFO +3 -4
  2. {fast_clean-1.2.1 → fast_clean-1.2.3}/README.md +2 -3
  3. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/healthcheck/router.py +1 -1
  4. fast_clean-1.2.1/fast_clean/schemas/status_response.py → fast_clean-1.2.3/fast_clean/contrib/healthcheck/schemas.py +1 -4
  5. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/logging/sentry.py +0 -3
  6. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/middleware.py +3 -0
  7. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/schemas/__init__.py +0 -1
  8. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/services/cryptography/__init__.py +2 -1
  9. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/settings.py +4 -4
  10. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean.egg-info/PKG-INFO +3 -4
  11. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean.egg-info/SOURCES.txt +1 -1
  12. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean.egg-info/requires.txt +1 -1
  13. {fast_clean-1.2.1 → fast_clean-1.2.3}/pyproject.toml +2 -2
  14. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/__init__.py +0 -0
  15. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/broker.py +0 -0
  16. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/container.py +0 -0
  17. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/__init__.py +0 -0
  18. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/healthcheck/__init__.py +0 -0
  19. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/logging/__init__.py +0 -0
  20. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/logging/enums.py +0 -0
  21. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/monitoring/__init__.py +0 -0
  22. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/monitoring/middleware.py +0 -0
  23. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/monitoring/router.py +0 -0
  24. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/sqlalchemy_utils/__init__.py +0 -0
  25. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/contrib/sqlalchemy_utils/utils.py +0 -0
  26. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/db.py +0 -0
  27. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/depends.py +0 -0
  28. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/enums.py +0 -0
  29. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/exceptions.py +0 -0
  30. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/loggers.py +0 -0
  31. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/models.py +0 -0
  32. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/py.typed +0 -0
  33. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/redis.py +0 -0
  34. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/__init__.py +0 -0
  35. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/cache/__init__.py +0 -0
  36. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/cache/in_memory.py +0 -0
  37. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/cache/redis.py +0 -0
  38. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/crud/__init__.py +0 -0
  39. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/crud/db.py +0 -0
  40. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/crud/in_memory.py +0 -0
  41. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/crud/type_vars.py +0 -0
  42. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/settings/__init__.py +0 -0
  43. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/settings/enums.py +0 -0
  44. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/settings/env.py +0 -0
  45. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/settings/exceptions.py +0 -0
  46. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/settings/type_vars.py +0 -0
  47. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/storage/__init__.py +0 -0
  48. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/storage/enums.py +0 -0
  49. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/storage/local.py +0 -0
  50. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/storage/reader.py +0 -0
  51. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/storage/s3.py +0 -0
  52. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/repositories/storage/schemas.py +0 -0
  53. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/schemas/exceptions.py +0 -0
  54. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/schemas/pagination.py +0 -0
  55. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/schemas/repository.py +0 -0
  56. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/schemas/request_response.py +0 -0
  57. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/services/__init__.py +0 -0
  58. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/services/cryptography/aes.py +0 -0
  59. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/services/cryptography/enums.py +0 -0
  60. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/services/lock.py +0 -0
  61. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/services/seed.py +0 -0
  62. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/services/transaction.py +0 -0
  63. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/utils/__init__.py +0 -0
  64. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/utils/process.py +0 -0
  65. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/utils/pydantic.py +0 -0
  66. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/utils/ssl_context.py +0 -0
  67. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/utils/string.py +0 -0
  68. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/utils/thread.py +0 -0
  69. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/utils/time.py +0 -0
  70. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/utils/type_converters.py +0 -0
  71. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean/utils/typer.py +0 -0
  72. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean.egg-info/dependency_links.txt +0 -0
  73. {fast_clean-1.2.1 → fast_clean-1.2.3}/fast_clean.egg-info/top_level.txt +0 -0
  74. {fast_clean-1.2.1 → fast_clean-1.2.3}/setup.cfg +0 -0
  75. {fast_clean-1.2.1 → fast_clean-1.2.3}/tests/test_broker.py +0 -0
  76. {fast_clean-1.2.1 → fast_clean-1.2.3}/tests/test_db.py +0 -0
  77. {fast_clean-1.2.1 → fast_clean-1.2.3}/tests/test_exceptions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fast-clean
3
- Version: 1.2.1
3
+ Version: 1.2.3
4
4
  Summary: FastAPI Clean Architecture implementation
5
5
  Author-email: Luferov Victor <luferovvs@yandex.ru>, Orlov Artem <squakrazv@yandex.ru>, Kashapov Rustam <hardtechnik91@gmail.com>
6
6
  Requires-Python: >=3.13
@@ -21,7 +21,7 @@ Requires-Dist: psycopg[binary]>=3.2.4
21
21
  Requires-Dist: pydantic>=2.10.6
22
22
  Requires-Dist: pydantic-settings>=2.8.0
23
23
  Requires-Dist: pyyaml>=6.0.2
24
- Requires-Dist: sentry-sdk>=2.32.0
24
+ Requires-Dist: sentry-sdk[fastapi]>=2.32.0
25
25
  Requires-Dist: snakecase>=1.0.1
26
26
  Requires-Dist: sqlalchemy-utils>=0.41.2
27
27
  Requires-Dist: sqlalchemy[asyncio]>=2.0.38
@@ -33,11 +33,10 @@ Requires-Dist: typer>=0.15.1
33
33
  FastAPI clean architecture implementation
34
34
 
35
35
 
36
-
37
36
  ## Contribution
38
37
 
39
38
  ```
40
39
  git clone git@github.com:Luferov/fast-clean.git
41
- uv sync --all-extras --dev
40
+ uv sync
42
41
  uv run pre-commit install
43
42
  ```
@@ -3,11 +3,10 @@
3
3
  FastAPI clean architecture implementation
4
4
 
5
5
 
6
-
7
6
  ## Contribution
8
7
 
9
8
  ```
10
9
  git clone git@github.com:Luferov/fast-clean.git
11
- uv sync --all-extras --dev
10
+ uv sync
12
11
  uv run pre-commit install
13
- ```
12
+ ```
@@ -4,7 +4,7 @@
4
4
 
5
5
  from fastapi import APIRouter
6
6
 
7
- from fast_clean.schemas import StatusOkResponseSchema
7
+ from .schemas import StatusOkResponseSchema
8
8
 
9
9
  router = APIRouter(prefix='/health', tags=['Healthcheck'], include_in_schema=False)
10
10
 
@@ -1,8 +1,5 @@
1
- """
2
- Модуль, содержащий схемы ответов статусов.
3
- """
4
1
 
5
- from .request_response import ResponseSchema
2
+ from fast_clean.schemas.request_response import ResponseSchema
6
3
 
7
4
 
8
5
  class StatusOkResponseSchema(ResponseSchema):
@@ -13,9 +13,6 @@ def use_sentry(
13
13
  level: int = logging.DEBUG,
14
14
  event_level: int = logging.ERROR,
15
15
  ) -> None:
16
- if not dsn:
17
- return
18
-
19
16
  sentry_logging = LoggingIntegration(
20
17
  level=level,
21
18
  event_level=event_level,
@@ -5,6 +5,8 @@
5
5
  from fastapi import FastAPI
6
6
  from starlette.middleware.cors import CORSMiddleware
7
7
 
8
+ from .contrib.monitoring.middleware import use_middleware as use_monitoring_middleware
9
+
8
10
 
9
11
  def use_middleware(app: FastAPI, cors_origins: list[str]) -> FastAPI:
10
12
  """
@@ -17,4 +19,5 @@ def use_middleware(app: FastAPI, cors_origins: list[str]) -> FastAPI:
17
19
  allow_methods=['*'],
18
20
  allow_headers=['*'],
19
21
  )
22
+ use_monitoring_middleware(app)
20
23
  return app
@@ -22,4 +22,3 @@ from .request_response import RemoteRequestSchema as RemoteRequestSchema
22
22
  from .request_response import RemoteResponseSchema as RemoteResponseSchema
23
23
  from .request_response import RequestSchema as RequestSchema
24
24
  from .request_response import ResponseSchema as ResponseSchema
25
- from .status_response import StatusOkResponseSchema as StatusOkResponseSchema
@@ -42,4 +42,5 @@ class CryptographyServiceFactory:
42
42
  match algorithm:
43
43
  case CryptographicAlgorithmEnum.AES_GCM:
44
44
  return AesGcmCryptographyService(self.secret_key)
45
- raise NotImplementedError(algorithm)
45
+ case _:
46
+ raise NotImplementedError(algorithm)
@@ -6,9 +6,9 @@ from __future__ import annotations
6
6
 
7
7
  import os
8
8
  from pathlib import Path
9
- from typing import ClassVar, Literal, Self
9
+ from typing import Annotated, ClassVar, Literal, Self
10
10
 
11
- from pydantic import BaseModel, ConfigDict, RedisDsn, model_validator
11
+ from pydantic import BaseModel, ConfigDict, Field, RedisDsn, model_validator
12
12
  from pydantic_settings import BaseSettings as PydanticBaseSettings
13
13
  from pydantic_settings import SettingsConfigDict
14
14
  from typing_extensions import Unpack
@@ -173,12 +173,12 @@ class CoreSettingsSchema(BaseSettingsSchema):
173
173
  """
174
174
 
175
175
  debug: bool
176
- title: str
177
176
  base_url: str
178
177
  base_dir: Path = Path(os.getcwd())
179
178
  secret_key: str
180
- cors_origins: list[str]
179
+ cors_origins: Annotated[list[str], Field(default_factory=list)]
181
180
  redis_dsn: RedisDsn | None = None
181
+ sentry_dsn: str | None = None
182
182
 
183
183
  model_config = SettingsConfigDict(
184
184
  env_file='.env',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fast-clean
3
- Version: 1.2.1
3
+ Version: 1.2.3
4
4
  Summary: FastAPI Clean Architecture implementation
5
5
  Author-email: Luferov Victor <luferovvs@yandex.ru>, Orlov Artem <squakrazv@yandex.ru>, Kashapov Rustam <hardtechnik91@gmail.com>
6
6
  Requires-Python: >=3.13
@@ -21,7 +21,7 @@ Requires-Dist: psycopg[binary]>=3.2.4
21
21
  Requires-Dist: pydantic>=2.10.6
22
22
  Requires-Dist: pydantic-settings>=2.8.0
23
23
  Requires-Dist: pyyaml>=6.0.2
24
- Requires-Dist: sentry-sdk>=2.32.0
24
+ Requires-Dist: sentry-sdk[fastapi]>=2.32.0
25
25
  Requires-Dist: snakecase>=1.0.1
26
26
  Requires-Dist: sqlalchemy-utils>=0.41.2
27
27
  Requires-Dist: sqlalchemy[asyncio]>=2.0.38
@@ -33,11 +33,10 @@ Requires-Dist: typer>=0.15.1
33
33
  FastAPI clean architecture implementation
34
34
 
35
35
 
36
-
37
36
  ## Contribution
38
37
 
39
38
  ```
40
39
  git clone git@github.com:Luferov/fast-clean.git
41
- uv sync --all-extras --dev
40
+ uv sync
42
41
  uv run pre-commit install
43
42
  ```
@@ -21,6 +21,7 @@ fast_clean.egg-info/top_level.txt
21
21
  fast_clean/contrib/__init__.py
22
22
  fast_clean/contrib/healthcheck/__init__.py
23
23
  fast_clean/contrib/healthcheck/router.py
24
+ fast_clean/contrib/healthcheck/schemas.py
24
25
  fast_clean/contrib/logging/__init__.py
25
26
  fast_clean/contrib/logging/enums.py
26
27
  fast_clean/contrib/logging/sentry.py
@@ -53,7 +54,6 @@ fast_clean/schemas/exceptions.py
53
54
  fast_clean/schemas/pagination.py
54
55
  fast_clean/schemas/repository.py
55
56
  fast_clean/schemas/request_response.py
56
- fast_clean/schemas/status_response.py
57
57
  fast_clean/services/__init__.py
58
58
  fast_clean/services/lock.py
59
59
  fast_clean/services/seed.py
@@ -14,7 +14,7 @@ psycopg[binary]>=3.2.4
14
14
  pydantic>=2.10.6
15
15
  pydantic-settings>=2.8.0
16
16
  pyyaml>=6.0.2
17
- sentry-sdk>=2.32.0
17
+ sentry-sdk[fastapi]>=2.32.0
18
18
  snakecase>=1.0.1
19
19
  sqlalchemy-utils>=0.41.2
20
20
  sqlalchemy[asyncio]>=2.0.38
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fast-clean"
3
- version = "1.2.1"
3
+ version = "1.2.3"
4
4
  description = "FastAPI Clean Architecture implementation"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -26,7 +26,7 @@ dependencies = [
26
26
  "pydantic>=2.10.6",
27
27
  "pydantic-settings>=2.8.0",
28
28
  "pyyaml>=6.0.2",
29
- "sentry-sdk>=2.32.0",
29
+ "sentry-sdk[fastapi]>=2.32.0",
30
30
  "snakecase>=1.0.1",
31
31
  "sqlalchemy-utils>=0.41.2",
32
32
  "sqlalchemy[asyncio]>=2.0.38",
File without changes
File without changes
File without changes