tiny-service-core 0.2.0__tar.gz → 0.2.1__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 (21) hide show
  1. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/PKG-INFO +4 -4
  2. tiny_service_core-0.2.1/pyproject.toml +130 -0
  3. tiny_service_core-0.2.0/pyproject.toml → tiny_service_core-0.2.1/pyproject.toml.orig +3 -3
  4. tiny_service_core-0.2.1/src/core/utils.py +7 -0
  5. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/README.md +0 -0
  6. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/__init__.py +0 -0
  7. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/app.py +0 -0
  8. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/config.py +0 -0
  9. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/crypto.py +0 -0
  10. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/deps/__init__.py +0 -0
  11. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/deps/auth.py +0 -0
  12. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/deps/cache.py +0 -0
  13. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/deps/db.py +0 -0
  14. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/deps/http_client.py +0 -0
  15. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/deps/user_ip.py +0 -0
  16. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/excs.py +0 -0
  17. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/lifespan.py +0 -0
  18. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/lock.py +0 -0
  19. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/main.py +0 -0
  20. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/sentry.py +0 -0
  21. {tiny_service_core-0.2.0 → tiny_service_core-0.2.1}/src/core/typing.py +0 -0
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: tiny-service-core
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: 🪐 Shared functionality for tiny microservices
5
5
  Keywords: async,fastapi,microservice,core
6
6
  Author: Aliaksei Urbanski
7
7
  Author-email: Aliaksei Urbanski <aliaksei.urbanski@gmail.com>
8
- License: MIT
9
- Classifier: License :: OSI Approved :: MIT License
8
+ License-Expression: MIT
10
9
  Classifier: Development Status :: 4 - Beta
11
10
  Classifier: Environment :: Web Environment
12
11
  Classifier: Framework :: AsyncIO
@@ -36,6 +35,7 @@ Requires-Dist: asyncpg ; extra == 'db'
36
35
  Requires-Dist: sentry-sdk[asyncpg,sqlalchemy] ; extra == 'db'
37
36
  Requires-Dist: sqlmodel ; extra == 'db'
38
37
  Requires-Dist: fastapi[standard] ; extra == 'dev'
38
+ Requires-Dist: freezegun ; extra == 'dev'
39
39
  Requires-Dist: httpx2 ; extra == 'http-client'
40
40
  Requires-Dist: python-multipart ; extra == 'multipart'
41
41
  Maintainer: Aliaksei Urbanski
