apsw-sqlite3mc


Nameapsw-sqlite3mc JSON
Version 3.47.2.0 PyPI version JSON
download
home_pagehttps://github.com/utelle/apsw-sqlite3mc
SummarySQLite3 Multiple Ciphers combined with Another Python SQLite Wrapper
upload_time2024-12-08 23:53:37
maintainerNone
docs_urlNone
authorUlrich Telle
requires_python>=3.9
licenseOSI Approved
keywords database sqlite encryption
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image::  https://raw.githubusercontent.com/utelle/apsw-sqlite3mc/sqlite3mc/apsw-sqlite3mc-logo.jpg
  :width: 512 px
  :alt: APSW SQLite Multiple Cipher logo - links to documentation
  :target: https://utelle.github.io/SQLite3MultipleCiphers/

.. contents:: Contents

About
-----

This project packages 3 things together

`APSW <https://rogerbinns.github.io/apsw/>`__

  Another Python SQLite wrapper, providing complete access to SQLite3
  from Python.

`SQLite 3 <https://www.sqlite.org/>`__

  Small, fast, self-contained, high-reliability, full-featured, SQL
  database engine.  SQLite is configured with `secure delete
  <https://www.sqlite.org/pragma.html#pragma_secure_delete>`__ turned
  on, and to use `memory for temporary storage
  <https://www.sqlite.org/tempfiles.html#the_sqlite_temp_store_compile_time_parameter_and_pragma>`__.

`SQLite3 Multiple Ciphers <https://utelle.github.io/SQLite3MultipleCiphers/>`__

  Extends SQLite 3 to allow reading and writing encrypted databases.

The distribution is entirely self contained, and does not use or alter
any existing SQLite you may already have on your system.

Installation
------------

Available from `PyPi <https://pypi.org/project/apsw-sqlite3mc/>`__.
Binaries are included for most platforms, and pip will build from
source for the rest.::

    pip install apsw-sqlite3mc

Usage
-----

Use as you would regular `APSW
<https://rogerbinns.github.io/apsw/>`__.  You can check the version of
SQLite3 Multiple Ciphers with ``apsw.mc_version``.

For encrypted databases you need to use the relevant `pragmas
<https://utelle.github.io/SQLite3MultipleCiphers/docs/configuration/config_sql_pragmas/>`__
to set a passphrase based key, or a binary bytes based key::

  connection.pragma("key", "my secret passphrase")
  connection.pragma("hexkey", b"\xfe\x23\x9e\x77".hex())

Setting the key on a new database is the only change needed to your code.

.. code-block:: pycon

  >>> import apsw
  >>> print(apsw.mc_version)
  SQLite3 Multiple Ciphers 1.9.1
  >>> con = apsw.Connection("database.sqlite3")
  >>> con.pragma("key", "my secret passphrase")
  ok

**Note**: The ``ok`` means the pragma was understood.  It does not mean
the key is correct or has been applied to an empty database.  See the
next section on best practice to check and apply the key.

**Note**: ``key`` only sets the key for following reads and writes.  If
the database already has content, and you want to encrypt it then use
``rekey`` which will modify the database to apply the supplied key.

Alternately you can use `URI parameters
<https://utelle.github.io/SQLite3MultipleCiphers/docs/configuration/config_uri/>`__.
You need to correctly encode the filename and parameters, and tell
SQLite that you are using a URI name:

.. code-block:: python

    import urllib.parse
    import apsw

    uri_filename = urllib.parse.quote("my db filename.sqlite3")
    uri_parameters = urllib.parse.urlencode(
        {
            "cipher": "aes256cbc",
            "kdf_iter": 8192,
            "key": "it's a secret",
        }
    )
    con = apsw.Connection(
        f"file:{uri_filename}?{uri_parameters}",
        flags=apsw.SQLITE_OPEN_URI
           | apsw.SQLITE_OPEN_CREATE
           | apsw.SQLITE_OPEN_READWRITE,
    )

Best practice
-------------

SQLite has various quirks in how it operates.  For example database
files are not populated until the first write.  SQLite3MultipleCiphers
can't check keys are correct until the first access, and the database
is populated.  You shouldn't set or change keys while in a
transaction.  In order to ensure files are populated, and the keys and
cipher configuration provided are correct, use the following method with
example usage shown at the end.

.. code-block:: python

    import apsw

    def apply_encryption(db, **kwargs):
        """You must include an argument for keying, and optional cipher configurations"""

        if db.in_transaction:
            raise Exception("Won't update encryption while in a transaction")

        # the order of pragmas matters
        def pragma_order(item):
            # pragmas are case insensitive
            pragma = item[0].lower()
            # cipher must be first
            if pragma == "cipher":
                return 1
            # old default settings reset configuration next
            if pragma == "legacy":
                return 2
            # then anything with legacy in the name
            if "legacy" in pragma:
                return 3
            # all except keys
            if pragma not in {"key", "hexkey", "rekey", "hexrekey"}:
                return 3
            # keys are last
            return 100

        # check only ome key present
        if 1 != sum(1 if pragma_order(item) == 100 else 0 for item in kwargs.items()):
            raise ValueError("Exactly one key must be provided")

        for pragma, value in sorted(kwargs.items(), key=pragma_order):
            # if the pragma was understood and in range we get the value
            # back, while key related ones return 'ok'
            expected = "ok" if pragma_order((pragma, value)) == 100 else str(value)
            if db.pragma(pragma, value) != expected:
                raise ValueError(f"Failed to configure {pragma=}")

        # Try to read from the database.  If the database is encrypted and
        # the cipher/key information is wrong you will get NotADBError
        # because the file looks like random noise
        db.pragma("user_version")

        try:
            # try to set the user_version to the value it already has
            # which has a side effect of populating an empty database
            with db:
                # done inside a transaction to avoid race conditions
                db.pragma("user_version", db.pragma("user_version"))
        except apsw.ReadOnlyError:
            # can't make changes - that is ok
            pass


    con = apsw.Connection("database.sqlite3")

    apply_encryption(con, key="my secret key")

    # you can also do more sophisticated operations.  Here we change the cipher,
    # kdf rounds, and the key
    apply_encryption(con, rekey="new key", cipher="ascon128", kdf_iter=1000)


Verification
------------

You can verify your database is encrypted with a hex viewer.  Regular database files
start with `SQLite format 3` while encrypted database files are random.

.. code-block:: console

  $ hexdump -C database.sqlite3  | head
  00000000  e1 3e f0 7c 5e 66 4c 20  19 85 9d de 04 d9 e8 e7  |.>.|^fL ........|
  00000010  10 00 01 01 20 40 20 20  29 2e cb 95 ef 4e 4e 67  |.... @  )....NNg|
  00000020  22 a1 5a 8f 18 1a fa a1  cf b3 a8 ba b1 80 07 b5  |".Z.............|
  00000030  2f 68 4d 8a 13 26 fd 6a  0c 99 5a a4 2c a7 f3 a7  |/hM..&.j..Z.,...|
  00000040  d9 ae ef 24 dd 1c d1 9c  cc 91 4b e8 58 00 96 62  |...$......K.X..b|
  00000050  b2 aa 51 bf 57 8e 9a a9  d7 6d b2 75 58 84 f6 7d  |..Q.W....m.uX..}|
  00000060  c9 fd a9 57 88 05 ca 60  7f db d1 73 40 ad 98 59  |...W...`...s@..Y|
  00000070  c2 a0 4c 76 f5 88 31 d3  d7 6f 9e ef f6 c1 c4 88  |..Lv..1..o......|
  00000080  92 ed 8a 3e 00 ce 35 ef  4b 0d 38 33 9a 61 88 8a  |...>..5.K.83.a..|
  00000090  34 37 72 70 4b 33 f3 1d  a2 4b 86 5f c5 59 02 c6  |47rpK3...K._.Y..|

  $ hexdump -C regular.db | head
  00000000  53 51 4c 69 74 65 20 66  6f 72 6d 61 74 20 33 00  |SQLite format 3.|
  00000010  10 00 02 02 00 40 20 20  00 00 00 95 00 09 22 e6  |.....@  ......".|
  00000020  00 08 eb 8f 00 00 ff 8c  00 00 03 d5 00 00 00 04  |................|
  00000030  00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 00  |................|
  00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
  00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 95  |................|
  00000060  00 2e 7a 70 0d 09 30 00  09 08 c9 00 0f a9 0e d5  |..zp..0.........|
  00000070  0e 70 0d f7 0d 8c 08 c9  0c 67 0b 2f 09 71 08 db  |.p.......g./.q..|
  00000080  08 db 08 db 03 ae 03 55  03 55 03 55 03 55 03 55  |.......U.U.U.U.U|
  00000090  03 55 03 55 03 55 03 55  03 55 03 55 03 55 03 55  |.U.U.U.U.U.U.U.U|

Support/Discussions
-------------------

For SQLite questions, support, and issues, use the `SQLite
Forum <https://sqlite.org/forum/forum>`__.`

For APSW questions, support, and issues, see `your
choices <https://rogerbinns.github.io/apsw/about.html#mailing-lists-contacts>`__.

For SQLite3MultipleCiphers questions, support, and issues see `the
project page <https://github.com/utelle/SQLite3MultipleCiphers>`__.

For APSW together with SQLite3MultipleCiphers questions, support, and
issues see `the project page
<https://github.com/utelle/apsw-sqlite3mc>`__.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/utelle/apsw-sqlite3mc",
    "name": "apsw-sqlite3mc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "database, sqlite, encryption",
    "author": "Ulrich Telle",
    "author_email": "github@telle-online.de",
    "download_url": "https://files.pythonhosted.org/packages/df/f8/1ee0bf779685831c4628ce8d2fbc1aac35053f8de6bb13be509709182cbf/apsw-sqlite3mc-3.47.2.0.tar.gz",
    "platform": "any",
    "description": ".. image::  https://raw.githubusercontent.com/utelle/apsw-sqlite3mc/sqlite3mc/apsw-sqlite3mc-logo.jpg\n  :width: 512 px\n  :alt: APSW SQLite Multiple Cipher logo - links to documentation\n  :target: https://utelle.github.io/SQLite3MultipleCiphers/\n\n.. contents:: Contents\n\nAbout\n-----\n\nThis project packages 3 things together\n\n`APSW <https://rogerbinns.github.io/apsw/>`__\n\n  Another Python SQLite wrapper, providing complete access to SQLite3\n  from Python.\n\n`SQLite 3 <https://www.sqlite.org/>`__\n\n  Small, fast, self-contained, high-reliability, full-featured, SQL\n  database engine.  SQLite is configured with `secure delete\n  <https://www.sqlite.org/pragma.html#pragma_secure_delete>`__ turned\n  on, and to use `memory for temporary storage\n  <https://www.sqlite.org/tempfiles.html#the_sqlite_temp_store_compile_time_parameter_and_pragma>`__.\n\n`SQLite3 Multiple Ciphers <https://utelle.github.io/SQLite3MultipleCiphers/>`__\n\n  Extends SQLite 3 to allow reading and writing encrypted databases.\n\nThe distribution is entirely self contained, and does not use or alter\nany existing SQLite you may already have on your system.\n\nInstallation\n------------\n\nAvailable from `PyPi <https://pypi.org/project/apsw-sqlite3mc/>`__.\nBinaries are included for most platforms, and pip will build from\nsource for the rest.::\n\n    pip install apsw-sqlite3mc\n\nUsage\n-----\n\nUse as you would regular `APSW\n<https://rogerbinns.github.io/apsw/>`__.  You can check the version of\nSQLite3 Multiple Ciphers with ``apsw.mc_version``.\n\nFor encrypted databases you need to use the relevant `pragmas\n<https://utelle.github.io/SQLite3MultipleCiphers/docs/configuration/config_sql_pragmas/>`__\nto set a passphrase based key, or a binary bytes based key::\n\n  connection.pragma(\"key\", \"my secret passphrase\")\n  connection.pragma(\"hexkey\", b\"\\xfe\\x23\\x9e\\x77\".hex())\n\nSetting the key on a new database is the only change needed to your code.\n\n.. code-block:: pycon\n\n  >>> import apsw\n  >>> print(apsw.mc_version)\n  SQLite3 Multiple Ciphers 1.9.1\n  >>> con = apsw.Connection(\"database.sqlite3\")\n  >>> con.pragma(\"key\", \"my secret passphrase\")\n  ok\n\n**Note**: The ``ok`` means the pragma was understood.  It does not mean\nthe key is correct or has been applied to an empty database.  See the\nnext section on best practice to check and apply the key.\n\n**Note**: ``key`` only sets the key for following reads and writes.  If\nthe database already has content, and you want to encrypt it then use\n``rekey`` which will modify the database to apply the supplied key.\n\nAlternately you can use `URI parameters\n<https://utelle.github.io/SQLite3MultipleCiphers/docs/configuration/config_uri/>`__.\nYou need to correctly encode the filename and parameters, and tell\nSQLite that you are using a URI name:\n\n.. code-block:: python\n\n    import urllib.parse\n    import apsw\n\n    uri_filename = urllib.parse.quote(\"my db filename.sqlite3\")\n    uri_parameters = urllib.parse.urlencode(\n        {\n            \"cipher\": \"aes256cbc\",\n            \"kdf_iter\": 8192,\n            \"key\": \"it's a secret\",\n        }\n    )\n    con = apsw.Connection(\n        f\"file:{uri_filename}?{uri_parameters}\",\n        flags=apsw.SQLITE_OPEN_URI\n           | apsw.SQLITE_OPEN_CREATE\n           | apsw.SQLITE_OPEN_READWRITE,\n    )\n\nBest practice\n-------------\n\nSQLite has various quirks in how it operates.  For example database\nfiles are not populated until the first write.  SQLite3MultipleCiphers\ncan't check keys are correct until the first access, and the database\nis populated.  You shouldn't set or change keys while in a\ntransaction.  In order to ensure files are populated, and the keys and\ncipher configuration provided are correct, use the following method with\nexample usage shown at the end.\n\n.. code-block:: python\n\n    import apsw\n\n    def apply_encryption(db, **kwargs):\n        \"\"\"You must include an argument for keying, and optional cipher configurations\"\"\"\n\n        if db.in_transaction:\n            raise Exception(\"Won't update encryption while in a transaction\")\n\n        # the order of pragmas matters\n        def pragma_order(item):\n            # pragmas are case insensitive\n            pragma = item[0].lower()\n            # cipher must be first\n            if pragma == \"cipher\":\n                return 1\n            # old default settings reset configuration next\n            if pragma == \"legacy\":\n                return 2\n            # then anything with legacy in the name\n            if \"legacy\" in pragma:\n                return 3\n            # all except keys\n            if pragma not in {\"key\", \"hexkey\", \"rekey\", \"hexrekey\"}:\n                return 3\n            # keys are last\n            return 100\n\n        # check only ome key present\n        if 1 != sum(1 if pragma_order(item) == 100 else 0 for item in kwargs.items()):\n            raise ValueError(\"Exactly one key must be provided\")\n\n        for pragma, value in sorted(kwargs.items(), key=pragma_order):\n            # if the pragma was understood and in range we get the value\n            # back, while key related ones return 'ok'\n            expected = \"ok\" if pragma_order((pragma, value)) == 100 else str(value)\n            if db.pragma(pragma, value) != expected:\n                raise ValueError(f\"Failed to configure {pragma=}\")\n\n        # Try to read from the database.  If the database is encrypted and\n        # the cipher/key information is wrong you will get NotADBError\n        # because the file looks like random noise\n        db.pragma(\"user_version\")\n\n        try:\n            # try to set the user_version to the value it already has\n            # which has a side effect of populating an empty database\n            with db:\n                # done inside a transaction to avoid race conditions\n                db.pragma(\"user_version\", db.pragma(\"user_version\"))\n        except apsw.ReadOnlyError:\n            # can't make changes - that is ok\n            pass\n\n\n    con = apsw.Connection(\"database.sqlite3\")\n\n    apply_encryption(con, key=\"my secret key\")\n\n    # you can also do more sophisticated operations.  Here we change the cipher,\n    # kdf rounds, and the key\n    apply_encryption(con, rekey=\"new key\", cipher=\"ascon128\", kdf_iter=1000)\n\n\nVerification\n------------\n\nYou can verify your database is encrypted with a hex viewer.  Regular database files\nstart with `SQLite format 3` while encrypted database files are random.\n\n.. code-block:: console\n\n  $ hexdump -C database.sqlite3  | head\n  00000000  e1 3e f0 7c 5e 66 4c 20  19 85 9d de 04 d9 e8 e7  |.>.|^fL ........|\n  00000010  10 00 01 01 20 40 20 20  29 2e cb 95 ef 4e 4e 67  |.... @  )....NNg|\n  00000020  22 a1 5a 8f 18 1a fa a1  cf b3 a8 ba b1 80 07 b5  |\".Z.............|\n  00000030  2f 68 4d 8a 13 26 fd 6a  0c 99 5a a4 2c a7 f3 a7  |/hM..&.j..Z.,...|\n  00000040  d9 ae ef 24 dd 1c d1 9c  cc 91 4b e8 58 00 96 62  |...$......K.X..b|\n  00000050  b2 aa 51 bf 57 8e 9a a9  d7 6d b2 75 58 84 f6 7d  |..Q.W....m.uX..}|\n  00000060  c9 fd a9 57 88 05 ca 60  7f db d1 73 40 ad 98 59  |...W...`...s@..Y|\n  00000070  c2 a0 4c 76 f5 88 31 d3  d7 6f 9e ef f6 c1 c4 88  |..Lv..1..o......|\n  00000080  92 ed 8a 3e 00 ce 35 ef  4b 0d 38 33 9a 61 88 8a  |...>..5.K.83.a..|\n  00000090  34 37 72 70 4b 33 f3 1d  a2 4b 86 5f c5 59 02 c6  |47rpK3...K._.Y..|\n\n  $ hexdump -C regular.db | head\n  00000000  53 51 4c 69 74 65 20 66  6f 72 6d 61 74 20 33 00  |SQLite format 3.|\n  00000010  10 00 02 02 00 40 20 20  00 00 00 95 00 09 22 e6  |.....@  ......\".|\n  00000020  00 08 eb 8f 00 00 ff 8c  00 00 03 d5 00 00 00 04  |................|\n  00000030  00 00 00 00 00 00 00 00  00 00 00 01 00 00 00 00  |................|\n  00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|\n  00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 95  |................|\n  00000060  00 2e 7a 70 0d 09 30 00  09 08 c9 00 0f a9 0e d5  |..zp..0.........|\n  00000070  0e 70 0d f7 0d 8c 08 c9  0c 67 0b 2f 09 71 08 db  |.p.......g./.q..|\n  00000080  08 db 08 db 03 ae 03 55  03 55 03 55 03 55 03 55  |.......U.U.U.U.U|\n  00000090  03 55 03 55 03 55 03 55  03 55 03 55 03 55 03 55  |.U.U.U.U.U.U.U.U|\n\nSupport/Discussions\n-------------------\n\nFor SQLite questions, support, and issues, use the `SQLite\nForum <https://sqlite.org/forum/forum>`__.`\n\nFor APSW questions, support, and issues, see `your\nchoices <https://rogerbinns.github.io/apsw/about.html#mailing-lists-contacts>`__.\n\nFor SQLite3MultipleCiphers questions, support, and issues see `the\nproject page <https://github.com/utelle/SQLite3MultipleCiphers>`__.\n\nFor APSW together with SQLite3MultipleCiphers questions, support, and\nissues see `the project page\n<https://github.com/utelle/apsw-sqlite3mc>`__.\n",
    "bugtrack_url": null,
    "license": "OSI Approved",
    "summary": "SQLite3 Multiple Ciphers combined with Another Python SQLite Wrapper",
    "version": "3.47.2.0",
    "project_urls": {
        "Code": "https://github.com/utelle/apsw-sqlite3mc",
        "Documentation (APSW)": "https://rogerbinns.github.io/apsw/",
        "Documentation (MultipleCiphers)": "https://utelle.github.io/SQLite3MultipleCiphers/",
        "Documentation (SQLite)": "https://sqlite.org/lang.html",
        "Homepage": "https://github.com/utelle/apsw-sqlite3mc",
        "Issue Tracker": "https://github.com/utelle/apsw-sqlite3mc/issues",
        "Support/Discussions": "https://github.com/utelle/apsw-sqlite3mc?tab=readme-ov-file#supportdiscussions"
    },
    "split_keywords": [
        "database",
        " sqlite",
        " encryption"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "77ec78d374c9624d5fc2ab1898388f0850f435715b8710809e9d2ae3130494c8",
                "md5": "1251ae2148707a66e34da044eae33a32",
                "sha256": "d31e6d7fe44d3974bdb75b44cb94c3218277deb50a39fb8700e41b313e8fa405"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1251ae2148707a66e34da044eae33a32",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1933860,
            "upload_time": "2024-12-08T23:51:51",
            "upload_time_iso_8601": "2024-12-08T23:51:51.670716Z",
            "url": "https://files.pythonhosted.org/packages/77/ec/78d374c9624d5fc2ab1898388f0850f435715b8710809e9d2ae3130494c8/apsw_sqlite3mc-3.47.2.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "557a45b4e9736d4459de512e3bcbc89c30658aa754d507f7d6535e7a3500dd1b",
                "md5": "3aea440c0a483b46b3b5bc0be6f6eaaa",
                "sha256": "76554de1667d160369463d8ae7469e16f2ee04115f25ae923455002a1b3acb18"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "3aea440c0a483b46b3b5bc0be6f6eaaa",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1865102,
            "upload_time": "2024-12-08T23:51:54",
            "upload_time_iso_8601": "2024-12-08T23:51:54.120078Z",
            "url": "https://files.pythonhosted.org/packages/55/7a/45b4e9736d4459de512e3bcbc89c30658aa754d507f7d6535e7a3500dd1b/apsw_sqlite3mc-3.47.2.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5a1688d562b86a15863a0f5011c8565bf7d562985e210b03d4ad69ee91fb90f5",
                "md5": "714a7b69a7e5afa82a41d4ea086e3ecd",
                "sha256": "deaa308aa27267d2053362170f7fb6797bd58433c9228346d5261fe3346b96f6"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "714a7b69a7e5afa82a41d4ea086e3ecd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 6777949,
            "upload_time": "2024-12-08T23:51:55",
            "upload_time_iso_8601": "2024-12-08T23:51:55.914318Z",
            "url": "https://files.pythonhosted.org/packages/5a/16/88d562b86a15863a0f5011c8565bf7d562985e210b03d4ad69ee91fb90f5/apsw_sqlite3mc-3.47.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ca99d2de925ea94bfa3de2b2f573ab3da89058493fbe8255cffad672f3872737",
                "md5": "1975971023fc6e4866adc03fe9fdd95b",
                "sha256": "c08b0fed059029d3f5fdf34a6993270998730a08ced13c387d331727d224b866"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1975971023fc6e4866adc03fe9fdd95b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 6756154,
            "upload_time": "2024-12-08T23:51:58",
            "upload_time_iso_8601": "2024-12-08T23:51:58.353426Z",
            "url": "https://files.pythonhosted.org/packages/ca/99/d2de925ea94bfa3de2b2f573ab3da89058493fbe8255cffad672f3872737/apsw_sqlite3mc-3.47.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "80d6dbb3c3475ffa37c414cff49068fee17dd3d146e165188372b5ed88ee321f",
                "md5": "d8a73a639867bfd1a1e968779f5f9a9c",
                "sha256": "07e0c1aa5a816de0e3d2d2b99d411a88397ba8f5e58b38e327b9eef1ad295146"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "d8a73a639867bfd1a1e968779f5f9a9c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 6685606,
            "upload_time": "2024-12-08T23:52:00",
            "upload_time_iso_8601": "2024-12-08T23:52:00.597082Z",
            "url": "https://files.pythonhosted.org/packages/80/d6/dbb3c3475ffa37c414cff49068fee17dd3d146e165188372b5ed88ee321f/apsw_sqlite3mc-3.47.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4f71ecb4c691928330f5b7389b8b557130eb92fcf63f12069ab7151bbe775342",
                "md5": "4aebd81756726a0bec07211554ba42a2",
                "sha256": "91bafcc8868fd5972acf3edce92cadd490b5e1d48e69ba73dc8323b58f0ee0cc"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4aebd81756726a0bec07211554ba42a2",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 6855084,
            "upload_time": "2024-12-08T23:52:03",
            "upload_time_iso_8601": "2024-12-08T23:52:03.067052Z",
            "url": "https://files.pythonhosted.org/packages/4f/71/ecb4c691928330f5b7389b8b557130eb92fcf63f12069ab7151bbe775342/apsw_sqlite3mc-3.47.2.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e9b317996ce68429fa915af6224980737d64d509547912f39bcd8f500d297d00",
                "md5": "dcf135b54219155022c90cd9449d6f10",
                "sha256": "b33defe66967676ff483a5883f6e5c910fc4c8cb7bb0035bbc125f99daf89cab"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "dcf135b54219155022c90cd9449d6f10",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 6855874,
            "upload_time": "2024-12-08T23:52:05",
            "upload_time_iso_8601": "2024-12-08T23:52:05.609233Z",
            "url": "https://files.pythonhosted.org/packages/e9/b3/17996ce68429fa915af6224980737d64d509547912f39bcd8f500d297d00/apsw_sqlite3mc-3.47.2.0-cp310-cp310-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "46b9fc9fbb411f72ba4b64c118648f1b0b20b4cabb463e0fbd36ddb3bbf11e6d",
                "md5": "f56bbf63d3af7a5eb00aea762c72859c",
                "sha256": "74ec23bdeb655a20f074e631217d0cfbb124d73912b28a468eb6c1eb67f36fb2"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f56bbf63d3af7a5eb00aea762c72859c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 6845409,
            "upload_time": "2024-12-08T23:52:07",
            "upload_time_iso_8601": "2024-12-08T23:52:07.732286Z",
            "url": "https://files.pythonhosted.org/packages/46/b9/fc9fbb411f72ba4b64c118648f1b0b20b4cabb463e0fbd36ddb3bbf11e6d/apsw_sqlite3mc-3.47.2.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c08930ceb8ae3b5e304ef5f44f443d2b327d2273e270b0685073b01ad9d50c61",
                "md5": "ea974a974e0f6f08e09621eabf4b2496",
                "sha256": "bd7e3d0fd8bdfac455bd8d72aaf25a03e24e8c8705c0ebbb0975950756ec4134"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "ea974a974e0f6f08e09621eabf4b2496",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1611546,
            "upload_time": "2024-12-08T23:52:10",
            "upload_time_iso_8601": "2024-12-08T23:52:10.067368Z",
            "url": "https://files.pythonhosted.org/packages/c0/89/30ceb8ae3b5e304ef5f44f443d2b327d2273e270b0685073b01ad9d50c61/apsw_sqlite3mc-3.47.2.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8672350d80dbcf6fdcddba77b31f8c72a7cdc098106dac1da7f1bfce63ee6c63",
                "md5": "87055effb332ac219499e99741c751ce",
                "sha256": "a556d8c8f0aa6186b2f913a7fad072f2d8e16661d543ab341574d2a8214d551d"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "87055effb332ac219499e99741c751ce",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1751265,
            "upload_time": "2024-12-08T23:52:12",
            "upload_time_iso_8601": "2024-12-08T23:52:12.204439Z",
            "url": "https://files.pythonhosted.org/packages/86/72/350d80dbcf6fdcddba77b31f8c72a7cdc098106dac1da7f1bfce63ee6c63/apsw_sqlite3mc-3.47.2.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b2c9928d2054c0419a3946eb555cbcc2f45ba5c701f4b9632b2b0342ae917f97",
                "md5": "df3e001c7d09fca56924aee5cd2e80a1",
                "sha256": "923a0abfed85d173e6f2d581aeda4eb6a2917d0c23dc59a56ace4f5fda5ff2b2"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "df3e001c7d09fca56924aee5cd2e80a1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1935549,
            "upload_time": "2024-12-08T23:52:13",
            "upload_time_iso_8601": "2024-12-08T23:52:13.706766Z",
            "url": "https://files.pythonhosted.org/packages/b2/c9/928d2054c0419a3946eb555cbcc2f45ba5c701f4b9632b2b0342ae917f97/apsw_sqlite3mc-3.47.2.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "af1909d2955d3921e2b72e7d5241e694b4590c45804591dc6e18aa7267c5af8e",
                "md5": "440974735558365b45d96a901b5e3530",
                "sha256": "66c5b1815355f255c69872335958184fc385479ca742ba62128b72716d5f41fc"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "440974735558365b45d96a901b5e3530",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1867315,
            "upload_time": "2024-12-08T23:52:16",
            "upload_time_iso_8601": "2024-12-08T23:52:16.134164Z",
            "url": "https://files.pythonhosted.org/packages/af/19/09d2955d3921e2b72e7d5241e694b4590c45804591dc6e18aa7267c5af8e/apsw_sqlite3mc-3.47.2.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "31c11418267dae53304c7d52ede369732f4b299874d07ab98685762081861157",
                "md5": "685fe43bf9f189e27eaa4344b6291030",
                "sha256": "5fc35153389aad4414df4fe80d251bfe6f48d2e409d25fb51f9d2d1cee24da8e"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "685fe43bf9f189e27eaa4344b6291030",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 6985292,
            "upload_time": "2024-12-08T23:52:18",
            "upload_time_iso_8601": "2024-12-08T23:52:18.708497Z",
            "url": "https://files.pythonhosted.org/packages/31/c1/1418267dae53304c7d52ede369732f4b299874d07ab98685762081861157/apsw_sqlite3mc-3.47.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "43cb5da853648766736e3c7565436e1c68b1742010410570d01e27b2d1221402",
                "md5": "7afacbcea46f91f09939ae2efb7de07a",
                "sha256": "a2bd87270e866eea01e5e8466c4705dc80e15538c62e31840f2291a75a4ef231"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7afacbcea46f91f09939ae2efb7de07a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 6959219,
            "upload_time": "2024-12-08T23:52:21",
            "upload_time_iso_8601": "2024-12-08T23:52:21.164325Z",
            "url": "https://files.pythonhosted.org/packages/43/cb/5da853648766736e3c7565436e1c68b1742010410570d01e27b2d1221402/apsw_sqlite3mc-3.47.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3e44eabad4f37d363fcce8c26496fbc93b036be8a90c228ed3039081acea195f",
                "md5": "c3eb294a02942c0ade7069043abb4825",
                "sha256": "fb3c4977da06b1f32f5075397591f3652df9d2a01a2d639099078368dff29a32"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "c3eb294a02942c0ade7069043abb4825",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 6873873,
            "upload_time": "2024-12-08T23:52:22",
            "upload_time_iso_8601": "2024-12-08T23:52:22.909221Z",
            "url": "https://files.pythonhosted.org/packages/3e/44/eabad4f37d363fcce8c26496fbc93b036be8a90c228ed3039081acea195f/apsw_sqlite3mc-3.47.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0df86584bc4e48ac61cbd93b3909190b731a0134cb168d588f1d1a6f8931ac99",
                "md5": "5b643c028879546706d2f5b6451caa99",
                "sha256": "08a5a3e8cf74717ffffe3eae8359da30c220abaddd83a5f3e03ee536f7f8a897"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5b643c028879546706d2f5b6451caa99",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 7030664,
            "upload_time": "2024-12-08T23:52:24",
            "upload_time_iso_8601": "2024-12-08T23:52:24.680696Z",
            "url": "https://files.pythonhosted.org/packages/0d/f8/6584bc4e48ac61cbd93b3909190b731a0134cb168d588f1d1a6f8931ac99/apsw_sqlite3mc-3.47.2.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "46f4d6160f0b49f13d495ce5bbc776dd6717c04242a864c9cc6ca1ef23d38852",
                "md5": "d564beb8091c4119321e68c509e635b2",
                "sha256": "c9a8b429bade02f2e56dd96356db2db84e7e725e0c4f3fffb3d7d4217262928f"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "d564beb8091c4119321e68c509e635b2",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 6969345,
            "upload_time": "2024-12-08T23:52:26",
            "upload_time_iso_8601": "2024-12-08T23:52:26.505791Z",
            "url": "https://files.pythonhosted.org/packages/46/f4/d6160f0b49f13d495ce5bbc776dd6717c04242a864c9cc6ca1ef23d38852/apsw_sqlite3mc-3.47.2.0-cp311-cp311-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "551949d604586951c181e7a6d30298227656de5aad8591fc4237019797e54b9a",
                "md5": "0cc57c564ae3f910b45dac7760f51f96",
                "sha256": "f1a0c50721a388313e2abaf72ca5f4f63adef91e4889d1a96ccf80d78c7a59ff"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0cc57c564ae3f910b45dac7760f51f96",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 6964142,
            "upload_time": "2024-12-08T23:52:28",
            "upload_time_iso_8601": "2024-12-08T23:52:28.914368Z",
            "url": "https://files.pythonhosted.org/packages/55/19/49d604586951c181e7a6d30298227656de5aad8591fc4237019797e54b9a/apsw_sqlite3mc-3.47.2.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "68e24417abeafd8428305d39562d4a4d9056d6bba76c1e4721e9dc2256db548a",
                "md5": "86edcf7df0164362728a0ae7a1bf4dbe",
                "sha256": "36a3949fc296842e0df851945b5ac536c757e96fc778e3af570c3075684cee9d"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "86edcf7df0164362728a0ae7a1bf4dbe",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1605890,
            "upload_time": "2024-12-08T23:52:30",
            "upload_time_iso_8601": "2024-12-08T23:52:30.765438Z",
            "url": "https://files.pythonhosted.org/packages/68/e2/4417abeafd8428305d39562d4a4d9056d6bba76c1e4721e9dc2256db548a/apsw_sqlite3mc-3.47.2.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4faf73d19a37a21d2440e02584bfa82edc696b27ff9c506a631c1ac357b6a746",
                "md5": "ff0f5378f340e2be483fff94a6a21c5e",
                "sha256": "8d04c5f8e9c66efe1655ab29d31beeae548c40e042cb587c0373dd254ea5820e"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ff0f5378f340e2be483fff94a6a21c5e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1748955,
            "upload_time": "2024-12-08T23:52:32",
            "upload_time_iso_8601": "2024-12-08T23:52:32.220217Z",
            "url": "https://files.pythonhosted.org/packages/4f/af/73d19a37a21d2440e02584bfa82edc696b27ff9c506a631c1ac357b6a746/apsw_sqlite3mc-3.47.2.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "315519fb6b054a79d7a35a5b17a72aec1b43d9c6b00f04a5bdb85edeb36316e0",
                "md5": "58f9c1e0c765c26499114f14f9f3aeb2",
                "sha256": "940088825b053c419df70441d2eb8ff61f8ea27d71e924870136c71fed3ac1dc"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "58f9c1e0c765c26499114f14f9f3aeb2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 1936019,
            "upload_time": "2024-12-08T23:52:34",
            "upload_time_iso_8601": "2024-12-08T23:52:34.431906Z",
            "url": "https://files.pythonhosted.org/packages/31/55/19fb6b054a79d7a35a5b17a72aec1b43d9c6b00f04a5bdb85edeb36316e0/apsw_sqlite3mc-3.47.2.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e340ae2d537538abc2af33adecba785d2e9a6c31c22101b387ff076fd6906d96",
                "md5": "481f5a6c197bb4fc3e82f899f67d25ee",
                "sha256": "5b9f92485915a00aa94ee06f326f1bdd678f3a5086cb8b23041d58d4996ba16e"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "481f5a6c197bb4fc3e82f899f67d25ee",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 1866925,
            "upload_time": "2024-12-08T23:52:36",
            "upload_time_iso_8601": "2024-12-08T23:52:36.784746Z",
            "url": "https://files.pythonhosted.org/packages/e3/40/ae2d537538abc2af33adecba785d2e9a6c31c22101b387ff076fd6906d96/apsw_sqlite3mc-3.47.2.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e749172f726e010d51718558f0b9105b87552adcebbb68567692653805baa20f",
                "md5": "6c22ef57a1ff66a852fcc5a671ccb237",
                "sha256": "1611a8b8a1d77c5036a0f5ae766e72cf484b7b3b38a9d82f7be0650dbe4c6b75"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6c22ef57a1ff66a852fcc5a671ccb237",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 6983630,
            "upload_time": "2024-12-08T23:52:38",
            "upload_time_iso_8601": "2024-12-08T23:52:38.399757Z",
            "url": "https://files.pythonhosted.org/packages/e7/49/172f726e010d51718558f0b9105b87552adcebbb68567692653805baa20f/apsw_sqlite3mc-3.47.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aafa6b1c9189159490083bfdd06027887c3d5920a83ed094e70df1706bf5ea92",
                "md5": "caa27a29809b928206f773f1ea2e56fe",
                "sha256": "44fe55f7a36934a959d7c1af116b65e579af68d11c0e283bfef4e38e4e23561b"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "caa27a29809b928206f773f1ea2e56fe",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 6950410,
            "upload_time": "2024-12-08T23:52:40",
            "upload_time_iso_8601": "2024-12-08T23:52:40.906547Z",
            "url": "https://files.pythonhosted.org/packages/aa/fa/6b1c9189159490083bfdd06027887c3d5920a83ed094e70df1706bf5ea92/apsw_sqlite3mc-3.47.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8524455a5a42bf1d9d50853e9db1959bade38f9e2fa12782e2721eb938589ef6",
                "md5": "78165ccda52182f61de3e944630d9b20",
                "sha256": "2809a4735423056d4d131ddc33fffbbae746b544634a44ba54e0d3c5172ae0ac"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "78165ccda52182f61de3e944630d9b20",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 6854979,
            "upload_time": "2024-12-08T23:52:43",
            "upload_time_iso_8601": "2024-12-08T23:52:43.440722Z",
            "url": "https://files.pythonhosted.org/packages/85/24/455a5a42bf1d9d50853e9db1959bade38f9e2fa12782e2721eb938589ef6/apsw_sqlite3mc-3.47.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b9928d92b66fe657d91f49fd29336bec126da4893bb6818b92399d6f252895a1",
                "md5": "aedc9edc1f287cb8d196594f9b362078",
                "sha256": "48cd5c049343f0c43fecd24d1da82b41fcf7c2094852f66d1899ed73d3530a0e"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "aedc9edc1f287cb8d196594f9b362078",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 7015788,
            "upload_time": "2024-12-08T23:52:46",
            "upload_time_iso_8601": "2024-12-08T23:52:46.604046Z",
            "url": "https://files.pythonhosted.org/packages/b9/92/8d92b66fe657d91f49fd29336bec126da4893bb6818b92399d6f252895a1/apsw_sqlite3mc-3.47.2.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "62b5664433a3d2406b5b8bb306023e94cf1b5a8f15707e2d738ed96fdd980d4e",
                "md5": "33855d76537a1ee55601d950c0e53b25",
                "sha256": "03d9458d5631e831e4a564acf826d8501a08a2b84b056fdf6bde73ae498089ee"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "33855d76537a1ee55601d950c0e53b25",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 6959523,
            "upload_time": "2024-12-08T23:52:48",
            "upload_time_iso_8601": "2024-12-08T23:52:48.672204Z",
            "url": "https://files.pythonhosted.org/packages/62/b5/664433a3d2406b5b8bb306023e94cf1b5a8f15707e2d738ed96fdd980d4e/apsw_sqlite3mc-3.47.2.0-cp312-cp312-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "11d9f03bc7bc4103e14a0be48644f463daa3f8612040816a25aacf0b4a87d9dd",
                "md5": "fa35ecae7d635c28bd167be85187227d",
                "sha256": "f3f0c519a6a582f4f747ef5ff056fcb605073f5acbb3378bb3b21f01ddaa3732"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fa35ecae7d635c28bd167be85187227d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 6945223,
            "upload_time": "2024-12-08T23:52:51",
            "upload_time_iso_8601": "2024-12-08T23:52:51.571338Z",
            "url": "https://files.pythonhosted.org/packages/11/d9/f03bc7bc4103e14a0be48644f463daa3f8612040816a25aacf0b4a87d9dd/apsw_sqlite3mc-3.47.2.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2d72edafc7d4e9c89903a00e11b802a6d9e8d44b536e8c3e90636c0c05600c40",
                "md5": "239b6584b8eaa0f70272394c133dbc5b",
                "sha256": "6aac9dabcba7cfaec6d533a5da250dc297132afd63e34fb106a7d630102abb24"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "239b6584b8eaa0f70272394c133dbc5b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 1605524,
            "upload_time": "2024-12-08T23:52:53",
            "upload_time_iso_8601": "2024-12-08T23:52:53.268719Z",
            "url": "https://files.pythonhosted.org/packages/2d/72/edafc7d4e9c89903a00e11b802a6d9e8d44b536e8c3e90636c0c05600c40/apsw_sqlite3mc-3.47.2.0-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3ad580e751d7bfe36759cdae358fd96286f937d3e32b5857a39da8194050040",
                "md5": "0b6b469430864bc48b249dbb016c8fcd",
                "sha256": "548ac3278560afa9faa82d2d34f21bdcd30c55a9021dbf1c2133dacab357d6e7"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "0b6b469430864bc48b249dbb016c8fcd",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 1747725,
            "upload_time": "2024-12-08T23:52:55",
            "upload_time_iso_8601": "2024-12-08T23:52:55.154101Z",
            "url": "https://files.pythonhosted.org/packages/a3/ad/580e751d7bfe36759cdae358fd96286f937d3e32b5857a39da8194050040/apsw_sqlite3mc-3.47.2.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "939653f886d272b31238c6599698d390e962da4bae8cd041ebe88faaf5d1b67e",
                "md5": "a865097ed1cdcc95322f29364d4a95dd",
                "sha256": "7c655c7225146c4f46d3c4a0bb3407842970dcb73bb71fa9a98cea8d98f8ea19"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a865097ed1cdcc95322f29364d4a95dd",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 1934491,
            "upload_time": "2024-12-08T23:52:57",
            "upload_time_iso_8601": "2024-12-08T23:52:57.413435Z",
            "url": "https://files.pythonhosted.org/packages/93/96/53f886d272b31238c6599698d390e962da4bae8cd041ebe88faaf5d1b67e/apsw_sqlite3mc-3.47.2.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b023105fe5545f31d0cfd14323e2014d2723563213fdde0e68416e9e8c952a81",
                "md5": "61742e3d5e1b68889f9bbecc175abe99",
                "sha256": "5c173731d9393cb782623ecc4e73d44378d0f89e3d1e22b1d3e443edbb139aef"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "61742e3d5e1b68889f9bbecc175abe99",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 1865099,
            "upload_time": "2024-12-08T23:52:58",
            "upload_time_iso_8601": "2024-12-08T23:52:58.954922Z",
            "url": "https://files.pythonhosted.org/packages/b0/23/105fe5545f31d0cfd14323e2014d2723563213fdde0e68416e9e8c952a81/apsw_sqlite3mc-3.47.2.0-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "36fb3c3b37a97e602e08dc402caab74711b64572c330bf337346a01ac6f58801",
                "md5": "3c31fdb88c90dd385958586bdd2eee5b",
                "sha256": "da6979d585302a087a502be5a61195a4a500bb44fff56d646d0b9184d3b28a55"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "3c31fdb88c90dd385958586bdd2eee5b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 6996109,
            "upload_time": "2024-12-08T23:53:01",
            "upload_time_iso_8601": "2024-12-08T23:53:01.386979Z",
            "url": "https://files.pythonhosted.org/packages/36/fb/3c3b37a97e602e08dc402caab74711b64572c330bf337346a01ac6f58801/apsw_sqlite3mc-3.47.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "39309e25c57f3ace611849e99e8cf4cfdfddcff433da7b4b9b8f81141128123e",
                "md5": "6bcdce4494705faba6b6d038991010a3",
                "sha256": "745315ffe0b1b4fdc54c0dabd808078111c115328784069b2794b3f9c14ce614"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6bcdce4494705faba6b6d038991010a3",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 6964017,
            "upload_time": "2024-12-08T23:53:03",
            "upload_time_iso_8601": "2024-12-08T23:53:03.205125Z",
            "url": "https://files.pythonhosted.org/packages/39/30/9e25c57f3ace611849e99e8cf4cfdfddcff433da7b4b9b8f81141128123e/apsw_sqlite3mc-3.47.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cfa402733c32b58c59f44fc0d9bc2aca84801c934c8847db19bb16d3c40d5919",
                "md5": "feda63748e0f63610032bdfdf70fb827",
                "sha256": "7506083e52d0299ee560f57fa6886e9723fa2104d825514185f7e20841be881e"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "feda63748e0f63610032bdfdf70fb827",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 6865425,
            "upload_time": "2024-12-08T23:53:04",
            "upload_time_iso_8601": "2024-12-08T23:53:04.949015Z",
            "url": "https://files.pythonhosted.org/packages/cf/a4/02733c32b58c59f44fc0d9bc2aca84801c934c8847db19bb16d3c40d5919/apsw_sqlite3mc-3.47.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "41a86dc0c179a70c91a2da6e2e0a2878182d32bc37a5bbab202b01cde42dea7b",
                "md5": "5891615745dc8e2d83035bc7a8ed1a18",
                "sha256": "b6b2a1bdda4bc383ee184758ecc3c907119977f05282f4e80cb6d28263fa35b7"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5891615745dc8e2d83035bc7a8ed1a18",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 7027549,
            "upload_time": "2024-12-08T23:53:07",
            "upload_time_iso_8601": "2024-12-08T23:53:07.864768Z",
            "url": "https://files.pythonhosted.org/packages/41/a8/6dc0c179a70c91a2da6e2e0a2878182d32bc37a5bbab202b01cde42dea7b/apsw_sqlite3mc-3.47.2.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2c713876da18e1d7aa615c9b85980b0027f36a6801d7f9a2e83476eb8b01fe24",
                "md5": "f39084661b45e5197073660e4e15efa9",
                "sha256": "a6e4d33bce2b14bbc1654ef31cd46e8c6b511f82734fc36caad3acd60283e632"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "f39084661b45e5197073660e4e15efa9",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 6962323,
            "upload_time": "2024-12-08T23:53:09",
            "upload_time_iso_8601": "2024-12-08T23:53:09.665422Z",
            "url": "https://files.pythonhosted.org/packages/2c/71/3876da18e1d7aa615c9b85980b0027f36a6801d7f9a2e83476eb8b01fe24/apsw_sqlite3mc-3.47.2.0-cp313-cp313-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6f70319122f289d9494ee3c0be29d49bd7d1636cddc27d65df7618404fe26f7f",
                "md5": "13fa1c633653c2bd7ea036580b85f8c9",
                "sha256": "66438ce54d0a46ce0c30051183841335c37743b186cbe71aa500e40f2fb0f0b5"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "13fa1c633653c2bd7ea036580b85f8c9",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 6957574,
            "upload_time": "2024-12-08T23:53:11",
            "upload_time_iso_8601": "2024-12-08T23:53:11.549806Z",
            "url": "https://files.pythonhosted.org/packages/6f/70/319122f289d9494ee3c0be29d49bd7d1636cddc27d65df7618404fe26f7f/apsw_sqlite3mc-3.47.2.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "492a476d2bfe18549f5d9078b6c5e9d093406f237c65deeda896b54c21b44c6b",
                "md5": "f34a6471723286736bf756235080545e",
                "sha256": "b9434ceca2aeee6c8ed3798439d24aa614775e47cb6268292bca39189ea4c817"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "f34a6471723286736bf756235080545e",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 1604162,
            "upload_time": "2024-12-08T23:53:13",
            "upload_time_iso_8601": "2024-12-08T23:53:13.276401Z",
            "url": "https://files.pythonhosted.org/packages/49/2a/476d2bfe18549f5d9078b6c5e9d093406f237c65deeda896b54c21b44c6b/apsw_sqlite3mc-3.47.2.0-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d01e30fadfc1a26954f050f4f05e415415eb25ddb593a9bb11fd78c72d71f82a",
                "md5": "6bfad57495f79258ec3355e5f355d53c",
                "sha256": "bd345a69a62d64f312a12a593396cb61b53040a1b96fda061586ad1092c596ef"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6bfad57495f79258ec3355e5f355d53c",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 1746235,
            "upload_time": "2024-12-08T23:53:14",
            "upload_time_iso_8601": "2024-12-08T23:53:14.781415Z",
            "url": "https://files.pythonhosted.org/packages/d0/1e/30fadfc1a26954f050f4f05e415415eb25ddb593a9bb11fd78c72d71f82a/apsw_sqlite3mc-3.47.2.0-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d8731adbd6b2b3c5fe0c9e28fb3b77a95702bbfeed2ba855373aacad7175b5cf",
                "md5": "f926e341b317c8bc99484667149312f7",
                "sha256": "076f56e8efbea290f130984d869579bb89a821b649b13c8f1123356c49fabf48"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f926e341b317c8bc99484667149312f7",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1933837,
            "upload_time": "2024-12-08T23:53:16",
            "upload_time_iso_8601": "2024-12-08T23:53:16.182160Z",
            "url": "https://files.pythonhosted.org/packages/d8/73/1adbd6b2b3c5fe0c9e28fb3b77a95702bbfeed2ba855373aacad7175b5cf/apsw_sqlite3mc-3.47.2.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1227e6b91d3e3789bf1a677f84cc4b223fb935d0f45d4a12fb375b5bebf80f19",
                "md5": "f14c88f1bbfed4ca82b8fed0ad123b69",
                "sha256": "b66db72f80a28c136bf97f50a19477fa5a233f275d64866d6a9cf45d349ab6cd"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "f14c88f1bbfed4ca82b8fed0ad123b69",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1864952,
            "upload_time": "2024-12-08T23:53:17",
            "upload_time_iso_8601": "2024-12-08T23:53:17.650338Z",
            "url": "https://files.pythonhosted.org/packages/12/27/e6b91d3e3789bf1a677f84cc4b223fb935d0f45d4a12fb375b5bebf80f19/apsw_sqlite3mc-3.47.2.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4d6e5c68d3f8c501da40f37a8a93292051a42acfcf2fe58e984f948799a65435",
                "md5": "218e5a719d718174ecc5714dd49c766c",
                "sha256": "e5216b5c06207777699a794c7182023c80facefc012bcf7a10ea5964c99627a2"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "218e5a719d718174ecc5714dd49c766c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 6782861,
            "upload_time": "2024-12-08T23:53:19",
            "upload_time_iso_8601": "2024-12-08T23:53:19.905873Z",
            "url": "https://files.pythonhosted.org/packages/4d/6e/5c68d3f8c501da40f37a8a93292051a42acfcf2fe58e984f948799a65435/apsw_sqlite3mc-3.47.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cee635b0cfd930400dc8e5e121eecc4bbf38a8fcb071e791117ec1e22f25a6d6",
                "md5": "6f4ac6e390dde3bab1dc90a9dc501de5",
                "sha256": "9df1dba94f831536c3874cfec8febcead67252077f7cbafd36e77b64f9ce7151"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6f4ac6e390dde3bab1dc90a9dc501de5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 6759165,
            "upload_time": "2024-12-08T23:53:21",
            "upload_time_iso_8601": "2024-12-08T23:53:21.681681Z",
            "url": "https://files.pythonhosted.org/packages/ce/e6/35b0cfd930400dc8e5e121eecc4bbf38a8fcb071e791117ec1e22f25a6d6/apsw_sqlite3mc-3.47.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "770be55b33b36b9f74198ca7c819ce8a685fd6f9bd1ac621e20118dc398a30c8",
                "md5": "6add487e7e81476a10f20d365f6da2e5",
                "sha256": "2b0b5d095153888f4c6083d531bfd68d54e72cac3df2eba26954e2a73d59fdc1"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "6add487e7e81476a10f20d365f6da2e5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 6689129,
            "upload_time": "2024-12-08T23:53:23",
            "upload_time_iso_8601": "2024-12-08T23:53:23.386557Z",
            "url": "https://files.pythonhosted.org/packages/77/0b/e55b33b36b9f74198ca7c819ce8a685fd6f9bd1ac621e20118dc398a30c8/apsw_sqlite3mc-3.47.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6e21f15bc737bf90e9c425169949d7403104c27380e428a54f22c22852a72914",
                "md5": "5c2afc8f5a01f68a86c14b72218c75c2",
                "sha256": "4ed985195ef3b801b829de092c5134cb8385de33218237c4f8539e40fc5b7e3e"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5c2afc8f5a01f68a86c14b72218c75c2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 6860855,
            "upload_time": "2024-12-08T23:53:26",
            "upload_time_iso_8601": "2024-12-08T23:53:26.096047Z",
            "url": "https://files.pythonhosted.org/packages/6e/21/f15bc737bf90e9c425169949d7403104c27380e428a54f22c22852a72914/apsw_sqlite3mc-3.47.2.0-cp39-cp39-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ce326a27aa3bba3364be49bce7efc8236739e0209e6b3131654cf11bf051b01e",
                "md5": "dc6558672550994a8704869bb639a5d6",
                "sha256": "ca1e7d4516997898d564f1cb29d0851f65276c3377f202d1e096b05b8f876762"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "dc6558672550994a8704869bb639a5d6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 6859489,
            "upload_time": "2024-12-08T23:53:28",
            "upload_time_iso_8601": "2024-12-08T23:53:28.133958Z",
            "url": "https://files.pythonhosted.org/packages/ce/32/6a27aa3bba3364be49bce7efc8236739e0209e6b3131654cf11bf051b01e/apsw_sqlite3mc-3.47.2.0-cp39-cp39-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cd452d31f18b2393c4036fa379f57d0b490dac98dfc85ed0c39944191985e0c5",
                "md5": "8618d452855cd911734d4572956689a7",
                "sha256": "fbda0fca129c22606c24f10f3fb2831e2a58b5f5f702ee2af4f4d8a81cd0d42f"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8618d452855cd911734d4572956689a7",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 6849504,
            "upload_time": "2024-12-08T23:53:30",
            "upload_time_iso_8601": "2024-12-08T23:53:30.612079Z",
            "url": "https://files.pythonhosted.org/packages/cd/45/2d31f18b2393c4036fa379f57d0b490dac98dfc85ed0c39944191985e0c5/apsw_sqlite3mc-3.47.2.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cc744c71acbde852e2ebdd0d6d7e71a531e27aa592e90bc6e4cfd249f2bcd3fd",
                "md5": "c8cdabfb97104905bf38403f575fd386",
                "sha256": "67c3ca0ec4cf08d94e2e3d16012e19b2933d49a0705705109a8903af23a5a1fb"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "c8cdabfb97104905bf38403f575fd386",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1611876,
            "upload_time": "2024-12-08T23:53:32",
            "upload_time_iso_8601": "2024-12-08T23:53:32.379540Z",
            "url": "https://files.pythonhosted.org/packages/cc/74/4c71acbde852e2ebdd0d6d7e71a531e27aa592e90bc6e4cfd249f2bcd3fd/apsw_sqlite3mc-3.47.2.0-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ac295471b49f6ef587edc152561d2762ed94b7806532777035513855b101306d",
                "md5": "31af1d5730ad0644f7682ff998a7250d",
                "sha256": "32aedc0442ea85b53d312aed75f3d42f46e30fa2ae99d669b110150ca1f4cba9"
            },
            "downloads": -1,
            "filename": "apsw_sqlite3mc-3.47.2.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "31af1d5730ad0644f7682ff998a7250d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1752329,
            "upload_time": "2024-12-08T23:53:34",
            "upload_time_iso_8601": "2024-12-08T23:53:34.996018Z",
            "url": "https://files.pythonhosted.org/packages/ac/29/5471b49f6ef587edc152561d2762ed94b7806532777035513855b101306d/apsw_sqlite3mc-3.47.2.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dff81ee0bf779685831c4628ce8d2fbc1aac35053f8de6bb13be509709182cbf",
                "md5": "9109d453701a41c5392d516079d7f7ef",
                "sha256": "879a3a31b66d48b0de50a0329f55d36206d3b0e3d5271240d9df70e06d117e97"
            },
            "downloads": -1,
            "filename": "apsw-sqlite3mc-3.47.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9109d453701a41c5392d516079d7f7ef",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 4107678,
            "upload_time": "2024-12-08T23:53:37",
            "upload_time_iso_8601": "2024-12-08T23:53:37.134637Z",
            "url": "https://files.pythonhosted.org/packages/df/f8/1ee0bf779685831c4628ce8d2fbc1aac35053f8de6bb13be509709182cbf/apsw-sqlite3mc-3.47.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-08 23:53:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "utelle",
    "github_project": "apsw-sqlite3mc",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "apsw-sqlite3mc"
}
        
Elapsed time: 0.43556s