Skip to content

Releases: feldroy/air

v0.45.0

09 Jan 02:51

Choose a tag to compare

What's Changed

New Contributors

Build items

  • BUILD: Added djhtml hook to both .pre-commit-config-check.yaml and .pre-commit-config-format.yaml to 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-pyproject hook 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 of id by @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

  • REFACTOR: Rename nested helper functions inside tests by @msaizar in #934

Full Changelog: v0.44.0...v0.45.0

v0.44.1

31 Dec 03:50

Choose a tag to compare

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 of id by @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 djhtml hook to both .pre-commit-config-check.yaml and .pre-commit-config-format.yaml to 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

27 Dec 01:50

Choose a tag to compare

What's Changed

Features

  • FEAT: Add "air run" and "air version" CLI commands, make uvicorn a main dep by @audreyfeldroy in #920
  • FEAT: add prek a better pre-commit, re-engineered in Rust & blacken-docs, Run black on python code blocks in documentation files! by @pygarap in #918
  • FEAT: Introduced two new class methods to BaseTag in src/air/tags/models/base.py by @pygarap in #917:
    • from_html_file for building an air-tag tree from a file
    • from_html_file_to_source for generating the instantiable source from a file

Refactoring

  • REFACTOR: Type Annotations Adjustments in the air.tags.models.base.BaseTag class! by @pygarap in #914
  • REFACTOR: rename kwargs to custom_attributes for improved clarity! by @pygarap in #915
  • REFACTOR: reorganize test files into tags subdirectory! by @pygarap in #916
  • REFACTOR: Convert air.Application from inheritance to composition by @pydanny in #906

Docs

Bugfixes

Full Changelog: v0.43.0...v0.44.0

v0.43.0

21 Dec 16:30

Choose a tag to compare

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

Chores

New Contributors

Full Changelog: v0.42.0...v0.43.0

v0.42.0

08 Dec 06:07

Choose a tag to compare

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_element
    • BaseTag.has_children
    • BaseTag.first_child
    • BaseTag.last_child
    • BaseTag.first_attribute
    • BaseTag.last_attribute
    • BaseTag.num_of_direct_children
    • BaseTag.num_of_attributes
    • BaseTag.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

28 Nov 02:54

Choose a tag to compare

What's Changed

Full Changelog: v0.41.1...v0.41.2

v0.41.1

24 Nov 00:17

Choose a tag to compare

# 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.md to the extend-exclude list 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.md by @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.md with PePy reference and pyproject.toml with Repository and Sponsor URLs 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-just from the devtools section in pyproject.toml by @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

11 Nov 14:20

Choose a tag to compare

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-cli a 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.md by @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.toml file 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 pretty implementation and Integrated lxml and rich as 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

04 Nov 00:04

Choose a tag to compare

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

New Contributors

Full Changelog: v0.39.0...v0.40.0

v0.39.0

28 Oct 16:04

Choose a tag to compare

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

New Contributors

Full Changelog: v0.38.1...v0.39.0