@@ -0,0 +1,130 @@
1
+ [project]
2
+ name = "tiny-service-core"
3
+ description = "🪐 Shared functionality for tiny microservices"
4
+ version = "0.2.1"
5
+ readme = "README.md"
6
+ license = "MIT"
7
+ classifiers = [
8
+ "Development Status :: 4 - Beta",
9
+ "Environment :: Web Environment",
10
+ "Framework :: AsyncIO",
11
+ "Framework :: FastAPI",
12
+ "Framework :: Pydantic",
13
+ "Intended Audience :: Developers",
14
+ "Operating System :: OS Independent",
15
+ "Topic :: Internet",
16
+ "Topic :: Internet :: WWW/HTTP",
17
+ "Topic :: Internet :: WWW/HTTP :: HTTP Servers",
18
+ "Topic :: Software Development",
19
+ "Topic :: Software Development :: Libraries",
20
+ "Topic :: Software Development :: Libraries :: Application Frameworks",
21
+ "Topic :: Software Development :: Libraries :: Python Modules",
22
+ "Typing :: Typed",
23
+ "Programming Language :: Python",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Programming Language :: Python :: 3.13",
26
+ "Programming Language :: Python :: 3.14",
27
+ "Programming Language :: Python :: Implementation :: CPython",
28
+ ]
29
+ keywords = [
30
+ "async",
31
+ "fastapi",
32
+ "microservice",
33
+ "core",
34
+ ]
35
+ requires-python = ">=3.12"
36
+ dependencies = [
37
+ "fastapi",
38
+ "pydantic-settings",
39
+ "sentry-sdk[fastapi]",
40
+ ]
41
+
42
+ [[project.authors]]
43
+ name = "Aliaksei Urbanski"
44
+ email = "aliaksei.urbanski@gmail.com"
45
+
46
+ [[project.maintainers]]
47
+ name = "Aliaksei Urbanski"
48
+ email = "aliaksei.urbanski@gmail.com"
49
+
50
+ [project.optional-dependencies]
51
+ dev = [
52
+ "fastapi[standard]",
53
+ "freezegun",
54
+ ]
55
+ cache = ["redis"]
56
+ db = [
57
+ "alembic",
58
+ "asyncpg",
59
+ "sentry-sdk[asyncpg,sqlalchemy]",
60
+ "sqlmodel",
61
+ ]
62
+ http-client = ["httpx2"]
63
+ multipart = ["python-multipart"]
64
+
65
+ [project.urls]
66
+ Repository = "https://github.com/Jamim/tiny-service-core"
67
+ Issues = "https://github.com/Jamim/tiny-service-core/issues"
68
+
69
+ [dependency-groups]
70
+ lint = [
71
+ "mypy",
72
+ "ruff",
73
+ ]
74
+ test = [
75
+ "pytest",
76
+ "pytest-cov",
77
+ "pytest-env",
78
+ ]
79
+
80
+ [build-system]
81
+ requires = ["uv_build<1.0"]
82
+ build-backend = "uv_build"
83
+
84
+ [tool.uv.build-backend]
85
+ module-name = "core"
86
+
87
+ [tool.ruff]
88
+ line-length = 79
89
+
90
+ [tool.ruff.format]
91
+ quote-style = "single"
92
+
93
+ [tool.ruff.lint]
94
+ select = [
95
+ "E",
96
+ "F",
97
+ "UP",
98
+ "B",
99
+ "SIM",
100
+ "I",
101
+ ]
102
+
103
+ [tool.ruff.lint.per-file-ignores]
104
+ "src/core/__init__.py" = [
105
+ "F401",
106
+ "E402",
107
+ ]
108
+ "src/core/deps/__init__.py" = ["F401"]
109
+
110
+ [tool.ruff.lint.isort]
111
+ known-local-folder = ["core"]
112
+
113
+ [tool.mypy]
114
+ mypy_path = "stubs"
115
+ files = "src/**/*.py"
116
+ plugins = "pydantic.mypy"
117
+ strict = true
118
+
119
+ [tool.pytest.ini_options]
120
+ addopts = "--cov core"
121
+
122
+ [tool.pytest_env]
123
+ APP_PROJ = "tiny-service"
124
+ APP_NAME = "core"
125
+ APP_ENV = "test"
126
+ APP_KEY = "42"
127
+ DB_URL = "postgresql+asyncpg://foo:bar@127.0.0.1/dummy"
128
+
129
+ [tool.coverage.run]
130
+ branch = true
@@ -3,10 +3,10 @@ name = "tiny-service-core"
3
3
  description = "🪐 Shared functionality for tiny microservices"
4
4
 
5
5
  # https://github.com/astral-sh/uv/issues/11718
6
- version = "0.2.0"
6
+ version = "0.2.1"
7
7
 
8
8
  readme = "README.md"
9
- license = { text = "MIT" }
9
+ license = "MIT"
10
10
 
11
11
  authors = [
12
12
  { name = "Aliaksei Urbanski", email = "aliaksei.urbanski@gmail.com" },
@@ -16,7 +16,6 @@ maintainers = [
16
16
  ]
17
17
 
18
18
  classifiers = [
19
- "License :: OSI Approved :: MIT License",
20
19
  "Development Status :: 4 - Beta",
21
20
  "Environment :: Web Environment",
22
21
  "Framework :: AsyncIO",
@@ -50,6 +49,7 @@ dependencies = [
50
49
  [project.optional-dependencies]
51
50
  dev = [
52
51
  "fastapi[standard]",
52
+ "freezegun",
53
53
  ]
54
54
  cache = [
55
55
  "redis",
@@ -0,0 +1,7 @@
1
+ from datetime import UTC, datetime
2
+
3
+
4
+ def now() -> datetime:
5
+ """Return current UTC timestamp as a naive datetime."""
6
+
7
+ return datetime.now(UTC).replace(tzinfo=None)