queutils 0.8.1__tar.gz → 0.8.3__tar.gz
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.
- queutils-0.8.3/.github/workflows/dependency-review.yml +39 -0
- queutils-0.8.3/.github/workflows/python-publish.yml +39 -0
- {queutils-0.8.1 → queutils-0.8.3}/PKG-INFO +16 -7
- {queutils-0.8.1 → queutils-0.8.3}/README.md +15 -6
- {queutils-0.8.1 → queutils-0.8.3}/pyproject.toml +1 -1
- {queutils-0.8.1 → queutils-0.8.3}/.github/workflows/python-package.yml +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/.gitignore +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/LICENSE +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/codecov.yml +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/demos/asyncqueue_demo.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/demos/filequeue_demo.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/demos/iterablequeue_demo.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/docs/asyncqueue.md +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/docs/filequeue.md +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/docs/iterablequeue.md +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/src/queutils/__init__.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/src/queutils/asyncqueue.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/src/queutils/countable.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/src/queutils/filequeue.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/src/queutils/iterablequeue.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/tests/test_asyncqueue.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/tests/test_demos.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/tests/test_filequeue.py +0 -0
- {queutils-0.8.1 → queutils-0.8.3}/tests/test_iterablequeue.py +0 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
# Dependency Review Action
|
2
|
+
#
|
3
|
+
# This Action will scan dependency manifest files that change as part of a Pull Request,
|
4
|
+
# surfacing known-vulnerable versions of the packages declared or updated in the PR.
|
5
|
+
# Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable
|
6
|
+
# packages will be blocked from merging.
|
7
|
+
#
|
8
|
+
# Source repository: https://github.com/actions/dependency-review-action
|
9
|
+
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
|
10
|
+
name: 'Dependency review'
|
11
|
+
on:
|
12
|
+
pull_request:
|
13
|
+
branches: [ "main" ]
|
14
|
+
|
15
|
+
# If using a dependency submission action in this workflow this permission will need to be set to:
|
16
|
+
#
|
17
|
+
# permissions:
|
18
|
+
# contents: write
|
19
|
+
#
|
20
|
+
# https://docs.github.com/en/enterprise-cloud@latest/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api
|
21
|
+
permissions:
|
22
|
+
contents: read
|
23
|
+
# Write permissions for pull-requests are required for using the `comment-summary-in-pr` option, comment out if you aren't using this option
|
24
|
+
pull-requests: write
|
25
|
+
|
26
|
+
jobs:
|
27
|
+
dependency-review:
|
28
|
+
runs-on: ubuntu-latest
|
29
|
+
steps:
|
30
|
+
- name: 'Checkout repository'
|
31
|
+
uses: actions/checkout@v4
|
32
|
+
- name: 'Dependency Review'
|
33
|
+
uses: actions/dependency-review-action@v4
|
34
|
+
# Commonly enabled options, see https://github.com/actions/dependency-review-action#configuration-options for all available options.
|
35
|
+
with:
|
36
|
+
comment-summary-in-pr: always
|
37
|
+
# fail-on-severity: moderate
|
38
|
+
# deny-licenses: GPL-1.0-or-later, LGPL-2.0-or-later
|
39
|
+
# retry-on-snapshot-warnings: true
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# This workflow will upload a Python Package using Twine when a release is created
|
2
|
+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
|
3
|
+
|
4
|
+
# This workflow uses actions that are not certified by GitHub.
|
5
|
+
# They are provided by a third-party and are governed by
|
6
|
+
# separate terms of service, privacy policy, and support
|
7
|
+
# documentation.
|
8
|
+
|
9
|
+
name: Upload Python Package
|
10
|
+
|
11
|
+
on:
|
12
|
+
release:
|
13
|
+
types: [published]
|
14
|
+
|
15
|
+
permissions:
|
16
|
+
contents: read
|
17
|
+
|
18
|
+
jobs:
|
19
|
+
deploy:
|
20
|
+
|
21
|
+
runs-on: ubuntu-latest
|
22
|
+
|
23
|
+
steps:
|
24
|
+
- uses: actions/checkout@v4
|
25
|
+
- name: Set up Python
|
26
|
+
uses: actions/setup-python@v5
|
27
|
+
with:
|
28
|
+
python-version: '3.11'
|
29
|
+
- name: Install dependencies
|
30
|
+
run: |
|
31
|
+
python -m pip install --upgrade pip
|
32
|
+
pip install build
|
33
|
+
- name: Build package
|
34
|
+
run: python -m build
|
35
|
+
- name: Publish package
|
36
|
+
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
|
37
|
+
with:
|
38
|
+
user: __token__
|
39
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: queutils
|
3
|
-
Version: 0.8.
|
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
|
35
|
-
|
36
|
-
- **[
|
37
|
-
- **[
|
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
|
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
|
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
|
|
@@ -2,16 +2,17 @@
|
|
2
2
|
|
3
3
|
# Queutils
|
4
4
|
|
5
|
-
Queutils *[Queue Utils]* is a package
|
6
|
-
|
7
|
-
- **[
|
8
|
-
- **[
|
5
|
+
Queutils *[Queue Utils]* is a package of handy Python queue classes:
|
6
|
+
|
7
|
+
- **[AsyncQueue](docs/asyncqueue.md)** - An `async` wrapper for non-async `queue.Queue`
|
8
|
+
- **[IterableQueue](docs/iterablequeue.md)** - An `AsyncIterable` queue that terminates when finished
|
9
|
+
- **[FileQueue](docs/filequeue.md)** - Builds an iterable queue of filenames from files/dirs given as input
|
9
10
|
|
10
11
|
|
11
12
|
# AsyncQueue
|
12
13
|
|
13
14
|
[`AsyncQueue`](docs/asyncqueue.md) is a async wrapper for non-async `queue.Queue`. It can be used to create
|
14
|
-
an `asyncio.Queue` compatible
|
15
|
+
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`.
|
15
16
|
|
16
17
|
## Features
|
17
18
|
|
@@ -24,6 +25,12 @@ an `asyncio.Queue` compatible out of a (non-async) `multiprocessing.Queue`. This
|
|
24
25
|
|
25
26
|
[`IterableQueue`](docs/iterablequeue.md) is an `asyncio.Queue` subclass that is `AsyncIterable[T]` i.e. it can be
|
26
27
|
iterated in `async for` loop. `IterableQueue` terminates automatically when the queue has been filled and emptied.
|
28
|
+
|
29
|
+
The `IterableQueue` requires "producers" (functions adding items to the queue) to register themselves and it
|
30
|
+
keeps count of registered producers which are "finished" adding items to the queue. Once all the registered
|
31
|
+
producers are "finished", the queue enters into "filled" state and no new items can be added. Once an
|
32
|
+
"filled" queue is emptied, the queue becomes "done" and all new `get()` calls to the queue will
|
33
|
+
`raise QueueDone` exception.
|
27
34
|
|
28
35
|
## Features
|
29
36
|
|
@@ -38,7 +45,9 @@ iterated in `async for` loop. `IterableQueue` terminates automatically when the
|
|
38
45
|
|
39
46
|
# FileQueue
|
40
47
|
|
41
|
-
[`FileQueue`](docs/filequeue.md) builds a queue (`IterableQueue[pathlib.Path]`) of the matching
|
48
|
+
[`FileQueue`](docs/filequeue.md) builds a queue (`IterableQueue[pathlib.Path]`) of the matching
|
49
|
+
files found based on search parameters given. It can search both list of files or directories or
|
50
|
+
mixed. Async method `FileQueue.mk_queue()` searches subdirectories of given directories.
|
42
51
|
|
43
52
|
## Features
|
44
53
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|