mirror of
https://code.lenaisten.de/Lenaisten/advent22.git
synced 2024-11-23 08:13:01 +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
|
# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon):
|
||||||
ARG VARIANT="3.10-bullseye"
|
# - 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}
|
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"
|
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.
|
# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image.
|
||||||
# COPY requirements.txt /tmp/pip-tmp/
|
# 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 \
|
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||||
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
||||||
|
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
\
|
\
|
||||||
export DEBIAN_FRONTEND=noninteractive; \
|
export DEBIAN_FRONTEND=noninteractive; \
|
||||||
apt-get update; apt-get -y install --no-install-recommends \
|
apt-get update; apt-get install --yes --no-install-recommends \
|
||||||
git-flow \
|
git-flow \
|
||||||
|
git-lfs \
|
||||||
; rm -rf /var/lib/apt/lists/*;
|
; rm -rf /var/lib/apt/lists/*;
|
||||||
|
|
||||||
# [Optional] Uncomment this line to install global node packages.
|
# [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:
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/python-3
|
// README at: https://github.com/devcontainers/templates/tree/main/src/python
|
||||||
{
|
{
|
||||||
"name": "Python 3",
|
"name": "Advent22 API",
|
||||||
"build": {
|
"build": {
|
||||||
"dockerfile": "Dockerfile",
|
"dockerfile": "Dockerfile",
|
||||||
"context": "..",
|
"context": "..",
|
||||||
"args": {
|
"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.
|
// Append -bullseye or -buster to pin to an OS version.
|
||||||
// Use -bullseye variants on local on arm64/Apple Silicon.
|
// Use -bullseye variants on local on arm64/Apple Silicon.
|
||||||
"VARIANT": "3.10",
|
// "VARIANT": "3.11-bullseye",
|
||||||
// Options
|
// Options
|
||||||
"NODE_VERSION": "none"
|
"NODE_VERSION": "none"
|
||||||
}
|
}
|
||||||
|
@ -35,17 +35,23 @@
|
||||||
},
|
},
|
||||||
// Add the IDs of extensions you want installed when the container is created.
|
// Add the IDs of extensions you want installed when the container is created.
|
||||||
"extensions": [
|
"extensions": [
|
||||||
|
"be5invis.toml",
|
||||||
|
"mhutchie.git-graph",
|
||||||
"ms-python.python",
|
"ms-python.python",
|
||||||
"ms-python.vscode-pylance",
|
"ms-python.flake8",
|
||||||
"be5invis.toml"
|
"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.
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||||
// "forwardPorts": [],
|
// "forwardPorts": [],
|
||||||
// Use 'postCreateCommand' to run commands after the container is created.
|
// Use 'postCreateCommand' to run commands after the container is created.
|
||||||
// "postCreateCommand": "pip3 install --user -r requirements.txt",
|
// "postCreateCommand": "pip3 install --user -r requirements.txt",
|
||||||
"postStartCommand": "poetry install",
|
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
||||||
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
// "remoteUser": "root"
|
||||||
"remoteUser": "vscode"
|
|
||||||
}
|
}
|
3
api/.vscode/launch.json
vendored
3
api/.vscode/launch.json
vendored
|
@ -9,6 +9,9 @@
|
||||||
"type": "python",
|
"type": "python",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"module": "advent22_api.main",
|
"module": "advent22_api.main",
|
||||||
|
"pythonArgs": [
|
||||||
|
"-Xfrozen_modules=off",
|
||||||
|
],
|
||||||
"justMyCode": true
|
"justMyCode": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
from .app import app
|
|
||||||
|
|
||||||
__all__ = ["app"]
|
|
|
@ -21,32 +21,26 @@ app = FastAPI(
|
||||||
redoc_url=SETTINGS.redoc_url,
|
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)
|
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(
|
uvicorn.run(
|
||||||
app="advent22_api:app",
|
app="advent22_api.app:app",
|
||||||
host="0.0.0.0",
|
host="0.0.0.0",
|
||||||
port=8000,
|
port=8000,
|
||||||
reload=not SETTINGS.production_mode,
|
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):
|
class DavSettings(BaseModel):
|
||||||
|
@ -30,6 +31,12 @@ class Settings(BaseSettings):
|
||||||
Per-run settings.
|
Per-run settings.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
model_config = SettingsConfigDict(
|
||||||
|
env_file=".env",
|
||||||
|
env_file_encoding="utf-8",
|
||||||
|
env_nested_delimiter="__",
|
||||||
|
)
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# general settings
|
# general settings
|
||||||
#####
|
#####
|
||||||
|
@ -54,10 +61,5 @@ class Settings(BaseSettings):
|
||||||
cache_ttl: int = 30
|
cache_ttl: int = 30
|
||||||
config_filename: str = "config.toml"
|
config_filename: str = "config.toml"
|
||||||
|
|
||||||
class Config:
|
|
||||||
env_file = ".env"
|
|
||||||
env_file_encoding = "utf-8"
|
|
||||||
env_nested_delimiter = "__"
|
|
||||||
|
|
||||||
|
|
||||||
SETTINGS = Settings()
|
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"
|
version = "0.1.0"
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
fastapi = "^0.85.0"
|
Pillow = "^10.0.0"
|
||||||
python = "^3.10"
|
|
||||||
uvicorn = {extras = ["standard"], version = "^0.18.3"}
|
|
||||||
Pillow = "^9.2.0"
|
|
||||||
numpy = "^1.23.3"
|
|
||||||
webdavclient3 = "3.14.5"
|
|
||||||
async-cache = "^1.1.1"
|
async-cache = "^1.1.1"
|
||||||
|
fastapi = "^0.103.1"
|
||||||
|
numpy = "^1.25.2"
|
||||||
|
python = "^3.11"
|
||||||
tomli = "^2.0.1"
|
tomli = "^2.0.1"
|
||||||
|
uvicorn = {extras = ["standard"], version = "^0.23.2"}
|
||||||
[tool.poetry.dev-dependencies]
|
webdavclient3 = "^3.14.6"
|
||||||
|
pydantic-settings = "^2.0.3"
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
flake8 = "^6.0.0"
|
flake8 = "^6.1.0"
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
build-backend = "poetry.core.masonry.api"
|
build-backend = "poetry.core.masonry.api"
|
||||||
|
|
Loading…
Reference in a new issue