Skip to main content

No project description provided

Project description

typeduck

Introduction

A lightweight utility for comparing annotation declarations for their compatibility.

Installation

Requires Python 3.8 or above.

pip install typeduck

Usage

from typing import Union, List
from typeduck import types_validate

source = List[str]
target = List[Union[str, int]]

types_validate(source, target)  # returns a boolean
# OR
types_validate(source, target, raises=True)  # will raise a TypeError when validation fails

Use Cases

Validate annotations between functions or classes match

from typing import List, Union
from typeduck import types_validate

def my_func() -> List[str]:
    ...

def your_func(data: List[Union[int, str]]):
    ...

source = my_func.__annotations__['return']
target = your_func.__annotations__['data']

are_compatible = types_validate(source, target)  # True

See more examples in the tests.py file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typeduck-0.1.0.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

typeduck-0.1.0-py3-none-any.whl (3.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page