Skip to main content

Fast MySQL driver build in Cython (Sync and Async).

Project description

Fast MySQL driver build in Cython (Sync and Async).

Created to be used in a project, this package is published to github for ease of management and installation across different modules.

Installation

Install from PyPi

pip install sqlcycli

Install from github

pip install git+https://github.com/AresJef/SQLCyCli.git

For Linux systems, if you encounter the following error when installing the SQLCyCli dependency mysqlclient:

Exception: Can not find valid pkg-config name.
Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually

Try the following to fix dependency issue (source: Stack Overflow):

sudo apt-get install pkg-config python3-dev default-libmysqlclient-dev build-essential

Requirements

  • Python 3.10 or higher.
  • MySQL 5.5 or higher.

Features

  • Written in Cython for optimal performance (especially for SELECT/INSERT query).
  • All classes and methods are well documented and type annotated.
  • Supports both Sync and Async connection to the server.
  • API Compatiable with PyMySQL and aiomysql.
  • Support conversion (escape) for most of the native python types, and objects from libaray numpy and pandas. Does NOT support custom conversion (escape).

Benchmark

The following result comes from benchmark:

  • Device: MacbookPro M1Pro(2E8P) 32GB
  • Python: 3.12.4
  • MySQL: 8.3.0
  • mysqlclient: 2.2.4
  • PyMySQL: 1.1.1
  • aiomysql: 0.2.0
  • asyncmy: 0.2.9
# Unit: second | Lower is better
name        type    rows    insert-per-row  insert-bulk select-per-row  select-all
mysqlclient sync    50000   1.729575        0.435661    1.719481        0.117943
SQLCyCli    sync    50000   2.165910        0.275736    2.215093        0.056679
PyMySQL     sync    50000   2.553401        0.404618    4.212548        0.325706
SQLCyCli    async   50000   3.347850        0.282364    4.153874        0.135656
aiomysql    async   50000   3.478428        0.394711    5.101733        0.321200
asyncmy     async   50000   3.665675        0.397671    5.483239        0.313418
# Unit: second | Lower is better
name        type    rows    update-per-row  update-all  delete-per-row  delete-all
mysqlclient sync    50000   1.735787        0.345561    1.531275        0.105109
SQLCyCli    sync    50000   2.241458        0.343359    2.078324        0.104441
PyMySQL     sync    50000   2.516349        0.344614    2.264735        0.104326
SQLCyCli    async   50000   3.465996        0.343864    3.269337        0.103967
aiomysql    async   50000   3.534125        0.344573    3.345815        0.104281
asyncmy     async   50000   3.695764        0.352104    3.460674        0.104523

Usage

Use connect() to create a connection (Sync or Async) with the server.

import asyncio
import sqlcycli

HOST = "localhost"
PORT = 3306
USER = "root"
PSWD = "password"

# Connection (Sync & Async)
async def test_connection() -> None:
    # Sync Connection - - - - - - - - - - - - - - - - - -
    with sqlcycli.connect(HOST, PORT, USER, PSWD) as conn:
        with conn.cursor() as cur:
            cur.execute("SELECT 1")
            assert cur.fetchone() == (1,)

    # Connection closed
    assert conn.closed()

    # Async Connection - - - - - - - - - - - - - - - - -
    async with sqlcycli.connect(HOST, PORT, USER, PSWD) as conn:
        async with conn.cursor() as cur:
            await cur.execute("SELECT 1")
            assert await cur.fetchone() == (1,)

    # Connection closed
    assert conn.closed()

if __name__ == "__main__":
    asyncio.run(test_connection())

Use create_pool() to create a Pool for managing and maintaining connections (Sync or Async) with the server.

import asyncio
import sqlcycli

HOST = "localhost"
PORT = 3306
USER = "root"
PSWD = "password"

