对象可观测性库
项目描述
bigbrother
一个邪恶、糟糕、可怕、糟糕的库,用于监视对象的更改。请不要使用此库。
概述
bigbrother
是一个变更观察器库。您可以使用它来监视您的对象的更改。当您的对象发生变化时,bigbrother
将触发您选择的回调。
x = {1: "a", 2: "b", 3: "c"}
def track_changes(obj, method, ref, call_args, call_kwargs):
print(f"method: {method}, args: {args}, kwargs: {kwargs}")
x = watch(x, track_changes)
x[1] = "x"
# prints: method: setitem, args: (1, 'x'), kwargs: {}
bigbrother
还可以通过传递参数 deepstate=True
递归地嵌入到您的对象中。
回调
def callback(obj, method, ref, call_args, call_kwargs):
'''Callback called when object is mutated
Args:
obj (Any): The object being mutated via `method`
method (str): The method called on the object (dunders removed)
ref (Any): Reference object. If callback installed recursively, `ref` will be the entrypoint
call_args (Tuple[Any]): Positional arguments that `method` was called with on `obj`
call_kwargs (Dict[Any, Any]): Keyword arguments that `method` was called with on `obj`
'''
支持类型
内置类型
大多数内置类型是只读的,无法更改其方法结构,因此我们通过替换薄包装器进行观察。
list
通过_ObservedList
append
clear
extend
insert
pop
remove
sort
__setattr__
__setitem__
dict
通过_ObservedDict
clear
pop
popitem
update
__setattr__
__setitem__
set
通过_ObservedSet
add
clear
difference_update
discard
intersection_update
pop
remove
symmetric_difference_update
update
__setattr__
库
pydantic.BaseModel
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
bigbrother-0.1.3.tar.gz (19.8 kB 查看哈希值)
构建分发
bigbrother-0.1.3-py3-none-any.whl (19.1 kB 查看哈希值)
关闭
bigbrother-0.1.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5fe855efd4e364f6f3a14afad69f235bde93b6c2703dd6d4ec42c1f3a6be6747 |
|
MD5 | 546c590ec2e36bb0b83e7075fadc9df2 |
|
BLAKE2b-256 | 0c35de395ce759d2035e2f9d182b5bd6d09e3c5cedea2c36f8c5e4904a5422c2 |
关闭
bigbrother-0.1.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ed9f931a0c90426a62c3af0441af62c78c3e637935669cae61d9165d3cc7cc14 |
|
MD5 | d8ca3ffa4c4bf171e461577eb3aa837a |
|
BLAKE2b-256 | a96769d33da6b525988f59031f1d521e845e8810e7304b4e0366111bddeb11de |