Skip to content

0.10.0

Choose a tag to compare

@phalt phalt released this 05 Nov 09:39
· 654 commits to main since this release
  • New: Class-based client generator! Use clientele generate-class to generate a client with a Client class and methods instead of standalone functions.
  • Class-based clients support both sync and async modes with --asyncio t flag.
  • Class-based clients are perfect for object-oriented codebases and when you need to mock the client for testing.
  • New: Dynamic configuration for class-based clients! Class-based clients now accept a Config object in their constructor, allowing you to create multiple clients with different configurations on the fly.
  • The config.py file in class-based clients now generates a Config class instead of standalone functions, enabling runtime configuration changes.
  • You can now instantiate clients with custom configuration: client = Client(config=Config(api_base_url="https://api.example.com", bearer_token="my-token")).
  • This addresses issues #42 and #49, enabling dynamic auth tokens and multiple clients with different configurations.
  • Updated documentation with comprehensive examples of class-based client usage.
  • Added generate-class command to CLI with full feature parity to the standard generate command.
  • Add ABC (Abstract Base Class) pattern to generators with a Generator base class that all generators inherit from.
  • Refactored all imports to import modules.
  • Changed: Generated code is now auto-formatted with Ruff instead of Black.
  • Breaking change for class-based clients: The config.py file structure has changed from functions to a class. Existing generated clients will need to be regenerated with --regen t.
  • Fixed: OpenAPI number type now correctly maps to Python float instead of int. The integer type continues to map to int, and number with format: "decimal" continues to map to decimal.Decimal. This addresses issue #40.
  • New: Python 3.13 and Python 3.14 support! Clientele and all generated clients now officially support Python 3.10, 3.11, 3.12, 3.13, and 3.14.
  • Python 3.9 support has been dropped. If you need Python 3.9 support, please use version 0.9.0 or earlier.