# Pool (Context: Connected)
async def test_pool_context_connected() -> None:
    async with sqlcycli.create_pool(HOST, PORT, USER, PSWD, min_size=1) as pool:
        # Pool is connected: 1 free connection (min_size=1)
        assert not pool.closed() and pool.free == 1

        # Sync Connection - - - - - - - - - - - - - - - - - -
        with pool.acquire() as conn:
            with conn.cursor() as cur:
                cur.execute("SELECT 1")
                assert cur.fetchone() == (1,)

        # Async Connection - - - - - - - - - - - - - - - - -
        async with pool.acquire() as conn:
            async with conn.cursor() as cur:
                await cur.execute("SELECT 1")
                assert await cur.fetchone() == (1,)

    # Pool closed
    assert pool.closed() and pool.total == 0

# Pool (Context: Disconnected)
async def test_pool_context_disconnected() -> None:
    with sqlcycli.create_pool(HOST, PORT, USER, PSWD, min_size=1) as pool:
        # Pool is not connected: 0 free connection (min_size=1)
        assert pool.closed() and pool.free == 0

        # Sync Connection - - - - - - - - - - - - - - - - - -
        with pool.acquire() as conn:
            with conn.cursor() as cur:
                cur.execute("SELECT 1")
                assert cur.fetchone() == (1,)

        # Async Connection - - - - - - - - - - - - - - - - -
        async with pool.acquire() as conn:
            async with conn.cursor() as cur:
                await cur.execute("SELECT 1")
                assert await cur.fetchone() == (1,)
        # 1 free async connection
        assert pool.free == 1

    # Pool closed
    assert pool.closed() and pool.total == 0

if __name__ == "__main__":
    asyncio.run(test_pool_context_connected())
    asyncio.run(test_pool_context_disconnected())

Use the Pool class to create a Pool instance. Must close manually.

import asyncio
import sqlcycli

HOST = "localhost"
PORT = 3306
USER = "root"
PSWD = "password"

# Pool (Instance: Connected)
async def test_pool_instance_connected() -> None:
    pool = await sqlcycli.create_pool(HOST, PORT, USER, PSWD, min_size=1)
    # Pool is connected: 1 free connection (min_size=1)
    assert not pool.closed() and pool.free == 1

    # Sync Connection - - - - - - - - - - - - - - - - - -
    with pool.acquire() as conn:
        with conn.cursor() as cur:
            cur.execute("SELECT 1")
            assert cur.fetchone() == (1,)

    # Async Connection - - - - - - - - - - - - - - - - -
    async with pool.acquire() as conn:
        async with conn.cursor() as cur:
            await cur.execute("SELECT 1")
            assert await cur.fetchone() == (1,)

    # Close pool manually
    await pool.close()
    assert pool.closed() and pool.total == 0


# Pool (Instance: Disconnected)
async def test_pool_instance_disconnected() -> None:
    pool = sqlcycli.Pool(HOST, PORT, USER, PSWD, min_size=1)
    # Pool is not connected: 0 free connection (min_size=1)
    assert pool.closed() and pool.free == 0

    # Sync Connection - - - - - - - - - - - - - - - - - -
    with pool.acquire() as conn:
        with conn.cursor() as cur:
            cur.execute("SELECT 1")
            assert cur.fetchone() == (1,)

    # Async Connection - - - - - - - - - - - - - - - - -
    async with pool.acquire() as conn:
        async with conn.cursor() as cur:
            await cur.execute("SELECT 1")
            assert await cur.fetchone() == (1,)
    # 1 free async connection
    assert pool.free == 1

    # Close pool manually
    await pool.close()
    assert pool.closed() and pool.total == 0

if __name__ == "__main__":
    asyncio.run(test_pool_instance_connected())
    asyncio.run(test_pool_instance_disconnected())

Use the sqlfunc module to escape values for MySQL functions.

import asyncio
import datetime
import sqlcycli
from sqlcycli import sqlfunc

HOST = "localhost"
PORT = 3306
USER = "root"
PSWD = "Password_123456"

