ugggghghhhhh

This commit is contained in:
Hayden 2023-08-13 18:04:12 -05:00
parent be372dbc51
commit 206f92cdda
No known key found for this signature in database
GPG Key ID: 17CF79474E257545
7 changed files with 23 additions and 16 deletions

View File

@ -2,7 +2,7 @@ from abc import ABC, abstractmethod
from pathlib import Path
from pydantic import BaseModel, PostgresDsn
from pydantic_settings import BaseSettings
from pydantic_settings import BaseSettings, SettingsConfigDict
class AbstractDBProvider(ABC):
@ -35,6 +35,8 @@ class SQLiteProvider(AbstractDBProvider, BaseModel):
class PostgresProvider(AbstractDBProvider, BaseSettings):
model_config = SettingsConfigDict(strict=False, arbitrary_types_allowed=True, extra="ignore")
POSTGRES_USER: str = "mealie"
POSTGRES_PASSWORD: str = "mealie"
POSTGRES_SERVER: str = "postgres"
@ -46,7 +48,7 @@ class PostgresProvider(AbstractDBProvider, BaseSettings):
host = f"{self.POSTGRES_SERVER}:{self.POSTGRES_PORT}"
return PostgresDsn.build(
scheme="postgresql",
user=self.POSTGRES_USER,
username=self.POSTGRES_USER,
password=self.POSTGRES_PASSWORD,
host=host,
path=f"/{self.POSTGRES_DB or ''}",

View File

@ -87,7 +87,7 @@ class AppSettings(BaseSettings):
# Email Configuration
SMTP_HOST: str | None
SMTP_PORT: str | None = "587"
SMTP_PORT: str = "587"
SMTP_FROM_NAME: str | None = "Mealie"
SMTP_FROM_EMAIL: str | None
SMTP_USER: str | None
@ -159,7 +159,7 @@ class AppSettings(BaseSettings):
# Testing Config
TESTING: bool = False
model_config = SettingsConfigDict(arbitrary_types_allowed=True)
model_config = SettingsConfigDict(strict=False, arbitrary_types_allowed=True, extra="ignore")
def app_settings_constructor(data_dir: Path, production: bool, env_file: Path, env_encoding="utf-8") -> AppSettings:

View File

@ -2,6 +2,7 @@ from collections.abc import Generator
from contextlib import contextmanager
import sqlalchemy as sa
from pydantic_core import MultiHostUrl
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm.session import Session
@ -10,12 +11,17 @@ from mealie.core.config import get_app_settings
settings = get_app_settings()
def sql_global_init(db_url: str):
def sql_global_init(db_url: MultiHostUrl | str):
connect_args = {}
if "sqlite" in db_url:
con_url = ""
if type(db_url) is MultiHostUrl:
con_url = db_url.unicode_string()
else: # Sqlite
con_url = db_url
connect_args["check_same_thread"] = False
engine = sa.create_engine(db_url, echo=False, connect_args=connect_args, pool_pre_ping=True, future=True)
engine = sa.create_engine(con_url, echo=False, connect_args=connect_args, pool_pre_ping=True, future=True)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine, future=True)

View File

@ -1,7 +1,7 @@
from functools import wraps
from uuid import UUID
from pydantic import BaseModel, Field, NoneStr
from pydantic import BaseModel, Field
from sqlalchemy import select
from sqlalchemy.orm import MANYTOMANY, MANYTOONE, ONETOMANY, Session
from sqlalchemy.orm.mapper import Mapper
@ -21,7 +21,7 @@ class AutoInitConfig(BaseModel):
Config class for `auto_init` decorator.
"""
get_attr: NoneStr = None
get_attr: str | None = None
exclude: set = Field(default_factory=_default_exclusion)
# auto_create: bool = False

View File

@ -1,4 +1,4 @@
from pydantic import UUID4, ConfigDict, NoneStr
from pydantic import UUID4, ConfigDict
from sqlalchemy.orm import joinedload
from sqlalchemy.orm.interfaces import LoaderOption
@ -74,7 +74,7 @@ class GroupEventNotifierSave(GroupEventNotifierCreate):
class GroupEventNotifierUpdate(GroupEventNotifierSave):
id: UUID4
apprise_url: NoneStr = None
apprise_url: str | None = None
class GroupEventNotifierOut(MealieModel):

View File

@ -1,6 +1,6 @@
from uuid import UUID
from pydantic import ConfigDict, NoneStr
from pydantic import ConfigDict
from mealie.schema._mealie import MealieModel
@ -29,4 +29,4 @@ class EmailInvitation(MealieModel):
class EmailInitationResponse(MealieModel):
success: bool
error: NoneStr = None
error: str | None = None

View File

@ -1,15 +1,14 @@
from typing import Annotated
from pydantic import StringConstraints, validator
from pydantic.types import NoneStr
from mealie.schema._mealie import MealieModel
from mealie.schema._mealie.validators import validate_locale
class CreateUserRegistration(MealieModel):
group: NoneStr = None
group_token: NoneStr = None
group: str | None = None
group_token: str | None = None
email: Annotated[str, StringConstraints(to_lower=True, strip_whitespace=True)] # type: ignore
username: Annotated[str, StringConstraints(to_lower=True, strip_whitespace=True)] # type: ignore
password: str