Skip to content

Releases: nessshon/pyapiq

v0.0.8

09 Aug 16:12

Choose a tag to compare

What's Changed

  • Refactored imports across modules and aligned function argument lists for improved readability and consistency.
  • Improved client response handling — unified type parsing logic and enhanced error propagation for more robust API interactions.
  • Refactored API endpoint decorators to support generic HTTP method handling and extended compatibility for GET requests with payload validation.
  • Introduced GETRequestPayloadError exception to explicitly handle invalid payload data in GET requests.
  • Extended HTTPMethod enum with support for PATCH and added a placeholder for RepeatQuery operations.
  • Optimized query parameter building by filtering out None values before request execution.

Full Changelog: v0.0.3...v0.0.8

v0.0.3

15 Jul 18:07

Choose a tag to compare

What's Changed

  • Refactored APIQ into a modular architecture with clear separation of concerns (client, namespace, requestor).
  • Introduced SyncClientAPI / AsyncClientAPI and SyncAPINamespace / AsyncAPINamespace base classes to replace @apiclient and @apinamespace.
  • Removed the unified @endpoint decorator; added @sync_endpoint and @async_endpoint for explicit interface definition.
  • Replaced as_model with return_as, supporting Pydantic models, primitive types (e.g., int, str), and custom ReturnType handlers.
  • Added requests and ratelimiter to project dependencies.

Full Changelog: v0.0.2...v0.0.3

v0.0.2

08 Jul 20:50

Choose a tag to compare

What's Changed

  • Removed logger.py and namespace.py in favor of cleaner abstraction via protocols.py.
  • Added RateLimitedSession for built-in rate limiting.
  • Introduced @apiclient and @apinamespace decorators for simpler client and endpoint definitions.
  • Unified response handling and model parsing through utilities.

Full Changelog: v0.0.1...v0.0.2

v0.0.1

02 Jul 22:56

Choose a tag to compare

Release Notes – Version 0.0.1

We are pleased to announce the initial release of apiq, an elegant and fully asynchronous Python framework for building API clients with minimal boilerplate.

Key Features and Capabilities

  • Core Architecture

    • APIClient base class for creating clients with built-in async HTTP requests, rate limiting, and retries.
    • APINamespace for logical grouping of related endpoints.
  • Endpoint Decorators

    • @endpoint decorator supporting GET, POST, PUT, PATCH, DELETE methods.
    • Automatic path generation based on method names if path is not specified.
    • Flexible query parameter mapping from positional and keyword arguments.
    • Supports request bodies as Pydantic models or plain dictionaries.
    • Response parsing into Pydantic models or raw dictionaries if no model is specified.
  • Integrated Features

    • Rate limiting configuration via rps parameter.
    • Automatic retries on HTTP 429 responses with configurable max_retries.
    • Debug logging for full request and response inspection.

Example Use Cases

  • Define structured API clients with clear OOP design.
  • Use Pydantic models for strict request and response validation.
  • Build robust integrations with external APIs quickly and cleanly.

Full Changelog: https://github.com/nessshon/apiq/commits/v0.0.1