# SQLFunction
def test_sqlfunction() -> None:
    with sqlcycli.connect(HOST, PORT, USER, PSWD) as conn:
        with conn.cursor() as cur:
            cur.execute("SELECT %s", sqlfunc.TO_DAYS(datetime.date(2007, 10, 7)))
            # SQLFunction 'TO_DAYS()' escaped as: TO_DAYS('2007-10-07')
            assert cur.executed_sql == "SELECT TO_DAYS('2007-10-07')"
            assert cur.fetchone() == (733321,)

    # Connection closed
    assert conn.closed()

if __name__ == "__main__":
    test_sqlfunction()

Acknowledgements

SQLCyCli is build on top of the following open-source repositories:

SQLCyCli is based on the following open-source repositories:

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

sqlcycli-1.3.8.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

sqlcycli-1.3.8-cp313-cp313-win_amd64.whl (6.0 MB view details)

Uploaded CPython 3.13Windows x86-64

sqlcycli-1.3.8-cp313-cp313-musllinux_1_2_x86_64.whl (20.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

sqlcycli-1.3.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

sqlcycli-1.3.8-cp313-cp313-macosx_11_0_arm64.whl (6.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

sqlcycli-1.3.8-cp313-cp313-macosx_10_13_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

sqlcycli-1.3.8-cp313-cp313-macosx_10_13_universal2.whl (8.6 MB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

sqlcycli-1.3.8-cp312-cp312-win_amd64.whl (6.0 MB view details)

Uploaded CPython 3.12Windows x86-64

sqlcycli-1.3.8-cp312-cp312-musllinux_1_2_x86_64.whl (20.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

sqlcycli-1.3.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

sqlcycli-1.3.8-cp312-cp312-macosx_11_0_arm64.whl (6.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

sqlcycli-1.3.8-cp312-cp312-macosx_10_9_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

sqlcycli-1.3.8-cp312-cp312-macosx_10_9_universal2.whl (8.6 MB view details)

Uploaded CPython 3.12macOS 10.9+ universal2 (ARM64, x86-64)

sqlcycli-1.3.8-cp311-cp311-win_amd64.whl (6.0 MB view details)

Uploaded CPython 3.11Windows x86-64

sqlcycli-1.3.8-cp311-cp311-musllinux_1_2_x86_64.whl (20.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

sqlcycli-1.3.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

sqlcycli-1.3.8-cp311-cp311-macosx_11_0_arm64.whl (6.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

sqlcycli-1.3.8-cp311-cp311-macosx_10_9_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

sqlcycli-1.3.8-cp311-cp311-macosx_10_9_universal2.whl (8.7 MB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

sqlcycli-1.3.8-cp310-cp310-win_amd64.whl (6.0 MB view details)

Uploaded CPython 3.10Windows x86-64

sqlcycli-1.3.8-cp310-cp310-musllinux_1_2_x86_64.whl (18.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

sqlcycli-1.3.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

sqlcycli-1.3.8-cp310-cp310-macosx_11_0_arm64.whl (6.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

sqlcycli-1.3.8-cp310-cp310-macosx_10_9_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

sqlcycli-1.3.8-cp310-cp310-macosx_10_9_universal2.whl (8.6 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file sqlcycli-1.3.8.tar.gz.

File metadata

  • Download URL: sqlcycli-1.3.8.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sqlcycli-1.3.8.tar.gz
Algorithm Hash digest
SHA256 7d987e989203511e435b766e3e8baea67548b8a36147fdbbd078bf1179f3a3c4
MD5 7ef7403d2b4f2f072d65d3e472a1285a
BLAKE2b-256 5708b92551edf1f1c4e417a13ceb37b04f911c4917c714e245a9cb0665ab2292

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: sqlcycli-1.3.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 6.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sqlcycli-1.3.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 70d7ab5640325e4c44b5970b4c8fcb4e4d06fbce4a36a203e0d1308f8031e43e
MD5 83d98498cc93f9a1b6ce31413bd3c398
BLAKE2b-256 5655a22d2acf74b5a9ae7814a1884d075d1e8c4c1d5e0433d5cba0b6b2657a8d

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cffc0a8fa6e685178139b2fc762cc0ef8fb41e94776b6dbe5e4643a58201c01d
MD5 72fb7b4a739bc744ed82e07c53ca52fb
BLAKE2b-256 0f5a44ca9bc917598e1d6222b6dffd8cc4bc12cc6e94d8d9fbd53aff71838622

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2213ab8bf564769f0775a95e76e36ab01bec9f45f181af7ec1db9c81a0f683ea
MD5 4d2e144cbe45e8e378056577404a1766
BLAKE2b-256 eeca0ca5dc337331f5cfa6d49eae930603bd123d58b2943ebe28837b5c1e9e1b

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cab5e40fba43becbab02fe1a0c2e1ee2b25afb67544a8e1048686ec19c572530
MD5 32dac18fd43c9a66089ea45965d4dab8
BLAKE2b-256 806cf99401abc77b4607ef980d07833df2b951609bdf20db6ef78f00c4a9e957

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9fe36956733d5e4c8cfe654f87ddb3a78bbc4dc3717cdcd65bb84f1d24a6ad8d
MD5 6d1f008687add1a74735a4b16fbcddc1
BLAKE2b-256 8e36a5aaa137132a159d69770a0dc908dd61e6916d7b9033b7a2a1a80c10f0db

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 414778cb98cf43ace51a8ab80f569894c4e0c61cc2a6dc3fcb905da348e905c9
MD5 e590c737173e0ad4a55c9791fae60e17
BLAKE2b-256 e3c4566e1c16b925222a11090d4ae11a7aaa4a889b113f3056ee54f4c6350193

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: sqlcycli-1.3.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 6.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sqlcycli-1.3.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 787d14a691dd92da20809b45c6de5467eba68a3ce9dd1e9bc847d1bf876df951
MD5 8e45a341babb1b3842654e73f943bf63
BLAKE2b-256 d9946d35d2f4e147855aefc857e95ef7b7a0e11d2b7e3f93c77f01ad6c7e6792

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0fa4cd52c1af624875d2eb2511122c2fd99f9a64dddf774a3292db683155d5ab
MD5 f2d33b63c6d0252913e65ca8c0214566
BLAKE2b-256 9f1c373b99178f88279e062acab09af61cc2e38221fd8c767fc90170bf37f2b7

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 493849b0f6b3a35848bdf741d15672a2ee3fdbc171b0a6b20c901d87aa5cd815
MD5 988d47db202ce8f5db640b0a8e765e8f
BLAKE2b-256 544933e358943e018f5ea1add90f533a5282ab7ffe234bf89df4c0b92b291944

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 450d9b7dd5a2d32187803713529eb8971f865f5d12f77dc1042e33e70abf51ab
MD5 7e90d6e83ff348103e07b00719aa52d4
BLAKE2b-256 6b4afac000b59d7468a43336cb758365cc2f441ac8618fd9c79900cabb31315b

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 56976cdc8db31a1ad0cc4ec30dc63e3c49f059bc6bf11dbb68b7196be48f8fc7
MD5 2740b661c7651259f009bebca2e7d56f
BLAKE2b-256 2b495e2e3dbf093f79de9bd46b43304cc0ed4e663db5e1d64023feee2516590a

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 cca1e8c3c1d7042a0def588abc24cbed5ca95b37652f727649ec049385d750b9
MD5 bcc701140d2c4c28d4cfa18f5c0d737c
BLAKE2b-256 de8898b73e27eaacfdfc5b88f07a2144c8e513386c99d332cf3a678e9a7d4e35

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: sqlcycli-1.3.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 6.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sqlcycli-1.3.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 44033161744fcd3d54e1ba96ced559eb30b7015cdca113efd96db7f29a559445
MD5 57f3898202d901fa38210ca5b7ee2b46
BLAKE2b-256 7b8be6837ec601ea9a967a8af9aa6c3abf96fa154adcb0b8e339ee7abba49274

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b0e6de44df03978fa7736ec3d9438e1a6c94298fe6559aa68fe8c5cbdf14a896
MD5 d1ce5c80fdcd1de67ead79d49615f3de
BLAKE2b-256 8138fb5af3660b8ee5572e6363f093891a526c340b85acf4c4897465b0c92058

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a4f0a007b74fbefd4dea9a407b26271fc21c1a2c75623bf64c08ef07e5331e4
MD5 13bf45d3b4c7c243e1d21b4e5072cc8d
BLAKE2b-256 55f895c42460befa7ad4d21de37c2a94b889e7e99d43bc275aafddf5b314291d

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aef2f7e55069d0f593601b9b4e2678ed7b180d0bc1bcd2603c155b2aaac429c8
MD5 3dcf26ff3af8ea2481c9d047107d547a
BLAKE2b-256 94cf7c98c9b7942b4725677d65f24f770c8fbaea2775f61da46ccdf174563c23

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1503425915847902da18d81d58f214dc471206076fb2399b5c987bdf00c7bda1
MD5 4b1653b5943ff6b119c0743cda02d095
BLAKE2b-256 963cd004842706df88092c4ef8ed31d0637ca29d9e95a99325857da678c9b854

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2e69ae309c69872225589a0a59272ec4cfbb118f267ba9ba5eedb8ea68a14bff
MD5 993b5ec0ce9eb574ef76c900608ec587
BLAKE2b-256 e521ba6e0eeb2abc6750eb1fc24fc53b3b8b61daf488df51eba395c4daa3d9fc

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: sqlcycli-1.3.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 6.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sqlcycli-1.3.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 99ccd2456d037da3d3903fba22a9645a002c8cecbc82a9a6e41a3d80532a52a1
MD5 adb8a4a8ac732bc069db2347186d2aea
BLAKE2b-256 d1031dc5c8b13d736d586fcd845169c7a201a166490d7f2007ce49a67aad27d1

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 04406796191087ca0dd8722a77df2064efdf4bc08bb8f73e82bc71d15700d73a
MD5 80d97394865dfd2ce7ed5764b24f09fa
BLAKE2b-256 9ea15e5d4cd91ffd8482ed517e09f0a242b8d0542840f5262c24919e0a3a0956

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0bcc7c27303a5a924959188155acfe3b22fab33e863865533579fd5d0e698694
MD5 85f4c99240feac86f9f851b6d9563d04
BLAKE2b-256 6505c9fb8a807f09c1076b26389d4e15f0c0e3215976452e6922b7ea279fc66d

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9b3415bd4f7e6a2c7ea22dbc2412c747368491a7e6a88729fca9d5dbc72e715c
MD5 78e75504eef55f279f7331bfb1c7d44c
BLAKE2b-256 6358a27bc17931206e5e66d9f790f497ddc9750337cb8167a393dbff28a558ca

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b4987164cfe0a48f2973c05308bacd9bd7d2922f4e73a324331772e3aa513546
MD5 051912fa1063bc0a6790358836bba917
BLAKE2b-256 5aaa3589d3303a80e00c9a078a62dd51977108e599cd4ac5320e442ecb1dc9e4

See more details on using hashes here.

File details

Details for the file sqlcycli-1.3.8-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for sqlcycli-1.3.8-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 084026d7c52c23d2251b2ab6df9250bad8534a72a06db1bedddaa13afa78c99d
MD5 9b6527515d4f8d0b5173a32a8e2f938f
BLAKE2b-256 7e9d612782e9f73dc5f50c79d24ad3603e496cb70912deae59acd5367b522e84

See more details on using hashes here.

Supported by

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