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.5.tar.gz (50.6 kB view details)

Uploaded Source

Built Distributions

psqlpy-0.3.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

psqlpy-0.3.5-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.5-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.5-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.5-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.5-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.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

psqlpy-0.3.5-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.5-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.5-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.5-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.5-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.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

psqlpy-0.3.5-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.5-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.5-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.5-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.5-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.5-cp312-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12 Windows x86-64

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

Uploaded CPython 3.12 Windows x86

psqlpy-0.3.5-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.5-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.5-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.5-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.5-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.5-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.5-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

psqlpy-0.3.5-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.5-cp311-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11 Windows x86-64

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

Uploaded CPython 3.11 Windows x86

psqlpy-0.3.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

psqlpy-0.3.5-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.5-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.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.5-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.5-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.5-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

psqlpy-0.3.5-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.5-cp310-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 Windows x86

psqlpy-0.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

psqlpy-0.3.5-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.5-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.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.5-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.5-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.5-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

psqlpy-0.3.5-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.5-cp39-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 Windows x86

psqlpy-0.3.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

psqlpy-0.3.5-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.5-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.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.5-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.5-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.5-cp38-none-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

psqlpy-0.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

psqlpy-0.3.5-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.5-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.5-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

psqlpy-0.3.5-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.5-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.5.tar.gz.

File metadata

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

File hashes

