diff --git a/.devcontainer/Dockerfile.macos b/.devcontainer/Dockerfile.macos new file mode 100644 index 0000000..0307723 --- /dev/null +++ b/.devcontainer/Dockerfile.macos @@ -0,0 +1,15 @@ +FROM ghcr.io/codespaces/macOS:latest + +RUN brew install python@3.12 + +WORKDIR /usr/src/app + +COPY requirements-dev.txt . + +RUN pip3 install --upgrade pip + +RUN pip3 install --no-cache-dir -r requirements-dev.txt + +COPY . . + +CMD ["bash"] diff --git a/.devcontainer/Dockerfile.ubuntu b/.devcontainer/Dockerfile.ubuntu new file mode 100644 index 0000000..cb2fef6 --- /dev/null +++ b/.devcontainer/Dockerfile.ubuntu @@ -0,0 +1,13 @@ +FROM python:3.12-slim + +WORKDIR /usr/src/app + +RUN pip install --upgrade pip + +COPY requirements-dev.txt ./ + +RUN pip install --no-cache-dir -r requirements-dev.txt + +COPY . . + +CMD ["bash"] \ No newline at end of file diff --git a/.devcontainer/Dockerfile.windows b/.devcontainer/Dockerfile.windows new file mode 100644 index 0000000..b161804 --- /dev/null +++ b/.devcontainer/Dockerfile.windows @@ -0,0 +1,18 @@ +FROM mcr.microsoft.com/windows/servercore:ltsc2022 + +RUN powershell -Command \ + Invoke-WebRequest -Uri https://www.python.org/ftp/python/3.12.0/python-3.12.0-amd64.exe -OutFile python-installer.exe ; \ + Start-Process -Wait -FilePath python-installer.exe -ArgumentList '/quiet InstallAllUsers=1 PrependPath=1' ; \ + Remove-Item -Force python-installer.exe + +WORKDIR /workspace + +COPY requirements-dev.txt . + +RUN pip install --upgrade pip + +RUN pip install --no-cache-dir -r requirements-dev.txt + +COPY . . + +CMD ["powershell"] diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..b391329 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,14 @@ +{ + "name": "Python Dev Container", + "dockerFile": "./Dockerfile.ubuntu", + "customizations": { + "vscode": { + "settings": { + "python.pythonPath": "/usr/bin/python3" + }, + "extensions": [ + "ms-python.python" + ] + } + } +} diff --git a/pyproject.toml b/pyproject.toml index e14ff46..f22b676 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,10 @@ dev = [ "ruff", "mypy", "isort", + "pytest", + "hypothesis", + "pytest-randomly", + "pytest-xdist", ] docs = [ diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..a8397c3 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,9 @@ +pytest +hypothesis +pytest-randomly +pytest-xdist +typing_extensions +maturin +ruff +mypy +isort \ No newline at end of file diff --git a/requirements-docs.txt b/requirements-docs.txt new file mode 100644 index 0000000..0647ff8 --- /dev/null +++ b/requirements-docs.txt @@ -0,0 +1,3 @@ +mkdocs +mkdocstrings-python +mkdocs-material \ No newline at end of file