mirror of
https://code.lenaisten.de/Lenaisten/advent22.git
synced 2024-12-24 13:33:00 +00:00
Merge branch 'develop' into feature/drawrects
This commit is contained in:
commit
d654fb8f6b
9 changed files with 854 additions and 651 deletions
|
@ -1,12 +1,19 @@
|
|||
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/python-3/.devcontainer/base.Dockerfile
|
||||
# See here for image contents: https://github.com/devcontainers/images/blob/main/src/python/.devcontainer/Dockerfile
|
||||
|
||||
# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.10, 3.9, 3.8, 3.7, 3.6, 3-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye, 3.7-bullseye, 3.6-bullseye, 3-buster, 3.10-buster, 3.9-buster, 3.8-buster, 3.7-buster, 3.6-buster
|
||||
ARG VARIANT="3.10-bullseye"
|
||||
# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon):
|
||||
# - 3, 3.11, 3.10, 3.9, 3.8, 3.7, 3.6
|
||||
# - 3-bullseye, 3.11-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye, 3.7-bullseye, 3.6-bullseye
|
||||
# - 3-buster, 3.11-buster, 3.10-buster, 3.9-buster, 3.8-buster, 3.7-buster, 3.6-buster
|
||||
ARG VARIANT="3.11-bullseye"
|
||||
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
|
||||
|
||||
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
|
||||
# [Choice] Node.js version: none, lts/*, 18, 16, 14, 12, 10
|
||||
ARG NODE_VERSION="none"
|
||||
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
|
||||
RUN set -ex; \
|
||||
\
|
||||
if [ "${NODE_VERSION}" != "none" ]; then \
|
||||
su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; \
|
||||
fi
|
||||
|
||||
# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image.
|
||||
# COPY requirements.txt /tmp/pip-tmp/
|
||||
|
@ -17,12 +24,12 @@ RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/
|
|||
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
||||
|
||||
|
||||
RUN set -ex; \
|
||||
\
|
||||
export DEBIAN_FRONTEND=noninteractive; \
|
||||
apt-get update; apt-get -y install --no-install-recommends \
|
||||
git-flow \
|
||||
apt-get update; apt-get install --yes --no-install-recommends \
|
||||
git-flow \
|
||||
git-lfs \
|
||||
; rm -rf /var/lib/apt/lists/*;
|
||||
|
||||
# [Optional] Uncomment this line to install global node packages.
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/python-3
|
||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||
// README at: https://github.com/devcontainers/templates/tree/main/src/python
|
||||
{
|
||||
"name": "Python 3",
|
||||
"name": "Advent22 API",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"context": "..",
|
||||
"args": {
|
||||
// Update 'VARIANT' to pick a Python version: 3, 3.10, 3.9, 3.8, 3.7, 3.6
|
||||
// Update 'VARIANT' to pick a Python version.
|
||||
// Append -bullseye or -buster to pin to an OS version.
|
||||
// Use -bullseye variants on local on arm64/Apple Silicon.
|
||||
"VARIANT": "3.10",
|
||||
// "VARIANT": "3.11-bullseye",
|
||||
// Options
|
||||
"NODE_VERSION": "none"
|
||||
}
|
||||
|
@ -35,17 +35,23 @@
|
|||
},
|
||||
// Add the IDs of extensions you want installed when the container is created.
|
||||
"extensions": [
|
||||
"be5invis.toml",
|
||||
"mhutchie.git-graph",
|
||||
"ms-python.python",
|
||||
"ms-python.vscode-pylance",
|
||||
"be5invis.toml"
|
||||
"ms-python.flake8",
|
||||
"ms-python.isort",
|
||||
"ms-python.vscode-pylance"
|
||||
]
|
||||
}
|
||||
},
|
||||
// Use 'postStartCommand' to run commands after the container is started.
|
||||
"postStartCommand": "poetry install"
|
||||
// Features to add to the dev container. More info: https://containers.dev/features.
|
||||
// "features": {},
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
// "forwardPorts": [],
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
// "postCreateCommand": "pip3 install --user -r requirements.txt",
|
||||
"postStartCommand": "poetry install",
|
||||
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
||||
"remoteUser": "vscode"
|
||||
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
||||
// "remoteUser": "root"
|
||||
}
|
3
api/.vscode/launch.json
vendored
3
api/.vscode/launch.json
vendored
|
@ -9,6 +9,9 @@
|
|||
"type": "python",
|
||||
"request": "launch",
|
||||
"module": "advent22_api.main",
|
||||
"pythonArgs": [
|
||||
"-Xfrozen_modules=off",
|
||||
],
|
||||
"justMyCode": true
|
||||
}
|
||||
]
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
from .app import app
|
||||
|
||||
__all__ = ["app"]
|
|
@ -21,32 +21,26 @@ app = FastAPI(
|
|||
redoc_url=SETTINGS.redoc_url,
|
||||
)
|
||||
|
||||
|
||||
@app.on_event("startup")
|
||||
async def add_middlewares() -> None:
|
||||
if SETTINGS.production_mode:
|
||||
# Mount frontend in production mode
|
||||
app.mount(
|
||||
path="/",
|
||||
app=StaticFiles(
|
||||
directory=SETTINGS.ui_directory,
|
||||
html=True,
|
||||
),
|
||||
name="frontend",
|
||||
)
|
||||
|
||||
else:
|
||||
# Allow CORS in debug mode
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=[
|
||||
"*",
|
||||
],
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
expose_headers=["*"],
|
||||
)
|
||||
|
||||
|
||||
app.include_router(router)
|
||||
|
||||
if SETTINGS.production_mode:
|
||||
# Mount frontend in production mode
|
||||
app.mount(
|
||||
path="/",
|
||||
app=StaticFiles(
|
||||
directory=SETTINGS.ui_directory,
|
||||
html=True,
|
||||
),
|
||||
name="frontend",
|
||||
)
|
||||
|
||||
else:
|
||||
# Allow CORS in debug mode
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_credentials=True,
|
||||
allow_origins=["*"],
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
expose_headers=["*"],
|
||||
)
|
||||
|
|
|
@ -11,7 +11,7 @@ def main() -> None:
|
|||
"""
|
||||
|
||||
uvicorn.run(
|
||||
app="advent22_api:app",
|
||||
app="advent22_api.app:app",
|
||||
host="0.0.0.0",
|
||||
port=8000,
|
||||
reload=not SETTINGS.production_mode,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from pydantic import BaseModel, BaseSettings
|
||||
from pydantic import BaseModel
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
class DavSettings(BaseModel):
|
||||
|
@ -30,6 +31,12 @@ class Settings(BaseSettings):
|
|||
Per-run settings.
|
||||
"""
|
||||
|
||||
model_config = SettingsConfigDict(
|
||||
env_file=".env",
|
||||
env_file_encoding="utf-8",
|
||||
env_nested_delimiter="__",
|
||||
)
|
||||
|
||||
#####
|
||||
# general settings
|
||||
#####
|
||||
|
@ -54,10 +61,5 @@ class Settings(BaseSettings):
|
|||
cache_ttl: int = 30
|
||||
config_filename: str = "config.toml"
|
||||
|
||||
class Config:
|
||||
env_file = ".env"
|
||||
env_file_encoding = "utf-8"
|
||||
env_nested_delimiter = "__"
|
||||
|
||||
|
||||
SETTINGS = Settings()
|
||||
|
|
1367
api/poetry.lock
generated
1367
api/poetry.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -9,19 +9,18 @@ name = "advent22_api"
|
|||
version = "0.1.0"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
fastapi = "^0.85.0"
|
||||
python = "^3.10"
|
||||
uvicorn = {extras = ["standard"], version = "^0.18.3"}
|
||||
Pillow = "^9.2.0"
|
||||
numpy = "^1.23.3"
|
||||
webdavclient3 = "3.14.5"
|
||||
Pillow = "^10.0.0"
|
||||
async-cache = "^1.1.1"
|
||||
fastapi = "^0.103.1"
|
||||
numpy = "^1.25.2"
|
||||
python = "^3.11"
|
||||
tomli = "^2.0.1"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
uvicorn = {extras = ["standard"], version = "^0.23.2"}
|
||||
webdavclient3 = "^3.14.6"
|
||||
pydantic-settings = "^2.0.3"
|
||||
|
||||
[tool.poetry.group.dev.dependencies]
|
||||
flake8 = "^6.0.0"
|
||||
flake8 = "^6.1.0"
|
||||
|
||||
[build-system]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
|
|
Loading…
Reference in a new issue