Skip to main content

Async PostgreSQL driver for Python written in Rust

Project description

PyPI - Python Version PyPI PyPI - Downloads

PSQLPy - Async PostgreSQL driver for Python written in Rust.

Driver for PostgreSQL written fully in Rust and exposed to Python. The project is under active development and we cannot confirm that it's ready for production. Anyway, We will be grateful for the bugs found and open issues. Stay tuned. Normal documentation is in development.

Installation

You can install package with pip or poetry.

poetry:

> poetry add psqlpy

pip:

> pip install psqlpy

Or you can build it by yourself. To do it, install stable rust and maturin.

> maturin develop --release

Usage

Usage is as easy as possible. Create new instance of PSQLPool and start querying. You don't need to startup connection pool, the connection pool will create connections as needed.

from typing import Any

from psqlpy import PSQLPool, QueryResult


db_pool = PSQLPool(
    username="postgres",
    password="pg_password",
    host="localhost",
    port=5432,
    db_name="postgres",
    max_db_pool_size=2,
)

async def main() -> None:
    res: QueryResult = await db_pool.execute(
        "SELECT * FROM users",
    )

    print(res.result())
    # You don't need to close Database Pool by yourself,
    # rust does it instead.

Please take into account that each new execute gets new connection from connection pool.

DSN support

You can separate specify host, port, username, etc or specify everything in one DSN. Please note that if you specify DSN any other argument doesn't take into account.

from typing import Any

from psqlpy import PSQLPool, QueryResult


db_pool = PSQLPool(
    dsn="postgres://postgres:postgres@localhost:5432/postgres",
    max_db_pool_size=2,
)

async def main() -> None:
    res: QueryResult = await db_pool.execute(
        "SELECT * FROM users",
    )

    print(res.result())
    # You don't need to close Database Pool by yourself,
    # rust does it instead.

Control connection recycling

There are 3 available options to control how a connection is recycled - Fast, Verified and Clean. As connection can be closed in different situations on various sides you can select preferable behavior of how a connection is recycled.

  • Fast: Only run is_closed() when recycling existing connections.
  • Verified: Run is_closed() and execute a test query. This is slower, but guarantees that the database connection is ready to be used. Normally, is_closed() should be enough to filter out bad connections, but under some circumstances (i.e. hard-closed network connections) it's possible that is_closed() returns false while the connection is dead. You will receive an error on your first query then.
  • Clean: Like [Verified] query method, but instead use the following sequence of statements which guarantees a pristine connection:
    CLOSE ALL;
    SET SESSION AUTHORIZATION DEFAULT;
    RESET ALL;
    UNLISTEN *;
    SELECT pg_advisory_unlock_all();
    DISCARD TEMP;
    DISCARD SEQUENCES;
    
    This is similar to calling DISCARD ALL. but doesn't call DEALLOCATE ALL and DISCARD PLAN, so that the statement cache is not rendered ineffective.

Results from querying

You have some options to get results from the query. execute() method, for example, returns QueryResult and this class can be converted into list of dicts - list[dict[Any, Any]] or into any Python class (pydantic model, as an example).

Let's see some code:

from typing import Any

from pydantic import BaseModel
from psqlpy import PSQLPool, QueryResult


class ExampleModel(BaseModel):
    id: int
    username: str


db_pool = PSQLPool(
    dsn="postgres://postgres:postgres@localhost:5432/postgres",
    max_db_pool_size=2,
)

async def main() -> None:
    res: QueryResult = await db_pool.execute(
        "SELECT * FROM users",
    )

    pydantic_res: list[ExampleModel] = res.as_class(
        as_class=ExampleModel,
    )

Query parameters

You can pass parameters into queries. Parameters can be passed in any execute method as the second parameter, it must be a list. Any placeholder must be marked with $< num>.

    res: QueryResult = await db_pool.execute(
        "SELECT * FROM users WHERE user_id = $1 AND first_name = $2",
        [100, "RustDriver"],
    )

Connection

You can work with connection instead of DatabasePool.

from typing import Any

from psqlpy import PSQLPool, QueryResult


db_pool = PSQLPool(
    username="postgres",
    password="pg_password",
    host="localhost",
    port=5432,
    db_name="postgres",
    max_db_pool_size=2,
)

async def main() -> None:
    connection = await db_pool.connection()

    res: QueryResult = await connection.execute(
        "SELECT * FROM users",
    )

    print(res.result())
    # You don't need to close connection by yourself,
    # rust does it instead.

Transactions

Of course it's possible to use transactions with this driver. It's as easy as possible and sometimes it copies common functionality from PsycoPG and AsyncPG.

Transaction parameters

In process of transaction creation it is possible to specify some arguments to configure transaction.

  • isolation_level: level of the isolation. By default - None.
  • read_variant: read option. By default - None.
  • deferrable: deferrable option. By default - None.

You can use transactions as async context managers

By default async context manager only begins and commits transaction automatically.

from typing import Any

from psqlpy import PSQLPool, IsolationLevel, QueryResult


db_pool = PSQLPool()

async def main() -> None:
    connection = await db_pool.connection()
    async with connection.transaction() as transaction:
        res: QueryResult = await transaction.execute(
            "SELECT * FROM users",
        )

    print(res.result())
    # You don't need to close Database Pool by yourself,
    # rust does it instead.

Or you can control transaction fully on your own.

from typing import Any

from psqlpy import PSQLPool, IsolationLevel


db_pool = PSQLPool()

async def main() -> None:
    connection = await db_pool.connection()
    transaction = connection.transaction(
        isolation_level=IsolationLevel.Serializable,
    )

    await transaction.begin()
    await transaction.execute(
        "INSERT INTO users VALUES ($1)",
        ["Some data"],
    )
    # You must commit the transaction by your own
    # or your changes will be vanished.
    await transaction.commit()
    # You don't need to close Database Pool by yourself,
    # rust does it instead.

Transactions can be rolled back

You must understand that rollback can be executed only once per transaction. After it's execution transaction state changes to done. If you want to use ROLLBACK TO SAVEPOINT, see below.

from typing import Any

from psqlpy import PSQLPool, IsolationLevel


db_pool = PSQLPool()

async def main() -> None:
    connection = await db_pool.connection()
    transaction = connection.transaction(
        isolation_level=IsolationLevel.Serializable,
    )

    await transaction.begin()
    await transaction.execute(
        "INSERT INTO users VALUES ($1)",
        ["Some data"],
    )
    await transaction.rollback()

Transaction execute many

You can execute one statement with multiple pararmeters. The query will be executed with all parameters or will not be executed at all.

from typing import Any

from psqlpy import PSQLPool, IsolationLevel


db_pool = PSQLPool()

async def main() -> None:
    connection = await db_pool.connection()
    transaction = connection.transaction(
        isolation_level=IsolationLevel.Serializable,
    )

    await transaction.begin()
    await transaction.execute_many(
        "INSERT INTO users VALUES ($1)",
        [["first-data"], ["second-data"], ["third-data"]],
    )
    await transaction.commit()

Transaction fetch row

You can fetch first row.

from typing import Any

from psqlpy import PSQLPool, IsolationLevel


db_pool = PSQLPool()

async def main() -> None:
    connection = await db_pool.connection()
    transaction = connection.transaction(
        isolation_level=IsolationLevel.Serializable,
    )

    await transaction.begin()
    first_row = await transaction.fetch_row(
        "SELECT * FROM users WHERE user_id = $1",
        ["user-id"],
    )
    first_row_result = first_row.result()  # This will be a dict.

Transaction pipelining

When you have a lot of independent queries and want to execute them concurrently, you can use pipeline. Pipelining can improve performance in use cases in which multiple, independent queries need to be executed. In a traditional workflow, each query is sent to the server after the previous query completes. In contrast, pipelining allows the client to send all of the queries to the server up front, minimizing time spent by one side waiting for the other to finish sending data:

           Sequential                              Pipelined
| Client         | Server          |    | Client         | Server          |
|----------------|-----------------|    |----------------|-----------------|
| send query 1   |                 |    | send query 1   |                 |
|                | process query 1 |    | send query 2   | process query 1 |
| receive rows 1 |                 |    | send query 3   | process query 2 |
| send query 2   |                 |    | receive rows 1 | process query 3 |
|                | process query 2 |    | receive rows 2 |                 |
| receive rows 2 |                 |    | receive rows 3 |                 |
| send query 3   |                 |
|                | process query 3 |
| receive rows 3 |                 |

Read more: https://docs.rs/tokio-postgres/latest/tokio_postgres/#pipelining

Let's see some code:

import asyncio

from psqlpy import PSQLPool, QueryResult


async def main() -> None:
    db_pool = PSQLPool()
    transaction = await db_pool.transaction()

    results: list[QueryResult] = await transaction.pipeline(
        queries=[
            (
                "SELECT username FROM users WHERE id = $1",
                [100],
            ),
            (
                "SELECT some_data FROM profiles",
                None,
            ),
            (
                "INSERT INTO users (username, id) VALUES ($1, $2)",
                ["PSQLPy", 1],
            ),
        ]
    )

Transaction ROLLBACK TO SAVEPOINT

You can rollback your transaction to the specified savepoint, but before it you must create it.

from typing import Any

from psqlpy import PSQLPool, IsolationLevel


db_pool = PSQLPool()

async def main() -> None:
    connection = await db_pool.connection()
    transaction = connection.transaction(
        isolation_level=IsolationLevel.Serializable,
    )

    await transaction.begin()
    # Create new savepoint
    await transaction.savepoint("test_savepoint")

    await transaction.execute(
        "INSERT INTO users VALUES ($1)",
        ["Some data"],
    )
    # Rollback to specified SAVEPOINT.
    await transaction.rollback_to("test_savepoint")

    await transaction.commit()

Transaction RELEASE SAVEPOINT

It's possible to release savepoint

from typing import Any

from psqlpy import PSQLPool, IsolationLevel


db_pool = PSQLPool()

async def main() -> None:
    connection = await db_pool.connection()
    transaction = connection.transaction(
        isolation_level=IsolationLevel.Serializable,
    )

    await transaction.begin()
    # Create new savepoint
    await transaction.savepoint("test_savepoint")
    # Release savepoint
    await transaction.release_savepoint("test_savepoint")

    await transaction.commit()

Cursors

Library supports PostgreSQL cursors.

Cursors can be created only in transaction. In addition, cursor supports async iteration.

Cursor parameters

In process of cursor creation you can specify some configuration parameters.

  • querystring: query for the cursor. Required.
  • parameters: parameters for the query. Not Required.
  • fetch_number: number of records per fetch if cursor is used as an async iterator. If you are using .fetch() method you can pass different fetch number. Not required. Default - 10.
  • scroll: set SCROLL if True or NO SCROLL if False. Not required. By default - None.
from typing import Any

from psqlpy import PSQLPool, IsolationLevel, QueryResult


db_pool = PSQLPool()

async def main() -> None:
    connection = await db_pool.connection()
    transaction = connection.transaction(
        isolation_level=IsolationLevel.Serializable,
    )

    await transaction.begin()
    # Create new savepoint
    cursor = transaction.cursor(
        querystring="SELECT * FROM users WHERE username = $1",
        parameters=["SomeUserName"],
        fetch_number=100,
    )

    # You can manually fetch results from cursor
    results: QueryResult = await cursor.fetch(fetch_number=8)

    # Or you can use it as an async iterator.
    async for fetched_result in cursor:
        print(fetched_result.result())

    # If you want to close cursor, please do it manually.
    await cursor.close()

    await transaction.commit()

Cursor as an async context manager

from typing import Any

from psqlpy import PSQLPool, IsolationLevel, QueryResult, Transaction, Cursor


db_pool = PSQLPool()


async def main() -> None:
    connection = await db_pool.connection()
    transaction: Transaction
    cursor: Cursor
    async with connection.transaction() as transaction:
        async with transaction.cursor(
            querystring="SELECT * FROM users WHERE username = $1",
            parameters=["SomeUserName"],
            fetch_number=100,
        ) as cursor:
            async for fetched_result in cursor:
                print(fetched_result.result())

Cursor operations

Available cursor operations:

  • FETCH count - cursor.fetch(fetch_number=)
  • FETCH NEXT - cursor.fetch_next()
  • FETCH PRIOR - cursor.fetch_prior()
  • FETCH FIRST - cursor.fetch_first()
  • FETCH LAST - cursor.fetch_last()
  • FETCH ABSOLUTE - cursor.fetch_absolute(absolute_number=)
  • FETCH RELATIVE - cursor.fetch_relative(relative_number=)
  • FETCH FORWARD ALL - cursor.fetch_forward_all()
  • FETCH BACKWARD backward_count - cursor.fetch_backward(backward_count=)
  • FETCH BACKWARD ALL - cursor.fetch_backward_all()

Extra Types

Sometimes it's impossible to identify which type user tries to pass as a argument. But Rust is a strongly typed programming language so we have to help.

Extra Type in Python Type in PostgreSQL Type in Rust
SmallInt SmallInt i16
Integer Integer i32
BigInt BigInt i64
PyUUID UUID Uuid
PyJSON JSON, JSONB Value
from typing import Any

import uuid

from psqlpy import PSQLPool

from psqlpy.extra_types import (
    SmallInt,
    Integer,
    BigInt,
    PyUUID,
    PyJSON,
)


db_pool = PSQLPool()

async def main() -> None:
    res: list[dict[str, Any]] = await db_pool.execute(
        "INSERT INTO users VALUES ($1, $2, $3, $4, $5)",
        [
            SmallInt(100),
            Integer(10000),
            BigInt(9999999),
            PyUUID(uuid.uuid4().hex),
            PyJSON(
                [
                    {"we": "have"},
                    {"list": "of"},
                    {"dicts": True},
                ],
            )
        ]
    )

    print(res)
    # You don't need to close Database Pool by yourself,
    # rust does it instead.

Benchmarks

We have made some benchmark to compare PSQLPy, AsyncPG, Psycopg3. Main idea is do not compare clear drivers because there are a few situations in which you need to use only driver without any other dependencies.

So infrastructure consists of:

  1. AioHTTP
  2. PostgreSQL driver (PSQLPy, AsyncPG, Psycopg3)
  3. PostgreSQL v15. Server is located in other part of the world, because we want to simulate network problems.
  4. Grafana (dashboards)
  5. InfluxDB
  6. JMeter (for load testing)

The results are very promising! PSQLPy is faster than AsyncPG at best by 2 times, at worst by 45%. PsycoPG is 3.5 times slower than PSQLPy in the worst case, 60% in the best case.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

psqlpy-0.3.4.tar.gz (49.5 kB view details)

Uploaded Source

Built Distributions

psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ s390x

psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.4 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view details)

Uploaded PyPy manylinux: glibc 2.12+ i686

psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ s390x

psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.4 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view details)

Uploaded PyPy manylinux: glibc 2.12+ i686

psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ s390x

psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.4 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view details)

Uploaded PyPy manylinux: glibc 2.12+ i686

psqlpy-0.3.4-cp312-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12 Windows x86-64

psqlpy-0.3.4-cp312-none-win32.whl (1.2 MB view details)

Uploaded CPython 3.12 Windows x86

psqlpy-0.3.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

psqlpy-0.3.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

psqlpy-0.3.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

psqlpy-0.3.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

psqlpy-0.3.4-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.12+ i686

psqlpy-0.3.4-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

psqlpy-0.3.4-cp312-cp312-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

psqlpy-0.3.4-cp311-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11 Windows x86-64

psqlpy-0.3.4-cp311-none-win32.whl (1.2 MB view details)

Uploaded CPython 3.11 Windows x86

psqlpy-0.3.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

psqlpy-0.3.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

psqlpy-0.3.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

psqlpy-0.3.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

psqlpy-0.3.4-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.12+ i686

psqlpy-0.3.4-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

psqlpy-0.3.4-cp311-cp311-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

psqlpy-0.3.4-cp310-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

psqlpy-0.3.4-cp310-none-win32.whl (1.2 MB view details)

Uploaded CPython 3.10 Windows x86

psqlpy-0.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

psqlpy-0.3.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

psqlpy-0.3.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

psqlpy-0.3.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

psqlpy-0.3.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

psqlpy-0.3.4-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

psqlpy-0.3.4-cp310-cp310-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 10.12+ x86-64

psqlpy-0.3.4-cp39-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.9 Windows x86-64

psqlpy-0.3.4-cp39-none-win32.whl (1.2 MB view details)

Uploaded CPython 3.9 Windows x86

psqlpy-0.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

psqlpy-0.3.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

psqlpy-0.3.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

psqlpy-0.3.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

psqlpy-0.3.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

psqlpy-0.3.4-cp38-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.8 Windows x86-64

psqlpy-0.3.4-cp38-none-win32.whl (1.2 MB view details)

Uploaded CPython 3.8 Windows x86

psqlpy-0.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

psqlpy-0.3.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

psqlpy-0.3.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

psqlpy-0.3.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

psqlpy-0.3.4-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (2.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

File details

Details for the file psqlpy-0.3.4.tar.gz.

File metadata

  • Download URL: psqlpy-0.3.4.tar.gz
  • Upload date:
  • Size: 49.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for psqlpy-0.3.4.tar.gz
Algorithm Hash digest
SHA256 21f4ac2d310fc81dd0c79f4093618c44e08ed62a7bfaa8d7d6b62ed6bb963662
MD5 a92b93e2a65fa82dfdd745c5aacb7943
BLAKE2b-256 851be3753119be26e57c854d8ab392cd7b4fd71242ad2953c6689b9b2d2c09ce

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 41580df1f470fb8d256a14ccc1d6c6c9193922726e4651d0d40f8d272cc5688c
MD5 62553a9f2049214fcae070a5e674a03c
BLAKE2b-256 ce460817cb295f68cf9e3559aa2dfd5c3503e2620983a699ba4507c19fa745d4

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1e1e3a5702a6092ebdb7e59bb6a2b6a0d70249ad9a6f97b1c0f6857ccf7ef2f5
MD5 0f08affeb8ae0250536da2f761ef6a2f
BLAKE2b-256 3704f7508a8f1ad5015fda2a73fc6cc13c2c023ce62f58922529c645be038671

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 bb028c04d59fa8674f0b428f9e98685f47c01008d0d54e10e1e5d383aab9fc04
MD5 16b377444118bf71dc7b3ca9e1cec3af
BLAKE2b-256 cefb0d4ac884ea30293df0ecb712924cddbaf87cf613530d779d5b0b1ac09ae6

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a528d3f7ad3b1ef54aecb4caad52a182515b23be8605ee745197844fefadc304
MD5 710d89b71e520199fe6e28ba1116d4ad
BLAKE2b-256 cd722c677af160ba4d9acf87cc107281857ca6541a8f825f7feed660797a14f9

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0692658a34fe2fdfd252287ff87eb8f1131ea37fc53eebca28d002e19938235a
MD5 ceb4c926e6061a5f3cac7d201185eb2e
BLAKE2b-256 b061b52a2fc5483eb76e96529aaa4af6feddb68628bebc856a10c0b408f8a280

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ef107a3739b237dd651b552a2628361e789f3f6aa861df73ad2660e23744b729
MD5 d714f4eae4dd45627b4b6f8ba014ef93
BLAKE2b-256 00e73ed125fe39f9b21f75beba9ecdae287014f84615a2a6fb04600b284550a2

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 047d42fd5e4e8dd3cfdccfc2e384848b69c888e12fe984723abbbe1dce5e765f
MD5 bac56dd0dac0e849b0faf1db78f2fb58
BLAKE2b-256 36aca2b9426b230758c5b72bfe2d4808da3f32725922c39873e657f139d572f3

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7b1cc81ffab1f7afe4510179273c4e3846dff31446806833b36694151f1ec032
MD5 b738a39adbd2eeaf7390307a51343cad
BLAKE2b-256 0591c3072e429c88efca932180ad69fe8f6db76fcb3666d4156fdb558f250218

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 007f721eb8fa99b505f30e8d381dd29a61c6bda4fab6df78486a3af126eb897b
MD5 c006110252d7fb16e995f88c5288eb74
BLAKE2b-256 5f64cba4c40a1907273eb7efa984aeed26d489aa26e4bdc1ef06115ff593c23f

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6046378cf93da88813b59d0ff1e50f3ac1d326915078a36dbe038950b8d899c9
MD5 67bebb2ebff09fded039638863f4ff81
BLAKE2b-256 f354f1b6dcb832e29bb054e8783f6ddcb25309a0411dbc59c4b257d4cdef5440

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3e787c42c01e536d3acd04a5bf2a85e83b32e0201611e7017a00b73548afc23c
MD5 8bc8a92c284666b6f7c2afe65433a0c7
BLAKE2b-256 5aa21392854ac1384f09891926fde17113d9c7a7d1ddf46320e0b6926f8bc431

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 21033b875d9470e13c031fb263f7ccd265f13ec1df93e26c0f65290a06ed5634
MD5 42083c55fc5b2c1cbcc4f8126d645502
BLAKE2b-256 6431c77b1bd46964438dd81c12e6c0a8dcd3b9c80ff200c81c5fc88a25adf79f

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 35a41d7c8626c329171e1e093bf58d4d61bac2ee4df68bd0df0bf043bc1d3fe6
MD5 efdc9f3e9f356245d70bb81683febc83
BLAKE2b-256 72b38f8e88c1343cb44824a4965f87c8cbc38f51ae1ee2bb7c3a0278a43164d4

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 442a37b2c4adcaa8d97ac664853fdccd64a200eb66a4b5d4679130c4b902182e
MD5 9556d00280478d4a670e031a1a409517
BLAKE2b-256 de21dde714cec74ff27ded7a35624b46a6d165f2c243f2a33c65b6db42958987

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 3b7e3bd2925bfd26a5886d2a9671e5acc741b422d38aaf5edc6651cf70b5b8cd
MD5 4541258362ddcbd83c10aa3521da4fdc
BLAKE2b-256 4dfab30ca146a4bea764f5ece6bf30bcad1d093da1c2b50480f2f34da1e16952

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5fa0fa525d955cc995fe9078c9fd384d2738b37b5082624a160c94b49740e901
MD5 749b8649775ca8fb99f2eceda7941888
BLAKE2b-256 3985c23103bb1174473235a34a30c3cee3e20fa506180e3cdd7f4a01bc0fad07

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 714bbba4b2c47e06a067d516d8be3653369ceae0c72ec7b8d3fe7abb1621a162
MD5 b370ce86ebf54c21bbf4d0aea46a2aec
BLAKE2b-256 9c0bb2fa6bc3a2ecb29e8ff4467ac78113f5553a1221da166d763a713c3834f6

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 b9406f0ad842bc6c1709c85f1f278bf1181ee2153eda0243306ee15ac8b6be91
MD5 57acbf0dcbe157d82cc1981fd0922924
BLAKE2b-256 66f09f0b80dff0e6fc40c570ac6a31d0d2e20c3811638436969747d1ed7da07f

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 16b7f125fac67d664ea905f6950ecd5581dc1313b9b69c822492208fc8d07974
MD5 ddcb4a5c40359f6c330ca4d67e556718
BLAKE2b-256 9a3cf958a4bcfb31bc5589c49a5398c12c17f2a16949ea0e2bbe65f5b0d7ce5b

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-none-win32.whl.

File metadata

  • Download URL: psqlpy-0.3.4-cp312-none-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for psqlpy-0.3.4-cp312-none-win32.whl
Algorithm Hash digest
SHA256 c1b581298ec61fafb187d12997c1a6df117f3d0d07c4d184fb14a0f7fd548a04
MD5 ba69c4eba60f40ea021b6ff595939e73
BLAKE2b-256 dcac444acf7f233559ad856974add478ebd91779d98fea1b941dfb803c155b37

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c50fcaca52ac3783a1c909b5833b2a0189b94659c52bf1d2746cfcb1f42f4c9
MD5 5c27d9688be5db216628ff634bf6c4e9
BLAKE2b-256 3e99afa7aae36ef76fe80c2da9974def84e38e75e6d3b00ba3170390e666c5ab

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b669480559c845747cfa32974761f8b403633a80abe66a7f2aea8a2356c19704
MD5 36e21f30935a84625204e40952a43b97
BLAKE2b-256 ccdacd54c1aa7afd1867e290f32a0ca277755f5aa4976a6a2c82a96d896b6b39

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 ecbee824d914b1ce99d0d768b068528decd86c31a43efdb87a8297675586826c
MD5 ab059a5b7cb6c7927fd05a19d95b79d5
BLAKE2b-256 97847f3bf928ca03de30cf7fdf82f1033f0804cb9d3df1f5fd727eb02639fc6b

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ba45a2281bb6f6b520a42f0c9eced1a9c90db6aa113d05dd19522df31a0de30c
MD5 8614829dd3ebe2f8d3e1527fbc15874b
BLAKE2b-256 700b6e15ce6ffbc6a8b1c59229673a0eccc978f0a62deaa10a80b790ac0b109f

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eaa1e8e56723b993b99d99b5a2f63a05db5f4c9b658f596e5a5ca4186e2ee1bf
MD5 b7b6b1a3b8b2c736cfd610c32be9885f
BLAKE2b-256 13d582bffa1e9c5c903178ab08fbdfce46b82d22392b9a5ffab38251a8aa325e

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 14d1713f92acba4163f02ff8ecf2a25cbcfb1e500d42adf6a92478f7338cd27c
MD5 f4fda1bf1035513ddb99654a1ceb665c
BLAKE2b-256 c36c80686d7fa437531017e4f75596d8e595798b4b672169231f18f4238a5547

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4755078dccb1459d3869bc3a30055e27f82309d427a71cd01eec03ac534e804a
MD5 ee0985116b5a7218cacb86e453fa48d7
BLAKE2b-256 9690e77a2c44721f913b1a66a6eeadfa72e3d17c3e4f431378a4f66896e7cc16

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 037aa654f6aaf08a5b7eb441fe02332459baddf98720ccb1b7065ebd23917dc4
MD5 3af0f8dd90da0f897900748467b0ec72
BLAKE2b-256 ec0563802000277c4cc34cd0e104b997b6a1c70f520d902606c89461f08ebe5f

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 89c5bdd3fdc02819342bdbeaa9fbe6e3a3c2ef077108094fedb452dea6d43048
MD5 38876279b2bda01a2daaa022cbdb2e57
BLAKE2b-256 4f3d91de08718bfc5cadc3baff53f7b89701b3c34ca56ae62d6c4d315205f9d8

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-none-win32.whl.

File metadata

  • Download URL: psqlpy-0.3.4-cp311-none-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for psqlpy-0.3.4-cp311-none-win32.whl
Algorithm Hash digest
SHA256 31b7ffc7a08efa9a9255f6373895a640f9d64be2be33c9d83fc644610176af0d
MD5 6bd5df3d7ebafc99db0296784ab33c8b
BLAKE2b-256 ca7d20796e132fbcc23068a7381de531fddd12d6ef3b0fb5726e010a40836dfe

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8559eda1d0c3890f1242b31f4d9ed3295b42b6693886925119bf3321d1849e5f
MD5 087c3a45003bec1dd9f182cb49f2db82
BLAKE2b-256 4481bcebde61d1aa0d37cef8db1b3bffc9a1ddd139147934f87cb0a2d1b73d8c

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 34ecaf90d22a931413f0b6809324d9b52f30e0b5990a34196e993754c32d4539
MD5 e7727552e15beeb4607fbd72fa5cb5f4
BLAKE2b-256 10fad9661eb87463ad52e6dbb5b2c3bc4cac350861e6a4d4d2b36762baf3a849

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8b5fdc8d2b29da32f44785bfad2b70845da37b4d000b7aa815ffe3116a1322d7
MD5 4ffe62ce5c58cb89766ddac67ee139de
BLAKE2b-256 c4fa74c19790abf127b2ec1d32ca3c6cef21c2f3e78766ee23a4ee2992a52faf

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f30f8b9c4e4b03e6632c59bc855e147642dfbd49e5db967d1113e5ecbb0e8691
MD5 691b2cad324ca5cbcaabc229dbdf515b
BLAKE2b-256 927b49bebea616f9039e721194574eb2bbca93c7af6137e9f67d94881150e8b8

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 006dd7a07bb7c8032042551d6f9cd6c432f7db89b87f7162ac8390b30818f8cf
MD5 d807af429f344379f9d1b16cb0258a41
BLAKE2b-256 03dddeeb28df34010dd08197aff45460d520320d081acb207c53c74565d994e4

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 a1219462e74c35d22e6cbdf9c15692ef4b330801bb31bc45c4ee3a922a48a715
MD5 e4bccc1dbb7fd8faab02e279e3a646bc
BLAKE2b-256 1d60fcb9d57353e98e42ca5f60e899dae777454632ab9bfc441fc8fa56d88273

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55301e8c47385f1342175e0a1dbb930164ad01392748f724eaeeaa6c52e56e7a
MD5 70a8a7e08393540b1dea98107fafa00b
BLAKE2b-256 47b1c4a5802d437ce65f35dba39a6b9e677eb83e66f4d5ebd35b0b444e4cf477

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7ce90feb96dd1d288ecfd4c97bf6bbf41d86ef28820459c0de084a003ddb6e9c
MD5 a5594ea213f9788afe1ef3364cd81b29
BLAKE2b-256 4b8b28ef30ac9e42c94c6efe1dd92fe642296f3c3f997ac08cfda0779cb3dbab

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 257fe20c7d2a43d19b24b2ff7b9bffc70f3e6e18e4df3655fd14d507bcffeca5
MD5 6fd2a9c3c2466a8187aa40d35f56dc85
BLAKE2b-256 b7fdda423bce092116d663d8ff5bc9f59c3532728335a7cedf7813b14ddea9ba

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-none-win32.whl.

File metadata

  • Download URL: psqlpy-0.3.4-cp310-none-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for psqlpy-0.3.4-cp310-none-win32.whl
Algorithm Hash digest
SHA256 17e363c4755cf3db13478c9921a81403308a9ef9823d2c52f0efe4a32f1dbdcb
MD5 a2387ea37d2bc6c66dd5423131f5e5e0
BLAKE2b-256 16d8877ead3a5c13333628944c1586ba3b2b08c832c0b7bd6eae11d7cc91b9af

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca7209b76611ded7a13748bffb89f6470bcf16fc8c96e9e241303636af063fbd
MD5 382e2c5a607d0a7ee5657830284088e1
BLAKE2b-256 1a11049d9a434e1439d567f1f2fd8dbb0fa16bd2278f0529aa56a26b3fe3760c

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7d7f1de7302854c970618f643410ee5192cb21aef1f75385a04dd906cf6ae3fe
MD5 c2c2bbc18d4b8e5585d40355f0f6b99e
BLAKE2b-256 57b64f57c33f775d2f14e71b484565f7a526a2a3b9c01bcc846429914b6ffb80

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6758000359d1b24fb32ef81dc531ec8041e179f9494447b9f2fd2754c6c881f8
MD5 8552ea96155bb94929db11baa88eec07
BLAKE2b-256 b557b5634a8b678a8d4a93598d1d2767dd71ba09eff03021b61e03d03514d8e9

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6c608db76fbfd18e6262ba8c110bc33f3ef19dd459a6934c7c991b18fef22e84
MD5 106973773eaa3c9a0c7be424c6382aeb
BLAKE2b-256 8a7dcef1f577b8fff0ee785e2c76b5696d9df1cc9cbf668cd9832857c680bd08

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6dd352ba4e25ada798f6476dc9647ee8718232a634ecf560cc1c896c2538d801
MD5 c1156479327d1b57a0b8cf4553ebb3b8
BLAKE2b-256 4f101248604454f14586def46fb51a2e5a49ff16bb6697a5a58a14fb47247d72

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 383a2f7dc0b7a22b4ffaca2040e113d1b2b2b73acd18c5544ee76b04103fa767
MD5 f06e9fa4ac369bfd9e79b335a285b528
BLAKE2b-256 51390c35865ecb5c1e9ab237d74bccfca975209f7ee405d6124624fbcfe348bc

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e118455933fc8ed1fc56acb57fa38d05ae8fbb43ea8f25786b382c33037c0aaf
MD5 cf93caefe3a46bff6c94dd40c6cb007a
BLAKE2b-256 9b353820514d6c411e57e2fcbba9d049744ffa6dbcae2fb4e62c6e8dd9f929a1

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7313a0457b842d3f58c9d751da9e2592596c8c4e3d127b1b7b38938295de84c9
MD5 ba904191c7ff6f6c07f7463b6915c924
BLAKE2b-256 9bc762223f8284e3f6fd7f0b8d225ae14ac9f2d0aee1199ea28beb3f5ef00065

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp39-none-win_amd64.whl.

File metadata

  • Download URL: psqlpy-0.3.4-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for psqlpy-0.3.4-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 d7adfa11bced37ea359c0f22a8f4b2ea532de6d8af6d69e22343d08a185ecf82
MD5 e37447f8b4002b1cc2980438a56f7776
BLAKE2b-256 e2da55cf1a6de9067e5aa462bfef7f1dab33634c5e88c5afbf3a10cbdb3c2d39

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp39-none-win32.whl.

File metadata

  • Download URL: psqlpy-0.3.4-cp39-none-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for psqlpy-0.3.4-cp39-none-win32.whl
Algorithm Hash digest
SHA256 b1327a56d020fcfc3825014fe96604705ec5565aa7cc23a470e7af0354a6acd2
MD5 bffe9519d487bb9ac75163b3c3a023be
BLAKE2b-256 70f0be9462612ca9abef2920dad0c0012657b215ae8c555a1afda593e68fcf65

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a98b16c72703a0f54053bf99d5a1053ea1fbeeedc7f4664da221c2bcc46f2036
MD5 61943b98a5cdfece3b8fdd77e2a37052
BLAKE2b-256 2fc64f07bc9b350e21243ebf8834e45f1f1d905628444d0fd37581944041bc9b

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 59ed221891d85f35e051c5b819cfb7002b818cfc423da45f64a3d194d16a2b8f
MD5 b66c0ec9a5e166eb611c8ffae62186d1
BLAKE2b-256 e8c3bc51d207f68fe71ba399aa82169af6b805c97a522150efbaf457187cb4d0

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0a974dbb9a35133929a34238c6fa550e4363da545cf91e6d99396a0344f5e34e
MD5 13c2deafa9f1cc67052a0cac3a77c1ce
BLAKE2b-256 1f8a3875ee5c0f833315fae4ab525f484cf6396c00d1c906c40f4b1e2ea44582

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 70eb6f622839216160c5d55d2be19ad6ff0e0533877aae287aa75d7ec67e1d20
MD5 43f3d842579bb5fd1c9c426cd171fabc
BLAKE2b-256 d45b35e3cc2691018460452008548a222f8f9eddf53f69483bfa7e643909d871

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 388ab78fe87fb0cadc73aaa4f340e437989336ba722ce0a3c2a2c74f2fa5c545
MD5 19757785f18ec44b3f14e8cce47a3dcb
BLAKE2b-256 3143a65293ca227f0cdfe29e0d178713e1591ad11c87f7d2a4e17b6187e6b69b

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 788729886ea3bf1d37416c0458dd817a2638b3e196809dd83e574ed2ee112c70
MD5 332730c2e8a4990823547973bb49ac63
BLAKE2b-256 d33567cf2704bb4eb7266467b25636ef393e9c4360c44d17a51baa5d16fcb74c

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp38-none-win_amd64.whl.

File metadata

  • Download URL: psqlpy-0.3.4-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for psqlpy-0.3.4-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 3d571cbe1ea3d42fd51ff22de1ca46e302ef25443e6413a75e2a342b3d04cd69
MD5 ab1a7db8a0a09787172fb5c37f8b2c77
BLAKE2b-256 90a5760474e3104adb8095fc1d8ef3d8c462b461f55724c927a47ed1b71f512b

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp38-none-win32.whl.

File metadata

  • Download URL: psqlpy-0.3.4-cp38-none-win32.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for psqlpy-0.3.4-cp38-none-win32.whl
Algorithm Hash digest
SHA256 269865374702dda0d804d4befd4acdcc2ea08eac8a27033336ed2bfb6f816a07
MD5 fbf88b74de0b57a7026a2fe478382e1b
BLAKE2b-256 3ccaf5a495a977054467e52bdc3dd39ac7bdc7c3b78ba34e0e67df45169778a2

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 83e6ef65a96d26f47cb203fcf76d157fe055b5c02e3313eca477deca4d18a231
MD5 0e89e9ea4d36d8e8d6e89a0ec36ffd81
BLAKE2b-256 437e8a500cdba81c745f7c60f762e19372ec8901362e545c5912a057416bd30a

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 cc8a8e86401527af704f9cfa0791682a6684d3c58bd18523e9f1e57d55d3ec16
MD5 c6f42e09dbe037335030f3f32478326c
BLAKE2b-256 5a737e21c5b9915d4381013ae15122fe1e0c3399bf56a60380e71262a8eebebd

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 31a6c6ce8ed643349afdadef39bf71becaaadc0158ce89885cf6108dc1197948
MD5 8f2524a60f09ed356302291708eea44d
BLAKE2b-256 010658fb8a9f7da372298f47a640a23c7b3b82aec76941adf90f626f81a24a2c

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f253717ce44bc38a43f6a6aedffae5b106c108cde728e56733d3844badca9c0c
MD5 8ac1f9822b8e24283c708a8403d116fc
BLAKE2b-256 b806a63deb0f5b58afa7e3fa863e2ff5cf2d9133f7dd7e3e1269eacf224fb488

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c6d03dad3a8ae1528a376b6f98b8dc370e950a4bba0f97012ab783912a14f5b1
MD5 9e2f62fd1667808105747e96837eda33
BLAKE2b-256 51b1f709987c4225e194ef1f9935a6cf891c1a6fbe9403d3522ae6e75d1a7ebf

See more details on using hashes here.

File details

Details for the file psqlpy-0.3.4-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for psqlpy-0.3.4-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c92b9530ef67b1b4c52f3fe96846bf2d8ef804c5f2952d27ca74924f178bbfa5
MD5 5ccab2909b937c3d27cf5c28a6cf4acb
BLAKE2b-256 de2da5a6be2500f970c248a0459eb059dc1ef1ec4c501532a7ddcc0310c23605

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page