typesense-python icon indicating copy to clipboard operation
typesense-python copied to clipboard

refactor: add generic type parameters for improved type flexibility

Open tharropoulos opened this issue 7 months ago • 0 comments

TLDR

Added generic type parameters to API key, override, and document schemas for better type flexibility.

Change Summary

Code Changes:

  1. In src/typesense/types/key.py:

    • Added _ActionT type variable with bounds for API key action type constraints
    • Made ApiKeyCreateSchema, ApiKeyCreateResponseSchema, ApiKeySchema, and ApiKeyRetrieveSchema generic with _ActionT parameter
    • Added backward compatibility aliases (ApiKeyCreateSchemaCompat, ApiKeySchemaCompat, etc.)
    • Replaced hardcoded _Actions union type with generic _ActionT parameter in actions field
  2. In src/typesense/types/override.py:

    • Added _OverrideRuleT type variable for override rule type constraints
    • Made OverrideCreateSchema and OverrideSchema generic with _OverrideRuleT parameter
    • Added compatibility type aliases (OverrideCreateSchemaCompat, OverrideSchemaCompat)
    • Replaced hardcoded union type with generic parameter in rule field
  3. In src/typesense/types/document.py:

    • Added _DocumentImportParamsT, _ImportResponseT, and _StringOrListT type variables
    • Added DocumentImportParametersGeneric type variable for document import parameters
    • Defined bounded type variables to improve type safety and flexibility
  4. In src/typesense/__init__.py:

    • Bumped version from 1.2.0 to 1.2.1

Context

#90

PR Checklist

tharropoulos avatar Jun 18 '25 07:06 tharropoulos