style(backend): 🎨 add isort to lint and CI/CD

This commit is contained in:
hay-kot 2021-08-28 14:27:56 -08:00
parent 2c80980453
commit 7c936c85ae
103 changed files with 203 additions and 93 deletions

View File

@ -8,10 +8,11 @@ from typing import Optional
from fastapi import FastAPI from fastapi import FastAPI
from humps import camelize from humps import camelize
from jinja2 import Template from jinja2 import Template
from mealie.app import app
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from slugify import slugify from slugify import slugify
from mealie.app import app
CWD = Path(__file__).parent CWD = Path(__file__).parent
OUT_DIR = CWD / "output" OUT_DIR = CWD / "output"
TEMPLATES_DIR = CWD / "templates" TEMPLATES_DIR = CWD / "templates"

View File

@ -44,14 +44,19 @@ clean-test: ## 🧹 Remove test and coverage artifacts
rm -fr htmlcov/ rm -fr htmlcov/
rm -fr .pytest_cache rm -fr .pytest_cache
test-all: lint test ## 🧪 Check Lint Format and Testing test-all: lint-test test ## 🧪 Check Lint Format and Testing
test: ## 🧪 Run tests quickly with the default Python test: ## 🧪 Run tests quickly with the default Python
poetry run pytest poetry run pytest
lint: ## 🧺 Format, Check and Flake8 lint-test:
poetry run black .
poetry run black . --check poetry run black . --check
poetry run isort . --check-only
poetry run flake8 mealie tests
lint: ## 🧺 Format, Check and Flake8
poetry run isort .
poetry run black .
poetry run flake8 mealie tests poetry run flake8 mealie tests

View File

@ -2,10 +2,11 @@ from datetime import datetime, timedelta
from pathlib import Path from pathlib import Path
from jose import jwt from jose import jwt
from passlib.context import CryptContext
from mealie.core.config import settings from mealie.core.config import settings
from mealie.db.database import db from mealie.db.database import db
from mealie.schema.user import UserInDB from mealie.schema.user import UserInDB
from passlib.context import CryptContext
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
ALGORITHM = "HS256" ALGORITHM = "HS256"

View File

@ -1,10 +1,11 @@
from typing import Callable, Generic, TypeVar, Union from typing import Callable, Generic, TypeVar, Union
from mealie.core.root_logger import get_logger
from sqlalchemy import func from sqlalchemy import func
from sqlalchemy.orm import load_only from sqlalchemy.orm import load_only
from sqlalchemy.orm.session import Session from sqlalchemy.orm.session import Session
from mealie.core.root_logger import get_logger
logger = get_logger() logger = get_logger()
T = TypeVar("T") T = TypeVar("T")

View File

@ -1,5 +1,7 @@
from logging import getLogger from logging import getLogger
from sqlalchemy.orm.session import Session
from mealie.db.data_access_layer.group_access_model import GroupDataAccessModel from mealie.db.data_access_layer.group_access_model import GroupDataAccessModel
from mealie.db.models.event import Event, EventNotification from mealie.db.models.event import Event, EventNotification
from mealie.db.models.group import Group from mealie.db.models.group import Group
@ -26,7 +28,6 @@ from mealie.schema.recipe import (
RecipeTagResponse, RecipeTagResponse,
) )
from mealie.schema.user import GroupInDB, LongLiveTokenInDB, SignUpOut, UserInDB from mealie.schema.user import GroupInDB, LongLiveTokenInDB, SignUpOut, UserInDB
from sqlalchemy.orm.session import Session
from ._base_access_model import BaseAccessModel from ._base_access_model import BaseAccessModel
from .recipe_access_model import RecipeDataAccessModel from .recipe_access_model import RecipeDataAccessModel

View File

@ -1,7 +1,8 @@
from sqlalchemy.orm.session import Session
from mealie.db.models.group import Group from mealie.db.models.group import Group
from mealie.schema.meal_plan.meal import MealPlanOut from mealie.schema.meal_plan.meal import MealPlanOut
from mealie.schema.user.user import GroupInDB from mealie.schema.user.user import GroupInDB
from sqlalchemy.orm.session import Session
from ._base_access_model import BaseAccessModel from ._base_access_model import BaseAccessModel

View File

@ -1,9 +1,10 @@
from random import randint from random import randint
from sqlalchemy.orm.session import Session
from mealie.db.models.recipe.recipe import RecipeModel from mealie.db.models.recipe.recipe import RecipeModel
from mealie.db.models.recipe.settings import RecipeSettings from mealie.db.models.recipe.settings import RecipeSettings
from mealie.schema.recipe import Recipe from mealie.schema.recipe import Recipe
from sqlalchemy.orm.session import Session
from ._base_access_model import BaseAccessModel from ._base_access_model import BaseAccessModel

View File

@ -1,8 +1,9 @@
import sqlalchemy as sa import sqlalchemy as sa
from mealie.core.config import settings
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm.session import Session from sqlalchemy.orm.session import Session
from mealie.core.config import settings
def sql_global_init(db_url: str): def sql_global_init(db_url: str):
connect_args = {} connect_args = {}

View File

@ -1,3 +1,5 @@
from sqlalchemy.orm import Session
from mealie.core import root_logger from mealie.core import root_logger
from mealie.core.config import settings from mealie.core.config import settings
from mealie.core.security import get_password_hash from mealie.core.security import get_password_hash
@ -7,7 +9,6 @@ from mealie.db.db_setup import create_session, engine
from mealie.db.models._model_base import SqlAlchemyBase from mealie.db.models._model_base import SqlAlchemyBase
from mealie.schema.admin import SiteSettings from mealie.schema.admin import SiteSettings
from mealie.services.events import create_general_event from mealie.services.events import create_general_event
from sqlalchemy.orm import Session
logger = root_logger.get_logger("init_db") logger = root_logger.get_logger("init_db")

View File

@ -1,6 +1,7 @@
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from sqlalchemy import Boolean, Column, DateTime, Integer, String from sqlalchemy import Boolean, Column, DateTime, Integer, String
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
class EventNotification(SqlAlchemyBase, BaseMixins): class EventNotification(SqlAlchemyBase, BaseMixins):
__tablename__ = "event_notifications" __tablename__ = "event_notifications"

View File

@ -1,9 +1,10 @@
import sqlalchemy as sa import sqlalchemy as sa
import sqlalchemy.orm as orm import sqlalchemy.orm as orm
from sqlalchemy.orm.session import Session
from mealie.core.config import settings from mealie.core.config import settings
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from mealie.db.models.recipe.category import Category, group2categories from mealie.db.models.recipe.category import Category, group2categories
from sqlalchemy.orm.session import Session
class WebhookURLModel(SqlAlchemyBase): class WebhookURLModel(SqlAlchemyBase):

View File

