为Python类型创建tsukkomi
项目描述
tsukkomi
为Python类型执行tsukkomi。
什么是tsukkomi?
tsukkomi是日语中的一个词,指的是西方文化中喜剧搭档中的直角人。当直角人反应搭档的荒谬行为时,tsukkomi将反应不正确的类型。
如何使用tsukkomi?
tsukkomi 从 typing 中获取类型提示。编写带有注解的代码,使用 tsukkomi.typed.typechecked 装饰所有可调用对象。顺便说一句,泛型类型不受支持,请参阅tsukkomi 不支持泛型部分以获取详细信息。
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 不支持泛型
tsukkomi 不支持泛型类型检查,包括已经继承泛型类型的类型,如 typing.Sequence、typing.Mutable 等。以下示例代码可以通过 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]))
变更日志
0.0.5 — 2016-05-19
修改
将 None 解释为 type(None)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
tsukkomi-0.0.6.tar.gz (4.8 kB 查看哈希值)
构建分布
tsukkomi-0.0.6-py3-none-any.whl (6.4 kB 查看哈希值)
关闭
tsukkomi-0.0.6.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 52ea2c4df408226c8827d41c8e06b1e025e293a1495b52a522c61f77e4c78b29 |
|
MD5 | ff53cb46663a3b5f404f63fe163f3282 |
|
BLAKE2b-256 | 9bfa9c60201bb422fb7159f23fcc35458b127f17367c3599f36a55f0d666f300 |
关闭
tsukkomi-0.0.6-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f549db3a0f0a3bacaf55a01981671c7640693e63eaaab51c63aacf4980e6dab5 |
|
MD5 | b1deb511f23ca6951b38fa0ce5665db4 |
|
BLAKE2b-256 | ba2b6faa5d09d7dd516a7c452a01459bfc297c7ed9155bf0fb2f4b521ef50112 |