Name | prqrs JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | Benchmarked priority queue implementation in Rust |
upload_time | 2023-12-28 21:36:03 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10, <3.12 |
license | MIT |
keywords |
priority queue
pyo3
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# prqrs
> Python priority queue in Rust via pyo3
<!-- [![PyPI](https://img.shields.io/pypi/v/prqrs?logo=python&logoColor=%23cccccc)](https://pypi.org/project/prqrs) -->
<!-- [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/lmmx/prqrs/master.svg)](https://results.pre-commit.ci/latest/github/lmmx/prqrs/master) -->
<!-- [![Supported Python versions](https://img.shields.io/pypi/pyversions/prqrs.svg)](https://pypi.org/project/prqrs) -->
[![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm.fming.dev)
[![license](https://img.shields.io/github/license/lmmx/prqrs.svg)](https://github.com/lmmx/prqrs/blob/main/LICENSE)
The `prqrs` package provides a simple interface to a priority queue implemented in Rust. This
guide will show you how to create a priority queue, add items to it, and retrieve items based on
their priority.
## Installation
<!-- First, ensure that the prqrs package is installed.
```sh
pip install prqrs
```
-->
To build the Rust project from source run:
```sh
maturin develop --release
```
Alternatively using the PDM package manager, just run `pdm install`.
## Usage
### Creating a Priority Queue
To create a priority queue, import the `PriorityQueue` class from the `prqrs` package and
instantiate it:
```py
from prqrs import PriorityQueue
pq = PriorityQueue()
```
### Creating Items
Items that can be added to the priority queue need a value and a priority.
Import the `Item` class and create items:
```py
from prqrs import Item
item1 = Item(value=5, priority=3) # An item with value 5 and priority 3
item2 = Item(value=10, priority=1) # An item with value 10 and priority 1
```
### Adding Items to the Queue
Add items to the queue using the push method:
```py
pq.push(item1)
pq.push(item2)
```
### Retrieving Items from the Queue
Retrieve items based on their priority using the `pop` method.
This method returns the item with the highest priority (lowest numerical value of priority):
```py
highest_priority_item = pq.pop()
if highest_priority_item is not None:
print(f"Value: {highest_priority_item.value}, Priority: {highest_priority_item.priority}")
```
### Checking if the Queue is Empty
To check whether the priority queue is empty, use the `is_empty` method:
```py
if pq.is_empty():
print("The priority queue is empty.")
else:
print("The priority queue is not empty.")
```
### Example
Here is a complete example that demonstrates creating a priority queue, adding items, and retrieving
them:
```py
from prqrs import PriorityQueue, Item
# Create a priority queue
pq = PriorityQueue()
# Add items
pq.push(Item(value=5, priority=3))
pq.push(Item(value=10, priority=1))
pq.push(Item(value=7, priority=2))
# Retrieve and print items
while not pq.is_empty():
item = pq.pop()
print(f"Value: {item.value}, Priority: {item.priority}")
```
This will output
```
Value: 5, Priority: 3
Value: 7, Priority: 2
Value: 10, Priority: 1
```
## Benchmarking
Running `pdm install` (or `maturin develop`) to install the Rust wheel followed by `python benchmark_1m.py`:
1.1 GHz CPU: (0.18+0.51)s
```
Enqueue time for 1 million items: 0.1798386573791504 seconds
Dequeue time for 1 million items: 0.5103330612182617 seconds
```
3.7 GHz CPU: (0.08+0.19)s
```
Enqueue time for 1 million items: 0.08250904083251953 seconds
Dequeue time for 1 million items: 0.1858220100402832 seconds
```
Raw data
{
"_id": null,
"home_page": null,
"name": "prqrs",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10, <3.12",
"maintainer_email": null,
"keywords": "priority queue,pyo3",
"author": null,
"author_email": "Louis Maddox <louismmx@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/e1/9a/eb5d2990179d2b4c41497b1bb5ece54985004f5b4ecd9a3b0fe52d456ecf/prqrs-0.1.0.tar.gz",
"platform": null,
"description": "# prqrs\n\n> Python priority queue in Rust via pyo3\n\n<!-- [![PyPI](https://img.shields.io/pypi/v/prqrs?logo=python&logoColor=%23cccccc)](https://pypi.org/project/prqrs) -->\n<!-- [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/lmmx/prqrs/master.svg)](https://results.pre-commit.ci/latest/github/lmmx/prqrs/master) -->\n<!-- [![Supported Python versions](https://img.shields.io/pypi/pyversions/prqrs.svg)](https://pypi.org/project/prqrs) -->\n[![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm.fming.dev)\n[![license](https://img.shields.io/github/license/lmmx/prqrs.svg)](https://github.com/lmmx/prqrs/blob/main/LICENSE)\n\nThe `prqrs` package provides a simple interface to a priority queue implemented in Rust. This\nguide will show you how to create a priority queue, add items to it, and retrieve items based on\ntheir priority.\n\n## Installation\n\n<!-- First, ensure that the prqrs package is installed.\n\n```sh\npip install prqrs\n```\n\n-->\n\nTo build the Rust project from source run:\n\n```sh\nmaturin develop --release\n```\n\nAlternatively using the PDM package manager, just run `pdm install`.\n\n## Usage\n\n### Creating a Priority Queue\n\nTo create a priority queue, import the `PriorityQueue` class from the `prqrs` package and\ninstantiate it:\n\n```py\nfrom prqrs import PriorityQueue\n\npq = PriorityQueue()\n```\n\n### Creating Items\n\nItems that can be added to the priority queue need a value and a priority.\nImport the `Item` class and create items:\n\n```py\nfrom prqrs import Item\n\nitem1 = Item(value=5, priority=3) # An item with value 5 and priority 3\nitem2 = Item(value=10, priority=1) # An item with value 10 and priority 1\n```\n\n### Adding Items to the Queue\n\nAdd items to the queue using the push method:\n\n```py\npq.push(item1)\npq.push(item2)\n```\n\n### Retrieving Items from the Queue\n\nRetrieve items based on their priority using the `pop` method.\nThis method returns the item with the highest priority (lowest numerical value of priority):\n\n```py\nhighest_priority_item = pq.pop()\nif highest_priority_item is not None:\n print(f\"Value: {highest_priority_item.value}, Priority: {highest_priority_item.priority}\")\n```\n\n### Checking if the Queue is Empty\n\nTo check whether the priority queue is empty, use the `is_empty` method:\n\n```py\nif pq.is_empty():\n print(\"The priority queue is empty.\")\nelse:\n print(\"The priority queue is not empty.\")\n```\n\n### Example\n\nHere is a complete example that demonstrates creating a priority queue, adding items, and retrieving\nthem:\n\n```py\nfrom prqrs import PriorityQueue, Item\n\n# Create a priority queue\npq = PriorityQueue()\n\n# Add items\npq.push(Item(value=5, priority=3))\npq.push(Item(value=10, priority=1))\npq.push(Item(value=7, priority=2))\n\n# Retrieve and print items\nwhile not pq.is_empty():\n item = pq.pop()\n print(f\"Value: {item.value}, Priority: {item.priority}\")\n```\n\nThis will output\n\n```\nValue: 5, Priority: 3\nValue: 7, Priority: 2\nValue: 10, Priority: 1\n```\n\n## Benchmarking\n\nRunning `pdm install` (or `maturin develop`) to install the Rust wheel followed by `python benchmark_1m.py`:\n\n1.1 GHz CPU: (0.18+0.51)s\n\n```\nEnqueue time for 1 million items: 0.1798386573791504 seconds\nDequeue time for 1 million items: 0.5103330612182617 seconds\n```\n\n3.7 GHz CPU: (0.08+0.19)s\n\n```\nEnqueue time for 1 million items: 0.08250904083251953 seconds\nDequeue time for 1 million items: 0.1858220100402832 seconds\n```\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Benchmarked priority queue implementation in Rust",
"version": "0.1.0",
"project_urls": null,
"split_keywords": [
"priority queue",
"pyo3"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "f5262894f2d52b5202802856a360e6d579b483ac3bf36b0ab21ef4ee32bd2ae0",
"md5": "1f50d98206fb4861ff36fff58a9c6ee1",
"sha256": "fb78ee9e1aae12b06f30fc8850138a45692c068c8cfaa6474091999d026211c9"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1f50d98206fb4861ff36fff58a9c6ee1",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10, <3.12",
"size": 655781,
"upload_time": "2023-12-28T21:35:40",
"upload_time_iso_8601": "2023-12-28T21:35:40.233561Z",
"url": "https://files.pythonhosted.org/packages/f5/26/2894f2d52b5202802856a360e6d579b483ac3bf36b0ab21ef4ee32bd2ae0/prqrs-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b9609876c1511e0887f925753381a45ca7cb0ab447235dead691451b40835e9e",
"md5": "baaf325e24ebaab42aec6af121d870f6",
"sha256": "31178b6f25326da2f1bdd83d8db1f23020cb9e618206264ed4415643cb61e30f"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "baaf325e24ebaab42aec6af121d870f6",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10, <3.12",
"size": 663474,
"upload_time": "2023-12-28T21:35:42",
"upload_time_iso_8601": "2023-12-28T21:35:42.013283Z",
"url": "https://files.pythonhosted.org/packages/b9/60/9876c1511e0887f925753381a45ca7cb0ab447235dead691451b40835e9e/prqrs-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e7ba45deac5f0cbc661d24421af13fe691abf32102b98efa748eb9fcaac15c8b",
"md5": "9f8b7098ab265dabc1cacaaa92591f2f",
"sha256": "b3d765314843d6615ed67b4a25a792eeffca45c4d430ecce2ec2956ac3507fd6"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp310-none-win32.whl",
"has_sig": false,
"md5_digest": "9f8b7098ab265dabc1cacaaa92591f2f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10, <3.12",
"size": 123621,
"upload_time": "2023-12-28T21:35:43",
"upload_time_iso_8601": "2023-12-28T21:35:43.327461Z",
"url": "https://files.pythonhosted.org/packages/e7/ba/45deac5f0cbc661d24421af13fe691abf32102b98efa748eb9fcaac15c8b/prqrs-0.1.0-cp310-none-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "14cb000db48a2a9a59ca0307190ffd42b235315425f5cf9776911b86dcee63ca",
"md5": "d73876e3aa377b4e3cf8107f669aafbd",
"sha256": "cc0c7990188dc30a4b19661a6f487771f7cfda060160d2a41e216556a91d0ed2"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp310-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "d73876e3aa377b4e3cf8107f669aafbd",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10, <3.12",
"size": 129125,
"upload_time": "2023-12-28T21:35:44",
"upload_time_iso_8601": "2023-12-28T21:35:44.405548Z",
"url": "https://files.pythonhosted.org/packages/14/cb/000db48a2a9a59ca0307190ffd42b235315425f5cf9776911b86dcee63ca/prqrs-0.1.0-cp310-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "003e4238ff7694c57bf866f98b1b428586d7408d57544cd4d53b57b8c6c0a5da",
"md5": "a91ded07d966dbfc659ba176059fc48e",
"sha256": "ab8799bf958f32c6f638d7fee4efb3cf184db4c354f5f452c8d96aa2fa055ecf"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp310-none-win_arm64.whl",
"has_sig": false,
"md5_digest": "a91ded07d966dbfc659ba176059fc48e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10, <3.12",
"size": 123315,
"upload_time": "2023-12-28T21:35:46",
"upload_time_iso_8601": "2023-12-28T21:35:46.059372Z",
"url": "https://files.pythonhosted.org/packages/00/3e/4238ff7694c57bf866f98b1b428586d7408d57544cd4d53b57b8c6c0a5da/prqrs-0.1.0-cp310-none-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a110328f37f3faa3a514e888bb62796745062186e7a99a711fceaeb060e89519",
"md5": "c7fcb1014fa996ad26ac9d97208d133f",
"sha256": "825e614d156c5c0b7835ea34eed2c598d07df300a2dc3e69bc678cf69df2e9d7"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "c7fcb1014fa996ad26ac9d97208d133f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10, <3.12",
"size": 248419,
"upload_time": "2023-12-28T21:35:47",
"upload_time_iso_8601": "2023-12-28T21:35:47.167753Z",
"url": "https://files.pythonhosted.org/packages/a1/10/328f37f3faa3a514e888bb62796745062186e7a99a711fceaeb060e89519/prqrs-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fad19cbf8631d0421022929c44e629345eeec0214a93379f188231b38115328c",
"md5": "836a4d01a443a63d8fa02bc3e9fc45a8",
"sha256": "b8e6a846eafda0b251ec55d91d8a586dc734f4991e415b24dd7a493b03a6525e"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "836a4d01a443a63d8fa02bc3e9fc45a8",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10, <3.12",
"size": 242999,
"upload_time": "2023-12-28T21:35:49",
"upload_time_iso_8601": "2023-12-28T21:35:49.009659Z",
"url": "https://files.pythonhosted.org/packages/fa/d1/9cbf8631d0421022929c44e629345eeec0214a93379f188231b38115328c/prqrs-0.1.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ac945044ba46fd24fa71584e9f1da7ac46845a4cc79c08972cbe0900cd85e005",
"md5": "550a25b46b9189772f46b0e2735d6d1e",
"sha256": "cc19bba654305b66547f338d136fd4b17283ed178de60321f2a14a69881c39f6"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "550a25b46b9189772f46b0e2735d6d1e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10, <3.12",
"size": 655782,
"upload_time": "2023-12-28T21:35:50",
"upload_time_iso_8601": "2023-12-28T21:35:50.843625Z",
"url": "https://files.pythonhosted.org/packages/ac/94/5044ba46fd24fa71584e9f1da7ac46845a4cc79c08972cbe0900cd85e005/prqrs-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "740a7de07456524add5a9f768c6111cb702ce189e03a17539d11fb6171f33449",
"md5": "93277fa85c007422af74799cec096dad",
"sha256": "5a098ac9219653429116bcd7ccc392434c96c8bdf64729c5526f0503b7bb1013"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "93277fa85c007422af74799cec096dad",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10, <3.12",
"size": 663473,
"upload_time": "2023-12-28T21:35:52",
"upload_time_iso_8601": "2023-12-28T21:35:52.900654Z",
"url": "https://files.pythonhosted.org/packages/74/0a/7de07456524add5a9f768c6111cb702ce189e03a17539d11fb6171f33449/prqrs-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "19a9d7ff007553401ba993b34e273753b376fc4af2f5ebcbd5b911d340a31389",
"md5": "905f6c0c4ee5a852d26d86fad0893259",
"sha256": "75265aedf395a9f596e0a213db4d2505bcfb47dbeefb909be2ad1bff7e44caf8"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp311-none-win32.whl",
"has_sig": false,
"md5_digest": "905f6c0c4ee5a852d26d86fad0893259",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10, <3.12",
"size": 123622,
"upload_time": "2023-12-28T21:35:54",
"upload_time_iso_8601": "2023-12-28T21:35:54.781222Z",
"url": "https://files.pythonhosted.org/packages/19/a9/d7ff007553401ba993b34e273753b376fc4af2f5ebcbd5b911d340a31389/prqrs-0.1.0-cp311-none-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6f083240f37fb6344ce5daf2c6d959803df681b5d2e0a13e97de037ffd31b346",
"md5": "09d58cd507353e24656af7a79219365f",
"sha256": "c5645f7a73fa241d64499a9853bea6b6021ae4520b74ea58d203eb65e3185973"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp311-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "09d58cd507353e24656af7a79219365f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10, <3.12",
"size": 129133,
"upload_time": "2023-12-28T21:35:55",
"upload_time_iso_8601": "2023-12-28T21:35:55.871796Z",
"url": "https://files.pythonhosted.org/packages/6f/08/3240f37fb6344ce5daf2c6d959803df681b5d2e0a13e97de037ffd31b346/prqrs-0.1.0-cp311-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a216974eb38897613715de0f9ae769e22c6479ee7cf805bb6f7324999b1a33f2",
"md5": "c271e82994106835b3d3e85d5b9d9ba5",
"sha256": "a91cc111ee36236ce0a28afd64cce0c30e2f7fa67b9d8529de34c8ba0a382c55"
},
"downloads": -1,
"filename": "prqrs-0.1.0-cp311-none-win_arm64.whl",
"has_sig": false,
"md5_digest": "c271e82994106835b3d3e85d5b9d9ba5",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10, <3.12",
"size": 123317,
"upload_time": "2023-12-28T21:35:57",
"upload_time_iso_8601": "2023-12-28T21:35:57.559277Z",
"url": "https://files.pythonhosted.org/packages/a2/16/974eb38897613715de0f9ae769e22c6479ee7cf805bb6f7324999b1a33f2/prqrs-0.1.0-cp311-none-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a18d71feba24360bd2310602fb6b866850cf78c209d409dca96f4954e4620ae6",
"md5": "bdd444d740a7dcc8183f6ea32f5b4831",
"sha256": "fef87fe58ce1d1c82f9dbf9305733782470523025e3b1e870cbc292aea609c37"
},
"downloads": -1,
"filename": "prqrs-0.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "bdd444d740a7dcc8183f6ea32f5b4831",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10, <3.12",
"size": 655840,
"upload_time": "2023-12-28T21:35:59",
"upload_time_iso_8601": "2023-12-28T21:35:59.989741Z",
"url": "https://files.pythonhosted.org/packages/a1/8d/71feba24360bd2310602fb6b866850cf78c209d409dca96f4954e4620ae6/prqrs-0.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "adf2d31d3a1b1b31ed4caeb654d91ea960ec04cd25940dbf15be041b8e4fdf09",
"md5": "e3a90704de0fd0e66693b7d9742589a8",
"sha256": "04fbc02e82a886e1509b6a6ebf2fa96c75a3e072bacd9f8104f919fac02b6745"
},
"downloads": -1,
"filename": "prqrs-0.1.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "e3a90704de0fd0e66693b7d9742589a8",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10, <3.12",
"size": 663361,
"upload_time": "2023-12-28T21:36:01",
"upload_time_iso_8601": "2023-12-28T21:36:01.401513Z",
"url": "https://files.pythonhosted.org/packages/ad/f2/d31d3a1b1b31ed4caeb654d91ea960ec04cd25940dbf15be041b8e4fdf09/prqrs-0.1.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e19aeb5d2990179d2b4c41497b1bb5ece54985004f5b4ecd9a3b0fe52d456ecf",
"md5": "c6012fe8bcdc530385cd730c3fb094ff",
"sha256": "a29fa25bac7fe0d38dcbafbbda0013bdb33951eb215010890aefdfb7e4c0e7cd"
},
"downloads": -1,
"filename": "prqrs-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "c6012fe8bcdc530385cd730c3fb094ff",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10, <3.12",
"size": 9160,
"upload_time": "2023-12-28T21:36:03",
"upload_time_iso_8601": "2023-12-28T21:36:03.187521Z",
"url": "https://files.pythonhosted.org/packages/e1/9a/eb5d2990179d2b4c41497b1bb5ece54985004f5b4ecd9a3b0fe52d456ecf/prqrs-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-28 21:36:03",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "prqrs"
}