-
Notifications
You must be signed in to change notification settings - Fork 2
Integration Guide
Jag_k edited this page Feb 18, 2025
·
1 revision
This guide explains how to integrate pydantic-settings-export with various tools and workflows.
The most common integration is using pydantic-settings-export as a pre-commit hook:
# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: pydantic-settings-export
name: pydantic-settings-export
entry: pydantic-settings-export
language: python
files: \.py$
pass_filenames: false
additional_dependencies:
- pydantic-settings-export[email,regions]
This will automatically update your documentation when settings files change.
Automatically update documentation in CI/CD:
name: Update Settings Documentation
on:
push:
paths: ['**/settings.py']
jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- run: pip install pydantic-settings-export
- run: pydantic-settings-export --generator markdown
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "docs: Update settings documentation"
For available CLI options, see CLI Documentation.
[tool.poetry.dependencies]
pydantic-settings-export = "^1.0.0"
# OR
[tool.poetry.group.dev.dependencies]
pydantic-settings-export = {version = "^1.0.0", extras = ["email", "regions"]}
# requirements.txt
pydantic-settings-export>=1.0.0
# requirements-dev.txt
pydantic-settings-export[email,regions]>=1.0.0
Add tasks to .vscode/tasks.json
:
{
"version": "2.0.0",
"tasks": [
{
"label": "Update Settings Documentation",
"type": "shell",
"command": "pydantic-settings-export",
"args": ["--generator", "markdown"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Add an External Tool:
- Go to Settings → Tools → External Tools
- Add New Tool:
- Name: Update Settings Docs
- Program:
pydantic-settings-export
- Arguments:
--generator markdown
- Working Directory:
$ProjectFileDir$
.PHONY: docs check-docs
docs:
pydantic-settings-export --generator markdown --generator dotenv
check-docs: docs
git diff --exit-code docs/ .env.example
# Development stage
FROM python:3.11-slim as dev
RUN pip install pydantic-settings-export[email,regions]
COPY . /app
WORKDIR /app
CMD ["pydantic-settings-export"]
# Production stage
FROM python:3.11-slim
COPY --from=dev /app/docs /app/docs
COPY --from=dev /app/.env.example /app/.env.example