This repository contains configurations to set up a Python development environment using VSCode's Dev Container feature. The environment includes uv, and Ruff.
If the Ruff format does not work, try reloading the VS Code window. Specifically, you can solve this problem by following the steps below.
- Type
⌘+⇧+P
to open the command palette - Type
Developer: Reload Window
in the command palette to reload the window
- files.insertFinalNewline
- files.trimTrailingWhitespace
- editor.formatOnSave
- dockercompose
- dockerfile
- github-actions-workflow
- json, jsonc
- python
- toml
- yaml
devcontainer.json
- features
- hadolint
- extentions
- charliermarsh.ruff
- codezombiech.gitignore
- eamodio.gitlens
- kevinrose.vsc-python-indent
- mosapride.zenkaku
- ms-azuretools.vscode-docker
- ms-python.python
- njpwerner.autodocstring
- oderwat.indent-rainbow
- pkief.material-icon-theme
- redhat.vscode-yaml
- shardulm94.trailing-spaces
- tamasfe.even-better-toml
- usernamehw.errorlens
- yzhang.markdown-all-in-one
- features
Dockerfile
- Only Dev dependencies
pre-commit
pyright
pytest
ruff
- Only Dev dependencies
buildWithRust.Dockerfile
- Use the Rust compiler when you need it!
- Fix dockerfile in
.devcontainer/devcontainer.json
docker.yml
- Workflow to check if you can build with Docker
pyright.yml
- Workflow to check type
test.yml
- Workflow to check if all the described tests can be passed with pytest
ruff.yml
- Workflow to check if you can go through Formatter and Linter with Ruff
Ruff can be used to replace Flake8, Black, isort, pydocstyle, pyupgrade, autoflake, etc., and yet run tens to hundreds of times faster than the individual tools.
To change the configuration, it is necessary to rewrite ruff.toml, and it is recommended to set it to ignore conflicts such as the following:
ignore = [
"COM812", "COM819",
"D100", "D203", "D213", "D300",
"E111", "E114", "E117",
"ISC001", "ISC002",
"Q000", "Q001", "Q002", "Q003",
"W191",
]
The .pre-commit-config.yaml
file can contain scripts to be executed before commit.
# Python Formatter
uv run ruff format .
# Python Linter
uv run ruff check . --fix
# Docker Linter
hodolint Dockerfile
To run the test, use the following command:
uv run pytest
# Install also include develop dependencies
uv sync
# If you do not want dev dependencies to be installed
uv sync --no-dev
# Use the add command to add dependencies to your project
uv add {libraries}
.
├── .devcontainer/
│ ├── devcontainer.json
│ └── Dockerfile
├── .github/
│ ├── actions/
│ │ ├── setup-git-config
│ │ │ └── action.yml
│ │ └── setup-python-with-uv
│ │ └── action.yml
│ ├── workflows/
│ │ ├── docker.yml
│ │ ├── pyright.yml
│ │ ├── ruff.yml
│ │ └── test.yml
│ └── dependabot.yml
├── .vscode
│ ├── extensions.json
│ └── settings.json
├── tests/
│ └── tools/
│ ├── test__config.py
│ ├── test__logger.py
│ └── test__trace.py
├── tools/
│ ├── config/
│ │ ├── __init__.py
│ │ ├── fastapi.py
│ │ └── settings.py
│ ├── logger/
│ │ ├── __init__.py
│ │ ├── color.py
│ │ ├── googlecloud.py
│ │ ├── local.py
│ │ ├── logger.py
│ │ ├── style.py
│ │ └── type.py
│ ├── trace/
│ │ ├── __init__.py
│ │ └── time.py
│ └── __init__.py
├── .dockerignore
├── .env.local
├── .gitignore
├── .pre-commit-config.yaml
├── .python-version
├── Dockerfile
├── pyproject.toml
├── pyrightconfig.json
├── pytest.ini
├── README.md
├── ruff.toml
└── uv.lock