Skip to main content

Type system extensions for use with the pyre type checker

Project description

Pyre Extensions

This module defines extensions to the standard “typing” module that are supported by the Pyre typechecker.

none_throws

Function to make assumptions about Optionals explicit. The function will raise an assertion error if passed None and return the value otherwise.

ParameterSpecification

ParameterSpecifications are a special kind of type variable that captures callable parameter specifications (known as argspecs in the runtime and inspect library) instead of types, allowing the typing of decorators which transform the return type of the given callable. For example:

from typing import TypeVar, Callable, List
from pyre_extensions import ParameterSpecification
Tparams = ParameterSpecification("Tparams")
Treturn = TypeVar("Treturn")
def unwrap(f: Callable[Tparams, List[Treturn]) -> Callable[Tparams, Treturn]:
    def inner(*args: TParams.args, **kwargs: TParams.kwargs):
        return f(*args, **kwargs)[0]

    return inner
@unwrap
def foo(x: int, y: str, z: bool = False) -> List[int]:
    return [1, 2, 3]

decorates foo into a callable that returns int, but still has the same parameters, including their names and whether they are required.

These ParameterSpecification variables also have two special properties, args and kwargs, which correspond to the positional and keyword arguments for a specific call to the ParameterSpecification function. Because the division of parameters into these two argument collections can be different each invocation, these special annotations can only be used in one manner: together, in a function definition, as *args and **kwargs with no other parameters listed.

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

pyre-extensions-0.0.16.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

pyre_extensions-0.0.16-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file pyre-extensions-0.0.16.tar.gz.

File metadata

  • Download URL: pyre-extensions-0.0.16.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.3rc1+

File hashes

Hashes for pyre-extensions-0.0.16.tar.gz
Algorithm Hash digest
SHA256 51160e4fc76620578c376d86aa0f46e283352c20c7227802b1a297fc509ce2ee
MD5 ff59c3b8121c1123ba28f223ce3fc810
BLAKE2b-256 80ca6a6b0b9e31fe6d542a773f6c9706baa0d3df307c6490e8cfaf486ac548dc

See more details on using hashes here.

Provenance

File details

Details for the file pyre_extensions-0.0.16-py3-none-any.whl.

File metadata

  • Download URL: pyre_extensions-0.0.16-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.3rc1+

File hashes

Hashes for pyre_extensions-0.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 1ca81b464003316f9c2f20702410558f7872132bc7a8f870b23be17cbdd11e8c
MD5 7648d8a8ecf6f4dfd1e65d7ef9a028b9
BLAKE2b-256 a28d33cacc158b91ae86ea66b20f23674cd4e620324083ee7695373cf8cd8816

See more details on using hashes here.

Provenance

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