queutils 0.8.1__py3-none-any.whl → 0.8.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: queutils
3
- Version: 0.8.1
3
+ Version: 0.8.3
4
4
  Summary: Handy Python Queue utilies
5
5
  Project-URL: Homepage, https://github.com/Jylpah/queutils
6
6
  Project-URL: Bug Tracker, https://github.com/Jylpah/queutils/issues
@@ -31,16 +31,17 @@ Description-Content-Type: text/markdown
31
31
 
32
32
  # Queutils
33
33
 
34
- Queutils *[Queue Utils]* is a package if handy Python queue classes:
35
- - **[AsyncQueue](docs/asyncqueue.md)** - `async` wrapper for `queue.Queue`
36
- - **[IterableQueue](docs/iterablequeue.md)** - `AsyncIterable` queue
37
- - **[FileQueue](docs/filequeue.md)** - builds a queue of filenames from input
34
+ Queutils *[Queue Utils]* is a package of handy Python queue classes:
35
+
36
+ - **[AsyncQueue](docs/asyncqueue.md)** - An `async` wrapper for non-async `queue.Queue`
37
+ - **[IterableQueue](docs/iterablequeue.md)** - An `AsyncIterable` queue that terminates when finished
38
+ - **[FileQueue](docs/filequeue.md)** - Builds an iterable queue of filenames from files/dirs given as input
38
39
 
39
40
 
40
41
  # AsyncQueue
41
42
 
42
43
  [`AsyncQueue`](docs/asyncqueue.md) is a async wrapper for non-async `queue.Queue`. It can be used to create
43
- an `asyncio.Queue` compatible out of a (non-async) `multiprocessing.Queue`. This is handy to have `async` code running in `multiprocessing` processes and yet be able to communicate with the parent via (non-async) managed `multiprocessing.Queue` queue.
44
+ an `asyncio.Queue` compatible interface to a (non-async) managed `multiprocessing.Queue` and thus enable `async` code in parent/child processes to communicate over `multiprocessing.Queue` as it were an `asyncio.Queue`.
44
45
 
45
46
  ## Features
46
47
 
@@ -53,6 +54,12 @@ an `asyncio.Queue` compatible out of a (non-async) `multiprocessing.Queue`. This
53
54
 
54
55
  [`IterableQueue`](docs/iterablequeue.md) is an `asyncio.Queue` subclass that is `AsyncIterable[T]` i.e. it can be
55
56
  iterated in `async for` loop. `IterableQueue` terminates automatically when the queue has been filled and emptied.
57
+
58
+ The `IterableQueue` requires "producers" (functions adding items to the queue) to register themselves and it
59
+ keeps count of registered producers which are "finished" adding items to the queue. Once all the registered
60
+ producers are "finished", the queue enters into "filled" state and no new items can be added. Once an
61
+ "filled" queue is emptied, the queue becomes "done" and all new `get()` calls to the queue will
62
+ `raise QueueDone` exception.
56
63
 
57
64
  ## Features
58
65
 
@@ -67,7 +74,9 @@ iterated in `async for` loop. `IterableQueue` terminates automatically when the
67
74
 
68
75
  # FileQueue
69
76
 
70
- [`FileQueue`](docs/filequeue.md) builds a queue (`IterableQueue[pathlib.Path]`) of the matching files found based on search parameters given. It can search both list of files or directories or mixed. Async method `FileQueue.mk_queue()` searches subdirectories of given directories.
77
+ [`FileQueue`](docs/filequeue.md) builds a queue (`IterableQueue[pathlib.Path]`) of the matching
78
+ files found based on search parameters given. It can search both list of files or directories or
79
+ mixed. Async method `FileQueue.mk_queue()` searches subdirectories of given directories.
71
80
 
72
81
  ## Features
73
82
 
@@ -3,7 +3,7 @@ queutils/asyncqueue.py,sha256=cZPrXJgRCK0iOtE6k-VTzA9kcDDg818h9v0cwYzm2g0,2813
3
3
  queutils/countable.py,sha256=YSi7ILf9CuB5Tm3T4UUMEFlveqzqcmomfqJAlLGHEz8,172
4
4
  queutils/filequeue.py,sha256=q2ly9H-lSCq6xuOqT1IlWgyCVyLoZiKbc0NuzmkF4aw,5360
5
5
  queutils/iterablequeue.py,sha256=hygOtgRRuqaPebcK27Ixm_KOOW0MnlKmBNcYreQoWOA,8677
6
- queutils-0.8.1.dist-info/METADATA,sha256=IcC2JgXacCtVK-NWXMP5T1ehHqJVWzDMuaBr93tvS-0,3694
7
- queutils-0.8.1.dist-info/WHEEL,sha256=uNdcs2TADwSd5pVaP0Z_kcjcvvTUklh2S7bxZMF8Uj0,87
8
- queutils-0.8.1.dist-info/licenses/LICENSE,sha256=J1zeIKU2JVQmhwO2hHQDK8WR6zjVZ-wX8r7ZlL45AbI,1063
9
- queutils-0.8.1.dist-info/RECORD,,
6
+ queutils-0.8.3.dist-info/METADATA,sha256=xpuVY8uEdK0HZcY9Kv5YvUJpaW5_2T_bSQ04bzLVtRM,4191
7
+ queutils-0.8.3.dist-info/WHEEL,sha256=uNdcs2TADwSd5pVaP0Z_kcjcvvTUklh2S7bxZMF8Uj0,87
8
+ queutils-0.8.3.dist-info/licenses/LICENSE,sha256=J1zeIKU2JVQmhwO2hHQDK8WR6zjVZ-wX8r7ZlL45AbI,1063
9
+ queutils-0.8.3.dist-info/RECORD,,