# threading_manager (v0.0.8)
## DESCRIPTION_SHORT
Manage spawned threads
## DESCRIPTION_LONG
designed to working with spawned threads
## Features
1. use different managers for different funcs/methods if needed
2. use just one decorator to spawn threads from func / methods
3. keep all spawned threads in list by ThreadItem objects
4. ThreadItem keeps result/exx/is_alive attributes!
5. use wait_all()
********************************************************************************
## License
See the [LICENSE](LICENSE) file for license rights and limitations (MIT).
## Release history
See the [HISTORY.md](HISTORY.md) file for release history.
## Installation
```commandline
pip install threading-manager
```
## Import
```python
from threading_manager import *
```
********************************************************************************
## USAGE EXAMPLES
See tests and sourcecode for other examples.
------------------------------
### 1. example1.py
```python
from threading_manager import *
count = 5
time_start = time.time()
# define victim ------------------
class ThreadManager1(ThreadsManager):
pass
class Cls:
@ThreadManager1().decorator__to_thread
def func1(self, num):
time.sleep(1)
return num * 1000
# spawn ------------------
for i in range(count):
assert Cls().func1(i) is None
assert ThreadManager1().count == count
ThreadManager1().wait_all()
assert {item.result for item in ThreadManager1().THREADS} == {num * 1000 for num in range(count)}
ThreadManager1().clear()
# spawn ------------------
for i in range(count):
assert Cls().func1(i) is None
```
********************************************************************************
Raw data
{
"_id": null,
"home_page": "https://github.com/centroid457/",
"name": "threading-manager",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "threading,threads,thread,thread manager",
"author": "Andrei Starichenko",
"author_email": "centroid@mail.ru",
"download_url": "https://files.pythonhosted.org/packages/f7/6b/05da342aabd0cb2e8552c3df6eed9c85b30751669910e5558340a4714311/threading_manager-0.0.8.tar.gz",
"platform": null,
"description": "# threading_manager (v0.0.8)\r\n\r\n## DESCRIPTION_SHORT\r\nManage spawned threads\r\n\r\n## DESCRIPTION_LONG\r\ndesigned to working with spawned threads\r\n\r\n\r\n## Features\r\n1. use different managers for different funcs/methods if needed \r\n2. use just one decorator to spawn threads from func / methods \r\n3. keep all spawned threads in list by ThreadItem objects \r\n4. ThreadItem keeps result/exx/is_alive attributes! \r\n5. use wait_all() \r\n\r\n\r\n********************************************************************************\r\n## License\r\nSee the [LICENSE](LICENSE) file for license rights and limitations (MIT).\r\n\r\n\r\n## Release history\r\nSee the [HISTORY.md](HISTORY.md) file for release history.\r\n\r\n\r\n## Installation\r\n```commandline\r\npip install threading-manager\r\n```\r\n\r\n\r\n## Import\r\n```python\r\nfrom threading_manager import *\r\n```\r\n\r\n\r\n********************************************************************************\r\n## USAGE EXAMPLES\r\nSee tests and sourcecode for other examples.\r\n\r\n------------------------------\r\n### 1. example1.py\r\n```python\r\nfrom threading_manager import *\r\n\r\ncount = 5\r\ntime_start = time.time()\r\n\r\n\r\n# define victim ------------------\r\nclass ThreadManager1(ThreadsManager):\r\n pass\r\n\r\n\r\nclass Cls:\r\n @ThreadManager1().decorator__to_thread\r\n def func1(self, num):\r\n time.sleep(1)\r\n return num * 1000\r\n\r\n\r\n# spawn ------------------\r\nfor i in range(count):\r\n assert Cls().func1(i) is None\r\n\r\nassert ThreadManager1().count == count\r\nThreadManager1().wait_all()\r\nassert {item.result for item in ThreadManager1().THREADS} == {num * 1000 for num in range(count)}\r\n\r\nThreadManager1().clear()\r\n\r\n# spawn ------------------\r\nfor i in range(count):\r\n assert Cls().func1(i) is None\r\n```\r\n\r\n********************************************************************************\r\n",
"bugtrack_url": null,
"license": "",
"summary": "manage spawned threads",
"version": "0.0.8",
"project_urls": {
"Homepage": "https://github.com/centroid457/",
"Source": "https://github.com/centroid457/threading_manager"
},
"split_keywords": [
"threading",
"threads",
"thread",
"thread manager"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "df2ecbafacaba1ce2aa2efe3ab5206c29d31cda459b5df74d64df17996c70155",
"md5": "0c47f95ba8fbd885d52536dea3d99f7d",
"sha256": "983345adf8ebf5624233a1123ddc3b17d76fd2ab1bed556da6c822ebc460be71"
},
"downloads": -1,
"filename": "threading_manager-0.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0c47f95ba8fbd885d52536dea3d99f7d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 5272,
"upload_time": "2024-01-14T03:40:47",
"upload_time_iso_8601": "2024-01-14T03:40:47.684499Z",
"url": "https://files.pythonhosted.org/packages/df/2e/cbafacaba1ce2aa2efe3ab5206c29d31cda459b5df74d64df17996c70155/threading_manager-0.0.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f76b05da342aabd0cb2e8552c3df6eed9c85b30751669910e5558340a4714311",
"md5": "b2125d274d797e342d3d670972493d12",
"sha256": "8fa9ad2491b97a28b23193f116f3ab7bd3628ec60511a0ad051a33b5a62919ff"
},
"downloads": -1,
"filename": "threading_manager-0.0.8.tar.gz",
"has_sig": false,
"md5_digest": "b2125d274d797e342d3d670972493d12",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 5008,
"upload_time": "2024-01-14T03:40:48",
"upload_time_iso_8601": "2024-01-14T03:40:48.962325Z",
"url": "https://files.pythonhosted.org/packages/f7/6b/05da342aabd0cb2e8552c3df6eed9c85b30751669910e5558340a4714311/threading_manager-0.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-14 03:40:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "centroid457",
"github_project": "threading_manager",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "threading-manager"
}