BREAKING CHANGES
- Turn `essid_generators` into a private attribute
Enhancements
- Update gitignore
- Add type hints
- Update faker requirement from <14.0,>=4.1 to >=4.1,<34.0
- Run Ruff linter and formatter on all files
- Add `--fix` argument to `ruff` pre-commit hook
- Add `ruff-format` pre-commit hook
- Update pre-commit hooks
- Remove isort pre-commit hook
- Replace isort with Ruff
- Add support for Python 3.11, 3.12 and 3.13
- Drop support for Python 3.7 and 3.8
- Replace `setup.cfg` with `pyproject.toml`
- Replace Pylint and Flake8 with Ruff
- Remove `requirements.txt`
- Replace `assertTrue` with `assertIn`
Fixes
- Fix Sphinx configuration with Python 3.12
- Fix formatting issues
Documentation
- Update readme
- Update copyright year range
- Update installation instructions
- Reorganise documentation pages
- Update instructions related to `setup.cfg`
- Use dynamic copyright range in Sphinx doc
- Add `Development` section to documentation
Infrastructure
- Use latest images in CI workflows
- Add CodeQL workflow for GitHub code scanning