Diagnostic tool for Azure Functions Python v2 programming model
Project description
Azure Functions Doctor
Azure Functions Doctor is a diagnostic CLI for projects built on the Azure Functions Python v2 programming model.
It checks a local project for common issues such as:
- unsupported Python versions
- missing
host.jsonorrequirements.txt - missing
azure-functionsdependency - missing virtual environments
- missing Azure Functions Core Tools
- incomplete local development setup
Scope
This repository targets the decorator-based Azure Functions Python v2 programming model only.
- Supported model:
func.FunctionApp()with decorators such as@app.route() - Unsupported model: legacy
function.json-based Python v1 projects
Requirements
- Python 3.10+
- Hatch for development workflows
- Azure Functions Core Tools v4+ recommended for local runs
Installation
From PyPI:
pip install azure-functions-doctor
From source:
git clone https://github.com/yeongseon/azure-functions-doctor.git
cd azure-functions-doctor
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Usage
Run the doctor in the current project:
azure-functions doctor
Run against a specific project:
azure-functions doctor --path ./examples/v2/http-trigger
Use a required-only profile:
azure-functions doctor --profile minimal
Output JSON for CI:
azure-functions doctor --format json
Demo
The demo below is generated from demo/doctor-demo.tape with VHS.
It runs the real azure-functions doctor CLI against the representative example
and then against an intentionally broken copy to show the pass/fail contrast.
The final terminal state is also captured as a static image for quick inspection.
Built-in checks
The default ruleset validates:
- Azure Functions Python v2 decorator usage
- Python version
- virtual environment activation
- Python executable availability
requirements.txtazure-functionsdependency declarationhost.jsonlocal.settings.json(optional)- Azure Functions Core Tools presence and version (optional)
- Durable Functions host configuration (optional)
- Application Insights configuration (optional)
extensionBundleconfiguration (optional)- ASGI/WSGI callable exposure (optional)
- common unwanted files in the project tree (optional)
Examples
Documentation
Contributing
See CONTRIBUTING.md.
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file azure_functions_doctor-0.15.0.tar.gz.
File metadata
- Download URL: azure_functions_doctor-0.15.0.tar.gz
- Upload date:
- Size: 5.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
296cf788df81e98065ee54db83af430682cd212167f6059d3194cbb73eaeafb3
|
|
| MD5 |
16a07fbf66399a65ddef542e2a739dd5
|
|
| BLAKE2b-256 |
0c114f0ad86795a5836fe9b729893ef22cea6c56b2eec1681af87acd7c281785
|
Provenance
The following attestation bundles were made for azure_functions_doctor-0.15.0.tar.gz:
Publisher:
release.yml on yeongseon/azure-functions-doctor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
azure_functions_doctor-0.15.0.tar.gz -
Subject digest:
296cf788df81e98065ee54db83af430682cd212167f6059d3194cbb73eaeafb3 - Sigstore transparency entry: 1059820596
- Sigstore integration time:
-
Permalink:
yeongseon/azure-functions-doctor@5994bdcf7fe2dcda7e1e757581ecc304a7b96e71 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yeongseon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5994bdcf7fe2dcda7e1e757581ecc304a7b96e71 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file azure_functions_doctor-0.15.0-py3-none-any.whl.
File metadata
- Download URL: azure_functions_doctor-0.15.0-py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3aaedc0ccd86bb799f551b448667c05cd673115a17e4fd0dd8249cf4d57d6da
|
|
| MD5 |
ba9e11ff96c6f599705482caeb32a344
|
|
| BLAKE2b-256 |
1ee8760e498d293ffd1d718dc8b19ae85ab0dfc145be9d769e44a222f98eef86
|
Provenance
The following attestation bundles were made for azure_functions_doctor-0.15.0-py3-none-any.whl:
Publisher:
release.yml on yeongseon/azure-functions-doctor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
azure_functions_doctor-0.15.0-py3-none-any.whl -
Subject digest:
f3aaedc0ccd86bb799f551b448667c05cd673115a17e4fd0dd8249cf4d57d6da - Sigstore transparency entry: 1059820598
- Sigstore integration time:
-
Permalink:
yeongseon/azure-functions-doctor@5994bdcf7fe2dcda7e1e757581ecc304a7b96e71 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yeongseon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5994bdcf7fe2dcda7e1e757581ecc304a7b96e71 -
Trigger Event:
workflow_dispatch
-
Statement type: