Name | pgpq JSON |
Version |
0.9.0
JSON |
| download |
home_page | |
Summary | Arrow -> PostgreSQL encoder |
upload_time | 2023-10-18 15:16:34 |
maintainer | |
docs_url | None |
author | Adrian Garcia Badaracco |
requires_python | >=3.7 |
license | MIT |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# pgpq
Convert PyArrow RecordBatches to Postgres' native binary format.
## Usage
```python
"""Example for README.md"""
from tempfile import mkdtemp
import psycopg
import pyarrow.dataset as ds
import requests
from pgpq import ArrowToPostgresBinaryEncoder
# let's get some example data
tmpdir = mkdtemp()
with open(f"{tmpdir}/yellow_tripdata_2023-01.parquet", mode="wb") as f:
resp = requests.get(
"https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2023-01.parquet"
)
resp.raise_for_status()
f.write(resp.content)
# load an arrow dataset
# arrow can load datasets from partitioned parquet files locally or in S3/GCS
# it handles buffering, matching globs, etc.
dataset = ds.dataset(tmpdir)
# create an encoder object which will do the encoding
# and give us the expected Postgres table schema
encoder = ArrowToPostgresBinaryEncoder(dataset.schema)
# get the expected Postgres destination schema
# note that this is _not_ the same as the incoming arrow schema
# and not necessarily the schema of your permanent table
# instead it's the schema of the data that will be sent over the wire
# which for example does not have timezones on any timestamps
pg_schema = encoder.schema()
# assemble ddl for a temporary table
# it's often a good idea to bulk load into a temp table to:
# (1) Avoid indexes
# (2) Stay in-memory as long as possible
# (3) Be more flexible with types
# (you can't load a SMALLINT into a BIGINT column without casting)
cols = [f'"{col_name}" {col.data_type.ddl()}' for col_name, col in pg_schema.columns]
ddl = f"CREATE TEMP TABLE data ({','.join(cols)})"
with psycopg.connect("postgres://postgres:postgres@localhost:5432/postgres") as conn:
with conn.cursor() as cursor:
cursor.execute(ddl) # type: ignore
with cursor.copy("COPY data FROM STDIN WITH (FORMAT BINARY)") as copy:
copy.write(encoder.write_header())
for batch in dataset.to_batches():
copy.write(encoder.write_batch(batch))
copy.write(encoder.finish())
# load into your actual table, possibly doing type casts
# cursor.execute("INSERT INTO \"table\" SELECT * FROM data")
```
Raw data
{
"_id": null,
"home_page": "",
"name": "pgpq",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "",
"author": "Adrian Garcia Badaracco",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/6d/4b/fb2642353f18b9cf60e7fe06711f705a1d57d9d108ee88012c95b4ddf586/pgpq-0.9.0.tar.gz",
"platform": null,
"description": "# pgpq\n\nConvert PyArrow RecordBatches to Postgres' native binary format.\n\n## Usage\n\n```python\n\"\"\"Example for README.md\"\"\"\nfrom tempfile import mkdtemp\nimport psycopg\nimport pyarrow.dataset as ds\nimport requests\nfrom pgpq import ArrowToPostgresBinaryEncoder\n\n# let's get some example data\ntmpdir = mkdtemp()\nwith open(f\"{tmpdir}/yellow_tripdata_2023-01.parquet\", mode=\"wb\") as f:\n resp = requests.get(\n \"https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2023-01.parquet\"\n )\n resp.raise_for_status()\n f.write(resp.content)\n\n# load an arrow dataset\n# arrow can load datasets from partitioned parquet files locally or in S3/GCS\n# it handles buffering, matching globs, etc.\ndataset = ds.dataset(tmpdir)\n\n# create an encoder object which will do the encoding\n# and give us the expected Postgres table schema\nencoder = ArrowToPostgresBinaryEncoder(dataset.schema)\n# get the expected Postgres destination schema\n# note that this is _not_ the same as the incoming arrow schema\n# and not necessarily the schema of your permanent table\n# instead it's the schema of the data that will be sent over the wire\n# which for example does not have timezones on any timestamps\npg_schema = encoder.schema()\n# assemble ddl for a temporary table\n# it's often a good idea to bulk load into a temp table to:\n# (1) Avoid indexes\n# (2) Stay in-memory as long as possible\n# (3) Be more flexible with types\n# (you can't load a SMALLINT into a BIGINT column without casting)\ncols = [f'\"{col_name}\" {col.data_type.ddl()}' for col_name, col in pg_schema.columns]\nddl = f\"CREATE TEMP TABLE data ({','.join(cols)})\"\n\nwith psycopg.connect(\"postgres://postgres:postgres@localhost:5432/postgres\") as conn:\n with conn.cursor() as cursor:\n cursor.execute(ddl) # type: ignore\n with cursor.copy(\"COPY data FROM STDIN WITH (FORMAT BINARY)\") as copy:\n copy.write(encoder.write_header())\n for batch in dataset.to_batches():\n copy.write(encoder.write_batch(batch))\n copy.write(encoder.finish())\n # load into your actual table, possibly doing type casts\n # cursor.execute(\"INSERT INTO \\\"table\\\" SELECT * FROM data\")\n```\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Arrow -> PostgreSQL encoder",
"version": "0.9.0",
"project_urls": {
"documentation": "https://github.com/adriangb/pgpq/README.md",
"homepage": "https://github.com/adriangb/pgpq",
"repository": "https://github.com/adriangb/pgpq"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ca5b3ec6ced557b6bde764c8bf527c4fef10ba4fe8ae50c399b74feb30bcc40d",
"md5": "28e298dffeb74431b21301f13aaf9db4",
"sha256": "5d16e6f8c86339ae376e9f62ec5a15e73a1af4e39f982bf456904c03395eb2fa"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-macosx_10_7_x86_64.whl",
"has_sig": false,
"md5_digest": "28e298dffeb74431b21301f13aaf9db4",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 563723,
"upload_time": "2023-10-18T15:15:55",
"upload_time_iso_8601": "2023-10-18T15:15:55.079541Z",
"url": "https://files.pythonhosted.org/packages/ca/5b/3ec6ced557b6bde764c8bf527c4fef10ba4fe8ae50c399b74feb30bcc40d/pgpq-0.9.0-cp37-abi3-macosx_10_7_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5f146bdd50f6bef237f398a6b3f6c335568c596c39b5c62d0a1a6e44b0441c1e",
"md5": "6a709f02eaff9c5a191a50b4b59c39ad",
"sha256": "b1c11911f7481b82c1a5272792953e40efe1d7e49290d4da787f5a927a1f3b1b"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "6a709f02eaff9c5a191a50b4b59c39ad",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 1092773,
"upload_time": "2023-10-18T15:15:57",
"upload_time_iso_8601": "2023-10-18T15:15:57.061909Z",
"url": "https://files.pythonhosted.org/packages/5f/14/6bdd50f6bef237f398a6b3f6c335568c596c39b5c62d0a1a6e44b0441c1e/pgpq-0.9.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e78f8dc0ddfafa31a35d0c32429b8d43583a79ac9369366c6b52a7ef6477f1a5",
"md5": "4fde2e9b4b5d9a4da66b7598f4b206bc",
"sha256": "ea47fcd7c5fae68f77a12a3a1b32d68f2f28a0dbccb98d89366d6e5973bb5c26"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "4fde2e9b4b5d9a4da66b7598f4b206bc",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 572005,
"upload_time": "2023-10-18T15:15:58",
"upload_time_iso_8601": "2023-10-18T15:15:58.591468Z",
"url": "https://files.pythonhosted.org/packages/e7/8f/8dc0ddfafa31a35d0c32429b8d43583a79ac9369366c6b52a7ef6477f1a5/pgpq-0.9.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "27fd3359b4079439cc8d0e8746fadede0198de09a8f0c899c804f01ebcad8a19",
"md5": "78a129c810ae6bfce966f3c677adad3a",
"sha256": "cd00b7bb24e58d7dc14e7a1f51f15c5f6f69ad64502f8ee68b6963c214d10a86"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
"has_sig": false,
"md5_digest": "78a129c810ae6bfce966f3c677adad3a",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 543310,
"upload_time": "2023-10-18T15:16:00",
"upload_time_iso_8601": "2023-10-18T15:16:00.031967Z",
"url": "https://files.pythonhosted.org/packages/27/fd/3359b4079439cc8d0e8746fadede0198de09a8f0c899c804f01ebcad8a19/pgpq-0.9.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6c1449decb622edf24b0b5a3a1841748ba455caed9e024a3fa3fdc6ad1320427",
"md5": "69bfa135ee973c837ee1ab0bb65dae3c",
"sha256": "ea460f7abdd1bb17fdc8b2312f63f141d5e93c21a28f93dd47309db4a5cdfa01"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"has_sig": false,
"md5_digest": "69bfa135ee973c837ee1ab0bb65dae3c",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 842149,
"upload_time": "2023-10-18T15:16:03",
"upload_time_iso_8601": "2023-10-18T15:16:03.791668Z",
"url": "https://files.pythonhosted.org/packages/6c/14/49decb622edf24b0b5a3a1841748ba455caed9e024a3fa3fdc6ad1320427/pgpq-0.9.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b09f7812366dd4e04d003e6209bf70a81e884d9685bb2840e66056ccb7f72bdc",
"md5": "682e45caef0bf5e30765f8fc2e8d8126",
"sha256": "d39a369f2b77db2428850d85622ed5fa0506fc89a58ac9122cb83c1535273231"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl",
"has_sig": false,
"md5_digest": "682e45caef0bf5e30765f8fc2e8d8126",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 893330,
"upload_time": "2023-10-18T15:16:02",
"upload_time_iso_8601": "2023-10-18T15:16:02.159476Z",
"url": "https://files.pythonhosted.org/packages/b0/9f/7812366dd4e04d003e6209bf70a81e884d9685bb2840e66056ccb7f72bdc/pgpq-0.9.0-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b4083d6f0c5086d8059ff9ac53785a34dbf6bb3f4cac4ffab8ec7cd5aa23141e",
"md5": "971822f5388fb89ade70189471e8a321",
"sha256": "a15a348d695e0a4a4998ab1ef0b8bbf5b927cbf53a124a89f9b7c3c51967833d"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl",
"has_sig": false,
"md5_digest": "971822f5388fb89ade70189471e8a321",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 789915,
"upload_time": "2023-10-18T15:16:05",
"upload_time_iso_8601": "2023-10-18T15:16:05.480359Z",
"url": "https://files.pythonhosted.org/packages/b4/08/3d6f0c5086d8059ff9ac53785a34dbf6bb3f4cac4ffab8ec7cd5aa23141e/pgpq-0.9.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5e1e0561c2fa8ca9f43781aba5cd3badb379bd3c59d39538cee9ef1461cf8fbd",
"md5": "1f74ff90478199af1a4d5d447114cb55",
"sha256": "9a34708f8a1d5ad202c5e7726969638f0dadffd8a9463ef23c00db51e3a110ec"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1f74ff90478199af1a4d5d447114cb55",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 604641,
"upload_time": "2023-10-18T15:16:07",
"upload_time_iso_8601": "2023-10-18T15:16:07.332030Z",
"url": "https://files.pythonhosted.org/packages/5e/1e/0561c2fa8ca9f43781aba5cd3badb379bd3c59d39538cee9ef1461cf8fbd/pgpq-0.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2b1d9d465ea07f59fe3c256af3a0f40713b59646bed0a8366b26cf63a9888f9f",
"md5": "b3823bc80ac64827b8aea92356e3e7a9",
"sha256": "105b9bca22409fbb8adc8f2c1fc29d887c8d3bfdb8ab0defe911226f1681d3b1"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "b3823bc80ac64827b8aea92356e3e7a9",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 638664,
"upload_time": "2023-10-18T15:16:08",
"upload_time_iso_8601": "2023-10-18T15:16:08.728860Z",
"url": "https://files.pythonhosted.org/packages/2b/1d/9d465ea07f59fe3c256af3a0f40713b59646bed0a8366b26cf63a9888f9f/pgpq-0.9.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7cfe10edc9c81f5fbc7cceffb1d5415bd7ef441021791192956f0ffd59254d79",
"md5": "42c021d8e7fd76083345c080a7b36470",
"sha256": "5fac7b1c0f64e0bf7f0c11e81720b527593acc2b83c48d20669fd059e5e67f24"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "42c021d8e7fd76083345c080a7b36470",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 749664,
"upload_time": "2023-10-18T15:16:10",
"upload_time_iso_8601": "2023-10-18T15:16:10.579870Z",
"url": "https://files.pythonhosted.org/packages/7c/fe/10edc9c81f5fbc7cceffb1d5415bd7ef441021791192956f0ffd59254d79/pgpq-0.9.0-cp37-abi3-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "07680db33bc0540789ba6ec2b8eda176a7fbd309f6dfc26bd056981de46e77c9",
"md5": "c5ed8ce413bce8df5555d3109c97e7e0",
"sha256": "07068d5bf10fc54fafa6e28ed2c7551422d3366cce931f706ec184ed19ebac73"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-musllinux_1_2_armv7l.whl",
"has_sig": false,
"md5_digest": "c5ed8ce413bce8df5555d3109c97e7e0",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 806469,
"upload_time": "2023-10-18T15:16:12",
"upload_time_iso_8601": "2023-10-18T15:16:12.070478Z",
"url": "https://files.pythonhosted.org/packages/07/68/0db33bc0540789ba6ec2b8eda176a7fbd309f6dfc26bd056981de46e77c9/pgpq-0.9.0-cp37-abi3-musllinux_1_2_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7c647703af6d71c9e5be32015f6a9ecffc797b09bf7ce071a2f0c62c1b3ecdff",
"md5": "d6abdbbe361bb22fe8d89b9d7b2eb131",
"sha256": "3e7cd18d0fa7fc216216561686cfa1da1c0ce6f2e175771b6f291edcdc0fb7b5"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "d6abdbbe361bb22fe8d89b9d7b2eb131",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 787550,
"upload_time": "2023-10-18T15:16:13",
"upload_time_iso_8601": "2023-10-18T15:16:13.984726Z",
"url": "https://files.pythonhosted.org/packages/7c/64/7703af6d71c9e5be32015f6a9ecffc797b09bf7ce071a2f0c62c1b3ecdff/pgpq-0.9.0-cp37-abi3-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f81ec86c3c8807d48eccddc555e74c3c130d2baa07d1ff0626d87c8d7e2932bc",
"md5": "11e933a4f7789d8bad10d60c035e7aa9",
"sha256": "acd844a36807db1ecb18289f24001d44a3fc8aefff01fe6f7a4b352fda659960"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "11e933a4f7789d8bad10d60c035e7aa9",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 776250,
"upload_time": "2023-10-18T15:16:15",
"upload_time_iso_8601": "2023-10-18T15:16:15.433033Z",
"url": "https://files.pythonhosted.org/packages/f8/1e/c86c3c8807d48eccddc555e74c3c130d2baa07d1ff0626d87c8d7e2932bc/pgpq-0.9.0-cp37-abi3-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3819896bec40ba040141cfb4bf028c940152ccd6ca80bfc756a70ea6bdcad041",
"md5": "315a104fa250822198018d9faa559da9",
"sha256": "56d06b6c2acdb0331135b298ffc6c9ea9c2785e153256c5cc1d2adbc0c85d096"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-win32.whl",
"has_sig": false,
"md5_digest": "315a104fa250822198018d9faa559da9",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 442228,
"upload_time": "2023-10-18T15:16:17",
"upload_time_iso_8601": "2023-10-18T15:16:17.146881Z",
"url": "https://files.pythonhosted.org/packages/38/19/896bec40ba040141cfb4bf028c940152ccd6ca80bfc756a70ea6bdcad041/pgpq-0.9.0-cp37-abi3-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "df96e8f76dfcf12cbb40bda62867ec96aea19af626439578a0a602b309085973",
"md5": "1844874c39ce1c8469539a78f2cc88d8",
"sha256": "1058f1ebb6cf2e879351c42af4cc7836bcd239cdff9690ba5c738b74450e9cc7"
},
"downloads": -1,
"filename": "pgpq-0.9.0-cp37-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "1844874c39ce1c8469539a78f2cc88d8",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 501010,
"upload_time": "2023-10-18T15:16:18",
"upload_time_iso_8601": "2023-10-18T15:16:18.445688Z",
"url": "https://files.pythonhosted.org/packages/df/96/e8f76dfcf12cbb40bda62867ec96aea19af626439578a0a602b309085973/pgpq-0.9.0-cp37-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0a1598a0775d95bac085746d25fb320b78ffdca8abf029da2e5f5067dca5395f",
"md5": "f0f13b66ccfa25ee7a41dd95bacee150",
"sha256": "c6463e1b28ffc33efcb37d7fc5d4bf144078fc2f4bd8fc74c114e9883ae66b76"
},
"downloads": -1,
"filename": "pgpq-0.9.0-pp37-pypy37_pp73-macosx_10_7_x86_64.whl",
"has_sig": false,
"md5_digest": "f0f13b66ccfa25ee7a41dd95bacee150",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": ">=3.7",
"size": 565477,
"upload_time": "2023-10-18T15:16:20",
"upload_time_iso_8601": "2023-10-18T15:16:20.272269Z",
"url": "https://files.pythonhosted.org/packages/0a/15/98a0775d95bac085746d25fb320b78ffdca8abf029da2e5f5067dca5395f/pgpq-0.9.0-pp37-pypy37_pp73-macosx_10_7_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c5785535b0c119b987d90e57192e2549b6923868416a6c388b98aa4edffc6096",
"md5": "cdbec72a1182a888a8307b88148be990",
"sha256": "259b0aca8b06a1757dc16e668457a3a30a8074cd095612c2312c2e400e7f5418"
},
"downloads": -1,
"filename": "pgpq-0.9.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "cdbec72a1182a888a8307b88148be990",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": ">=3.7",
"size": 575646,
"upload_time": "2023-10-18T15:16:22",
"upload_time_iso_8601": "2023-10-18T15:16:22.220247Z",
"url": "https://files.pythonhosted.org/packages/c5/78/5535b0c119b987d90e57192e2549b6923868416a6c388b98aa4edffc6096/pgpq-0.9.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a7b8f492eb30c71d0bbf4e63396eeaceadc60a78b366413568c28bd4ecd6b3d0",
"md5": "9a48d4160e28a9efc4fb7641ae2d5fe5",
"sha256": "98aa74978b0b85076aaec6022bc0cef68417ac8922d8e53e7c8deabe70f35bab"
},
"downloads": -1,
"filename": "pgpq-0.9.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "9a48d4160e28a9efc4fb7641ae2d5fe5",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": ">=3.7",
"size": 609155,
"upload_time": "2023-10-18T15:16:23",
"upload_time_iso_8601": "2023-10-18T15:16:23.824123Z",
"url": "https://files.pythonhosted.org/packages/a7/b8/f492eb30c71d0bbf4e63396eeaceadc60a78b366413568c28bd4ecd6b3d0/pgpq-0.9.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6ee82e8dc2b4128619d5b764a673249b77bcbedf22dc9a9d895770850b9cb48b",
"md5": "fd96e85f93d603dcca7e7ae6bdb97097",
"sha256": "a8f963b79b54e10d6ce015b37a6ede386e9db450780623453cdcef18407d646c"
},
"downloads": -1,
"filename": "pgpq-0.9.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl",
"has_sig": false,
"md5_digest": "fd96e85f93d603dcca7e7ae6bdb97097",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.7",
"size": 563714,
"upload_time": "2023-10-18T15:16:25",
"upload_time_iso_8601": "2023-10-18T15:16:25.466662Z",
"url": "https://files.pythonhosted.org/packages/6e/e8/2e8dc2b4128619d5b764a673249b77bcbedf22dc9a9d895770850b9cb48b/pgpq-0.9.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9583e2821409067d6a71955af2ec01297c7fb4ee10dfbf307663b71b663ae6c7",
"md5": "dea4aa9a1a4fe1df18a5ae6acfb9d741",
"sha256": "329ec29c9784f380d0321aac0886363b016bf7da394e5e72bd329fe34ed041e9"
},
"downloads": -1,
"filename": "pgpq-0.9.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "dea4aa9a1a4fe1df18a5ae6acfb9d741",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.7",
"size": 572551,
"upload_time": "2023-10-18T15:16:26",
"upload_time_iso_8601": "2023-10-18T15:16:26.774421Z",
"url": "https://files.pythonhosted.org/packages/95/83/e2821409067d6a71955af2ec01297c7fb4ee10dfbf307663b71b663ae6c7/pgpq-0.9.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "99a83e3d173e0df878309a2bf67faa1f3c07e026c1a952c16f7086f344203807",
"md5": "3c51218487f662a28b7779b0f3440aa5",
"sha256": "160836cecce86fa60c02ce25166ff20ae03f87957cd0f85ab4aacd64c9891730"
},
"downloads": -1,
"filename": "pgpq-0.9.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "3c51218487f662a28b7779b0f3440aa5",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.7",
"size": 605891,
"upload_time": "2023-10-18T15:16:28",
"upload_time_iso_8601": "2023-10-18T15:16:28.085899Z",
"url": "https://files.pythonhosted.org/packages/99/a8/3e3d173e0df878309a2bf67faa1f3c07e026c1a952c16f7086f344203807/pgpq-0.9.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a24abe6cc6f93a218920ad0308ac47422f25e0612048b404627cbc6b8bc2c08b",
"md5": "5f7a7771eb511330c041fe50820e5680",
"sha256": "8c2ad904babf35d966a441a1a6680b6eaef0a47093047c2914d86c8c0b5530a8"
},
"downloads": -1,
"filename": "pgpq-0.9.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl",
"has_sig": false,
"md5_digest": "5f7a7771eb511330c041fe50820e5680",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.7",
"size": 563499,
"upload_time": "2023-10-18T15:16:29",
"upload_time_iso_8601": "2023-10-18T15:16:29.814405Z",
"url": "https://files.pythonhosted.org/packages/a2/4a/be6cc6f93a218920ad0308ac47422f25e0612048b404627cbc6b8bc2c08b/pgpq-0.9.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "885b6b3a353258f09dbca0c466ba9aa0f0cd7d3382e829ce4af593be8e47f49f",
"md5": "b0cd9accaeda462e0a01174a79912777",
"sha256": "ea1e93168d79a30f99f17f0279e65978e6877b09097b0106503b7b543747aeaf"
},
"downloads": -1,
"filename": "pgpq-0.9.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "b0cd9accaeda462e0a01174a79912777",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.7",
"size": 572789,
"upload_time": "2023-10-18T15:16:31",
"upload_time_iso_8601": "2023-10-18T15:16:31.566362Z",
"url": "https://files.pythonhosted.org/packages/88/5b/6b3a353258f09dbca0c466ba9aa0f0cd7d3382e829ce4af593be8e47f49f/pgpq-0.9.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "490bb1480d4d2daf1018489f340b2cc3c9653386eb1173cab963c3af61da4498",
"md5": "5e5140ff363212e43a42743443c97de5",
"sha256": "905f820238b970a516cbbd7fe5fed576ba157bd054da8abcae9c3d9e39447605"
},
"downloads": -1,
"filename": "pgpq-0.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "5e5140ff363212e43a42743443c97de5",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.7",
"size": 605555,
"upload_time": "2023-10-18T15:16:33",
"upload_time_iso_8601": "2023-10-18T15:16:33.021024Z",
"url": "https://files.pythonhosted.org/packages/49/0b/b1480d4d2daf1018489f340b2cc3c9653386eb1173cab963c3af61da4498/pgpq-0.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6d4bfb2642353f18b9cf60e7fe06711f705a1d57d9d108ee88012c95b4ddf586",
"md5": "a6252a4372c7c6e771c313aa280bd97e",
"sha256": "7341d9a2c9d905fd782aac4c7c24b98340995a5454f83d36c4918fcafca3d5d8"
},
"downloads": -1,
"filename": "pgpq-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "a6252a4372c7c6e771c313aa280bd97e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 24901,
"upload_time": "2023-10-18T15:16:34",
"upload_time_iso_8601": "2023-10-18T15:16:34.376801Z",
"url": "https://files.pythonhosted.org/packages/6d/4b/fb2642353f18b9cf60e7fe06711f705a1d57d9d108ee88012c95b4ddf586/pgpq-0.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-18 15:16:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "adriangb",
"github_project": "pgpq",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pgpq"
}