All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for OpenAPI plugins.
- Support for extra sources.
- JSON Patch support is now a plugin.
- Breaking: openapi directory is now
${source root}/openapi
- Removed support for generating exceptions
- Don't include body models of error responses in return types of operation methods
- Update
Metadata
annotation name fromHeaders
- Wrap request headers (and cookies) in a model class
- Replace return envelope with a tuple
- Generate new serialization style parameter
- Removed
Awaitable
from return type hints - Fixed support for read/writeOnly fields - add default value
None
- Added missing runtime dependency on httpx
0.10.1 - 2024-07-01
- Fix circular import error in generated response envelope module.
- Use the up-to-date version of lapidary when initializing projects.
0.10.0 - 2034-06-29
- HTTP security schemas supported by httpx;
- OAuth2 flows supported by httpx_auth;
- api-key authorization in cookie and query parameter;
- Progress bar for processing paths and rendering schema files;
- Support for response headers returned as response envelope model.
- Old files in
gen
directory are now removed duringrender
.
- Generate code for Lapidary 0.10.0
- broken --cache option;
0.9.0 - 2024-05-17
- Support for OAuth2 password flow.
- Generate code for lapidary 0.9.0 .
- Migrated from Copier to Rybak for generating directory tree.
- Temporary removed nicer package names to simplify code.
- Temporary removed support for paging.
0.8.0 - 2023-01-02
- Support for returning array result as an async iterator.
- Support for paging (requires a dedicated plugin).
- Replaced --format flag with --format-strict. The code is always formatted with black, --format-strict disables the fast mode.
- Changed the default openapi directory to src/openapi.
- Changed x-lapidary-model-type to x-lapidary-modelType, more in-line with OpenAPI naming.
- Changed generated package to a namespace to allow manual extensions packages. ApiClient and Auth import are now available form client module.
- Better reporting of missing operationId.
0.7.3 - 2022-12-15
- Missing imports for request body types.
0.7.1 - 2022-12-15
- Support for (global) api responses.
- Warning header to templates.
- Generate auth model to hold all parameters
- import ApiClient and Auth in init.py
- Generate stubs instead of full operation methods.
- Migrated project to monorepo
- Changed some models to better suite a dynamic library.
- Fail on unsupported types
- Added templates to distribution package.
0.6.1 - 2022-10-24
- handling default auth and invalid names.
0.6.0 - 2022-10-24
- Upgraded dependencies.
- Allow naming null enum values.
- missing quotes for bearer_format in the template.
- names and aliases of attributes.
- removed pprint calls from tests.
- name validation regex.
- generating nested schema classes.
- make param model class names camel case.
0.5.1 - 2022-10-24
- issubclass for some typing.* types
0.5.0 - 2022-10-03
- limited support for allOf schemas
- optional explicit names for enum values
- Generated clients are now context managers
- Sort model attributes
- cache directory doesn't exist
- pydantic model Config classes
- read- and writeOnly properties were required
- inclusive/exclusive minimum mixed
0.4.0 - 2022-09-29
- Added subcommands
update
andinit
,update
reads configuration from pyproject.toml . - ApiClient accepts base URL, the first server declared in schema is used as the default.
- Extended schema with global headers element; passing it as headers to httpx.AsyncClient().
- Added support for a single API Key authentication.
- Added support for naming schema classes
- Generate classes for schemas declared in-line under allOf, onyOf and oneOf.
- global responses
- Exception types
- Rename project to Lapidary
- module name for response body schema class
- required params had default value ABSENT
0.3.1 - 2022-09-20
- loading resources when installed from whl
- computing TypeRef hash
- writing pyproject to non-existent directory
0.3.0 - 2022-09-20
- Support Python 3.9
0.2.0 - 2022-09-18
- Support simple oneOf schemas
- Support errata, a JSON Patch for the specification
- support for request and response body
- lapis is now an executable
- Regex field value
- handling of type hints and imports
0.1.2 - 2022-09-14
- Renamed project due to a name conflict in PyPY
0.1.0 - 2022-09-14
- Generate classes for schemas under components/schemas
- Generate partial client class with methods based on /paths//