Hashes for psqlpy-0.3.5.tar.gz
Algorithm Hash digest
SHA256 c7d4cc0fb7c8db8b17e45a274c58d2c0ca5d3d839575856a246845c2057f2ea0
MD5 98a87ad557b74f259e996f0bf67775d1
BLAKE2b-256 541690f9a572541766dc1d690f24c6da1d7a5ec0777dbff92037dd07dbe4e4dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 975c5192c2bf9e346cd58ce7734d29a3b62a76044fd4e0104ec90c0fb9067011
MD5 c02c625c977abd96dbd873c2129e4fa7
BLAKE2b-256 9f6c06b201ac0a9578ffe29035ded2dd9b782c6c6a53c36c6f7699678847c8ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 92af52082f18407fe0dcf120fac8bcb23bbb6c28ab6124c22422e94b0827d322
MD5 de55b6b3b2680acc54b193c7a69de7cc
BLAKE2b-256 e624e0da17532946179d6d8dc76b99f7e11fc65fd8ea43ec3dbea24ea768b565

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 159effb9a5bbd2eabb1ff4089a4c8153deb6de0d2955fd3e3a70f4234a9ff03d
MD5 ff4d5c1a249ccd2469f838a2df105ee6
BLAKE2b-256 2aad6d82b5113a25fd4866339743371ae12e3d4d75d0a63f8f5d415054933c43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 8e8d9bdf2816b23768988fcb5429c5252d21d094d4814b296e85d12d080b2e0c
MD5 bb8317308c70afa60f1a4c52858bc950
BLAKE2b-256 3cc82c8644bb2f53567343776490f2c455c79c9b1128f1f37d19fbd88dad4e88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6aecf3a1aa712a19de5db5432f3e37972f02a06b348b3979b6ba7db5c5624619
MD5 5dfc95aec47536f5395016ceb3a336e2
BLAKE2b-256 9472f53a7e720a3f1a860bcea0ccb80ecd2cf2997e86d67b3a69b69eaf7f80b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 fd3ffda881a10674ac57617f7d52a731c3d34931fdecc8d2c020d363d2f80ec2
MD5 9b9db6ed3ec6cb24558df5b54271cc6e
BLAKE2b-256 ba730a8a5962009122eda9cb4040fcb1f013adb5a7ba81f5ae132febaee1cf2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2ce4ac56bbe7a159a91c750eb847a190b0dfdc10062e00771df2ef808b1295b4
MD5 a2276289308bfbf4ab56074e8267c5c1
BLAKE2b-256 0e5d2caa24883b79ebcfdb1f53de35dd267244291868d66e681b17cb44bdc0c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c0c25e1cebb1c346a6ab7e363bbd637e3b8996325cea1eabf9fb28c8d0c073d1
MD5 004126a24f12215131c334d72b84904b
BLAKE2b-256 0fdf3438207bd842a7497a119d4924196c59ecf3cb78991ad9b7c7c2244a060a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7273df7df89156293ff50f5072c6b932c7a7066e10c226698648dcbbe8562596
MD5 4caaecf7fb44a33e62839e6b9b22fa92
BLAKE2b-256 9e92ba98d7e54edc4ab71fa424d015724ce7ec35eb65e068548932570dfb47c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 20f2b432d3d82d9db2d7495681c2a9a6820450721cc60bd8a97dba68799a622d
MD5 d4dc5af8cb9285581b4803ab90d6d88c
BLAKE2b-256 6e57548599857748ab8441546da334ed79417fdfeed38ad5438c8ea6a741d52a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 af6b8b47ccaf202a28ea1c1e7cdc11966d4330b12e4f35b1b602cda9ca47698f
MD5 3560bc077bcc45d5b3a37de3d1ecb719
BLAKE2b-256 e31d0c531bd81e903e8435e1f9b9ed82b87685faa2b4ea55424309175c666e20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 297b84963a1c03df70e43790166a9f09a0578041e59b4d6a13d96c07c7abff7d
MD5 4b92dacb70e91d24716b1a95e08bcc8e
BLAKE2b-256 02d01bc6d8528fb5c1b82a8aefecbefcc4e2b9ec0bbb71c344ccc634ce1edfa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b505452595cbb73396617a36ba11fbc294aba3045379f2a14329d1fc7f5d330
MD5 5dd83b2975c32f7c7105041c2c11ec9d
BLAKE2b-256 1ac194db6800629cd547245e7892008b1b1864e06253c19765a89523e42ad3e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 4cbc06399fa737a68a248684f9479c4338fbeeaaf68d653ec7327c865bb50f9e
MD5 b59b43c83a6fa613c8359876b840d9e8
BLAKE2b-256 3ad9589af20d7f8f26ba1f352fd1b7b96a7629938878fc069cf2d6b124e537cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 154a19c6152f1e680d0eee25e88a4121c7989ad120b813b99d1f67bd4f9fa83e
MD5 c6e7883783a5ff991ae6da87c26e6fdd
BLAKE2b-256 51946bc04e4d139a889319c81a11a5b6b665da09175f542d97b8306c0244ecb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 26973befe8ebc642a769ca9eb95d777b5e2dc9d322ab51aa5d2e5b2945a319ad
MD5 67e8cb7e1b13c4ce2ed63bd13c8992b2
BLAKE2b-256 bf97751ef94e684bd4638c37b8d63238a2187b008a63373ec560057131348594

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2d82c518ed27af96120b5eab795bacc7c5f97a807da15aa3af29d75baa25130b
MD5 618a43de9e72d8a39f91c5c5e8832f4e
BLAKE2b-256 6d0105b50253bb4c63c7e9f5bacbd8842b66ddd7e9b89197d328dc579e309f37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7af0f0538d495fa646f63fc2776894c47c6fa64343c09d85b3525c32ed7dcc5a
MD5 df8a1670e225e5eb1e60b1205533224d
BLAKE2b-256 2ef783666a2b455c82f64925f4b9b4c0a7fbd2df0a3a56bc0b6465bb6ec0ca9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 5c32e69353d25909226ac38332dd963a0bb306928d348ca098365485e4c1b4cb
MD5 8966a0526e69d8e895a4c7af688bf53e
BLAKE2b-256 1d8d9efa708d9088610d12d8eb06b5eb8368841c088f8b6d444c8b950a07bc87

See more details on using hashes here.

File details

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

File metadata

  • Download URL: psqlpy-0.3.5-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.5-cp312-none-win32.whl
