<jupyter_start><jupyter_text>duet.store.pandas<jupyter_code>import torch
torch.rand((1,3)).send(duet, tags=["tag1"], description="some description", searchable=True)
torch.rand((1,3)).send(duet, tags=["tag2"], description="some description", searchable=True)
torch.rand((1,3)).send(duet, tags=["tag3", "tag4"], description="some description", searchable=True);
await wait_until(lambda duet: len(duet.store)==3)
duet.store.pandas<jupyter_output><empty_output><jupyter_text>request<jupyter_code>await wait_until(lambda duet: len(duet.requests.requests)==3)
duet.requests.pandas<jupyter_output><empty_output><jupyter_text>test add_handler<jupyter_code>duet.requests.add_handler(action="accept", tags=["tag1"])

await wait_until(lambda duet: len(duet.requests.requests)==2)
duet.requests.pandas
duet.requests.add_handler(action="deny", tags=["tag2"])

await wait_until(lambda duet: len(duet.requests.requests)==1)
duet.requests.pandas
duet.requests.add_handler(action="accept", tags=["tag3", "tag4"])

await wait_until(lambda duet: len(duet.requests.requests)==0)<jupyter_output><empty_output><jupyter_text>remove_handler, clear_handlers<jupyter_code>await wait_until(lambda duet: len(duet.requests.handlers.handlers)==3)
duet.requests.handlers.pandas
duet.requests.remove_handler("tag1")
await wait_until(lambda duet: len(duet.requests.handlers.handlers)==2)
duet.requests.handlers.pandas
id_str = duet.requests.handlers[0]["id"].value.__str__().replace("-","")
duet.requests.remove_handler(id_str)
await wait_until(lambda duet: len(duet.requests.handlers.handlers)==1)
duet.requests.handlers.pandas
duet.requests.clear_handlers()
await wait_until(lambda duet: len(duet.requests.handlers.handlers)==0)
duet.requests.handlers.pandas<jupyter_output><empty_output><jupyter_text>handler timeout<jupyter_code>duet.requests.add_handler(action="accept", tags=["tag1"], timeout_secs=5)
duet.requests.handlers.pandas
await wait_until(lambda duet: len(duet.requests.handlers.handlers)==0, 6)
duet.requests.handlers.pandas<jupyter_output><empty_output><jupyter_text>iteration<jupyter_code># this says: 
#     Accept requests to results of `__len__()` called on objects whose tags is ["tag_x"]
duet.requests.add_handler(action="accept", tags=["tag_x", "__len__"])
await wait_until(lambda duet: len(duet.requests.handlers.handlers)==1)
duet.requests.handlers.pandas
sy.lib.python.List([1,2,3]).send(duet, searchable=True, tags=["tag_x"])
duet.store.pandas<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.16038882138517618, 'fraction_numerical': 0.013365735115431349, 'mean_word_length': 10.650943396226415, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '519410', 'license': 'Apache-2.0', 'n_tokens_mistral': 931, 'n_tokens_neox': 943, 'n_words': 110, 'path': 'examples/experimental/request_handlers/DO.ipynb', 'repo_name': 'H4LL/PySyft', 'size': '2469'}