v0.1.0-alpha.4
📢 Preamble
This release solidifies the vision of this API client. Our current vision is to ship:
- A Python idiomatic client with documentation and examples
- A command line utility to interact with the Gallagher API and aid with automation
- A Terminal Interface that provides a superb experience for power users including the use of LLMs to query using natural language (English supported for now)
This release provides a near complete version of the Python API and the related tools, creating a foundation and making is ready for release.
✨ New
- Vendors in @betodealmeida/shillelagh by @betodealmeida who gracefully chimed in on #9
- Adds
Typer
based command line interface, thanks to @tiangolo for maintaining it - Automated publishing to Pypi on tagging a release #16
💅 Improvements
- Adds
task
endpoint for debugging the Gallagher REST endpoints, for example usetask debug:get -- alarms
to trigger aget
request. This will usehttpie
to execute the request and append necessary headers and parameters - Dependencies have been updated across the various deliverables to ensure we keep up security protocols and enhancements provided by upstream packages
- Documentation across the entire project, getting ready for the final release, moves to using bruce-szalwinski/mkdocs-typer by @bruce-szalwinski for producing
cli
documentation. - Drastic improvements in
testsuite
performance by transforming network requests intofixtures
for examples we can fetch alarms and then perform multiple validation operations on the data:
@pytest.fixture
async def alarm_summary() -> AlarmSummaryResponse:
""" Get a list of item types and iterates through it
these are a summary response
"""
response = await Alarms.list()
return response
🛠️ Fixes
- Handles API endpoints errors properly and raises exceptions rather than letting the API client fail #8
- Renames various incorrectly named DTO classes, this is due to the rapidly evolving nature of the project and should stabilise past these initial alpha/beta releases.