Algorithm Hash digest
SHA256 524926da7cb7ffbd153fd41973f86fc2492b6c624e34da33a260c30485f75ddf
MD5 62cbc5160a7db893e001d857637fadf5
BLAKE2b-256 009956b557c6e1f5ab6b4719952f089748812055da3a1295fe7b604a399689c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0c30d85596deeb4c0b6ae66bb59d83a809212f59cd1d98e85961e0f7a773460d
MD5 cf99edcaeb177f6694d71f3713833a4a
BLAKE2b-256 c4a187b61f3ca9a742210b7a9ff29f647e643a813c891f759e3a3f05d344466c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7abff64f9426d004e5fbb25de9fcd6ddf58776a38392a8da56922289af8f52db
MD5 20792c8d5876e6c7e6deb2a74283f027
BLAKE2b-256 2f7b693fb3628344f7398d01db86c47e7882bf667b9243eb6538c64ee195abc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 078fe58ca6c16b584183284e9c8663277aaf8a27a6c5cf44725797c9e2b23088
MD5 7191af2b0f30146ed63022c11c26d427
BLAKE2b-256 374734f7611df68528da06c559ed7a8ea786a962ffb4cbadb0e99be217fa7c49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 c926a7c575878ab11680d9353b0178bfe2815f14e31338a87e21040646ee880b
MD5 cd2b66a86633dacf8208c8b2c57a4f18
BLAKE2b-256 c5c5c96587fb43d28c210721781021fa891b7c6bfa4c8eb73defdde71966f991

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 30520260935181d985fa3ea8b67f95cd0439905ce7f0aea593ff2b8ff49157c2
MD5 0db953f89633a141c74612e7720f2e28
BLAKE2b-256 15657841d42fb34e7184d511ffa9cad3c54550971a838fed9426fc4618c4c647

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 b70c31ee9244a81f092c69402c7512efe691a5c06f44e8fbdf7048b2408644f2
MD5 c83f1f700d19fd2109f2418630e0b8b9
BLAKE2b-256 44cd2a393d9d91a3d688b9b3aca76829135a8461517e3f1fb53734d63bb04ee1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1207c03b27b21c43c79dccc1b03ae5caa323181c9961819e03baf664ad064f12
MD5 d509df625e1dff82035a4e47e064c4b5
BLAKE2b-256 bb744ee9ac6abec55f18c606a94082006df6df01fa04cfe3085374760154b137

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6590d59b5acae71b27990ff5c95c3984822d67994e0ff09ed3e21c4409b82ad4
MD5 5dec1a0a7ffe4683f2bc82abfafd8453
BLAKE2b-256 f10f36b7cb6972fcca844227d26077f118a1496b5bd8c36b3a85a70d2e1c1144

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 18f622dc2858a67044ccabd427d629f0e20fea045ff3ec7bada0cdb3fe028fa4
MD5 119eb8827fe1e09578bd340a717bad43
BLAKE2b-256 5d685d73ab9a6a6eac1598255467df2ba8032a58510b3777cfdbfbac6a6de3a6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: psqlpy-0.3.5-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.5-cp311-none-win32.whl
Algorithm Hash digest
SHA256 9b5f8bdb973bd2321dcb987b18bfe518014790142c35ac1c00e9f77e8245dfcd
MD5 a15e5379debaa34d6dd70aa7f22b1a4d
BLAKE2b-256 a819cc59bfe8a67d494c38cbd013645b0e7c5caa16270391e7f9353ec719632f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 25d6bdecffcc7f91fb023836ab1c11e8f61134d5c70bf10e879c2ea6e856de98
MD5 b6e2f95219b077187e3bb7fa4035274a
BLAKE2b-256 d5905c6a191bc600aaa034bee323af38c4a8af74eadc48b3dde909995f01136b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2ec3b2abce1cdc0c2dab06b216a32397a8199ecdd412b8281bd9437cb08cf0fc
MD5 9390e40abd8b569e8cf31e4e1a37e902
BLAKE2b-256 5e12ed32975878c6dc8f9a45ad3b9d0e83dceaa7f7a6b7d3cdb7218ad024387a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 265dd20ae744b04fb81bcf387e3062fc830ed9d03474ddf8da5d6ef029e6a126
MD5 a49e06ce8b4487abcbcccf44ee661eae
BLAKE2b-256 a76e769fe44f376206613b82996eab93bdd352f96d866e2b276cc041f41dcb1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d526fecbb4fd110bb43e68c8a4c684a3f6802e54649c8fafe02e300e84cc2d2c
MD5 0072b6bb8fa1e39c347377c514ffe71c
BLAKE2b-256 930c256e28018e8edac8be335a0039713b1a19827cba208cae17e6e4f8897555

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6a96b342ad209a831e1adc26ca8ce2a02562dea20064a3a5d37ba6a7effb946c
MD5 2b04a0644122390b7a1de87100382922
BLAKE2b-256 f11318dd118db7c76d300fbe1435556008164fa28ebedd2910490ef82eda702d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ffa92b2efebd75e7cf5e3edb5633961d7fd947766e18b9b26581f73b5c69b20c
MD5 e53e2a8f15e0a6a42b29a9fcc06006f2
BLAKE2b-256 8784b00ba47d8cc747d56f590d7b759812f623405dda78b22388ca822d819989

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0846d780ae6bb13ea4b3dfa27cfcbc4251e5fc6806ac44d0b4a7e68597da3a3f
MD5 bc942d7320dad1d7e0c1b9daeb7d9aa8
BLAKE2b-256 8c185f04162ccbe8fba15bb4a466b83809e239a6d3459aa0bdedb35a2eccd074

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2e06f099ae8ba00ddc5877016b6f0b027d5a40e308e247914e72b5e6f24862a3
MD5 440ca9964a9a9721a192f3f592ce2809
BLAKE2b-256 dde74009532654a76bb4f018ec4d1aad5d5d146982bb735acb0c70b41716e757

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 d4a3732805132e66a324c5437d01f0f2a58cc4084d54ddac6725d8367833b074
MD5 f07babbaca955d424550c1b96e9fa98d
BLAKE2b-256 431b8ad7698d3769dd4d60032598611ddefd6c592e6b9ee57d64a0990ddf525b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: psqlpy-0.3.5-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.5-cp310-none-win32.whl
Algorithm Hash digest
SHA256 014707ae7f4bb1892d16d320fe0ac2179dbdcacaaa5ad4b22b4fd728cca1cf01
MD5 c7e027c2ffb002405f1e8f339138da8a
BLAKE2b-256 41f0c9bf70cac9caca75af6964c70840bc7f7e75a3e020b229124026aee6b023

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9327e99d45734a1da17a42ae23d4d955eea334e4a6bb70401c1a14092da75038
MD5 6590f06ba346f6d9ca66cf8c10014c21
BLAKE2b-256 d64ef343297685cb40f384ddc32d6355f7e4bb5e566087449d8443a445e3f0bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2ef5674b4b86447d1ec34e5d14169566f238fe8064c794ddf586d6faffee4b78
MD5 b105e30aba7b0a3307c6a8b813e9842d
BLAKE2b-256 2fa16070f0cfc7f50e8255f8d8510be3ae31d5f8e50907c8f4f1c27ef6734de2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5b928ea30c2fc48bef14b80aaa3cf71e79806e694ce8364a5fbb14ae855deb35
MD5 e9dc806c393b3aced62b2e60f3a46a97
BLAKE2b-256 71a2f67a58b0e9dd98d7ee9acb3a4a396db5d046ce556ef5d024ba123f75b414

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 573ec94721535d3fac4228b3574414057382a8ade9a60b1be65ca10d478eae2a
MD5 11df9df19f5fd7e2a4f091647c0f064c
BLAKE2b-256 c7fdfe7fa453ce300dd755e809d22cfc32ddf212e4a98b1c475b47d456d0b49c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a10dec8ddbf5d6fa2ac0653d78a53c2a2beadb9dbec25ecdeba31d002e39054c
MD5 409caaf62c7beeee0046068ffa80706e
BLAKE2b-256 e80cf09f9910399b71db08dfb4c34e73409a97863a68224c56b26b59092f7c62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 98f6d027971a0ab0e7524cadb7defcaf3224e0c27c19ecde8e0263e740e764d6
MD5 c5e13fb73e5bfa1fdcb11d62e2d27181
BLAKE2b-256 e40fcd4555bc53a03f07ba1685006e7ec647992229b4be80f79018285c38b654

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 97bb8c7cdf168ecd0ce2cd8fd477e034ecc7f102207152363e7f06e551a274b4
MD5 17b737b7ef0c783f640141408b27eb70
BLAKE2b-256 38c5f60b3382f023c8e99f12a86cbe2cc347fa2bb3ab7d6d45a45cf999354f08

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f06e9b16151570e77b355c21d023af3b5938173049c22723b0f8809bfbaa8a54
MD5 538cda278ca75dcc16f1ca0e335ddbaa
BLAKE2b-256 aadd4a802236fa10709e257c3f98239af86787d7ef2724f8133cccdfd724a393

