Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 17 additions & 9 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.12.7
hooks:
# Run the linter.
- id: ruff-check
args: [ --fix ]
# Run the formatter.
- id: ruff-format
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.12.7
hooks:
# Run the linter.
- id: ruff-check
args: [ --fix ]
# Run the formatter.
- id: ruff-format
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.8.22
hooks:
- id: uv-export
args: ["--no-hashes", "--no-dev", "-o", "requirements.txt"]
- id: uv-export
name: Export dev requirements
args: ["--no-hashes", "-o", "requirements-dev.txt"]
261 changes: 261 additions & 0 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
# This file was autogenerated by uv via the following command:
# uv export --no-hashes -o requirements-dev.txt
-e .
annotated-types==0.7.0
# via pydantic
anyio==4.9.0
# via
# httpx
# mcp
# sse-starlette
# starlette
attrs==25.3.0
# via
# cyclopts
# jsonschema
# referencing
authlib==1.6.1
# via fastmcp
certifi==2025.8.3
# via
# httpcore
# httpx
# requests
cffi==1.17.1 ; platform_python_implementation != 'PyPy'
# via cryptography
cfgv==3.4.0
# via pre-commit
charset-normalizer==3.4.2
# via requests
click==8.2.1 ; sys_platform != 'emscripten'
# via uvicorn
colorama==0.4.6 ; sys_platform == 'win32'
# via click
cryptography==45.0.5
# via
# authlib
# openstacksdk
cyclopts==3.22.5
# via fastmcp
decorator==5.2.1
# via
# dogpile-cache
# openstacksdk
distlib==0.4.0
# via virtualenv
dnspython==2.7.0
# via email-validator
docstring-parser==0.17.0 ; python_full_version < '4'
# via cyclopts
docutils==0.22
# via rich-rst
dogpile-cache==1.4.0
# via openstacksdk
email-validator==2.2.0
# via pydantic
exceptiongroup==1.3.0
# via
# anyio
# fastmcp
fastmcp==2.11.3
# via python-openstackmcp-server
filelock==3.18.0
# via virtualenv
h11==0.16.0
# via
# httpcore
# uvicorn
httpcore==1.0.9
# via httpx
httpx==0.28.1
# via
# fastmcp
# mcp
httpx-sse==0.4.1
# via mcp
identify==2.6.12
# via pre-commit
idna==3.10
# via
# anyio
# email-validator
# httpx
# requests
iso8601==2.1.0
# via
# keystoneauth1
# openstacksdk
isodate==0.7.2
# via openapi-core
jmespath==1.0.1
# via openstacksdk
jsonpatch==1.33
# via openstacksdk
jsonpointer==3.0.0
# via jsonpatch
jsonschema==4.25.0
# via
# mcp
# openapi-core
# openapi-schema-validator
# openapi-spec-validator
jsonschema-path==0.3.4
# via
# openapi-core
# openapi-spec-validator
jsonschema-specifications==2025.4.1
# via
# jsonschema
# openapi-schema-validator
keystoneauth1==5.11.1
# via openstacksdk
lazy-object-proxy==1.11.0
# via openapi-spec-validator
markdown-it-py==3.0.0
# via rich
markupsafe==3.0.2
# via werkzeug
mcp==1.13.0
# via fastmcp
mdurl==0.1.2
# via markdown-it-py
more-itertools==10.7.0
# via openapi-core
nodeenv==1.9.1
# via pre-commit
openapi-core==0.19.5
# via fastmcp
openapi-pydantic==0.5.1
# via fastmcp
openapi-schema-validator==0.6.3
# via
# openapi-core
# openapi-spec-validator
openapi-spec-validator==0.7.2
# via openapi-core
openstacksdk==4.6.0
# via python-openstackmcp-server
os-service-types==1.8.0
# via
# keystoneauth1
# openstacksdk
packaging==25.0
# via setuptools-scm
parse==1.20.2
# via openapi-core
pathable==0.4.4
# via jsonschema-path
pbr==6.1.1
# via
# keystoneauth1
# openstacksdk
# os-service-types
# stevedore
platformdirs==4.3.8
# via
# openstacksdk
# virtualenv
pre-commit==4.2.0
psutil==7.0.0
# via openstacksdk
pycparser==2.22 ; platform_python_implementation != 'PyPy'
# via cffi
pydantic==2.11.7
# via
# fastmcp
# mcp
# openapi-pydantic
# pydantic-settings
# python-openstackmcp-server
pydantic-core==2.33.2
# via pydantic
pydantic-settings==2.10.1
# via mcp
pygments==2.19.2
# via rich
pyperclip==1.9.0
# via fastmcp
python-dotenv==1.1.1
# via
# fastmcp
# pydantic-settings
python-multipart==0.0.20
# via mcp
pywin32==311 ; sys_platform == 'win32'
# via mcp
pyyaml==6.0.2
# via
# jsonschema-path
# openstacksdk
# pre-commit
referencing==0.36.2
# via
# jsonschema
# jsonschema-path
# jsonschema-specifications
requests==2.32.4
# via
# jsonschema-path
# keystoneauth1
requestsexceptions==1.4.0
# via openstacksdk
rfc3339-validator==0.1.4
# via openapi-schema-validator
rich==14.1.0
# via
# cyclopts
# fastmcp
# rich-rst
rich-rst==1.3.1
# via cyclopts
rpds-py==0.26.0
# via
# jsonschema
# referencing
ruff==0.12.7
setuptools==80.9.0
# via
# pbr
# setuptools-scm
setuptools-scm==9.2.0
six==1.17.0
# via rfc3339-validator
sniffio==1.3.1
# via anyio
sse-starlette==3.0.2
# via mcp
starlette==0.47.2
# via mcp
stevedore==5.4.1
# via
# dogpile-cache
# keystoneauth1
tomli==2.2.1 ; python_full_version < '3.11'
# via setuptools-scm
typing-extensions==4.14.1
# via
# anyio
# cyclopts
# dogpile-cache
# exceptiongroup
# keystoneauth1
# openapi-core
# openstacksdk
# pydantic
# pydantic-core
# referencing
# starlette
# typing-inspection
# uvicorn
typing-inspection==0.4.1
# via
# pydantic
# pydantic-settings
urllib3==2.5.0
# via requests
uvicorn==0.35.0 ; sys_platform != 'emscripten'
# via mcp
virtualenv==20.33.0
# via pre-commit
werkzeug==3.1.1
# via openapi-core
Loading