Always activate and use the Python virtual environment when running Python commands:
- On Windows:
.venv\Scripts\activate - On Linux/macOS:
source .venv/bin/activate
Use python -m pip instead of bare pip when installing packages.
Install all dependencies with:
python -m pip install -e ".[dev,test]"
This project requires Python 3.10 or newer.
featuremanagement/— Synchronous feature management codefeaturemanagement/aio/— Async equivalents of feature management classesfeaturemanagement/_models/— Data models (feature flags, variants, telemetry)featuremanagement/_time_window_filter/— Time window filter with recurrence supportfeaturemanagement/azuremonitor/— Optional Azure Monitor telemetry integrationtests/— Unit tests (sync and async)samples/— Sample applications
- All source files must include the Microsoft copyright header.
- All modules must have a module-level docstring.
- Maximum line length is 120 characters.
- Use type annotations on all functions and methods.
Run these before submitting changes:
black featuremanagement
pylint featuremanagement
mypy featuremanagement
pytest tests
- Sync tests are in
tests/test_*.py - Async tests use
pytest-asyncioand are in files ending with_async.py - Run tests with:
pytest tests