See more details on using hashes here.

File details

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

File metadata

  • Download URL: psqlpy-0.3.5-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.5-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 499fab16e92daa543685b7358a7b34a0254bd90b825774a016c3918c9771767c
MD5 c9721984a3986efc20133897bc169bd6
BLAKE2b-256 d2bb9a2c1df6759250c0e5921a0b2b1ef20652e1d702a45403cead16d64c6562

See more details on using hashes here.

File details

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

File metadata

  • Download URL: psqlpy-0.3.5-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.5-cp39-none-win32.whl
Algorithm Hash digest
SHA256 49f60249c2b996967e281e2b42404c7d51a9e6db1ecdd0733be5f63fa66e77c6
MD5 b7ceede1f569f3b8f2be4edc2c1a58b6
BLAKE2b-256 036d9775e6448da10a0227ea65c261394be9f7897378433c8f2d851d1e78e218

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40ca5f66e09e369c8bc6573751b47c1087808ad72b1c9cc2b5da9b8956929f43
MD5 1a8e1a9e8a5efc0d5ac01e33835b91f3
BLAKE2b-256 ea7bba6b1643c0202243cdf8389dad5f72150846d6783303f048f66480b9310f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 60579f2c1a0bacbf9e2b92e24e801a13dfe89af3ae9caa10c171d85a3a7a5c97
MD5 47f30dba36b970ddd5d9229f885e1e82
BLAKE2b-256 5defa9c5f80bdebf68e1f714bf2687d07fc4a013127330ac73b6b857235b130a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 3b55c378f8fc78d3aee7a449f8bf75da0d7eb9761755f6d0977302e62a493b1e
MD5 e5c554267157930e29f6ff14ec9ae265
BLAKE2b-256 5b69a305d2214912330c2443edcf6b67fa5f466ee21977687b083ce3f12ea697

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ad4fa9920d526d4208160ac805f624363d5412df8cc6c45fac72eaa0844902d6
MD5 3c42cd76feedad9acba8e1b1bdae1107
BLAKE2b-256 53034cf2150a4f2da846705eb5e1186e904dfc3ebb8422d630ee9ea247d35485

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 36d4ae089e1ada7acf42bc90ce2ec91562d6ebe359af0a617e801d763b115ead
MD5 e34c6f958499ea5ad4310e65997d94b9
BLAKE2b-256 914cba8523d824d70b67f73ca828a3841272047ca662555fb6365e59d65d8d49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 b6fffd1a0f818e31fe1440f4558a561f2db3f73e0cf626b5d6665affc904680a
MD5 02e0e1b675d89e55ecd1f406112be8ad
BLAKE2b-256 71a857c1f045ffd0776717bf3c3ee2fabfce72e4aa028679c9fa603574417970

