diff --git a/fooder/app.py b/fooder/app.py index 624976a..5f414d7 100644 --- a/fooder/app.py +++ b/fooder/app.py @@ -1,8 +1,8 @@ from fastapi import FastAPI -from .router import router -from .settings import Settings from fastapi.middleware.cors import CORSMiddleware +from .router import router +from .settings import Settings app = FastAPI(title="Fooder") app.include_router(router) diff --git a/fooder/auth.py b/fooder/auth.py index a07c21f..463ccce 100644 --- a/fooder/auth.py +++ b/fooder/auth.py @@ -1,16 +1,17 @@ +from datetime import datetime, timedelta +from typing import Annotated + +from fastapi import Depends, HTTPException +from fastapi.security import OAuth2PasswordBearer +from fastapi_users.password import PasswordHelper +from jose import JWTError, jwt from passlib.context import CryptContext from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker -from jose import JWTError, jwt -from fastapi.security import OAuth2PasswordBearer -from fastapi import Depends, HTTPException -from fastapi_users.password import PasswordHelper -from typing import Annotated -from datetime import datetime, timedelta -from .settings import Settings -from .domain.user import User -from .domain.token import RefreshToken -from .db import get_session +from .db import get_session +from .domain.token import RefreshToken +from .domain.user import User +from .settings import Settings pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") oauth2_scheme = OAuth2PasswordBearer(tokenUrl="api/token") diff --git a/fooder/controller/base.py b/fooder/controller/base.py index 6b0cce3..429f35d 100644 --- a/fooder/controller/base.py +++ b/fooder/controller/base.py @@ -1,10 +1,11 @@ from typing import Annotated, Any + from fastapi import Depends from sqlalchemy.ext.asyncio import async_sessionmaker -from ..db import get_session -from ..auth import get_current_user, authorize_api_key -from ..domain.user import User +from ..auth import authorize_api_key, get_current_user +from ..db import get_session +from ..domain.user import User AsyncSession = Annotated[async_sessionmaker, Depends(get_session)] UserDependency = Annotated[User, Depends(get_current_user)] diff --git a/fooder/controller/diary.py b/fooder/controller/diary.py index f2bacca..91f6396 100644 --- a/fooder/controller/diary.py +++ b/fooder/controller/diary.py @@ -1,8 +1,9 @@ from datetime import date + from fastapi import HTTPException -from ..model.diary import Diary from ..domain.diary import Diary as DBDiary +from ..model.diary import Diary from .base import AuthorizedController diff --git a/fooder/controller/entry.py b/fooder/controller/entry.py index fedee25..a2772dc 100644 --- a/fooder/controller/entry.py +++ b/fooder/controller/entry.py @@ -1,8 +1,8 @@ from fastapi import HTTPException -from ..model.entry import Entry, CreateEntryPayload, UpdateEntryPayload from ..domain.entry import Entry as DBEntry from ..domain.meal import Meal as DBMeal +from ..model.entry import CreateEntryPayload, Entry, UpdateEntryPayload from .base import AuthorizedController diff --git a/fooder/controller/meal.py b/fooder/controller/meal.py index aa2216f..717c45f 100644 --- a/fooder/controller/meal.py +++ b/fooder/controller/meal.py @@ -1,15 +1,15 @@ from fastapi import HTTPException +from ..domain.diary import Diary as DBDiary +from ..domain.meal import Meal as DBMeal +from ..domain.preset import Preset as DBPreset from ..model.meal import ( - Meal, - CreateMealPayload, - SaveMealPayload, CreateMealFromPresetPayload, + CreateMealPayload, + Meal, + SaveMealPayload, ) from ..model.preset import Preset -from ..domain.meal import Meal as DBMeal -from ..domain.diary import Diary as DBDiary -from ..domain.preset import Preset as DBPreset from .base import AuthorizedController diff --git a/fooder/controller/preset.py b/fooder/controller/preset.py index 2bfb9e2..9ed0367 100644 --- a/fooder/controller/preset.py +++ b/fooder/controller/preset.py @@ -1,8 +1,9 @@ from typing import AsyncIterator, Optional + from fastapi import HTTPException -from ..model.preset import Preset, PresetDetails from ..domain.preset import Preset as DBPreset +from ..model.preset import Preset, PresetDetails from .base import AuthorizedController diff --git a/fooder/controller/product.py b/fooder/controller/product.py index cc5478a..d4a83ff 100644 --- a/fooder/controller/product.py +++ b/fooder/controller/product.py @@ -2,9 +2,9 @@ from typing import AsyncIterator, Optional from fastapi import HTTPException -from ..utils import product_finder -from ..model.product import Product, CreateProductPayload from ..domain.product import Product as DBProduct +from ..model.product import CreateProductPayload, Product +from ..utils import product_finder from .base import AuthorizedController diff --git a/fooder/controller/tasks.py b/fooder/controller/tasks.py index 995fe23..c5f37c8 100644 --- a/fooder/controller/tasks.py +++ b/fooder/controller/tasks.py @@ -1,4 +1,5 @@ from fastapi import HTTPException + from ..domain.product import Product as DBProduct from .base import TasksSessionController diff --git a/fooder/controller/token.py b/fooder/controller/token.py index 4ffa688..b0b3445 100644 --- a/fooder/controller/token.py +++ b/fooder/controller/token.py @@ -1,15 +1,15 @@ from fastapi import HTTPException from fastapi.security import OAuth2PasswordRequestForm -from ..model.token import Token, RefreshTokenPayload -from ..domain.user import User as DBUser -from .base import BaseController from ..auth import ( authenticate_user, create_access_token, create_refresh_token, verify_refresh_token, ) +from ..domain.user import User as DBUser +from ..model.token import RefreshTokenPayload, Token +from .base import BaseController class CreateToken(BaseController): diff --git a/fooder/controller/user.py b/fooder/controller/user.py index 6664a3f..de48c9d 100644 --- a/fooder/controller/user.py +++ b/fooder/controller/user.py @@ -1,7 +1,7 @@ from fastapi import HTTPException -from ..model.user import User, CreateUserPayload from ..domain.user import User as DBUser +from ..model.user import CreateUserPayload, User from .base import BaseController diff --git a/fooder/domain/base.py b/fooder/domain/base.py index 7f11661..d008cbc 100644 --- a/fooder/domain/base.py +++ b/fooder/domain/base.py @@ -1,4 +1,4 @@ -from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, declared_attr +from sqlalchemy.orm import DeclarativeBase, Mapped, declared_attr, mapped_column class Base(DeclarativeBase): diff --git a/fooder/domain/diary.py b/fooder/domain/diary.py index ee7592f..4b81c72 100644 --- a/fooder/domain/diary.py +++ b/fooder/domain/diary.py @@ -1,14 +1,14 @@ -from sqlalchemy.orm import relationship, Mapped, mapped_column, joinedload -from sqlalchemy import ForeignKey, Integer, Date -from sqlalchemy import select -from sqlalchemy.sql.selectable import Select -from sqlalchemy.ext.asyncio import AsyncSession import datetime from typing import Optional +from sqlalchemy import Date, ForeignKey, Integer, select +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy.orm import Mapped, joinedload, mapped_column, relationship +from sqlalchemy.sql.selectable import Select + from .base import Base, CommonMixin -from .meal import Meal from .entry import Entry +from .meal import Meal class Diary(Base, CommonMixin): diff --git a/fooder/domain/entry.py b/fooder/domain/entry.py index 6f78b03..37e0003 100644 --- a/fooder/domain/entry.py +++ b/fooder/domain/entry.py @@ -1,11 +1,11 @@ -from sqlalchemy.orm import Mapped, mapped_column, relationship, joinedload -from sqlalchemy import ForeignKey, Integer, DateTime, Boolean -from sqlalchemy.ext.asyncio import AsyncSession -from sqlalchemy.exc import IntegrityError -from sqlalchemy import select, update from datetime import datetime from typing import Optional +from sqlalchemy import Boolean, DateTime, ForeignKey, Integer, select, update +from sqlalchemy.exc import IntegrityError +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy.orm import Mapped, joinedload, mapped_column, relationship + from .base import Base, CommonMixin from .product import Product diff --git a/fooder/domain/meal.py b/fooder/domain/meal.py index 917fff2..4066afd 100644 --- a/fooder/domain/meal.py +++ b/fooder/domain/meal.py @@ -1,10 +1,10 @@ -from sqlalchemy.orm import relationship, Mapped, mapped_column, joinedload -from sqlalchemy import ForeignKey, Integer -from sqlalchemy import select -from sqlalchemy.ext.asyncio import AsyncSession -from sqlalchemy.exc import IntegrityError from typing import Optional +from sqlalchemy import ForeignKey, Integer, select +from sqlalchemy.exc import IntegrityError +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy.orm import Mapped, joinedload, mapped_column, relationship + from .base import Base, CommonMixin from .entry import Entry from .preset import Preset diff --git a/fooder/domain/preset.py b/fooder/domain/preset.py index 6242978..445405f 100644 --- a/fooder/domain/preset.py +++ b/fooder/domain/preset.py @@ -1,11 +1,11 @@ -from sqlalchemy.orm import relationship, Mapped, mapped_column, joinedload -from sqlalchemy.ext.asyncio import AsyncSession +from typing import TYPE_CHECKING, AsyncIterator, Optional + from sqlalchemy import ForeignKey, Integer, select +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy.orm import Mapped, joinedload, mapped_column, relationship from .base import Base, CommonMixin from .preset_entry import PresetEntry -from typing import AsyncIterator, Optional, TYPE_CHECKING - if TYPE_CHECKING: from .meal import Meal diff --git a/fooder/domain/preset_entry.py b/fooder/domain/preset_entry.py index 741f29f..fdd40c3 100644 --- a/fooder/domain/preset_entry.py +++ b/fooder/domain/preset_entry.py @@ -1,12 +1,13 @@ -from sqlalchemy.orm import Mapped, mapped_column, relationship -from sqlalchemy.ext.asyncio import AsyncSession -from sqlalchemy.exc import IntegrityError -from sqlalchemy import ForeignKey, Integer, DateTime from datetime import datetime +from sqlalchemy import DateTime, ForeignKey, Integer +from sqlalchemy.exc import IntegrityError +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy.orm import Mapped, mapped_column, relationship + from .base import Base, CommonMixin -from .product import Product from .entry import Entry +from .product import Product class PresetEntry(Base, CommonMixin): diff --git a/fooder/domain/product.py b/fooder/domain/product.py index 2c0efd6..c3b99eb 100644 --- a/fooder/domain/product.py +++ b/fooder/domain/product.py @@ -1,8 +1,9 @@ -from sqlalchemy.orm import Mapped, mapped_column -from sqlalchemy import select, BigInteger, func, update -from sqlalchemy.ext.asyncio import AsyncSession from typing import AsyncIterator, Optional +from sqlalchemy import BigInteger, func, select, update +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy.orm import Mapped, mapped_column + from .base import Base, CommonMixin diff --git a/fooder/domain/token.py b/fooder/domain/token.py index 43b2e9c..cf73ed5 100644 --- a/fooder/domain/token.py +++ b/fooder/domain/token.py @@ -1,9 +1,9 @@ -from sqlalchemy.orm import Mapped, mapped_column -from sqlalchemy import ForeignKey, Integer -from sqlalchemy import select -from sqlalchemy.ext.asyncio import AsyncSession from typing import Optional +from sqlalchemy import ForeignKey, Integer, select +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy.orm import Mapped, mapped_column + from .base import Base, CommonMixin diff --git a/fooder/domain/user.py b/fooder/domain/user.py index 47157ff..de85d20 100644 --- a/fooder/domain/user.py +++ b/fooder/domain/user.py @@ -1,7 +1,8 @@ -from sqlalchemy.orm import Mapped +from typing import Optional + from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession -from typing import Optional +from sqlalchemy.orm import Mapped from .base import Base, CommonMixin diff --git a/fooder/model/diary.py b/fooder/model/diary.py index 488fd39..3d37f83 100644 --- a/fooder/model/diary.py +++ b/fooder/model/diary.py @@ -1,6 +1,7 @@ -from pydantic import BaseModel -from typing import List from datetime import date +from typing import List + +from pydantic import BaseModel from .meal import Meal diff --git a/fooder/model/entry.py b/fooder/model/entry.py index 0909fcc..11138d0 100644 --- a/fooder/model/entry.py +++ b/fooder/model/entry.py @@ -1,6 +1,7 @@ -from pydantic import BaseModel from typing import Optional +from pydantic import BaseModel + from .product import Product diff --git a/fooder/model/meal.py b/fooder/model/meal.py index d9e1b13..bf650f1 100644 --- a/fooder/model/meal.py +++ b/fooder/model/meal.py @@ -1,5 +1,7 @@ -from pydantic import BaseModel from typing import List, Optional + +from pydantic import BaseModel + from .entry import Entry diff --git a/fooder/model/preset.py b/fooder/model/preset.py index eaa12a8..cd6559e 100644 --- a/fooder/model/preset.py +++ b/fooder/model/preset.py @@ -1,5 +1,7 @@ -from pydantic import BaseModel from typing import List + +from pydantic import BaseModel + from .preset_entry import PresetEntry diff --git a/fooder/settings.py b/fooder/settings.py index 51fff2e..c9690ed 100644 --- a/fooder/settings.py +++ b/fooder/settings.py @@ -1,6 +1,7 @@ -from pydantic_settings import BaseSettings from typing import List +from pydantic_settings import BaseSettings + class Settings(BaseSettings): """Settings.""" diff --git a/fooder/tasks_app.py b/fooder/tasks_app.py index 4b9dc73..88e639f 100644 --- a/fooder/tasks_app.py +++ b/fooder/tasks_app.py @@ -1,8 +1,8 @@ from fastapi import FastAPI -from .view.tasks import router -from .settings import Settings from fastapi.middleware.cors import CORSMiddleware +from .settings import Settings +from .view.tasks import router app = FastAPI(title="Fooder Tasks admininstrative API") app.include_router(router) diff --git a/fooder/utils/product_finder.py b/fooder/utils/product_finder.py index 64cffa3..90a6338 100644 --- a/fooder/utils/product_finder.py +++ b/fooder/utils/product_finder.py @@ -1,7 +1,7 @@ -import requests as r from dataclasses import dataclass from logging import getLogger +import requests as r logger = getLogger(__name__) diff --git a/fooder/view/diary.py b/fooder/view/diary.py index 325987b..c375f85 100644 --- a/fooder/view/diary.py +++ b/fooder/view/diary.py @@ -1,8 +1,9 @@ -from fastapi import APIRouter, Depends, Request -from ..model.diary import Diary -from ..controller.diary import GetDiary from datetime import date +from fastapi import APIRouter, Depends, Request + +from ..controller.diary import GetDiary +from ..model.diary import Diary router = APIRouter(tags=["diary"]) diff --git a/fooder/view/entry.py b/fooder/view/entry.py index 8e41913..2ca3f05 100644 --- a/fooder/view/entry.py +++ b/fooder/view/entry.py @@ -1,7 +1,7 @@ from fastapi import APIRouter, Depends, Request -from ..model.entry import Entry, CreateEntryPayload, UpdateEntryPayload -from ..controller.entry import CreateEntry, UpdateEntry, DeleteEntry +from ..controller.entry import CreateEntry, DeleteEntry, UpdateEntry +from ..model.entry import CreateEntryPayload, Entry, UpdateEntryPayload router = APIRouter(tags=["entry"]) diff --git a/fooder/view/meal.py b/fooder/view/meal.py index 18b7f82..a727115 100644 --- a/fooder/view/meal.py +++ b/fooder/view/meal.py @@ -1,13 +1,13 @@ from fastapi import APIRouter, Depends, Request -from ..model.preset import Preset -from ..model.meal import ( - Meal, - CreateMealPayload, - SaveMealPayload, - CreateMealFromPresetPayload, -) -from ..controller.meal import CreateMeal, SaveMeal, CreateMealFromPreset, DeleteMeal +from ..controller.meal import CreateMeal, CreateMealFromPreset, DeleteMeal, SaveMeal +from ..model.meal import ( + CreateMealFromPresetPayload, + CreateMealPayload, + Meal, + SaveMealPayload, +) +from ..model.preset import Preset router = APIRouter(tags=["meal"]) diff --git a/fooder/view/preset.py b/fooder/view/preset.py index a78a3ed..9631099 100644 --- a/fooder/view/preset.py +++ b/fooder/view/preset.py @@ -1,7 +1,7 @@ from fastapi import APIRouter, Depends, Request -from ..model.preset import ListPresetsPayload, PresetDetails -from ..controller.preset import ListPresets, DeletePreset, GetPreset +from ..controller.preset import DeletePreset, GetPreset, ListPresets +from ..model.preset import ListPresetsPayload, PresetDetails router = APIRouter(tags=["preset"]) diff --git a/fooder/view/product.py b/fooder/view/product.py index c60b339..e8d76c0 100644 --- a/fooder/view/product.py +++ b/fooder/view/product.py @@ -1,8 +1,9 @@ -from fastapi import APIRouter, Depends, Request -from ..model.product import Product, CreateProductPayload, ListProductPayload -from ..controller.product import ListProduct, CreateProduct, GetProductByBarCode from typing import Optional +from fastapi import APIRouter, Depends, Request + +from ..controller.product import CreateProduct, GetProductByBarCode, ListProduct +from ..model.product import CreateProductPayload, ListProductPayload, Product router = APIRouter(tags=["product"]) diff --git a/fooder/view/token.py b/fooder/view/token.py index 5e7ab77..a654182 100644 --- a/fooder/view/token.py +++ b/fooder/view/token.py @@ -1,9 +1,10 @@ -from fastapi import APIRouter, Depends, Request -from ..model.token import Token, RefreshTokenPayload -from ..controller.token import CreateToken, RefreshToken -from fastapi.security import OAuth2PasswordRequestForm from typing import Annotated +from fastapi import APIRouter, Depends, Request +from fastapi.security import OAuth2PasswordRequestForm + +from ..controller.token import CreateToken, RefreshToken +from ..model.token import RefreshTokenPayload, Token router = APIRouter(tags=["token"]) diff --git a/fooder/view/user.py b/fooder/view/user.py index 57adb47..65c020e 100644 --- a/fooder/view/user.py +++ b/fooder/view/user.py @@ -1,7 +1,7 @@ from fastapi import APIRouter, Depends, Request -from ..model.user import User, CreateUserPayload -from ..controller.user import CreateUser +from ..controller.user import CreateUser +from ..model.user import CreateUserPayload, User router = APIRouter(tags=["user"])