Skip to content

Commit 192bccf

Browse files
committed
ref: unify
1 parent b897913 commit 192bccf

File tree

109 files changed

+1053
-984
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+1053
-984
lines changed

README.md

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,13 @@
1-
# appname_kebab_case
1+
# app-name-kebab-case
22
Что бы начать, замените в названиях и содержаниях всех файлах:
3-
1. `appname_kebab_case` - на название вашего приложение в [kebab-case](https://developer.mozilla.org/en-US/docs/Glossary/Kebab_case)
4-
2. `appname_snake_case` - на название вашего приложение в [snake_case](https://developer.mozilla.org/en-US/docs/Glossary/Snake_case)
3+
1. `app-name-kebab-case` - на название вашего приложение в kebab-case
4+
2. `app_name_snake_case` - на название вашего приложение в snake_case
5+
2. `app_name_description` - на описание
56

6-
После замените это описание на описание вашего appname_kebab_case.
7+
app_name_description.
78

89
## Развертывание для разработки
910
```bash
10-
git clone https://github.com/emptybutton/appname_kebab_case.git
11-
docker compose -f appname_kebab_case/deployments/dev/docker-compose.yaml up
11+
git clone https://github.com/emptybutton/app-name-kebab-case.git
12+
docker compose -f app-name-kebab-case/deployments/dev/docker-compose.yaml up
1213
```
13-
14-
В контейнере используется своё виртуальное окружение, сохранённое отдельным volume-ом, поэтому можно не пересобирать образ при изменении зависимостей.
15-
16-
Для ide можно сделать отдельное виртуальное окружение в папке проекта:
17-
```bash
18-
uv sync --extra dev --directory appname_snake_case
19-
```
20-
21-
> [!NOTE]
22-
> При изменении зависимостей в одном окружении необходимо синхронизировать другое с первым:
23-
> ```bash
24-
> uv sync --extra dev
25-
> ```

alembic.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[alembic]
44
# path to migration scripts
55
# Use forward slashes (/) also on windows to provide an os agnostic path
6-
script_location = src/appname_snake_case/infrastructure/alembic
6+
script_location = src/app_name_snake_case/infrastructure/alembic
77

88
# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s
99
# Uncomment the line below if you want the files to be prepended with date and time

deployments/dev/backend/Dockerfile

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
FROM ghcr.io/astral-sh/uv:python3.13-alpine AS app
1+
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS app
22

33
WORKDIR /app
4-
COPY . .
54

65
ENV UV_LINK_MODE copy
76
ENV UV_PROJECT_ENVIRONMENT /run/app/.venv
8-
RUN uv sync --extra dev
7+
ENV UV_CACHE_DIR copy /run/app/uv
98

109
ENV PYTHONPATH /app/src:/app/tests
11-
ENV MYPYPATH /app/src:/app/tests
12-
1310
ENV WATCHFILES_FORCE_POLLING true
1411

15-
ENTRYPOINT ["ash", "deployments/dev/backend/entrypoint.sh"]
12+
ENTRYPOINT ["bash", "deployments/dev/backend/entrypoint.sh"]
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
#!/bin/ash
1+
#!/bin/bash
22

3+
uv sync --extra dev
34
source ${UV_PROJECT_ENVIRONMENT}/bin/activate
45
alembic upgrade head
56
$@

deployments/dev/docker-compose.yaml

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
name: appname_kebab_case
1+
name: app-name-kebab-case
22

33
services:
44
backend:
55
build:
66
context: ../../
77
dockerfile: deployments/dev/backend/Dockerfile
88
tags:
9-
- "appname_kebab_case-backend:dev"
10-
container_name: appname_kebab_case-backend
9+
- "app-name-kebab-case-backend:dev"
10+
container_name: app-name-kebab-case-backend
1111
volumes:
1212
- ../..:/app
1313
- backend-data:/run/app
@@ -19,16 +19,11 @@ services:
1919
environment:
2020
JWT_SECRET: super-secret-jwt-secret
2121
POSTGRES_URL: postgresql+psycopg://root:root@postgres/root
22-
command: appname_kebab_case-web-service
23-
healthcheck:
24-
test: wget backend:8000/healthcheck -q -O /dev/null
25-
start_period: 1m
26-
start_interval: 1s
27-
interval: 5s
22+
command: app-name-kebab-case-fastapi-dev
2823

2924
postgres:
3025
image: postgres:16.3-alpine3.19
31-
container_name: appname_kebab_case-postgres
26+
container_name: app-name-kebab-case-postgres
3227
labels:
3328
deployment: dev
3429
volumes:

pyproject.toml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[project]
2-
name = "appname_kebab_case"
2+
name = "app-name-kebab-case"
33
version = "0.1.0"
4-
description = "*description*"
4+
description = "app_name_description"
55
authors = [
66
{name = "Alexander Smolin", email = "[email protected]"}
77
]
@@ -10,6 +10,7 @@ readme = "README.md"
1010
classifiers = ["Private :: Do Not Upload"]
1111
requires-python = "==3.13.*"
1212
dependencies = [
13+
"effectt==0.2.0",
1314
"uvicorn[standard]==0.30.6",
1415
"typenv==0.2.0",
1516
"dishka==1.4.2",
@@ -38,12 +39,13 @@ requires = ["hatchling"]
3839
build-backend = "hatchling.build"
3940

4041
[tool.hatch.build.targets.wheel]
41-
packages = ["src/appname_snake_case"]
42+
packages = ["src/app_name_snake_case"]
4243

4344
[project.scripts]
44-
appname_kebab_case-web-service = "appname_snake_case.entrypoint.web_service.__main__:main"
45+
app-name-kebab-case-fastapi-dev = "app_name_snake_case.entrypoint.web_service.__main__:main"
4546

4647
[tool.mypy]
48+
mypy_path = "$MYPY_CONFIG_FILE_DIR/src:$MYPY_CONFIG_FILE_DIR/tests"
4749
strict = true
4850
no_namespace_packages = true
4951
allow_redefinition = true
@@ -66,8 +68,9 @@ ignore = ["N818", "RUF009", "UP018", "PLR6301", "PLR0913", "PLW0108", "TC006"]
6668
lines-after-imports = 2
6769

6870
[tool.ruff.lint.per-file-ignores]
69-
"src/appname_snake_case/entities/*" = ["PLR2004"]
70-
"src/appname_snake_case/application/*" = ["PLR0917"]
71+
"src/app_name_snake_case/entities/*" = ["PLR2004"]
72+
"src/app_name_snake_case/application/*" = ["PLR0917"]
73+
"src/app_name_snake_case/infrastructure/adapters/*" = ["RUF029"]
7174
"tests/*" = ["S101", "PLR0124", "PLR0917", "S106", "C901"]
7275
"*/alembic/versions/*" = ["S101"]
7376
"__init__.py" = ["PLC0414"]
File renamed without changes.
File renamed without changes.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from abc import ABC, abstractmethod
2+
3+
from app_name_snake_case.entities.time.time import Time
4+
5+
6+
class Clock(ABC):
7+
@abstractmethod
8+
async def get_current_time(self) -> Time: ...

0 commit comments

Comments
 (0)