From 1bac371217e0f132751c20d81504e93c57cb3082 Mon Sep 17 00:00:00 2001 From: Arduinum Date: Thu, 29 Jan 2026 15:20:29 +0300 Subject: [PATCH] fix: deleted python code --- .env.example | 11 -- .pre-commit-config.yaml | 23 --- .python-version | 1 - alembic.ini | 147 ------------------ src/kawai_focus_v2/__init__.py | 2 - src/kawai_focus_v2/api/__init__.py | 0 src/kawai_focus_v2/api/timers/__init__.py | 0 src/kawai_focus_v2/api/timers/router.py | 43 ----- src/kawai_focus_v2/core/__init__.py | 0 src/kawai_focus_v2/core/messages/__init__.py | 0 src/kawai_focus_v2/core/messages/errors.py | 19 --- src/kawai_focus_v2/core/settings.py | 44 ------ src/kawai_focus_v2/database/__init__.py | 0 src/kawai_focus_v2/database/alembic/README | 1 - src/kawai_focus_v2/database/alembic/env.py | 82 ---------- .../database/alembic/script.py.mako | 28 ---- ...25_12_25_1504-503b50886979_create_timer.py | 42 ----- src/kawai_focus_v2/database/cruds.py | 61 -------- src/kawai_focus_v2/database/data.py | 19 --- src/kawai_focus_v2/database/db.py | 33 ---- src/kawai_focus_v2/database/mixins.py | 13 -- src/kawai_focus_v2/database/models.py | 46 ------ src/kawai_focus_v2/database/seed.py | 18 --- src/kawai_focus_v2/main.py | 20 --- src/kawai_focus_v2/schemas/timer.py | 60 ------- src/kawai_focus_v2/start_app.py | 12 -- 26 files changed, 725 deletions(-) delete mode 100644 .env.example delete mode 100644 .python-version delete mode 100644 alembic.ini delete mode 100644 src/kawai_focus_v2/__init__.py delete mode 100644 src/kawai_focus_v2/api/__init__.py delete mode 100644 src/kawai_focus_v2/api/timers/__init__.py delete mode 100644 src/kawai_focus_v2/api/timers/router.py delete mode 100644 src/kawai_focus_v2/core/__init__.py delete mode 100644 src/kawai_focus_v2/core/messages/__init__.py delete mode 100644 src/kawai_focus_v2/core/messages/errors.py delete mode 100644 src/kawai_focus_v2/core/settings.py delete mode 100644 src/kawai_focus_v2/database/__init__.py delete mode 100644 src/kawai_focus_v2/database/alembic/README delete mode 100644 src/kawai_focus_v2/database/alembic/env.py delete mode 100644 src/kawai_focus_v2/database/alembic/script.py.mako delete mode 100644 src/kawai_focus_v2/database/alembic/versions/2025_12_25_1504-503b50886979_create_timer.py delete mode 100644 src/kawai_focus_v2/database/cruds.py delete mode 100644 src/kawai_focus_v2/database/data.py delete mode 100644 src/kawai_focus_v2/database/db.py delete mode 100644 src/kawai_focus_v2/database/mixins.py delete mode 100644 src/kawai_focus_v2/database/models.py delete mode 100644 src/kawai_focus_v2/database/seed.py delete mode 100644 src/kawai_focus_v2/main.py delete mode 100644 src/kawai_focus_v2/schemas/timer.py delete mode 100644 src/kawai_focus_v2/start_app.py diff --git a/.env.example b/.env.example deleted file mode 100644 index e3a4e6c..0000000 --- a/.env.example +++ /dev/null @@ -1,11 +0,0 @@ -# настройки для бд -NAME_DB = "название бд" -ECHO_DB = "булево значение для дебага бд" - -# настройки бекенда -HOST_APP=ip или доменное имя для app -PORT_APP=порт для app -IS_RELOAD=True для разработки, False для обычного использования - -#настройки фронтенда -FRONTEND_ORIGINS=url для cors1,url для cors2 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2844f16..2fbbd11 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,26 +7,3 @@ repos: - id: check-case-conflict - id: check-merge-conflict - id: end-of-file-fixer - - - repo: https://github.com/asottile/pyupgrade - rev: v3.21.2 - hooks: - - id: pyupgrade - args: [ --py313-plus ] - - - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.13.0 - hooks: - - id: ruff-check - args: [ "--fix", "--line-length=120" ] - - - repo: https://foundry.fsky.io/vel/ty-pre-commit - rev: 0.0.3 - hooks: - - id: ty-check - additional_dependencies: - - sqlalchemy - - alembic - - pydantic-settings - - fastapi - - uvicorn diff --git a/.python-version b/.python-version deleted file mode 100644 index 3e388a4..0000000 --- a/.python-version +++ /dev/null @@ -1 +0,0 @@ -3.13.2 diff --git a/alembic.ini b/alembic.ini deleted file mode 100644 index 0010f4a..0000000 --- a/alembic.ini +++ /dev/null @@ -1,147 +0,0 @@ -# A generic, single database configuration. - -[alembic] -# path to migration scripts. -# this is typically a path given in POSIX (e.g. forward slashes) -# format, relative to the token %(here)s which refers to the location of this -# ini file -script_location = %(here)s/src/kawai_focus_v2/database/alembic - -# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s -# Uncomment the line below if you want the files to be prepended with date and time -# see https://alembic.sqlalchemy.org/en/latest/tutorial.html#editing-the-ini-file -# for all available tokens -file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s - -# sys.path path, will be prepended to sys.path if present. -# defaults to the current working directory. for multiple paths, the path separator -# is defined by "path_separator" below. -prepend_sys_path = . - - -# timezone to use when rendering the date within the migration file -# as well as the filename. -# If specified, requires the tzdata library which can be installed by adding -# `alembic[tz]` to the pip requirements. -# string value is passed to ZoneInfo() -# leave blank for localtime -# timezone = - -# max length of characters to apply to the "slug" field -# truncate_slug_length = 40 - -# set to 'true' to run the environment during -# the 'revision' command, regardless of autogenerate -# revision_environment = false - -# set to 'true' to allow .pyc and .pyo files without -# a source .py file to be detected as revisions in the -# versions/ directory -# sourceless = false - -# version location specification; This defaults -# to /versions. When using multiple version -# directories, initial revisions must be specified with --version-path. -# The path separator used here should be the separator specified by "path_separator" -# below. -# version_locations = %(here)s/bar:%(here)s/bat:%(here)s/alembic/versions - -# path_separator; This indicates what character is used to split lists of file -# paths, including version_locations and prepend_sys_path within configparser -# files such as alembic.ini. -# The default rendered in new alembic.ini files is "os", which uses os.pathsep -# to provide os-dependent path splitting. -# -# Note that in order to support legacy alembic.ini files, this default does NOT -# take place if path_separator is not present in alembic.ini. If this -# option is omitted entirely, fallback logic is as follows: -# -# 1. Parsing of the version_locations option falls back to using the legacy -# "version_path_separator" key, which if absent then falls back to the legacy -# behavior of splitting on spaces and/or commas. -# 2. Parsing of the prepend_sys_path option falls back to the legacy -# behavior of splitting on spaces, commas, or colons. -# -# Valid values for path_separator are: -# -# path_separator = : -# path_separator = ; -# path_separator = space -# path_separator = newline -# -# Use os.pathsep. Default configuration used for new projects. -path_separator = os - -# set to 'true' to search source files recursively -# in each "version_locations" directory -# new in Alembic version 1.10 -# recursive_version_locations = false - -# the output encoding used when revision files -# are written from script.py.mako -# output_encoding = utf-8 - -# database URL. This is consumed by the user-maintained env.py script only. -# other means of configuring database URLs may be customized within the env.py -# file. -#sqlalchemy.url = driver://user:pass@localhost/dbname - - -[post_write_hooks] -# post_write_hooks defines scripts or Python functions that are run -# on newly generated revision scripts. See the documentation for further -# detail and examples - -# format using "black" - use the console_scripts runner, against the "black" entrypoint -# hooks = black -# black.type = console_scripts -# black.entrypoint = black -# black.options = -l 79 REVISION_SCRIPT_FILENAME - -# lint with attempts to fix using "ruff" - use the module runner, against the "ruff" module -# hooks = ruff -# ruff.type = module -# ruff.module = ruff -# ruff.options = check --fix REVISION_SCRIPT_FILENAME - -# Alternatively, use the exec runner to execute a binary found on your PATH -hooks = ruff -ruff.type = exec -ruff.executable = uv -ruff.options = run ruff format REVISION_SCRIPT_FILENAME - -# Logging configuration. This is also consumed by the user-maintained -# env.py script only. -[loggers] -keys = root,sqlalchemy,alembic - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARNING -handlers = console -qualname = - -[logger_sqlalchemy] -level = WARNING -handlers = -qualname = sqlalchemy.engine - -[logger_alembic] -level = INFO -handlers = -qualname = alembic - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S diff --git a/src/kawai_focus_v2/__init__.py b/src/kawai_focus_v2/__init__.py deleted file mode 100644 index 852482e..0000000 --- a/src/kawai_focus_v2/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -def main() -> None: - print("Hello from kawai-focus-v2!") diff --git a/src/kawai_focus_v2/api/__init__.py b/src/kawai_focus_v2/api/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/kawai_focus_v2/api/timers/__init__.py b/src/kawai_focus_v2/api/timers/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/kawai_focus_v2/api/timers/router.py b/src/kawai_focus_v2/api/timers/router.py deleted file mode 100644 index 8b5c476..0000000 --- a/src/kawai_focus_v2/api/timers/router.py +++ /dev/null @@ -1,43 +0,0 @@ -from fastapi import APIRouter, Depends, status - -from kawai_focus_v2.database.cruds import get_timers, get_timer, new_timer, update_timer, del_timer -from kawai_focus_v2.schemas.timer import TimerModel, TimerListModel, NewTimerModel, UpdateTimerModel -from kawai_focus_v2.database.db import get_db_instance, SessionDB - - -router = APIRouter(prefix='/timers', tags=['timers']) - - -@router.get('/', response_model=list[TimerListModel], status_code=status.HTTP_200_OK) -def list_timers(db: SessionDB = Depends(get_db_instance)) -> list[TimerListModel]: - """Ручка для получения списка таймеров""" - - return get_timers(db=db) - - -@router.get('/{id}', response_model=TimerModel, status_code=status.HTTP_200_OK) -def timer(id: int, db: SessionDB = Depends(get_db_instance)) -> TimerModel: - """Ручка для получения таймера""" - - return get_timer(timer_id=id, db=db) - - -@router.post('/new', response_model=TimerModel, status_code=status.HTTP_201_CREATED) -def add_timer(data: NewTimerModel, db: SessionDB = Depends(get_db_instance)) -> TimerModel: - """Ручка для создания нового таймера""" - - return new_timer(data=data, db=db) - - -@router.patch('/{id}', response_model=TimerModel, status_code=status.HTTP_200_OK) -def update_data_timer(id: int, data: UpdateTimerModel, db: SessionDB = Depends(get_db_instance)) -> TimerModel: - """Ручка для обновления таймера""" - - return update_timer(timer_id=id, data=data, db=db) - - -@router.delete('/{id}', status_code=status.HTTP_204_NO_CONTENT) -def delete_timer(id: int, db: SessionDB = Depends(get_db_instance)) -> None: - """Ручка для удаления таймера""" - - del_timer(timer_id=id, db=db) diff --git a/src/kawai_focus_v2/core/__init__.py b/src/kawai_focus_v2/core/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/kawai_focus_v2/core/messages/__init__.py b/src/kawai_focus_v2/core/messages/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/kawai_focus_v2/core/messages/errors.py b/src/kawai_focus_v2/core/messages/errors.py deleted file mode 100644 index cb7bea8..0000000 --- a/src/kawai_focus_v2/core/messages/errors.py +++ /dev/null @@ -1,19 +0,0 @@ -from enum import Enum - - -class ErrorMessage(Enum): - """Сообщения об ошибках""" - - NO_TIME = 'Не указано время таймера!' - NEGATIVE_TIME = 'Время таймера не может быть отрицательным!' - SS_MM_BIG = 'Секунды и минуты не могут быть больше 59!' - HH_BIG = 'Часы не могут быть больше 23!' - FOLDER_NOT_FOUND = 'Папка не найдена!' - JSON_NOT_FOUND = 'Файл json не найден!' - TYPE_DICT = 'Тип данных не является словарем!' - NOT_INT_TYPE = 'Тип данных не является целым числом!' - KEY_ERROR = 'Ключ не найден!' - CONNECTION_ERROR = 'Подключение к базе данных не удалось!' - INTEGRITY_ERROR = 'Ошибка целостности данных (нарушение уникальности или связей)!' - OPERATIONAL_ERROR = 'Ошибка выполнения SQL-запроса (возможная блокировка или повреждение БД)!' - VALIDATION_ERROR = 'Ошибка валидации данных (несоответствие ожидаемой схеме)!' diff --git a/src/kawai_focus_v2/core/settings.py b/src/kawai_focus_v2/core/settings.py deleted file mode 100644 index c43a5f2..0000000 --- a/src/kawai_focus_v2/core/settings.py +++ /dev/null @@ -1,44 +0,0 @@ -from pydantic_settings import BaseSettings, SettingsConfigDict -from pydantic import Field - - -class ModelConfig(BaseSettings): - """Модель конфигурации""" - - model_config = SettingsConfigDict( - env_file='.env', - env_file_encoding='utf-8', - extra='ignore' - ) - - -class SettingsDB(ModelConfig): - """Класс для данных БД""" - - name_db: str - echo_db: bool - - @property - def get_url_db(self) -> str: - """Метод вернёт URL для подключения к БД""" - - return f'sqlite:///{self.name_db}' - - -class SettingsApp(ModelConfig): - """Настройки для приложения""" - - port_app: int - host_app: str - is_reload: bool - frontend_origins: str - - -class Settings(ModelConfig): - """Класс для данных конфига""" - - app_settings: SettingsApp = Field(default_factory=SettingsApp) - db_settings: SettingsDB = Field(default_factory=SettingsDB) - - -settings = Settings() diff --git a/src/kawai_focus_v2/database/__init__.py b/src/kawai_focus_v2/database/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/kawai_focus_v2/database/alembic/README b/src/kawai_focus_v2/database/alembic/README deleted file mode 100644 index 2500aa1..0000000 --- a/src/kawai_focus_v2/database/alembic/README +++ /dev/null @@ -1 +0,0 @@ -Generic single-database configuration. diff --git a/src/kawai_focus_v2/database/alembic/env.py b/src/kawai_focus_v2/database/alembic/env.py deleted file mode 100644 index 3b3493e..0000000 --- a/src/kawai_focus_v2/database/alembic/env.py +++ /dev/null @@ -1,82 +0,0 @@ -from logging.config import fileConfig - -from sqlalchemy import engine_from_config -from sqlalchemy import pool - -from alembic import context - -from kawai_focus_v2.core.settings import settings -from kawai_focus_v2.database.models import Base - -# this is the Alembic Config object, which provides -# access to the values within the .ini file in use. -config = context.config -config.set_main_option("sqlalchemy.url", settings.db_settings.get_url_db) - -# Interpret the config file for Python logging. -# This line sets up loggers basically. -if config.config_file_name is not None: - fileConfig(config.config_file_name) - -# add your model's MetaData object here -# for 'autogenerate' support -# from myapp import mymodel -# target_metadata = mymodel.Base.metadata -target_metadata = Base.metadata - -# other values from the config, defined by the needs of env.py, -# can be acquired: -# my_important_option = config.get_main_option("my_important_option") -# ... etc. - - -def run_migrations_offline() -> None: - """Run migrations in 'offline' mode. - - This configures the context with just a URL - and not an Engine, though an Engine is acceptable - here as well. By skipping the Engine creation - we don't even need a DBAPI to be available. - - Calls to context.execute() here emit the given string to the - script output. - - """ - url = config.get_main_option("sqlalchemy.url") - context.configure( - url=url, - target_metadata=target_metadata, - literal_binds=True, - dialect_opts={"paramstyle": "named"}, - ) - - with context.begin_transaction(): - context.run_migrations() - - -def run_migrations_online() -> None: - """Run migrations in 'online' mode. - - In this scenario we need to create an Engine - and associate a connection with the context. - - """ - connectable = engine_from_config( - config.get_section(config.config_ini_section, {}), - prefix="sqlalchemy.", - poolclass=pool.NullPool, - ) - - with connectable.connect() as connection: - context.configure( - connection=connection, target_metadata=target_metadata - ) - - with context.begin_transaction(): - context.run_migrations() - - -if context.is_offline_mode(): - run_migrations_offline() -else: - run_migrations_online() diff --git a/src/kawai_focus_v2/database/alembic/script.py.mako b/src/kawai_focus_v2/database/alembic/script.py.mako deleted file mode 100644 index 1101630..0000000 --- a/src/kawai_focus_v2/database/alembic/script.py.mako +++ /dev/null @@ -1,28 +0,0 @@ -"""${message} - -Revision ID: ${up_revision} -Revises: ${down_revision | comma,n} -Create Date: ${create_date} - -""" -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa -${imports if imports else ""} - -# revision identifiers, used by Alembic. -revision: str = ${repr(up_revision)} -down_revision: Union[str, Sequence[str], None] = ${repr(down_revision)} -branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)} -depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)} - - -def upgrade() -> None: - """Upgrade schema.""" - ${upgrades if upgrades else "pass"} - - -def downgrade() -> None: - """Downgrade schema.""" - ${downgrades if downgrades else "pass"} diff --git a/src/kawai_focus_v2/database/alembic/versions/2025_12_25_1504-503b50886979_create_timer.py b/src/kawai_focus_v2/database/alembic/versions/2025_12_25_1504-503b50886979_create_timer.py deleted file mode 100644 index 901f1fd..0000000 --- a/src/kawai_focus_v2/database/alembic/versions/2025_12_25_1504-503b50886979_create_timer.py +++ /dev/null @@ -1,42 +0,0 @@ -"""Create Timer - -Revision ID: 503b50886979 -Revises: -Create Date: 2025-12-25 15:04:03.485293 - -""" - -from collections.abc import Sequence - -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision: str = "503b50886979" -down_revision: str | Sequence[str] | None = None -branch_labels: str | Sequence[str] | None = None -depends_on: str | Sequence[str] | None = None - - -def upgrade() -> None: - """Upgrade schema.""" - # ### commands auto generated by Alembic - please adjust! ### - op.create_table( - "timer", - sa.Column("название", sa.String(length=200), nullable=False), - sa.Column("время помидора", sa.Integer(), nullable=False), - sa.Column("время перерыва", sa.Integer(), nullable=False), - sa.Column("время долгого перерыва", sa.Integer(), nullable=False), - sa.Column("количество помидоров", sa.Integer(), nullable=False), - sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), - sa.PrimaryKeyConstraint("id"), - ) - # ### end Alembic commands ### - - -def downgrade() -> None: - """Downgrade schema.""" - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table("timer") - # ### end Alembic commands ### diff --git a/src/kawai_focus_v2/database/cruds.py b/src/kawai_focus_v2/database/cruds.py deleted file mode 100644 index 402a97d..0000000 --- a/src/kawai_focus_v2/database/cruds.py +++ /dev/null @@ -1,61 +0,0 @@ -from sqlalchemy import select - -from kawai_focus_v2.database.models import Timer -from kawai_focus_v2.schemas.timer import TimerModel, TimerListModel, UpdateTimerModel, NewTimerModel -from kawai_focus_v2.database.db import get_db_instance, SessionDB - - -def get_timer(timer_id: int, db: SessionDB) -> TimerModel: - """Функция для получения данных таймера""" - - db = get_db_instance() - with db.get_session() as session: - timer = session.get(Timer, timer_id) - return TimerModel.model_validate(timer, from_attributes=True) - - -def get_timers(db: SessionDB) -> list[TimerListModel]: - """Функция для получения списка таймеров""" - - with db.get_session() as session: - timers = session.execute( - select(Timer.id, Timer.title, Timer.pomodoro_time, Timer.count_pomodoro) - ).all() - - return [TimerListModel.model_validate(timer, from_attributes=True) for timer in timers] - - -def new_timer(data: NewTimerModel, db: SessionDB) -> TimerModel: - """Функция для создания нового таймера""" - - with db.get_session() as session: - timer = Timer(**data.model_dump()) - session.add(timer) - session.commit() - session.refresh(timer) - - return TimerModel.model_validate(timer, from_attributes=True) - - -def update_timer(timer_id: int, data: UpdateTimerModel, db: SessionDB) -> TimerModel: - """Функция для обновления таймера""" - - with db.get_session() as session: - timer = session.get(Timer, timer_id) - - for field, value in data.model_dump(exclude_unset=True).items(): - setattr(timer, field, value) - - session.commit() - session.refresh(timer) - - return TimerModel.model_validate(timer, from_attributes=True) - - -def del_timer(timer_id: int, db: SessionDB) -> None: - """Функция для удаления таймера""" - - with db.get_session() as session: - timer = session.get(Timer, timer_id) - session.delete(timer) - session.commit() diff --git a/src/kawai_focus_v2/database/data.py b/src/kawai_focus_v2/database/data.py deleted file mode 100644 index 84a47a4..0000000 --- a/src/kawai_focus_v2/database/data.py +++ /dev/null @@ -1,19 +0,0 @@ -from kawai_focus_v2.schemas.timer import NewTimerModel - - -data_timers = [ - NewTimerModel( - title='Timer mini example', - pomodoro_time=10, - break_time=3, - break_long_time=15, - count_pomodoro=2 - ), - NewTimerModel( - title='Timer max example', - pomodoro_time=90, - break_time=10, - break_long_time=40, - count_pomodoro=8 - ), -] diff --git a/src/kawai_focus_v2/database/db.py b/src/kawai_focus_v2/database/db.py deleted file mode 100644 index afb4739..0000000 --- a/src/kawai_focus_v2/database/db.py +++ /dev/null @@ -1,33 +0,0 @@ -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker, Session -from functools import lru_cache - -from kawai_focus_v2.core.settings import settings - - -class SessionDB: - """Класс для управления подключением к базе данных.""" - - def __init__(self) -> None: - self._engine = create_engine( - url=settings.db_settings.get_url_db, - echo=settings.db_settings.echo_db - ) - self._session_factory = sessionmaker( - bind=self._engine, - expire_on_commit=False, - autocommit=False - ) - - @property - def get_session(self) -> sessionmaker[Session]: - """Метод для получения сессии""" - - return self._session_factory - - -@lru_cache(maxsize=1) -def get_db_instance() -> SessionDB: - """Возвращает один и тот же объект SeesionDB""" - - return SessionDB() diff --git a/src/kawai_focus_v2/database/mixins.py b/src/kawai_focus_v2/database/mixins.py deleted file mode 100644 index 73c1149..0000000 --- a/src/kawai_focus_v2/database/mixins.py +++ /dev/null @@ -1,13 +0,0 @@ -from sqlalchemy.orm import Mapped, mapped_column -from sqlalchemy import Integer - - -class IDMixin: - """Базовый класс для моделей с id""" - - id: Mapped[int] = mapped_column( - Integer, - name='id', - primary_key=True, - autoincrement=True - ) diff --git a/src/kawai_focus_v2/database/models.py b/src/kawai_focus_v2/database/models.py deleted file mode 100644 index 11bd4ee..0000000 --- a/src/kawai_focus_v2/database/models.py +++ /dev/null @@ -1,46 +0,0 @@ -from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped -from sqlalchemy import Integer, String - -from kawai_focus_v2.database.mixins import IDMixin - - -class Base(DeclarativeBase): - """Класс для корректной работы аннотаций""" - - pass - - -class Timer(IDMixin, Base): - """Модель таймера""" - - __tablename__ = 'timer' - - title: Mapped[str] = mapped_column( - String(length=200), - name='название', - nullable=False - ) - - pomodoro_time: Mapped[int] = mapped_column( - Integer, - name='время помидора', - nullable=False - ) - - break_time: Mapped[int] = mapped_column( - Integer, - name='время перерыва', - nullable=False - ) - - break_long_time: Mapped[int] = mapped_column( - Integer, - name='время долгого перерыва', - nullable=False - ) - - count_pomodoro: Mapped[int] = mapped_column( - Integer, - name='количество помидоров', - nullable=False - ) diff --git a/src/kawai_focus_v2/database/seed.py b/src/kawai_focus_v2/database/seed.py deleted file mode 100644 index 5927385..0000000 --- a/src/kawai_focus_v2/database/seed.py +++ /dev/null @@ -1,18 +0,0 @@ -from kawai_focus_v2.schemas.timer import NewTimerModel -from kawai_focus_v2.database.cruds import new_timer -from kawai_focus_v2.database.db import get_db_instance -from kawai_focus_v2.database.data import data_timers - - -def new_temers(data: list[NewTimerModel]) -> None: - """Заполняет базу данных образцами таймеров""" - - db = get_db_instance() - for timer in data: - new_timer(data=timer, db=db) - - -def start_filling_data() -> None: - """Функция для заполнения бд данными""" - - new_temers(data=data_timers) diff --git a/src/kawai_focus_v2/main.py b/src/kawai_focus_v2/main.py deleted file mode 100644 index 6e39855..0000000 --- a/src/kawai_focus_v2/main.py +++ /dev/null @@ -1,20 +0,0 @@ -from fastapi import FastAPI -from fastapi.middleware.cors import CORSMiddleware - -from kawai_focus_v2.api.timers.router import router as timers_router -from kawai_focus_v2.core.settings import settings - -app = FastAPI(title='Kawai-Focus') - -# Настройка CORS -origins = settings.app_settings.frontend_origins.split(',') - -app.add_middleware( - CORSMiddleware, # type: ignore[arg-type] - allow_origins=origins, # Разрешаем запросы с этих адресов - allow_credentials=True, - allow_methods=['*'], # Разрешаем все методы (GET, POST, etc.) - allow_headers=['*'], # Разрешаем все заголовки -) - -app.include_router(timers_router, prefix='/api') diff --git a/src/kawai_focus_v2/schemas/timer.py b/src/kawai_focus_v2/schemas/timer.py deleted file mode 100644 index e2b37ee..0000000 --- a/src/kawai_focus_v2/schemas/timer.py +++ /dev/null @@ -1,60 +0,0 @@ -from pydantic import BaseModel, field_validator, Field -from kawai_focus_v2.core.messages.errors import ErrorMessage - - -class TimerModel(BaseModel): - """Модель схемы данных таймера""" - - id: int - title: str - pomodoro_time: int - break_time: int - break_long_time: int - count_pomodoro: int - - -class NewTimerModel(BaseModel): - """Модель схемы нового таймера""" - - title: str - pomodoro_time: int - break_time: int - break_long_time: int - count_pomodoro: int - - -class UpdateTimerModel(BaseModel): - """Модель схемы обновления данных таймера""" - - title: str | None = None - pomodoro_time: int | None = None - break_time: int | None = None - break_long_time: int | None = None - count_pomodoro: int | None = None - - -class TimerListModel(BaseModel): - """Модель схемы данных таймера для списка""" - - id: int - title: str - pomodoro_time: int - count_pomodoro: int - - -class TimerTimeModel(BaseModel): - """Модель схемы данных времени таймера""" - - hh: int = Field(0, ge=0, le=23) - mm: int = Field(0, ge=0, le=59) - - @field_validator('hh', 'mm') - @classmethod - def check_all_time_fields(cls, value: int) -> int: - """Метод валидирует все поля времени""" - - # гарантирует, что время не равно 00:00:00 - if value == 0: - raise ValueError(ErrorMessage.NO_TIME.value) - - return value diff --git a/src/kawai_focus_v2/start_app.py b/src/kawai_focus_v2/start_app.py deleted file mode 100644 index a01f8fa..0000000 --- a/src/kawai_focus_v2/start_app.py +++ /dev/null @@ -1,12 +0,0 @@ -from kawai_focus_v2.core.settings import settings - -import uvicorn - - -def run(): - uvicorn.run( - 'kawai_focus_v2.main:app', - host=settings.app_settings.host_app, - port=settings.app_settings.port_app, - reload=settings.app_settings.is_reload - )