@ -1,10 +1,11 @@
import sqlalchemy.orm as orm import sqlalchemy.orm as orm
from sqlalchemy import Column, Date, ForeignKey, Integer, String
from sqlalchemy.ext.orderinglist import ordering_list
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from mealie.db.models.group import Group from mealie.db.models.group import Group
from mealie.db.models.recipe.recipe import RecipeModel from mealie.db.models.recipe.recipe import RecipeModel
from mealie.db.models.shopping_list import ShoppingList from mealie.db.models.shopping_list import ShoppingList
from sqlalchemy import Column, Date, ForeignKey, Integer, String
from sqlalchemy.ext.orderinglist import ordering_list
class Meal(SqlAlchemyBase): class Meal(SqlAlchemyBase):

View File

@ -1,4 +1,5 @@
import sqlalchemy as sa import sqlalchemy as sa
from mealie.db.models._model_base import SqlAlchemyBase from mealie.db.models._model_base import SqlAlchemyBase

View File

@ -1,4 +1,5 @@
import sqlalchemy as sa import sqlalchemy as sa
from mealie.db.models._model_base import SqlAlchemyBase from mealie.db.models._model_base import SqlAlchemyBase

View File

@ -1,10 +1,11 @@
import sqlalchemy as sa import sqlalchemy as sa
import sqlalchemy.orm as orm import sqlalchemy.orm as orm
from mealie.core import root_logger
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from slugify import slugify from slugify import slugify
from sqlalchemy.orm import validates from sqlalchemy.orm import validates
from mealie.core import root_logger
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
logger = root_logger.get_logger() logger = root_logger.get_logger()
site_settings2categories = sa.Table( site_settings2categories = sa.Table(

View File

@ -1,10 +1,11 @@
from datetime import datetime from datetime import datetime
from uuid import uuid4 from uuid import uuid4
from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, orm
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from mealie.db.models.recipe.recipe import RecipeModel from mealie.db.models.recipe.recipe import RecipeModel
from mealie.db.models.users import User from mealie.db.models.users import User
from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, orm
def generate_uuid(): def generate_uuid():

View File

@ -1,6 +1,7 @@
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from sqlalchemy import Column, ForeignKey, Integer, String, orm from sqlalchemy import Column, ForeignKey, Integer, String, orm
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from .._model_utils import auto_init from .._model_utils import auto_init

View File

@ -1,6 +1,7 @@
from mealie.db.models._model_base import SqlAlchemyBase
from sqlalchemy import Column, ForeignKey, Integer, String from sqlalchemy import Column, ForeignKey, Integer, String
from mealie.db.models._model_base import SqlAlchemyBase
class RecipeInstruction(SqlAlchemyBase): class RecipeInstruction(SqlAlchemyBase):
__tablename__ = "recipe_instructions" __tablename__ = "recipe_instructions"

View File

@ -1,4 +1,5 @@
import sqlalchemy as sa import sqlalchemy as sa
from mealie.db.models._model_base import SqlAlchemyBase from mealie.db.models._model_base import SqlAlchemyBase

View File

@ -1,4 +1,5 @@
import sqlalchemy as sa import sqlalchemy as sa
from mealie.db.models._model_base import SqlAlchemyBase from mealie.db.models._model_base import SqlAlchemyBase

View File

@ -1,4 +1,5 @@
import sqlalchemy as sa import sqlalchemy as sa
from mealie.db.models._model_base import SqlAlchemyBase from mealie.db.models._model_base import SqlAlchemyBase

View File

@ -1,10 +1,11 @@
import sqlalchemy as sa import sqlalchemy as sa
import sqlalchemy.orm as orm import sqlalchemy.orm as orm
from mealie.core import root_logger
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from slugify import slugify from slugify import slugify
from sqlalchemy.orm import validates from sqlalchemy.orm import validates
from mealie.core import root_logger
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
logger = root_logger.get_logger() logger = root_logger.get_logger()
recipes2tags = sa.Table( recipes2tags = sa.Table(

View File

@ -1,4 +1,5 @@
import sqlalchemy as sa import sqlalchemy as sa
from mealie.db.models._model_base import SqlAlchemyBase from mealie.db.models._model_base import SqlAlchemyBase

View File

@ -1,8 +1,9 @@
import sqlalchemy as sa import sqlalchemy as sa
import sqlalchemy.orm as orm import sqlalchemy.orm as orm
from sqlalchemy.orm import Session
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from mealie.db.models.recipe.category import Category, custom_pages2categories, site_settings2categories from mealie.db.models.recipe.category import Category, custom_pages2categories, site_settings2categories
from sqlalchemy.orm import Session
class SiteSettings(SqlAlchemyBase, BaseMixins): class SiteSettings(SqlAlchemyBase, BaseMixins):

View File

@ -1,10 +1,11 @@
import sqlalchemy.orm as orm import sqlalchemy.orm as orm
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from mealie.db.models.group import Group
from requests import Session from requests import Session
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
from sqlalchemy.ext.orderinglist import ordering_list from sqlalchemy.ext.orderinglist import ordering_list
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from mealie.db.models.group import Group
class ShoppingListItem(SqlAlchemyBase, BaseMixins): class ShoppingListItem(SqlAlchemyBase, BaseMixins):
__tablename__ = "shopping_list_items" __tablename__ = "shopping_list_items"

View File

@ -1,6 +1,7 @@
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from sqlalchemy import Boolean, Column, Integer, String from sqlalchemy import Boolean, Column, Integer, String
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
class SignUp(SqlAlchemyBase, BaseMixins): class SignUp(SqlAlchemyBase, BaseMixins):
__tablename__ = "sign_ups" __tablename__ = "sign_ups"

View File

@ -1,8 +1,9 @@
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, orm
from mealie.core.config import settings from mealie.core.config import settings
from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
from mealie.db.models.group import Group from mealie.db.models.group import Group
from mealie.db.models.recipe.recipe import RecipeModel from mealie.db.models.recipe.recipe import RecipeModel
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, orm
class LongLiveToken(SqlAlchemyBase, BaseMixins): class LongLiveToken(SqlAlchemyBase, BaseMixins):

View File

@ -1,4 +1,5 @@
from fastapi import APIRouter from fastapi import APIRouter
from mealie.schema.recipe import RecipeSettings from mealie.schema.recipe import RecipeSettings
router = APIRouter(prefix="/recipes") router = APIRouter(prefix="/recipes")

View File

@ -1,10 +1,11 @@
from fastapi import Depends from fastapi import Depends
from sqlalchemy.orm.session import Session
from mealie.core.root_logger import get_logger from mealie.core.root_logger import get_logger
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.routers import AdminAPIRouter from mealie.routes.routers import AdminAPIRouter
from mealie.schema.events import EventsOut from mealie.schema.events import EventsOut
from sqlalchemy.orm.session import Session
router = AdminAPIRouter(prefix="/events") router = AdminAPIRouter(prefix="/events")

View File

@ -1,13 +1,14 @@
from http.client import HTTPException from http.client import HTTPException
from fastapi import Depends, status from fastapi import Depends, status
from sqlalchemy.orm.session import Session
from mealie.core.root_logger import get_logger from mealie.core.root_logger import get_logger
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.routers import AdminAPIRouter from mealie.routes.routers import AdminAPIRouter
from mealie.schema.events import EventNotificationIn, EventNotificationOut, TestEvent from mealie.schema.events import EventNotificationIn, EventNotificationOut, TestEvent
from mealie.services.events import test_notification from mealie.services.events import test_notification
from sqlalchemy.orm.session import Session
router = AdminAPIRouter() router = AdminAPIRouter()

View File

@ -1,6 +1,8 @@
from fastapi import APIRouter, BackgroundTasks, Depends, Request, status from fastapi import APIRouter, BackgroundTasks, Depends, Request, status
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
from fastapi.security import OAuth2PasswordRequestForm from fastapi.security import OAuth2PasswordRequestForm
from sqlalchemy.orm.session import Session
from mealie.core import security from mealie.core import security
from mealie.core.security import authenticate_user from mealie.core.security import authenticate_user
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
@ -8,7 +10,6 @@ from mealie.routes.deps import get_current_user
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter
from mealie.schema.user import UserInDB from mealie.schema.user import UserInDB
from mealie.services.events import create_user_event from mealie.services.events import create_user_event
from sqlalchemy.orm.session import Session
public_router = APIRouter(tags=["Users: Authentication"]) public_router = APIRouter(tags=["Users: Authentication"])
user_router = UserAPIRouter(tags=["Users: Authentication"]) user_router = UserAPIRouter(tags=["Users: Authentication"])

View File

@ -4,6 +4,8 @@ from pathlib import Path
from pprint import pprint from pprint import pprint
from fastapi import BackgroundTasks, Depends, File, HTTPException, UploadFile, status from fastapi import BackgroundTasks, Depends, File, HTTPException, UploadFile, status
from sqlalchemy.orm.session import Session
from mealie.core.config import app_dirs from mealie.core.config import app_dirs
from mealie.core.root_logger import get_logger from mealie.core.root_logger import get_logger
from mealie.core.security import create_file_token from mealie.core.security import create_file_token
@ -13,7 +15,6 @@ from mealie.schema.admin import BackupJob, ImportJob, Imports, LocalBackup
from mealie.services.backups import imports from mealie.services.backups import imports
from mealie.services.backups.exports import backup_all from mealie.services.backups.exports import backup_all
from mealie.services.events import create_backup_event from mealie.services.events import create_backup_event
from sqlalchemy.orm.session import Session
router = AdminAPIRouter(prefix="/api/backups", tags=["Backups"]) router = AdminAPIRouter(prefix="/api/backups", tags=["Backups"])
logger = get_logger() logger = get_logger()

View File

@ -1,10 +1,11 @@
from fastapi import APIRouter, Depends, HTTPException, status from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.deps import is_logged_in from mealie.routes.deps import is_logged_in
from mealie.routes.routers import AdminAPIRouter, UserAPIRouter from mealie.routes.routers import AdminAPIRouter, UserAPIRouter
from mealie.schema.recipe import CategoryIn, RecipeCategoryResponse from mealie.schema.recipe import CategoryIn, RecipeCategoryResponse
from sqlalchemy.orm.session import Session
public_router = APIRouter() public_router = APIRouter()
user_router = UserAPIRouter() user_router = UserAPIRouter()

View File

@ -1,5 +1,7 @@
from fastapi import Depends from fastapi import Depends
from fastapi.routing import APIRouter from fastapi.routing import APIRouter
from sqlalchemy.orm.session import Session
from mealie.core.config import APP_VERSION, settings from mealie.core.config import APP_VERSION, settings
from mealie.core.root_logger import LOGGER_FILE from mealie.core.root_logger import LOGGER_FILE
from mealie.core.security import create_file_token from mealie.core.security import create_file_token
@ -7,7 +9,6 @@ from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.routers import AdminAPIRouter from mealie.routes.routers import AdminAPIRouter
from mealie.schema.admin import AppInfo, AppStatistics, DebugInfo from mealie.schema.admin import AppInfo, AppStatistics, DebugInfo
from sqlalchemy.orm.session import Session
admin_router = AdminAPIRouter(prefix="/api/debug", tags=["Debug"]) admin_router = AdminAPIRouter(prefix="/api/debug", tags=["Debug"])
public_router = APIRouter(prefix="/api/debug", tags=["Debug"]) public_router = APIRouter(prefix="/api/debug", tags=["Debug"])

View File

@ -4,11 +4,12 @@ from typing import Optional
from fastapi import Depends, HTTPException, status from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer from fastapi.security import OAuth2PasswordBearer
from jose import JWTError, jwt from jose import JWTError, jwt
from sqlalchemy.orm.session import Session
from mealie.core.config import app_dirs, settings from mealie.core.config import app_dirs, settings
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.schema.user import LongLiveTokenInDB, TokenData, UserInDB from mealie.schema.user import LongLiveTokenInDB, TokenData, UserInDB
from sqlalchemy.orm.session import Session
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/token") oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/token")
oauth2_scheme_soft_fail = OAuth2PasswordBearer(tokenUrl="/api/auth/token", auto_error=False) oauth2_scheme_soft_fail = OAuth2PasswordBearer(tokenUrl="/api/auth/token", auto_error=False)

View File

@ -1,11 +1,12 @@
from fastapi import BackgroundTasks, Depends, HTTPException, status from fastapi import BackgroundTasks, Depends, HTTPException, status
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user from mealie.routes.deps import get_current_user
from mealie.routes.routers import AdminAPIRouter, UserAPIRouter from mealie.routes.routers import AdminAPIRouter, UserAPIRouter
from mealie.schema.user import GroupBase, GroupInDB, UpdateGroup, UserInDB from mealie.schema.user import GroupBase, GroupInDB, UpdateGroup, UserInDB
from mealie.services.events import create_group_event from mealie.services.events import create_group_event
from sqlalchemy.orm.session import Session
admin_router = AdminAPIRouter(prefix="/groups", tags=["Groups: CRUD"]) admin_router = AdminAPIRouter(prefix="/groups", tags=["Groups: CRUD"])
user_router = UserAPIRouter(prefix="/groups", tags=["Groups: CRUD"]) user_router = UserAPIRouter(prefix="/groups", tags=["Groups: CRUD"])

View File

@ -1,4 +1,7 @@
from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException, status from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException, status
from sqlalchemy.orm.session import Session
from starlette.responses import FileResponse
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user from mealie.routes.deps import get_current_user
@ -8,8 +11,6 @@ from mealie.schema.user import GroupInDB, UserInDB
from mealie.services.events import create_group_event from mealie.services.events import create_group_event
from mealie.services.image import image from mealie.services.image import image
from mealie.services.meal_services import get_todays_meal, set_mealplan_dates from mealie.services.meal_services import get_todays_meal, set_mealplan_dates
from sqlalchemy.orm.session import Session
from starlette.responses import FileResponse
router = UserAPIRouter(prefix="/api/meal-plans", tags=["Meal Plan"]) router = UserAPIRouter(prefix="/api/meal-plans", tags=["Meal Plan"])
public_router = APIRouter(prefix="/api/meal-plans", tags=["Meal Plan"]) public_router = APIRouter(prefix="/api/meal-plans", tags=["Meal Plan"])

View File

@ -1,4 +1,6 @@
from fastapi import Depends from fastapi import Depends
from sqlalchemy.orm.session import Session
from mealie.core.root_logger import get_logger from mealie.core.root_logger import get_logger
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
@ -7,7 +9,6 @@ from mealie.routes.routers import UserAPIRouter
from mealie.schema.meal_plan import ListItem, MealPlanOut, ShoppingListIn, ShoppingListOut from mealie.schema.meal_plan import ListItem, MealPlanOut, ShoppingListIn, ShoppingListOut
from mealie.schema.recipe import Recipe from mealie.schema.recipe import Recipe
from mealie.schema.user import UserInDB from mealie.schema.user import UserInDB
from sqlalchemy.orm.session import Session
logger = get_logger() logger = get_logger()

View File

@ -1,4 +1,5 @@
from fastapi import APIRouter from fastapi import APIRouter
from mealie.routes.mealplans import crud, helpers from mealie.routes.mealplans import crud, helpers
router = APIRouter() router = APIRouter()

View File

@ -1,9 +1,10 @@
from enum import Enum from enum import Enum
from fastapi import APIRouter, HTTPException, status from fastapi import APIRouter, HTTPException, status
from mealie.schema.recipe import Recipe
from starlette.responses import FileResponse from starlette.responses import FileResponse
from mealie.schema.recipe import Recipe
""" """
These routes are for development only! These assets are served by Caddy when not These routes are for development only! These assets are served by Caddy when not
in development mode. If you make changes, be sure to test the production container. in development mode. If you make changes, be sure to test the production container.

View File

@ -3,12 +3,13 @@ import shutil
from typing import List from typing import List
from fastapi import Depends, File, HTTPException, UploadFile, status from fastapi import Depends, File, HTTPException, UploadFile, status
from sqlalchemy.orm.session import Session
from mealie.core.config import app_dirs from mealie.core.config import app_dirs
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.routers import AdminAPIRouter from mealie.routes.routers import AdminAPIRouter
from mealie.schema.admin import MigrationFile, Migrations from mealie.schema.admin import MigrationFile, Migrations
from mealie.services.migrations import migration from mealie.services.migrations import migration
from sqlalchemy.orm.session import Session
router = AdminAPIRouter(prefix="/api/migrations", tags=["Migration"]) router = AdminAPIRouter(prefix="/api/migrations", tags=["Migration"])

View File

@ -1,4 +1,5 @@
from fastapi import APIRouter from fastapi import APIRouter
from mealie.routes.recipe import all_recipe_routes, comments, image_and_assets, ingredient_parser, recipe_crud_routes from mealie.routes.recipe import all_recipe_routes, comments, image_and_assets, ingredient_parser, recipe_crud_routes
prefix = "/recipes" prefix = "/recipes"

View File

@ -1,9 +1,10 @@
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.schema.recipe import RecipeSummary from mealie.schema.recipe import RecipeSummary
from mealie.services.recipe.all_recipes import AllRecipesService from mealie.services.recipe.all_recipes import AllRecipesService
from sqlalchemy.orm.session import Session
router = APIRouter() router = APIRouter()

View File

@ -1,13 +1,14 @@
from http.client import HTTPException from http.client import HTTPException
from fastapi import Depends, status from fastapi import Depends, status
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user from mealie.routes.deps import get_current_user
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter
from mealie.schema.recipe import CommentOut, CreateComment, SaveComment from mealie.schema.recipe import CommentOut, CreateComment, SaveComment
from mealie.schema.user import UserInDB from mealie.schema.user import UserInDB
from sqlalchemy.orm.session import Session
router = UserAPIRouter() router = UserAPIRouter()

View File

@ -2,13 +2,14 @@ from shutil import copyfileobj
from fastapi import Depends, File, Form, HTTPException, status from fastapi import Depends, File, Form, HTTPException, status
from fastapi.datastructures import UploadFile from fastapi.datastructures import UploadFile
from slugify import slugify
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter
from mealie.schema.recipe import CreateRecipeByURL, Recipe, RecipeAsset from mealie.schema.recipe import CreateRecipeByURL, Recipe, RecipeAsset
from mealie.services.image.image import scrape_image, write_image from mealie.services.image.image import scrape_image, write_image
from slugify import slugify
from sqlalchemy.orm.session import Session
user_router = UserAPIRouter() user_router = UserAPIRouter()

View File

@ -1,9 +1,10 @@
from fastapi import APIRouter from fastapi import APIRouter
from pydantic import BaseModel
from mealie.services.scraper.ingredient_nlp.processor import ( from mealie.services.scraper.ingredient_nlp.processor import (
convert_crf_models_to_ingredients, convert_crf_models_to_ingredients,
convert_list_to_crf_model, convert_list_to_crf_model,
) )
from pydantic import BaseModel
public_router = APIRouter() public_router = APIRouter()

View File

@ -4,6 +4,10 @@ from zipfile import ZipFile
from fastapi import APIRouter, BackgroundTasks, Depends, File from fastapi import APIRouter, BackgroundTasks, Depends, File
from fastapi.datastructures import UploadFile from fastapi.datastructures import UploadFile
from scrape_schema_recipe import scrape_url
from sqlalchemy.orm.session import Session
from starlette.responses import FileResponse
from mealie.core.config import settings from mealie.core.config import settings
from mealie.core.root_logger import get_logger from mealie.core.root_logger import get_logger
from mealie.db.database import db from mealie.db.database import db
@ -18,9 +22,6 @@ from mealie.services.image.image import write_image
from mealie.services.recipe.media import check_assets from mealie.services.recipe.media import check_assets
from mealie.services.recipe.recipe_service import RecipeService from mealie.services.recipe.recipe_service import RecipeService
from mealie.services.scraper.scraper import create_from_url from mealie.services.scraper.scraper import create_from_url
from scrape_schema_recipe import scrape_url
from sqlalchemy.orm.session import Session
from starlette.responses import FileResponse
user_router = UserAPIRouter() user_router = UserAPIRouter()
public_router = APIRouter() public_router = APIRouter()

View File

@ -1,6 +1,7 @@
from typing import List, Optional from typing import List, Optional
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
from mealie.routes.deps import get_admin_user, get_current_user from mealie.routes.deps import get_admin_user, get_current_user

View File

@ -1,11 +1,12 @@
from fastapi import Depends from fastapi import Depends
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user from mealie.routes.deps import get_current_user
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter
from mealie.schema.meal_plan import ShoppingListIn, ShoppingListOut from mealie.schema.meal_plan import ShoppingListIn, ShoppingListOut
from mealie.schema.user import UserInDB from mealie.schema.user import UserInDB
from sqlalchemy.orm.session import Session
router = UserAPIRouter(prefix="/shopping-lists", tags=["Shopping Lists: CRUD"]) router = UserAPIRouter(prefix="/shopping-lists", tags=["Shopping Lists: CRUD"])

View File

@ -1,11 +1,12 @@
from typing import Union from typing import Union
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.routers import AdminAPIRouter from mealie.routes.routers import AdminAPIRouter
from mealie.schema.admin import CustomPageBase, CustomPageOut from mealie.schema.admin import CustomPageBase, CustomPageOut
from sqlalchemy.orm.session import Session
public_router = APIRouter(prefix="/api/site-settings/custom-pages", tags=["Settings"]) public_router = APIRouter(prefix="/api/site-settings/custom-pages", tags=["Settings"])
admin_router = AdminAPIRouter(prefix="/api/site-settings/custom-pages", tags=["Settings"]) admin_router = AdminAPIRouter(prefix="/api/site-settings/custom-pages", tags=["Settings"])

View File

@ -1,4 +1,6 @@
from fastapi import APIRouter, Depends, HTTPException, status from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user from mealie.routes.deps import get_current_user
@ -6,7 +8,6 @@ from mealie.routes.routers import AdminAPIRouter
from mealie.schema.admin import SiteSettings from mealie.schema.admin import SiteSettings
from mealie.schema.user import GroupInDB, UserInDB from mealie.schema.user import GroupInDB, UserInDB
from mealie.utils.post_webhooks import post_webhooks from mealie.utils.post_webhooks import post_webhooks
from sqlalchemy.orm.session import Session
public_router = APIRouter(prefix="/api/site-settings", tags=["Settings"]) public_router = APIRouter(prefix="/api/site-settings", tags=["Settings"])
admin_router = AdminAPIRouter(prefix="/api/site-settings", tags=["Settings"]) admin_router = AdminAPIRouter(prefix="/api/site-settings", tags=["Settings"])

View File

@ -1,10 +1,11 @@
from fastapi import APIRouter, Depends, HTTPException, status from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.deps import is_logged_in from mealie.routes.deps import is_logged_in
from mealie.routes.routers import AdminAPIRouter, UserAPIRouter from mealie.routes.routers import AdminAPIRouter, UserAPIRouter
from mealie.schema.recipe import RecipeTagResponse, TagIn from mealie.schema.recipe import RecipeTagResponse, TagIn
from sqlalchemy.orm.session import Session
public_router = APIRouter() public_router = APIRouter()
user_router = UserAPIRouter() user_router = UserAPIRouter()

View File

@ -1,4 +1,5 @@
from fastapi import Depends, status from fastapi import Depends, status
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import Session, generate_session from mealie.db.db_setup import Session, generate_session
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter

View File

@ -1,4 +1,5 @@
from fastapi import Depends, status from fastapi import Depends, status
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import Session, generate_session from mealie.db.db_setup import Session, generate_session
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter

View File

@ -1,4 +1,5 @@
from fastapi import HTTPException, status from fastapi import HTTPException, status
from mealie.schema.user.user import UserInDB from mealie.schema.user.user import UserInDB

View File

@ -2,13 +2,14 @@ from datetime import timedelta
from fastapi import HTTPException, status from fastapi import HTTPException, status
from fastapi.param_functions import Depends from fastapi.param_functions import Depends
from sqlalchemy.orm.session import Session
from mealie.core.security import create_access_token from mealie.core.security import create_access_token
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user from mealie.routes.deps import get_current_user
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter
from mealie.schema.user import CreateToken, LoingLiveTokenIn, LongLiveTokenInDB, UserInDB from mealie.schema.user import CreateToken, LoingLiveTokenIn, LongLiveTokenInDB, UserInDB
from sqlalchemy.orm.session import Session
router = UserAPIRouter() router = UserAPIRouter()

View File

@ -1,4 +1,6 @@
from fastapi import BackgroundTasks, Depends, HTTPException, status from fastapi import BackgroundTasks, Depends, HTTPException, status
from sqlalchemy.orm.session import Session
from mealie.core import security from mealie.core import security
from mealie.core.security import get_password_hash from mealie.core.security import get_password_hash
from mealie.db.database import db from mealie.db.database import db
@ -8,7 +10,6 @@ from mealie.routes.routers import AdminAPIRouter, UserAPIRouter
from mealie.routes.users._helpers import assert_user_change_allowed from mealie.routes.users._helpers import assert_user_change_allowed
from mealie.schema.user import UserBase, UserIn, UserInDB, UserOut from mealie.schema.user import UserBase, UserIn, UserInDB, UserOut
from mealie.services.events import create_user_event from mealie.services.events import create_user_event
from sqlalchemy.orm.session import Session
user_router = UserAPIRouter(prefix="") user_router = UserAPIRouter(prefix="")
admin_router = AdminAPIRouter(prefix="") admin_router = AdminAPIRouter(prefix="")

View File

@ -1,11 +1,12 @@
from fastapi import Depends from fastapi import Depends
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user from mealie.routes.deps import get_current_user
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter
from mealie.routes.users._helpers import assert_user_change_allowed from mealie.routes.users._helpers import assert_user_change_allowed
from mealie.schema.user import UserFavorites, UserInDB from mealie.schema.user import UserFavorites, UserInDB
from sqlalchemy.orm.session import Session
user_router = UserAPIRouter() user_router = UserAPIRouter()

View File

@ -3,6 +3,7 @@ import shutil
from fastapi import Depends, File, HTTPException, UploadFile, status from fastapi import Depends, File, HTTPException, UploadFile, status
from fastapi.responses import FileResponse from fastapi.responses import FileResponse
from fastapi.routing import APIRouter from fastapi.routing import APIRouter
from mealie.core.config import app_dirs from mealie.core.config import app_dirs
from mealie.routes.deps import get_current_user from mealie.routes.deps import get_current_user
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter

View File

@ -1,4 +1,6 @@
from fastapi import Depends, HTTPException, status from fastapi import Depends, HTTPException, status
from sqlalchemy.orm.session import Session
from mealie.core.config import settings from mealie.core.config import settings
from mealie.core.security import get_password_hash, verify_password from mealie.core.security import get_password_hash, verify_password
from mealie.db.database import db from mealie.db.database import db
@ -7,7 +9,6 @@ from mealie.routes.deps import get_current_user
from mealie.routes.routers import UserAPIRouter from mealie.routes.routers import UserAPIRouter
from mealie.routes.users._helpers import assert_user_change_allowed from mealie.routes.users._helpers import assert_user_change_allowed
from mealie.schema.user import ChangePassword, UserInDB from mealie.schema.user import ChangePassword, UserInDB
from sqlalchemy.orm.session import Session
user_router = UserAPIRouter(prefix="") user_router = UserAPIRouter(prefix="")

View File

@ -1,6 +1,8 @@
import uuid import uuid
from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException, status from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException, status
from sqlalchemy.orm.session import Session
from mealie.core.security import get_password_hash from mealie.core.security import get_password_hash
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import generate_session from mealie.db.db_setup import generate_session
@ -8,7 +10,6 @@ from mealie.routes.deps import get_admin_user
from mealie.routes.routers import AdminAPIRouter from mealie.routes.routers import AdminAPIRouter
from mealie.schema.user import SignUpIn, SignUpOut, SignUpToken, UserIn, UserInDB from mealie.schema.user import SignUpIn, SignUpOut, SignUpToken, UserIn, UserInDB
from mealie.services.events import create_user_event from mealie.services.events import create_user_event
from sqlalchemy.orm.session import Session
public_router = APIRouter(prefix="/sign-ups") public_router = APIRouter(prefix="/sign-ups")
admin_router = AdminAPIRouter(prefix="/sign-ups") admin_router = AdminAPIRouter(prefix="/sign-ups")

View File

@ -2,9 +2,10 @@ from pathlib import Path
from typing import Optional from typing import Optional
from fastapi import APIRouter, Depends, HTTPException, status from fastapi import APIRouter, Depends, HTTPException, status
from mealie.routes.deps import validate_file_token
from starlette.responses import FileResponse from starlette.responses import FileResponse
from mealie.routes.deps import validate_file_token
router = APIRouter(prefix="/api/utils", tags=["Utils"], include_in_schema=True) router = APIRouter(prefix="/api/utils", tags=["Utils"], include_in_schema=True)

View File

@ -2,10 +2,11 @@ from datetime import date
from typing import Optional from typing import Optional
from fastapi_camelcase import CamelModel from fastapi_camelcase import CamelModel
from mealie.db.models.mealplan import MealPlan
from pydantic import validator from pydantic import validator
from pydantic.utils import GetterDict from pydantic.utils import GetterDict
from mealie.db.models.mealplan import MealPlan
class MealIn(CamelModel): class MealIn(CamelModel):
slug: Optional[str] slug: Optional[str]

View File

@ -1,9 +1,10 @@
from typing import Optional from typing import Optional
from fastapi_camelcase import CamelModel from fastapi_camelcase import CamelModel
from mealie.db.models.shopping_list import ShoppingList
from pydantic.utils import GetterDict from pydantic.utils import GetterDict
from mealie.db.models.shopping_list import ShoppingList
class ListItem(CamelModel): class ListItem(CamelModel):
title: Optional[str] title: Optional[str]

View File

@ -3,12 +3,13 @@ from pathlib import Path
from typing import Any, Optional from typing import Any, Optional
from fastapi_camelcase import CamelModel from fastapi_camelcase import CamelModel
from mealie.core.config import app_dirs
from mealie.db.models.recipe.recipe import RecipeModel
from pydantic import BaseModel, Field, validator from pydantic import BaseModel, Field, validator
from pydantic.utils import GetterDict from pydantic.utils import GetterDict
from slugify import slugify from slugify import slugify
from mealie.core.config import app_dirs
from mealie.db.models.recipe.recipe import RecipeModel
from .recipe_asset import RecipeAsset from .recipe_asset import RecipeAsset
from .recipe_comments import CommentOut from .recipe_comments import CommentOut
from .recipe_ingredient import RecipeIngredient from .recipe_ingredient import RecipeIngredient

View File

@ -1,4 +1,5 @@
from fastapi_camelcase import CamelModel from fastapi_camelcase import CamelModel
from mealie.core.config import settings from mealie.core.config import settings

View File

@ -4,12 +4,13 @@ from pathlib import Path
from typing import Any, Optional from typing import Any, Optional
from fastapi_camelcase import CamelModel from fastapi_camelcase import CamelModel
from mealie.core.config import app_dirs, settings
from mealie.db.models.recipe.recipe import RecipeModel
from pydantic import BaseModel, Field, validator from pydantic import BaseModel, Field, validator
from pydantic.utils import GetterDict from pydantic.utils import GetterDict
from slugify import slugify from slugify import slugify
from mealie.core.config import app_dirs, settings
from mealie.db.models.recipe.recipe import RecipeModel
from .comments import CommentOut from .comments import CommentOut
from .units_and_foods import IngredientFood, IngredientUnit from .units_and_foods import IngredientFood, IngredientUnit

View File

@ -1,12 +1,13 @@
from typing import Optional from typing import Optional
from fastapi_camelcase import CamelModel from fastapi_camelcase import CamelModel
from pydantic.types import constr
from pydantic.utils import GetterDict
from mealie.core.config import settings from mealie.core.config import settings
from mealie.db.models.group import Group from mealie.db.models.group import Group
from mealie.db.models.users import User from mealie.db.models.users import User
from mealie.schema.recipe import RecipeSummary from mealie.schema.recipe import RecipeSummary
from pydantic.types import constr
from pydantic.utils import GetterDict
from ..meal_plan import MealPlanOut, ShoppingListOut from ..meal_plan import MealPlanOut, ShoppingListOut
from ..recipe import CategoryBase from ..recipe import CategoryBase

View File

@ -5,13 +5,14 @@ from pathlib import Path
from typing import Union from typing import Union
from jinja2 import Template from jinja2 import Template
from pathvalidate import sanitize_filename
from pydantic.main import BaseModel
from mealie.core import root_logger from mealie.core import root_logger
from mealie.core.config import app_dirs from mealie.core.config import app_dirs
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import create_session from mealie.db.db_setup import create_session
from mealie.services.events import create_backup_event from mealie.services.events import create_backup_event
from pathvalidate import sanitize_filename
from pydantic.main import BaseModel
logger = root_logger.get_logger() logger = root_logger.get_logger()

View File

@ -4,6 +4,9 @@ import zipfile
from pathlib import Path from pathlib import Path
from typing import Callable from typing import Callable
from pydantic.main import BaseModel
from sqlalchemy.orm.session import Session
from mealie.core.config import app_dirs from mealie.core.config import app_dirs
from mealie.db.database import db from mealie.db.database import db
from mealie.schema.admin import ( from mealie.schema.admin import (
@ -21,8 +24,6 @@ from mealie.schema.events import EventNotificationIn
from mealie.schema.recipe import CommentOut, Recipe from mealie.schema.recipe import CommentOut, Recipe
from mealie.schema.user import UpdateGroup, UserInDB from mealie.schema.user import UpdateGroup, UserInDB
from mealie.services.image import minify from mealie.services.image import minify
from pydantic.main import BaseModel
from sqlalchemy.orm.session import Session
class ImportDatabase: class ImportDatabase:

View File

@ -1,8 +1,9 @@
import apprise import apprise
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import create_session from mealie.db.db_setup import create_session
from mealie.schema.events import Event, EventCategory from mealie.schema.events import Event, EventCategory
from sqlalchemy.orm.session import Session
def test_notification(notification_url, event=None) -> bool: def test_notification(notification_url, event=None) -> bool:

View File

@ -3,6 +3,7 @@ from dataclasses import dataclass
from pathlib import Path from pathlib import Path
import requests import requests
from mealie.core import root_logger from mealie.core import root_logger
from mealie.schema.recipe import Recipe from mealie.schema.recipe import Recipe
from mealie.services.image import minify from mealie.services.image import minify

View File

@ -2,10 +2,11 @@ import shutil
from dataclasses import dataclass from dataclasses import dataclass
from pathlib import Path from pathlib import Path
from PIL import Image
from mealie.core import root_logger from mealie.core import root_logger
from mealie.core.config import app_dirs from mealie.core.config import app_dirs
from mealie.schema.recipe import Recipe from mealie.schema.recipe import Recipe
from PIL import Image
logger = root_logger.get_logger() logger = root_logger.get_logger()

View File

@ -1,12 +1,13 @@
from datetime import date, timedelta from datetime import date, timedelta
from typing import Union from typing import Union
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import create_session from mealie.db.db_setup import create_session
from mealie.schema.meal_plan import MealDayIn, MealPlanIn from mealie.schema.meal_plan import MealDayIn, MealPlanIn
from mealie.schema.recipe import Recipe from mealie.schema.recipe import Recipe
from mealie.schema.user import GroupInDB from mealie.schema.user import GroupInDB
from sqlalchemy.orm.session import Session
def set_mealplan_dates(meal_plan_base: MealPlanIn) -> MealPlanIn: def set_mealplan_dates(meal_plan_base: MealPlanIn) -> MealPlanIn:

View File

@ -4,6 +4,8 @@ from tempfile import TemporaryDirectory
from typing import Any, Callable, Optional from typing import Any, Callable, Optional
import yaml import yaml
from pydantic import BaseModel
from mealie.core import root_logger from mealie.core import root_logger
from mealie.db.database import db from mealie.db.database import db
from mealie.schema.admin import MigrationImport from mealie.schema.admin import MigrationImport
@ -11,7 +13,6 @@ from mealie.schema.recipe import Recipe
from mealie.services.image import image from mealie.services.image import image
from mealie.services.scraper import cleaner from mealie.services.scraper import cleaner
from mealie.utils.unzip import unpack_zip from mealie.utils.unzip import unpack_zip
from pydantic import BaseModel
logger = root_logger.get_logger() logger = root_logger.get_logger()

View File

@ -1,11 +1,12 @@
from pathlib import Path from pathlib import Path
from typing import Optional from typing import Optional
from sqlalchemy.orm.session import Session
from mealie.core.config import app_dirs from mealie.core.config import app_dirs
from mealie.schema.admin import MigrationImport from mealie.schema.admin import MigrationImport
from mealie.services.migrations import helpers from mealie.services.migrations import helpers
from mealie.services.migrations._migration_base import MigrationAlias, MigrationBase from mealie.services.migrations._migration_base import MigrationAlias, MigrationBase
from sqlalchemy.orm.session import Session
class ChowdownMigration(MigrationBase): class ChowdownMigration(MigrationBase):

View File

@ -1,10 +1,11 @@
from enum import Enum from enum import Enum
from pathlib import Path from pathlib import Path
from sqlalchemy.orm.session import Session
from mealie.core import root_logger from mealie.core import root_logger
from mealie.schema.admin import MigrationImport from mealie.schema.admin import MigrationImport
from mealie.services.migrations import chowdown, nextcloud from mealie.services.migrations import chowdown, nextcloud
from sqlalchemy.orm.session import Session
logger = root_logger.get_logger() logger = root_logger.get_logger()

View File

@ -2,11 +2,12 @@ from dataclasses import dataclass
from pathlib import Path from pathlib import Path
from typing import Optional from typing import Optional
from slugify import slugify
from sqlalchemy.orm.session import Session
from mealie.schema.admin import MigrationImport from mealie.schema.admin import MigrationImport
from mealie.services.migrations import helpers from mealie.services.migrations import helpers
from mealie.services.migrations._migration_base import MigrationAlias, MigrationBase from mealie.services.migrations._migration_base import MigrationAlias, MigrationBase
from slugify import slugify
from sqlalchemy.orm.session import Session
@dataclass @dataclass

View File

@ -3,12 +3,13 @@ from functools import lru_cache
from fastapi import Depends, Response from fastapi import Depends, Response
from fastapi.encoders import jsonable_encoder from fastapi.encoders import jsonable_encoder
from sqlalchemy.orm.session import Session
from mealie.core.root_logger import get_logger from mealie.core.root_logger import get_logger
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import SessionLocal, generate_session from mealie.db.db_setup import SessionLocal, generate_session
from mealie.routes.deps import is_logged_in from mealie.routes.deps import is_logged_in
from mealie.schema.recipe import RecipeSummary from mealie.schema.recipe import RecipeSummary
from sqlalchemy.orm.session import Session
logger = get_logger() logger = get_logger()

View File

@ -1,11 +1,12 @@
from typing import Any from typing import Any
from fastapi import BackgroundTasks, Depends from fastapi import BackgroundTasks, Depends
from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user, is_logged_in
from pydantic import BaseModel from pydantic import BaseModel
from sqlalchemy.orm.session import Session from sqlalchemy.orm.session import Session
from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user, is_logged_in
class CommonDeps(BaseModel): class CommonDeps(BaseModel):
session: Session session: Session

View File

@ -1,4 +1,7 @@
from fastapi import BackgroundTasks, Depends, HTTPException, status from fastapi import BackgroundTasks, Depends, HTTPException, status
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm.session import Session
from mealie.core.config import get_settings from mealie.core.config import get_settings
from mealie.db.database import get_database from mealie.db.database import get_database
from mealie.db.db_setup import SessionLocal from mealie.db.db_setup import SessionLocal
@ -6,8 +9,6 @@ from mealie.schema.recipe.recipe import CreateRecipe, Recipe
from mealie.schema.user.user import UserInDB from mealie.schema.user.user import UserInDB
from mealie.services.events import create_recipe_event from mealie.services.events import create_recipe_event
from mealie.services.recipe.media import delete_assets from mealie.services.recipe.media import delete_assets
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm.session import Session
from .common_deps import CommonDeps, _read_deps, _write_deps from .common_deps import CommonDeps, _read_deps, _write_deps

View File

@ -1,5 +1,6 @@
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.schedulers.background import BackgroundScheduler
from mealie.core.config import app_dirs, settings from mealie.core.config import app_dirs, settings
app_dirs.DATA_DIR.joinpath("scheduler.db").unlink(missing_ok=True) app_dirs.DATA_DIR.joinpath("scheduler.db").unlink(missing_ok=True)

View File

@ -1,6 +1,7 @@
import datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.schedulers.background import BackgroundScheduler
from mealie.core import root_logger from mealie.core import root_logger
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import create_session from mealie.db.db_setup import create_session

View File

@ -4,9 +4,10 @@ import re
from datetime import datetime, timedelta from datetime import datetime, timedelta
from typing import List from typing import List
from mealie.core.root_logger import get_logger
from slugify import slugify from slugify import slugify
from mealie.core.root_logger import get_logger
logger = get_logger() logger = get_logger()

View File

@ -5,10 +5,11 @@ from fractions import Fraction
from pathlib import Path from pathlib import Path
from typing import Optional from typing import Optional
from pydantic import BaseModel
from mealie.core.config import settings from mealie.core.config import settings
from mealie.schema.recipe import RecipeIngredient from mealie.schema.recipe import RecipeIngredient
from mealie.schema.recipe.recipe_ingredient import CreateIngredientFood, CreateIngredientUnit from mealie.schema.recipe.recipe_ingredient import CreateIngredientFood, CreateIngredientUnit
from pydantic import BaseModel
from . import utils from . import utils

View File

@ -1,10 +1,11 @@
from typing import Tuple from typing import Tuple
import extruct import extruct
from mealie.core.config import app_dirs
from slugify import slugify from slugify import slugify
from w3lib.html import get_base_url from w3lib.html import get_base_url
from mealie.core.config import app_dirs
LAST_JSON = app_dirs.DEBUG_DIR.joinpath("last_recipe.json") LAST_JSON = app_dirs.DEBUG_DIR.joinpath("last_recipe.json")

View File

@ -5,13 +5,14 @@ from uuid import uuid4
import requests import requests
from fastapi import HTTPException, status from fastapi import HTTPException, status
from recipe_scrapers import NoSchemaFoundInWildMode, SchemaScraperFactory, WebsiteNotImplementedError, scrape_me
from slugify import slugify
from mealie.core.config import app_dirs from mealie.core.config import app_dirs
from mealie.core.root_logger import get_logger from mealie.core.root_logger import get_logger
from mealie.schema.recipe import Recipe, RecipeStep from mealie.schema.recipe import Recipe, RecipeStep
from mealie.services.image.image import scrape_image from mealie.services.image.image import scrape_image
from mealie.services.scraper import cleaner, open_graph from mealie.services.scraper import cleaner, open_graph
from recipe_scrapers import NoSchemaFoundInWildMode, SchemaScraperFactory, WebsiteNotImplementedError, scrape_me
from slugify import slugify
LAST_JSON = app_dirs.DEBUG_DIR.joinpath("last_recipe.json") LAST_JSON = app_dirs.DEBUG_DIR.joinpath("last_recipe.json")

View File

@ -1,12 +1,13 @@
import json import json
import requests import requests
from sqlalchemy.orm.session import Session
from mealie.db.database import db from mealie.db.database import db
from mealie.db.db_setup import create_session from mealie.db.db_setup import create_session
from mealie.schema.user import GroupInDB from mealie.schema.user import GroupInDB
from mealie.services.events import create_scheduled_event from mealie.services.events import create_scheduled_event
from mealie.services.meal_services import get_todays_meal from mealie.services.meal_services import get_todays_meal
from sqlalchemy.orm.session import Session
def post_webhooks(group: int, session: Session = None, force=True): def post_webhooks(group: int, session: Session = None, force=True):

2
poetry.lock generated
View File

@ -1321,7 +1321,7 @@ pgsql = ["psycopg2-binary"]
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = "^3.9" python-versions = "^3.9"
content-hash = "4aaa78bc2bbe0e21ad78acd6fa35339eea5cdc88e7055337a0b0244021d7cec6" content-hash = "03d6e9fea568f4167c5cc6865d417c57575305f7ad6813dd503c6f40e85090d7"
[metadata.files] [metadata.files]
aiofiles = [ aiofiles = [

View File

@ -47,6 +47,7 @@ flake8 = "^3.9.0"
coverage = "^5.5" coverage = "^5.5"
pydantic-to-typescript = "^1.0.7" pydantic-to-typescript = "^1.0.7"
rich = "^10.7.0" rich = "^10.7.0"
isort = "^5.9.3"
[build-system] [build-system]
requires = ["poetry-core>=1.0.0"] requires = ["poetry-core>=1.0.0"]
@ -54,6 +55,11 @@ build-backend = "poetry.core.masonry.api"
[tool.black] [tool.black]
line-length = 120 line-length = 120
[tool.isort]
profile = "black"
line_length = 120
multi_line_output = 3
[tool.pytest.ini_options] [tool.pytest.ini_options]
minversion = "6.0" minversion = "6.0"

View File

@ -4,11 +4,11 @@ import json
import requests import requests
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from pytest import fixture
from mealie.app import app from mealie.app import app
from mealie.db.db_setup import SessionLocal, generate_session from mealie.db.db_setup import SessionLocal, generate_session
from mealie.db.init_db import main from mealie.db.init_db import main
from pytest import fixture
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes
from tests.test_config import TEST_DATA from tests.test_config import TEST_DATA
from tests.utils.recipe_data import get_raw_no_image, get_raw_recipe, get_recipe_test_cases from tests.utils.recipe_data import get_raw_no_image, get_raw_recipe, get_recipe_test_cases

View File

@ -3,6 +3,7 @@ import json
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from slugify import slugify from slugify import slugify
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes
from tests.utils.recipe_data import RecipeSiteTestCase, get_recipe_test_cases from tests.utils.recipe_data import RecipeSiteTestCase, get_recipe_test_cases

View File

@ -2,6 +2,7 @@ import json
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes

View File

@ -2,6 +2,7 @@ import json
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes

View File

@ -2,6 +2,7 @@ import json
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes

View File

@ -2,6 +2,7 @@ import json
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from pytest import fixture from pytest import fixture
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes

View File

@ -2,6 +2,7 @@ import json
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes
from tests.utils.recipe_data import RecipeSiteTestCase from tests.utils.recipe_data import RecipeSiteTestCase

View File

@ -4,6 +4,7 @@ from pathlib import Path
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from mealie.core.config import app_dirs from mealie.core.config import app_dirs
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes
from tests.test_config import TEST_CHOWDOWN_DIR, TEST_NEXTCLOUD_DIR from tests.test_config import TEST_CHOWDOWN_DIR, TEST_NEXTCLOUD_DIR

View File

@ -2,6 +2,7 @@ import json
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from mealie.schema.admin import SiteSettings from mealie.schema.admin import SiteSettings
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes

View File

@ -2,6 +2,7 @@ import json
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from mealie.schema.user import SignUpToken from mealie.schema.user import SignUpToken
from tests.app_routes import AppRoutes from tests.app_routes import AppRoutes

Some files were not shown because too many files have changed in this diff Show More