Skip to main content

make tsukkomi for python types

Project description


tsukkomi

do tsukkomi for python types.

What is tsukkomi?

tsukkomi is a japanese word means straight man in the comedy duos of western culture. As straight man react partner’s ridiculous behaviors, tsukkomi will react incorrect types.

How to use tsukkomi?

tsukkomi take type hints from typing. write code with annotation, decorate all callable objects with tsukkomi.typed.typechecked. FYI generic types are not supported, see tsukkomi dosen’t support generic section for the detail.

from typing import Sequence

from tsukkomi.typed import typechecked

@typechecked
def greeting(name: str) -> str:
    return name

greeting('a') # it is ok
greeting(1) # this will raise `TypeError`

tsukkomi dosen’t support generic

tsukkomi dosen’t support generic type checking, includes types already inherited a generic type like typing.Sequence, typing.Mutable and etc. following example codes can be passed by tsukkomi.typed.typechecked.

import typing

from tsukkomi.typed import typechecked


T = typing.TypeVar('T')


class Boke(typing.Generic[T]):

    @typechecked
    def stupid(self, word: T) -> T:
        return type(word)

    @typechecked
    def correction(self, words: Sequence[T]) -> T:
        return random.sample(words, 1)[0]


@typechecked
def boke_and_tsukkomi(stupid_words: Sequence[str],
                      correction: Sequence[str]) -> bool:
    return any(s == c for s, c in zip(stupid_words, correction)))


boke = Boke[str]()
print(boke.stupid('hello world'))
print(boke.correction([1, 2, 3]))
print(boke_and_tsukkomi([1, 2], [1.0, 2.0]))

Changelogs

0.0.5 — 2016-05-19

Modified

  • Interpret None as type(None)

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

tsukkomi-0.0.6.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

tsukkomi-0.0.6-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file tsukkomi-0.0.6.tar.gz.

File metadata

  • Download URL: tsukkomi-0.0.6.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tsukkomi-0.0.6.tar.gz
Algorithm Hash digest
SHA256 52ea2c4df408226c8827d41c8e06b1e025e293a1495b52a522c61f77e4c78b29
MD5 ff53cb46663a3b5f404f63fe163f3282
BLAKE2b-256 9bfa9c60201bb422fb7159f23fcc35458b127f17367c3599f36a55f0d666f300

See more details on using hashes here.

Provenance

File details

Details for the file tsukkomi-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for tsukkomi-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f549db3a0f0a3bacaf55a01981671c7640693e63eaaab51c63aacf4980e6dab5
MD5 b1deb511f23ca6951b38fa0ce5665db4
BLAKE2b-256 ba2b6faa5d09d7dd516a7c452a01459bfc297c7ed9155bf0fb2f4b521ef50112

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