Releases: feldroy/air
Releases · feldroy/air
v0.45.0
What's Changed
New Contributors
Build items
- BUILD: Added
djhtmlhook to both.pre-commit-config-check.yamland.pre-commit-config-format.yamlto automate formatting of HTML files and Jinja Templates! by @pygarap in #932 - BUILD: Improvements to the project's code quality tooling and configuration management. by @pygarap in #957
- BUILD: Add pre-commit-hooks: Some out-of-the-box hooks for pre-commit. by @pygarap in #935
- BUILD: Added the
validate-pyprojecthook by @pygarap in #959 - BUILD: Some hooks can run in parallel by priority(the new prek priority feature) & Added new hooks: check-jsonschema, yamlfmt & typos now run inside prek! by @pygarap in #960
- BUILD: Added several new pre-commit hooks: creosote, complexipy, flake8-class-attributes-order, flake8-pydantic and pyroma! by @pygarap in #962
- BUILD: Added new pre-commit hooks: rumdl - A modern, high-performance Markdown linter and formatter, built for speed in Rust & editorconfig-checker - A tool to verify that your files are in harmony with your .editorconfig by @pygarap in #966
- BUILD: hotfix: now renovate will upgrade the just-install action correctly! by @pygarap in #970
Chores
- CHORE: enable Ruff rule A (builtins shadowing) by @ohhaus in #919
- CHORE: Remove ruff lint per file ignores by @msaizar in #930
- CHORE: Remove air_tag_source_samples.py from ruff lint per-file-ignore by @msaizar in #954
- CHORE: chore(deps): update endbug/latest-tag digest to 52ce15b by @renovate[bot] in #968
- CHORE: chore(deps): update actions/checkout action to v6.0.1 by @renovate[bot] in #971
- CHORE: chore(deps): update astral-sh/setup-uv action to v7.2.0 - autoclosed by @renovate[bot] in #972
- CHORE: chore-ruff-rule: tc-sub-issue task of #642 completed by @sankarebarri in #973
- CHORE: chore(deps): update pre-commit hook tombi-toml/tombi-pre-commit to v0.7.16 by @renovate[bot] in #974
- CHORE: chore(deps): update pre-commit hook rvben/rumdl-pre-commit to v0.0.212 by @renovate[bot] in #975
Doc changes
- DOCS: Make location of docs consistent by @pydanny in #963
- DOCS: Instructions for serving air uses the air CLI now by @pydanny in #958
- DOCS: Add a few more tools to the Air site by @pydanny in #980
New features
- FEAT: Air CLI polish for clarity and joy by @audreyfeldroy in #929
- FEAT: Convert routing.AirRouter to composition by @pydanny in #964
- FEAT: Remove extraneous HTTP method args from AirRouter by @pydanny in #976
Bug fixes
- FIX:
id_inconsistently used to represent HTML attribute ofidby @msaizar in #926 - FIX: Replace type argument with type_ in tags by @msaizar in #931
- FIX: Rename max argument to max_ in tags to prevent builtin shadowing by @msaizar in #933
- FIX: Rename min to min_ to prevent builtin shadowing in tags by @msaizar in #936
- FIX: Rename open to open_ to prevent builtin shadowing in tags by @msaizar in #938
- FIX: Rename reversed to reversed_ to prevent builtin shadowing in tags by @msaizar in #947
- FIX: Rename list to list_ to prevent builtin shadowing in tags by @msaizar in #952
- FIX: Rename dir to dir_ to prevent builtin shadowing in tags by @msaizar in #953
Refactors
Full Changelog: v0.44.0...v0.45.0
v0.44.1
What's Changed
- CHORE: Air CLI polish for clarity and joy by @audreyfeldroy in #929
- CHORE: enable Ruff rule A (builtins shadowing) by @ohhaus in #919
- CHORE:
id_inconsistently used to represent HTML attribute ofidby @msaizar in #926 - CHORE: Replace type argument with type_ in tags by @msaizar in #931
- CHORE: Remove ruff lint per file ignores by @msaizar in #930
- CHORE: Added
djhtmlhook to both.pre-commit-config-check.yamland.pre-commit-config-format.yamlto automate formatting of HTML files and Jinja Templates! by @pygarap in #932 - CHORE: Rename max argument to max_ in tags to prevent builtin shadowing by @msaizar in #933
- CHORE: Rename min to min_ to prevent builtin shadowing in tags by @msaizar in #936
- CHORE: Rename open to open_ to prevent builtin shadowing in tags by @msaizar in #938
- CHORE: Add pre-commit-hooks: Some out-of-the-box hooks for pre-commit. by @pygarap in #935
- CHORE: Rename reversed to reversed_ to prevent builtin shadowing in tags by @msaizar in #947
- CHORE: Rename list to list_ to prevent builtin shadowing in tags by @msaizar in #952
- CHORE: Rename dir to dir_ to prevent builtin shadowing in tags by @msaizar in #953
- CHORE: Remove air_tag_source_samples.py from ruff lint per-file-ignore by @msaizar in #954
New Contributors
Full Changelog: v0.44.0...v0.44.1
v0.44.0
What's Changed
Features
- FEAT: Add "air run" and "air version" CLI commands, make uvicorn a main dep by @audreyfeldroy in #920
- FEAT: add
preka betterpre-commit, re-engineered in Rust & blacken-docs, Runblackon python code blocks in documentation files! by @pygarap in #918 - FEAT: Introduced two new class methods to
BaseTaginsrc/air/tags/models/base.pyby @pygarap in #917:from_html_filefor building an air-tag tree from a filefrom_html_file_to_sourcefor generating the instantiable source from a file
Refactoring
- REFACTOR: Type Annotations Adjustments in the
air.tags.models.base.BaseTagclass! by @pygarap in #914 - REFACTOR: rename
kwargstocustom_attributesfor improved clarity! by @pygarap in #915 - REFACTOR: reorganize test files into
tagssubdirectory! by @pygarap in #916 - REFACTOR: Convert air.Application from inheritance to composition by @pydanny in #906
Docs
- DOC: Added remaining docstrings to HTML air tags, finishing the awesome effort by @vanessapigwin! by @pydanny in #923
Bugfixes
Full Changelog: v0.43.0...v0.44.0
v0.43.0
What's Changed
New feature
- FEAT: Add support for query params in .url() function by @aybruhm in #899 (First time contribution!)
- FEAT: Add caching for inspect.signature and inspect.unwrap by @msaizar in #903
Bugfixes
- BUGFIX Handle more edge cases in from_html by @pygarap in #891
- BUGFIX: Resolve PEP 563 string annotations in AirRoute by @msaizar in #893
Documentation changes
- DOCS: Update html to source tag by @pydanny in #883
- DOCS: Remove airbook by @pydanny in #884
- DOCS: Improve docs in preparation for the beta of Air by @audreyfeldroy in #890
- DOCS: Improve page decorator docs by @audreyfeldroy in #894
- DOCS: improve RedirectResponse for AI and editors by @audreyfeldroy in #897
Chores
- CHORE: Update FastAPI to 0.125.0 and modernize other libraries by @pydanny in #901
- CHORE: Remove ANN201 and add return types by @msaizar in #880
- CHORE: Remove ANN202 rule by @msaizar in #887
- CHORE: Remove FBT rules by @msaizar in #888
- CHORE: Uncomment PT rule in ruff by @msaizar in #889
- CHORE: Exclude htmlcov directory from codespell checks by @audreyfeldroy in #898
- CHORE: Uncomment DOC ruff rule by @msaizar in #900
- CHORE: Renovate to update by version not hash by @pydanny in #905
New Contributors
Full Changelog: v0.42.0...v0.43.0
v0.42.0
What's Changed
- feat: migrate AirConvert functionality to air-tags by introducing
BaseTag.from_html_to_source! by @pygarap in #879 - [FEAT] Add new AirConvert functionality powered by selectolax by @pygarap in #879
- [FEAT] Improvements to AirTag typing and constants management by @pygarap in #879
- [FEAT] New utility methods for BaseTag and children by @pygarap in #879
BaseTag.is_attribute_free_void_elementBaseTag.has_childrenBaseTag.first_childBaseTag.last_childBaseTag.first_attributeBaseTag.last_attributeBaseTag.num_of_direct_childrenBaseTag.num_of_attributesBaseTag.tag_id
- [CHORE] Remove FURB189 ruff rule by @msaizar in #872
- [CHORE] Add 100% test coverage to missing_examples script by @msaizar in #873
- [CHORE] Add baseline and check modes for scripts/missing_examples.py by @msaizar in #874
- [CHORE] Remove ANN001 from pyproject.toml by @msaizar in #877
Full Changelog: v0.41.2...v0.42.0
v0.41.2
What's Changed
- DOCS: Add source example for AirModel.to_form by @msaizar in #864
- CHORE: Remove dependabot by @pydanny in #867
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #839
- CHORE: Ruff rule: E501 by @msaizar in #866
- CHORE: remove PGH004 ruff rule by @msaizar in #870
- CHORE: remove W505 ruff rule by @msaizar in #871
- CHORE: Upgrade
ty,and address its errors! by @pygarap in #868 - build(deps): lock file maintenance by @renovate[bot] in #859
Full Changelog: v0.41.1...v0.41.2
v0.41.1
# What's Changed?
Features & Bugs
- BUG: Fix AirRouter default 404 handler by @msaizar in #858
- FEAT: compact_render: minified HTML rendering to the Air tag system by @pygarap in #800
- FEAT: async functions for copy_src_example_to_callable.py by @msaizar in #829
- FEAT: Add tests for copy_src_example_to_callable script by @msaizar in #856
Documentation
- DOC: Added
CHANGELOG.mdto theextend-excludelist of typos by @pygarap in #803 - DOC: Removes all code and documentation related to the optional authentication ("auth") feature by @pygarap in #801
- DOC: SRC/EXAMPLE for AirForm class by @pydanny in #819
- DOC: examples request htmx by @sankarebarri in #799
- DOC: Adds a new section on agentic coding to
README.mdby @pygarap in #821 - DOC: add src example for AirForm.validate by @msaizar in #820
- DOC: src example for src/air/background.py by @msaizar in #805
- DOC: Add chore PR checklist item by @pydanny in #823
- DOC: src example forms airfield by @sankarebarri in #825
- DOC: add src example for AirForm.from_request by @msaizar in #824
- DOC: add src example for default_form_widget by @msaizar in #827
- DOC: src_example(airform-widget): Add custom widget example for AirForm.widget by @sankarebarri in #826
- DOC: : update
README.mdwith PePy reference andpyproject.tomlwithRepositoryandSponsorURLs by @pygarap in #828 - DOC: Remove links to old docs by @pydanny in #831
- DOC: improving test readability! by @pygarap in #836
- DOC: : fix Air.get src example for copy_src_example_to_callable.py by @msaizar in #832
- DOC: Revert back to mkdocs by @pydanny in #841
- DOC: : fix Air.post src example for copy_src_example_to_callable.py by @msaizar in #846
- DOC: : fix src example test files names by @msaizar in #847
- DOC: Default lang for docs is python by @pydanny in #849
- DOC: feat: add src example for mvpcss by @msaizar in #845
- DOC: feat: support AirField edge case in copy_src_example_to_callable.py by @msaizar in #851
- DOC: docs(examples): add example and tests for AirForm.render by @sankarebarri in #850
- DOC: docs: fix Air.page src example by @msaizar in #852
- DOC: Remove docstring prefix from src examples by @pydanny in #853
- DOC: : add src example for picocss by @msaizar in #854
- DOC: : rename AirForm source example test file by @msaizar in #855
Dependency Management
- ⬆(deps): bump click from 8.2.1 to 8.3.0 in the python-dependencies group across 1 directory by @dependabot[bot] in #807
- DEPS: Update dependencies and describe the process by @pydanny in #810
- BUILD: Removed
rust-justfrom thedevtoolssection inpyproject.tomlby @pygarap in #783 - chore(deps): update dependency click to v8.3.1 by @renovate[bot] in #822
- chore(deps): update actions/checkout digest to 93cb6ef by @renovate[bot] in #834
- ⬆(deps): bump astral-sh/setup-uv from 7.1.2 to 7.1.4 in the gha-minor-patch group by @dependabot[bot] in #843
- REFACTOR: Remove ruff rule 'n' by @pydanny in #860
New Contributors
Full Changelog: v0.41.0...v0.41.1
v0.41.0
Breaking change
Other things that have changed
- Add support for HTML comments in the Air tag system! by @pygarap in #750
- docs(contributing): add short welcoming intro by @sankarebarri in #756
- Airblog test example by @Isaac-Flath in #752
- docs(contributing): emphasise using the PR template when opening pull requests by @sankarebarri in #757
- docs: add docstrings for base tags Table to Textarea by @vanessapigwin in #758
- Some type annotation improvements by @pygarap in #759
- Making
rich-clia separate tool and not part of the dev dependencies! by @pygarap in #760 - Live reload for docs by @pydanny in #766
- docs(examples): move src_examples to examples/src and update paths (#743) by @sankarebarri in #764
- Add support for 'async_' key in HTML attributes by @Isaac-Flath in #772
- Add deprecation working for ext.auth by @pydanny in #771
- Added a link to "What makes documentation good?" to the documentation section in
CONTRIBUTING.mdby @pygarap in #782 - Migrate from Material for MkDocs to Zensical! Stage 1! by @pygarap in #777
- Fix broken pages deployment by @pydanny in #786
- docs: add PyPI stats and star history sections to README by @pygarap in #788
- Updates repository ownership and funding information to reflect current maintainers. by @pygarap in #773
- docs: Small README fix by @pygarap in #790
- Updates the
pyproject.tomlfile to improve project metadata and discoverability by @pygarap in #774 - add args to docstrings for T elements by @vanessapigwin in #791
- When publishing libraries, it is recommended to separately run tests with --resolution lowest or --resolution lowest-direct in continuous integration to ensure compatibility with the declared lower bounds. by @pygarap in #795
- refactor: simplify
prettyimplementation and Integratedlxmlandrichas default dependencies for improved usability. by @pygarap in #784 - Update air tag docs for all reserved Python words by @pydanny in #798
- Refactor duplicated methods from applications.Air and router.AirRouter into one by @pydanny in #749
- chore(deps): update astral-sh/setup-uv digest to 5a7eac6 by @renovate[bot] in #793
Full Changelog: v0.40.0...v0.41.0
v0.40.0
Contributions from new contributors
- feat: docs-only src_example for exceptionhandlers.py by @elliedel in #714
- sample Dockerfile and README.md for containerization how-to by @hardwyrd in #722
- sample deployment YAML and README for k8s deployment how-to by @hardwyrd in #726
- docs(contributing): require working examples for all new callables (#241) by @sankarebarri in #740
What's Changed
- feat: Add HTML5 validation attributes from Pydantic constraints by @hamelsmu in #689
- add missing uv init on the installation step of index.md by @KevsterAmp in #730
- Proxy Request to AirRequest by @pydanny in #739
- Air Book improvements chapters 1 through 4 by @pydanny in #735
- Improvements to Air Book chapters 5+ by @pydanny in #738
- DOC: import starlette.requests.Request on Jinja example by @KevsterAmp in #734
- Deprecation of sqlmodel by @pydanny in #736
- Enhance example script parsing and add SessionMiddleware example by @pydanny in #675
- Add SessionMiddleware example test by @pydanny in #742
- AirModel with .form() by @audreyfeldroy in #727
- Add patch, put, and delete route decorators to Air by @pydanny in #747
New Contributors
- @elliedel made their first contribution in #714
- @hardwyrd made their first contribution in #722
- @sankarebarri made their first contribution in #740
Full Changelog: v0.39.0...v0.40.0
v0.39.0
What's changed by new contributors
- feat: add .url() method to route functions by @nedpals in #706
- docs: removed one slash in the link preview, and added one slash in the link url (issue #613) by @kindadailybren in #671
- docs: issue 618 - Change 'Reference for all the entire' to 'Reference for the entire' by @edchelstephens in #670
- docs: fix inspirations grammatical error by @gabbyxiane in #672
- docs: Correct example usage from 'app = air.App()' to 'app = air.Air()'. by @edchelstephens in #674
- fix: remove self-closing slashes from void elements by @alasdiel in #673
- docs: fix (line 11) word from engineer to databases by @oreocapybara in #677
- fix: grammatical errors in jinja.md by @chalorejo in #680
- docs: Update badges and improve index.md formatting by @zorexsalvo in #683
- docs: change syntactal to syntactic from docs/about/inspirations.md by @dkeithdj in #682
- Fix/docs/readme comment error by @gabbyxiane in #684
- docs: fixed pluralization issue on the word routes by @alasdiel in #685
- test: add tests for compute_page_path by @ouattararomuald in #663
- docs: README comment typo by @ouattararomuald in #664
- Update github oath demo removed the duplicateof databases = {} by @aaronjalapon in #676
- replaced pico to picocss by @aaronjalapon in #691
- Tests: missing_examples.py script tests for functions by @kindadailybren in #692
- docs: fixed checkbox formatting on roadmap.md by @alasdiel in #693
- docs: fixed code shadowing on air = air.Air() by @RMRizal-UP in #696
- docs: fix missing closing > in Jinja example (#609) by @ogbinar in #695
- chore: address inconsistent default response by @dkeithdj in #686
- Fixed deprecated issues and passed all Air test by @joohhhnnnny in #698
- DOC: add missing space before parenthesis on CONTRIBUTING.md by @KevsterAmp in #700
- docs: clarify explanation for Variables in URLs by @RMRizal-UP in #703
- refac(src_examples): add samples and tests for other htmx requests besides get request by @jlorion in #702
- add create_sync_engine example by @KevsterAmp in #715
- Sprint day updates by @trbyte in #713
- Feat(benchmarks)/print memory scaling results by @alasdiel in #711
What's changed by existing contributors
- Addition of sponsor and contributor acknowledgments to the
README.md. by @pygarap in #607 - Add Community page by @Isaac-Flath in #632
- Consolidate doc links by @pydanny in #656
- Add Libraries to Community Page by @Isaac-Flath in #662
- Add sprinter instructions by @audreyfeldroy in #665
- src_example directory with example and script by @pydanny in #659
- Explain how to contribute to src_examples/ by @audreyfeldroy in #694
- chore(deps): update astral-sh/setup-uv digest to 8585678 by @renovate[bot] in #717
- chore: enable PLC rules and update files that break it by @zorexsalvo in #705
New Contributors
- @kindadailybren made their first contribution in #671
- @edchelstephens made their first contribution in #670
- @gabbyxiane made their first contribution in #672
- @alasdiel made their first contribution in #673
- @oreocapybara made their first contribution in #677
- @chalorejo made their first contribution in #680
- @dkeithdj made their first contribution in #682
- @ouattararomuald made their first contribution in #663
- @aaronjalapon made their first contribution in #676
- @RMRizal-UP made their first contribution in #696
- @ogbinar made their first contribution in #695
- @joohhhnnnny made their first contribution in #698
- @KevsterAmp made their first contribution in #700
- @jlorion made their first contribution in #702
- @nedpals made their first contribution in #706
- @trbyte made their first contribution in #713
Full Changelog: v0.38.1...v0.39.0