See more details on using hashes here.

File details

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

File metadata

  • Download URL: psqlpy-0.3.5-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.5-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 5f1390eedf76eeffe09c1be51f396d3783a1a8fd2ee7d50306eab0c787bc605e
MD5 0271048527b9c20d8b61879f1cc0f232
BLAKE2b-256 56c8f546f12a42c6c779909bfe5db91d473e9ec2e568e022730dc68de8c937e9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: psqlpy-0.3.5-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.5-cp38-none-win32.whl
Algorithm Hash digest
SHA256 1f0a68f6223fe4ddc8c1a503d38a5cd14ee3b8d36092a3b3e1dbc2a43e9cb502
MD5 b78ec881b1bc734768da44c58f4a8d68
BLAKE2b-256 5d31bf26897458d82a8a556d7dda2cb71de1137869cb23bb1961dccaf1dbf126

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4df9804d5194d74fcfe54f18f30d28bc74ce67e1bcaa13536b9cdff7a20669c0
MD5 d7aaf8d6de4e013fd7e08b33a9835e2b
BLAKE2b-256 eb292a05026a646f54e2252efe51e39febd01d5bc1412e7edcd886677516e210

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 124e395ee881cc6b31371e5246694e44359cc3cfcf1e06bf452d1a4f7e74a52e
MD5 9258e863087182e8a55a72f5442573d5
BLAKE2b-256 75429e2fbbfc8dec94ebff6d5fd7f7bda8d6b94a7dda70fb68b4bdf104ad48a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 1d9d5952b02047b526fc20cfa2736aebbbf9e0a4efb16e8578820b86858b892d
MD5 16d5b75d287f95e4ad784b1586b87076
BLAKE2b-256 509a868421da5538a1d2c3518e53660fcd87905b6f85a850d85838ec61559976

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3d11a8085fe48c5c5eb0009c78e6c25abffe8e5ec8cbafd71c9d540802a22fa8
MD5 5dea670bad0b325371e87390c1e6310a
BLAKE2b-256 6b822dbb3cbe13992b3deac6ec3b6c8c3c896e1c9bc88944fa29a723eb97cb1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0c4bee98810bce4ef803792bcbedf28deccb281da3fbeadb8bbe752c4a127ba6
MD5 2eb5c9430861f0a1832ba7a9c125212d
BLAKE2b-256 850e7e09bd1d5aff1be9fd6e34f295b24f3647280c3b53a04e7238a5b6554cac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psqlpy-0.3.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 0e836c0b5fc2f997064dbacc9611da4aa48c0871bfc20b955f62ac64032b2bef
MD5 f74cd1775fbafd9e2e2b8015fd8dac73
BLAKE2b-256 73698a5dd325e7e8149bf2695ae0fae34813717c6d0894e4363dbb5be60fb718

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