The 'EnhaaancedQueues' library contains the 'EnhQueue' class - coming with extended / enhanced (in particular portability) capabilities.
The 'EnhQueue' class is inherited from 'multiprocessing.queues.JoinableQueue' - which after that is enhanced to work properly on all main desktop platforms ('Windows', 'macOS' and 'Linux').
Windows:
Windows processes do not share memory, which means, shared objects have to be 'pickled' and transmitted to the respective subprocess via pipe - when given as parameters to (multiprocessing) process calls. The 'EnhQueue' class has been made pickable (have a look at it's '__ reduce __' method).
macOS:
The 'qsize' method of the 'multiprocessing.queues.JoinableQueue' does not work under some 'macOS'es (and maybe other *nixes); it might lead to a 'NotImplementedError'.
The 'EnhQueue' class wraps 'multiprocessing.queues.JoinableQueue' to correct this aspect. The additional lock used for that might also have a positive effect to the reliability of the methods 'empty' and 'full'.
Miscellaneous:
Shutting down an application with several processes properly is a delicate thing, if some of said processes crashed / got stuck. The 'EnhQueue' class has been equipped with a semi-blocking 'join' method - a 'join' with a timeout.
Due to the parallel nature of multiprocessing, emptying a queue reliable in a setup, where several processes could put another element in said queue during or after said emptying is a delicate thing too.
The 'EnhQueue' has been equipped with a 'clear' method emptying the queue in the most reliable and least blocking way possible - as known to the author yet. It in particular is designed to be useful during cleaning up when shutting down an application properly.
Further infomations and links can be found on my homepage https://www.blackward.de
Have Fun!
Metadata
Release files for enhaaancedQueues 0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| enhaaancedQueues-0.7-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details for enhaaancedQueues-0.7-py2.py3-none-any.whl |
Release files / enhaaancedQueues-0.7-py2.py3-none-any.whl
| Download URL | enhaaancedQueues-0.7-py2.py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
d4c664eec5c9202826331b13a8294fad2b6007cb3993faceb72a8888fe333f5c
|
|
BLAKE2b-256 checksum How to use checksums |
c7a022a3fccb79b39d708c98b2716ff03042270b73ebd501af9e69173c3ef1e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10
|
Security for enhaaancedQueues 0.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.