Skip to main content

RequireType

What

Decorator that allows you to specify the valid types of the parameters in a function or method.

In case of that a call don’t match the required type will fail with a TypeError exception.

Why?

There are some cases (TODO: add some examples) where you want/need to specify a specific type to use and since python does not have type checks for parameters here’s where this is useful.

All the existing solutions that I’ve found had some problem or does not have a feature that I’d like to have, so I’ve made my own.

How to use?

First, install the RequireType package, you can do that using pip::

pip install requiretype

In your code you just need to import and use the require decorator.

Example:

from requiretype import require

@require(name=str, age=(int, float, long))
def greet_person(name, age):
    print "Hello {0} ({1})".format(name, age)

>>> greet_person("John", 42)
Hello John (42)

>>> greet_person("John", "Doe")
[...traceback...]
TypeError: Doe is not a valid type.
Valid types: <type 'int'>, <type 'float'>, <type 'long'>

>>> greet_person(42, 43)
[...traceback...]
TypeError: 42 is not a <type 'str'> type

Some notes

Here are some details about this library. Most of them was found in one or more packages that helps you to enforce/check/require types and IMO are not good things to have and motivated me to write this.

RequireType:

  • does not modify args or kwargs

  • does not move arguments from one place to another

  • support both args and kwargs

  • allows you to use all the python 2.x supported parameters usage (if not, please report a bug)

  • use named arguments type definition

  • allows you to enforce a subset of all the available arguments

  • raise a standard TypeError if the arguments type are wrong

Metadata

Release files for RequireType 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for RequireType 0.1.0
File Size Uploaded Provenance Actions
RequireType-0.1.0.tar.gz 3.4 kB Without provenance Details for RequireType-0.1.0.tar.gz

Release files / RequireType-0.1.0.tar.gz

Download URL RequireType-0.1.0.tar.gz
Size 3.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bbdc27f8439fc667c31ce105aa472c61d707b75858ef968d88aef1ec51e456d3
BLAKE2b-256 checksum
How to use checksums
2df1d0cdddfac81c796dda82a7c76e2e89360678de6bb7ea03a7807eacb5f564
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for RequireType 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page