用于在Thread/ThreadPool/IOLoop中运行函数的装饰器
项目描述
threaded
threaded是一组装饰器,用于在Python 3中将函数包装在
concurrent.futures.ThreadPool
threading.Thread
asyncio.Task中。
为什么?因为复制粘贴 loop.create_task、threading.Thread 和 thread_pool.submit 是无聊的,尤其是当目标函数仅以此方式使用时。
优点
自由软件:Apache许可证
测试:请参见顶部的标签
装饰器
ThreadPooled - 本地 concurrent.futures.ThreadPool。
threadpooled 是 ThreadPooled 的别名。
Threaded - 包装在 threading.Thread 中。
threaded 是 Threaded 的别名。
AsyncIOTask - 包装在 asyncio.Task 中。使用与 ThreadPooled 相同的API。
asynciotask 是 AsyncIOTask 的别名。
用法
ThreadPooled
通常需要装饰器:在调用时将函数提交给ThreadPoolExecutor。
threaded.ThreadPooled.configure(max_workers=3)
@threaded.ThreadPooled
def func():
pass
concurrent.futures.wait([func()])
与asyncio的使用
loop = asyncio.get_event_loop()
@threaded.ThreadPooled(loop_getter=loop, loop_getter_need_context=False)
def func():
pass
loop.run_until_complete(asyncio.wait_for(func(), timeout))
Python 3.5+与asyncio和从调用参数中提取loop的使用
loop_getter = lambda tgt_loop: tgt_loop
@threaded.ThreadPooled(loop_getter=loop_getter, loop_getter_need_context=True) # loop_getter_need_context is required
def func(*args, **kwargs):
pass
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait_for(func(loop), timeout))
在应用程序关闭期间,池可以被停止(尽管它将在有组件请求时自动重新创建)。
threaded.ThreadPooled.shutdown()
Threaded
经典的threading.Thread。适用于运行直到关闭并自动关闭的线程,没有返回值。
使用示例
@threaded.Threaded
def func(*args, **kwargs):
pass
thread = func()
thread.start()
thread.join()
没有参数时,线程名称将使用模式:'Threaded: ' + func.__name__
可以通过相应参数覆盖名称。
@threaded.Threaded(name='Function in thread')
def func(*args, **kwargs):
pass
线程可以自动成为守护进程。
@threaded.Threaded(daemon=True)
def func(*args, **kwargs):
pass
此外,如果不需要在线程启动前进行任何其他操作,可以在返回之前自动启动。
@threaded.Threaded(started=True)
def func(*args, **kwargs):
pass
AsyncIOTask
封装在asyncio.Task中。
与asyncio的使用
@threaded.AsyncIOTask
def func():
pass
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait_for(func(), timeout))
直接提供事件循环。
loop = asyncio.get_event_loop()
@threaded.AsyncIOTask(loop_getter=loop)
def func():
pass
loop.run_until_complete(asyncio.wait_for(func(), timeout))
从调用参数中提取loop的使用
loop_getter = lambda tgt_loop: tgt_loop
@threaded.AsyncIOTask(loop_getter=loop_getter, loop_getter_need_context=True)
def func(*args, **kwargs):
pass
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait_for(func(loop), timeout))
测试
该包threaded的主要测试机制是使用tox。可以通过tox -l收集可用的环境。
CI系统
在并行使用几个CI系统进行代码检查。
GitHub actions:用于检查:PEP8、pylint、bandit、安装可能性和单元测试。
coveralls:用于显示覆盖率。
CD系统
GitHub actions:用于在PyPI上打包。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
threaded-4.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 83ad4f3826b465af8b56b373589b13eaebe2733a8772201ce4d1ad2ad2c52515 |
|
MD5 | af2b19a7e3c942fbc253eebba9fe26ae |
|
BLAKE2b-256 | 78a4a89571c3e6c50dfc2087c33680775e66582c6a795237af4d264a63c78d15 |
threaded-4.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 38c1a05f30597b45f5fe83d561387626f6f24ff5954567e0a29d90083df22c1b |
|
MD5 | f948bcc70244c2e3f0b5c0203f61d085 |
|
BLAKE2b-256 | 1330e4de40c850009f821892d8a7683c806a43eb2c48a06241f1b087f7546022 |
threaded-4.2.0-cp312-cp312-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1ca6e8a3cc8886ce7a64eab9c477577220164aee9fdd27decfe20fb5e78e2871 |
|
MD5 | 431c56b613a3d4fe718fff5c09682685 |
|
BLAKE2b-256 | 3e093d650820c9bee7736034e6d2ab084ce42487dcabfbf1f9408e7886a8b30a |
threaded-4.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ee692bc4e8fd833dad32610342a6a0ede9e5dbd26e080abf56e9f62d322b05a5 |
|
MD5 | 36ab43f8e6eaac17bfab2d7b77c50822 |
|
BLAKE2b-256 | 0d77d94173d6cdcc996989e7ba95cb1998db766a603ae5eff8cf8d7e4c948dfd |
threaded-4.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0d047f61d8df945af3904a233e094ae7ae285c7baefb97bac2b2ba9cee60d463 |
|
MD5 | a679bd0bb199360aeb2557fa90457cea |
|
BLAKE2b-256 | 3bf09b733946c44a3fd2cc700dcc112ddf18e8078b725a701240fa7439653a00 |
threaded-4.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4edbf0ccf76ac77b03334703ed85a8db25185405370c10a493bded70f3572ad3 |
|
MD5 | 2cf1c5f78915d9fb4f91ade632e4964c |
|
BLAKE2b-256 | 2a2bb301e867a25b5629123b840ff8fbc2ab5eedc2e20123482074dd08d43068 |
threaded-4.2.0-cp311-cp311-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 04f769a5e5c3c251e64f4cf2c5d099d1327277fd7ab5874749501f1599f65de4 |
|
MD5 | 350e04a538b76094b747c9f0772638aa |
|
BLAKE2b-256 | 422cc284b701df74137f559b4f8b24fdf1fff2c1d95f4a7c2a47d2eb687b13b2 |
threaded-4.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3ed7419f4409b20b45ec07c8c8dbc59d47f86f8735871b7e1d995b22b548226c |
|
MD5 | 798ce6f703a43459cf1ba73f788931d5 |
|
BLAKE2b-256 | 6279cf488cd0c9b5b167582167d5707e511415567cfdee4950b5108b9d3274c3 |
threaded-4.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c8bc318d37078af559ccb5fcf63cfb979aa5207fa7a5e6e136aab546762884a4 |
|
MD5 | af4ba5511cad85ffb7108bf3a7df11c8 |
|
BLAKE2b-256 | df520233e4fada165425fac006f63cb7f97a558962dada06e32f4a056d123817 |
哈希值 用于 threaded-4.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 14d59d028947221422b480eed89c86aca5a5015d70d59f1508a49c6be179c001 |
|
MD5 | 0b94b0a88407a21dbb71c5c7c408b8ca |
|
BLAKE2b-256 | c6d6db57bd2a5d71a99b966b9fc8bd07f1ad47e327712af0ec1ae8ce958226a3 |
哈希值 用于 threaded-4.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7550d788bc96e73a70821b481f376f2ebd7afdb40f395651374318cecdebe8e7 |
|
MD5 | fe42db0a042f6da2a8e34a8a78cd0077 |
|
BLAKE2b-256 | ae96812f9b6545ca71c3cb39f732411435ececf6ee8517cee333419b32f34999 |
哈希值 用于 threaded-4.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 289b4b43a3675ddec5fcff189e53b0d42044b61d4fd2241e35ead5abc15db439 |
|
MD5 | 32c625d2b878cb79ccc54c3988f240f8 |
|
BLAKE2b-256 | 109573199a901add89078c9620297cc76aa547e7aed9af77f651874526e2255e |
哈希值 用于 threaded-4.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 97418c1029796b35b709915435ea77443ef2565e07ac0c2e2bc6d76a9f013317 |
|
MD5 | f8b9bdb26268a0465feed8b1276e4751 |
|
BLAKE2b-256 | 0b4f47678cf8a27ef168f33f2f9d892ae4252f023aa18e2bb84c8c027c458884 |
哈希值 用于 threaded-4.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0a85db2d603bdb4da5ab6fdd475ade0f56820fe6d191bc647ef68b3983aa2f98 |
|
MD5 | ab68db9d219b64b9e0529069f74e2a89 |
|
BLAKE2b-256 | cc8ac54e1b37c48f31a7e3fc7bea3414f4fff946bba4b25c5ce6e0a5d901516c |
哈希值 用于 threaded-4.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7a8839c74e5d88ca7cba346cec394d30e5ec0002e7a59d718df9f2dd331d653d |
|
MD5 | daf6090ebf2dfdfd593f3ddd4aa8c4da |
|
BLAKE2b-256 | 2a5634f80bfffd99493e3da90f66c712b0146dc95d2dea5c0a2b37bd88e2dc70 |
哈希值 用于 threaded-4.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 00c1910f722d50e2717ffd5fe8c66e137766eb9c6d78a13992fec11697dc68b0 |
|
MD5 | bcd44e6c686b35dccdbb694765818eaa |
|
BLAKE2b-256 | 2a393ffc37b58df6777a43b7d78578ed960799f764a67967d17be4f1a6274381 |
哈希值 用于 threaded-4.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b23ff0545f7b6458463c6d9baefee9239b9e6bf721d65099f173a4a5690eba63 |
|
MD5 | c55ba5d827edbac6d33fff5cb8a26e40 |
|
BLAKE2b-256 | abdbbf098374b8231a62914665455ce246143488ad7ad9da8a039b4539537740 |
哈希值 用于 threaded-4.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 93f36eaf4b6880fc373633d2b4740be798d58298ae0b6b6dc598a1ded901922d |
|
MD5 | 7639f26b3100a2a547b34c5e1ece97ef |
|
BLAKE2b-256 | ade16c6ddacf7ad11fb79a506534bd7aaf875a4401d0856161d1d79c6c878a56 |
哈希值 for threaded-4.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7c52ea5c2d631b64d8f616fc9360320844087fa5257353edc2d360330cbc467d |
|
MD5 | 2732f8da88effa229d878856af9389a8 |
|
BLAKE2b-256 | 5866fddec82a7b565f2420156eb64e1d229ac50d2c1a3515d6bc02c8f52a0245 |