libmc


Namelibmc JSON
Version 1.4.3 PyPI version JSON
download
home_pagehttps://github.com/douban/libmc
SummaryFast and light-weight memcached client for C++/Python
upload_time2024-06-05 08:12:23
maintainerNone
docs_urlNone
authorPAN, Myautsai
requires_pythonNone
licenseBSD License
keywords memcached memcache client
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            libmc
=====

|build_go| |build_py|
|status| |pypiv| |pyversions| |wheel| |license|

libmc is a memcached client library for Python without any other
dependencies in runtime. It's mainly written in C++ and Cython. libmc
can be considered as a drop in replacement for libmemcached and
`python-libmemcached <https://github.com/douban/python-libmemcached>`__.

libmc is developing and maintaining by Douban Inc. Currently, It is
working in production environment, powering all web traffics in
douban.com. Realtime `benchmark
result <https://travis-ci.org/douban/libmc/builds/57124335#L1611>`__ is
available on travis.

Build and Installation
----------------------

For users:

::

    pip install libmc

Usage:

.. code:: python

    import libmc

    mc = libmc.Client(['localhost:11211', 'localhost:11212'])
    mc.set('foo', 'bar')
    assert mc.get('foo') == 'bar'

Under the hood
--------------

Under the hood, libmc consists of 2 parts: an internal fully-functional
memcached client implementation in C++ and a Cython wrapper around that
implementation. Dynamic memory allocation and memory-copy are slow, so
we tried our best to avoid them. The ``set_multi`` command is not
natively supported by the `memcached
protocol <https://github.com/memcached/memcached/blob/master/doc/protocol.txt>`__.
Some techniques are applied to make ``set_multi`` command extremely fast
in libmc (compared to some other similiar libraries).

Configuration
-------------

.. code:: python

    import libmc
    from libmc import (
        MC_HASH_MD5, MC_POLL_TIMEOUT, MC_CONNECT_TIMEOUT, MC_RETRY_TIMEOUT
    )

    mc = libmc.Client(
        [
        'localhost:11211',
        'localhost:11212',
        'remote_host',
        'remote_host mc.mike',
        'remote_host:11213 mc.oscar'
        ],
        do_split=True,
        comp_threshold=0,
        noreply=False,
        prefix=None,
        hash_fn=MC_HASH_MD5,
        failover=False
    )

    mc.config(MC_POLL_TIMEOUT, 100)  # 100 ms
    mc.config(MC_CONNECT_TIMEOUT, 300)  # 300 ms
    mc.config(MC_RETRY_TIMEOUT, 5)  # 5 s


-  ``servers``: is a list of memcached server addresses. Each address
   can be in format of ``hostname[:port] [alias]``. ``port`` and ``alias``
   are optional. If ``port`` is not given, default port ``11211`` will
   be used. ``alias`` will be used to compute server hash if given,
   otherwise server hash will be computed based on ``host`` and ``port``
   (i.e.: If ``port`` is not given or it is equal to ``11211``, ``host``
   will be used to compute server hash. If ``port`` is not equal to ``11211``,
   ``host:port`` will be used).
-  ``do_split``: Memcached server will refuse to store value if size >=
   1MB, if ``do_split`` is enabled, large value (< 10 MB) will be
   splitted into several blocks. If the value is too large (>= 10 MB),
   it will not be stored. default: ``True``
-  ``comp_threshold``: All kinds of values will be encoded into string
   buffer. If ``buffer length > comp_threshold > 0``, it will be
   compressed using zlib. If ``comp_threshold = 0``, string buffer will
   never be compressed using zlib. default: ``0``
-  ``noreply``: Whether to enable memcached's ``noreply`` behaviour.
   default: ``False``
-  ``prefix``: The key prefix. default: ``''``
-  ``hash_fn``: hashing function for keys. possible values:

   -  ``MC_HASH_MD5``
   -  ``MC_HASH_FNV1_32``
   -  ``MC_HASH_FNV1A_32``
   -  ``MC_HASH_CRC_32``

   default: ``MC_HASH_MD5``

   **NOTE:** fnv1\_32, fnv1a\_32, crc\_32 implementations in libmc are
   per each spec, but they're not compatible with corresponding
   implementions in libmemcached.

-  ``failover``: Whether to failover to next server when current server
   is not available. default: ``False``

-  ``MC_POLL_TIMEOUT`` Timeout parameter used during set/get procedure.
   (default: ``300`` ms)
-  ``MC_CONNECT_TIMEOUT`` Timeout parameter used when connecting to
   memcached server on initial phase. (default: ``100`` ms)
-  ``MC_RETRY_TIMEOUT`` When a server is not available dur to server-end
   error. libmc will try to establish the broken connection in every
   ``MC_RETRY_TIMEOUT`` s until the connection is back to live.(default:
   ``5`` s)

**NOTE:** The hashing algorithm for host mapping on continuum is always
md5.

Contributing to libmc
---------------------

Feel free to send a **Pull Request**. For feature requests or any
questions, please open an **Issue**.

For **SECURITY DISCLOSURE**, please disclose the information responsibly
by sending an email to security@douban.com directly instead of creating
a GitHub issue.

FAQ
---

Does libmc support PHP?
^^^^^^^^^^^^^^^^^^^^^^^

No. But if you like, you can write a wrapper for PHP based on the C++
implementation.

Is Memcached binary protocol supported ?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

No. Only Memcached ASCII protocol is supported currently.

Why reinventing the wheel?
^^^^^^^^^^^^^^^^^^^^^^^^^^

Before libmc, we're using
`python-libmemcached <https://github.com/douban/python-libmemcached>`__,
which is a python extention for
`libmemcached <http://libmemcached.org/libMemcached.html>`__.
libmemcached is quite weird and buggy. After nearly one decade, there're
still some unsolved bugs.

Is libmc thread-safe ?
^^^^^^^^^^^^^^^^^^^^^^

libmc is a single-threaded memcached client. If you initialize a libmc
client in one thread but reuse that in another thread, a Python
Exception ``ThreadUnsafe`` will raise in Python.

Is libmc compatible with gevent?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Yes, with the help of `greenify <https://github.com/douban/greenify>`__,
libmc is friendly to gevent. Read ``tests/shabby/gevent_issue.py`` for
details.

**Notice:**

`gevent.monkey.patch_all()` will override
`threading.current_thread().ident` to Greenlet's ID,
this will cause libmc to throw a ThreadUnSafe error
or run into dead lock, you should only patch the things
that you need, e.g.

.. code:: python

    from gevent import monkey
    monkey.patch_socket()

Acknowledgments
---------------

-  Thanks to `@fahrenheit2539 <https://github.com/fahrenheit2539>`__ and
   the llvm project for the standalone.
   `SmallVector <http://fahrenheit2539.blogspot.com/2012/06/introduction-in-depths-look-at.html>`__
   implementation.
-  Thanks to `@miloyip <https://github.com/miloyip>`__ for the high
   performance `i64toa <https://github.com/miloyip/itoa-benchmark>`__
   implementation.
-  Thanks to `Ivan Novikov <https://twitter.com/d0znpp>`__ for the
   research in `THE NEW PAGE OF INJECTIONS BOOK: MEMCACHED
   INJECTIONS <https://www.blackhat.com/us-14/briefings.html#the-new-page-of-injections-book-memcached-injections>`__.
-  Thanks to the PolarSSL project for the md5 implementation.
-  Thanks to `@lericson <https://github.com/lericson>`__ for the `benchmark
   script in
   pylibmc <https://github.com/lericson/pylibmc/blob/master/bin/runbench.py>`__.
-  Thanks to the libmemcached project and some other projects possibly
   not mentioned here.

Contributors
------------

-  `@mckelvin <https://github.com/mckelvin>`__
-  `@zzl0 <https://github.com/zzl0>`__
-  `@windreamer <https://github.com/windreamer>`__
-  `@lembacon <https://github.com/lembacon>`__
-  `@seansay <https://github.com/seansay>`__
-  `@mosasiru <https://github.com/mosasiru>`__
-  `@jumpeiMano <https://github.com/jumpeiMano>`__


Who is using
------------

- `豆瓣 <https://douban.com>`__
- `下厨房 <https://www.xiachufang.com>`__
- `Some other projects on GitHub <https://github.com/douban/libmc/network/dependents>`__
- Want to add your company/organization name here?
  Please feel free to send a PR!

Documentation
-------------

https://github.com/douban/libmc/wiki

LICENSE
-------

Copyright (c) 2014-2020, Douban Inc. All rights reserved.

Licensed under a BSD license:
https://github.com/douban/libmc/blob/master/LICENSE.txt

.. |build_go| image:: https://github.com/douban/libmc/actions/workflows/golang.yml/badge.svg
   :target: https://github.com/douban/libmc/actions/workflows/golang.yml

.. |build_py| image:: https://github.com/douban/libmc/actions/workflows/python.yml/badge.svg
   :target: https://github.com/douban/libmc/actions/workflows/python.yml

.. |pypiv| image:: https://img.shields.io/pypi/v/libmc
   :target: https://pypi.org/project/libmc/

.. |status| image:: https://img.shields.io/pypi/status/libmc
.. |pyversions| image:: https://img.shields.io/pypi/pyversions/libmc
.. |wheel| image:: https://img.shields.io/pypi/wheel/libmc
.. |license| image:: https://img.shields.io/pypi/l/libmc?color=blue

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/douban/libmc",
    "name": "libmc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "memcached, memcache, client",
    "author": "PAN, Myautsai",
    "author_email": "myautsai@gmail.com",
    "download_url": null,
    "platform": null,
    "description": "libmc\n=====\n\n|build_go| |build_py|\n|status| |pypiv| |pyversions| |wheel| |license|\n\nlibmc is a memcached client library for Python without any other\ndependencies in runtime. It's mainly written in C++ and Cython. libmc\ncan be considered as a drop in replacement for libmemcached and\n`python-libmemcached <https://github.com/douban/python-libmemcached>`__.\n\nlibmc is developing and maintaining by Douban Inc. Currently, It is\nworking in production environment, powering all web traffics in\ndouban.com. Realtime `benchmark\nresult <https://travis-ci.org/douban/libmc/builds/57124335#L1611>`__ is\navailable on travis.\n\nBuild and Installation\n----------------------\n\nFor users:\n\n::\n\n    pip install libmc\n\nUsage:\n\n.. code:: python\n\n    import libmc\n\n    mc = libmc.Client(['localhost:11211', 'localhost:11212'])\n    mc.set('foo', 'bar')\n    assert mc.get('foo') == 'bar'\n\nUnder the hood\n--------------\n\nUnder the hood, libmc consists of 2 parts: an internal fully-functional\nmemcached client implementation in C++ and a Cython wrapper around that\nimplementation. Dynamic memory allocation and memory-copy are slow, so\nwe tried our best to avoid them. The ``set_multi`` command is not\nnatively supported by the `memcached\nprotocol <https://github.com/memcached/memcached/blob/master/doc/protocol.txt>`__.\nSome techniques are applied to make ``set_multi`` command extremely fast\nin libmc (compared to some other similiar libraries).\n\nConfiguration\n-------------\n\n.. code:: python\n\n    import libmc\n    from libmc import (\n        MC_HASH_MD5, MC_POLL_TIMEOUT, MC_CONNECT_TIMEOUT, MC_RETRY_TIMEOUT\n    )\n\n    mc = libmc.Client(\n        [\n        'localhost:11211',\n        'localhost:11212',\n        'remote_host',\n        'remote_host mc.mike',\n        'remote_host:11213 mc.oscar'\n        ],\n        do_split=True,\n        comp_threshold=0,\n        noreply=False,\n        prefix=None,\n        hash_fn=MC_HASH_MD5,\n        failover=False\n    )\n\n    mc.config(MC_POLL_TIMEOUT, 100)  # 100 ms\n    mc.config(MC_CONNECT_TIMEOUT, 300)  # 300 ms\n    mc.config(MC_RETRY_TIMEOUT, 5)  # 5 s\n\n\n-  ``servers``: is a list of memcached server addresses. Each address\n   can be in format of ``hostname[:port] [alias]``. ``port`` and ``alias``\n   are optional. If ``port`` is not given, default port ``11211`` will\n   be used. ``alias`` will be used to compute server hash if given,\n   otherwise server hash will be computed based on ``host`` and ``port``\n   (i.e.: If ``port`` is not given or it is equal to ``11211``, ``host``\n   will be used to compute server hash. If ``port`` is not equal to ``11211``,\n   ``host:port`` will be used).\n-  ``do_split``: Memcached server will refuse to store value if size >=\n   1MB, if ``do_split`` is enabled, large value (< 10 MB) will be\n   splitted into several blocks. If the value is too large (>= 10 MB),\n   it will not be stored. default: ``True``\n-  ``comp_threshold``: All kinds of values will be encoded into string\n   buffer. If ``buffer length > comp_threshold > 0``, it will be\n   compressed using zlib. If ``comp_threshold = 0``, string buffer will\n   never be compressed using zlib. default: ``0``\n-  ``noreply``: Whether to enable memcached's ``noreply`` behaviour.\n   default: ``False``\n-  ``prefix``: The key prefix. default: ``''``\n-  ``hash_fn``: hashing function for keys. possible values:\n\n   -  ``MC_HASH_MD5``\n   -  ``MC_HASH_FNV1_32``\n   -  ``MC_HASH_FNV1A_32``\n   -  ``MC_HASH_CRC_32``\n\n   default: ``MC_HASH_MD5``\n\n   **NOTE:** fnv1\\_32, fnv1a\\_32, crc\\_32 implementations in libmc are\n   per each spec, but they're not compatible with corresponding\n   implementions in libmemcached.\n\n-  ``failover``: Whether to failover to next server when current server\n   is not available. default: ``False``\n\n-  ``MC_POLL_TIMEOUT`` Timeout parameter used during set/get procedure.\n   (default: ``300`` ms)\n-  ``MC_CONNECT_TIMEOUT`` Timeout parameter used when connecting to\n   memcached server on initial phase. (default: ``100`` ms)\n-  ``MC_RETRY_TIMEOUT`` When a server is not available dur to server-end\n   error. libmc will try to establish the broken connection in every\n   ``MC_RETRY_TIMEOUT`` s until the connection is back to live.(default:\n   ``5`` s)\n\n**NOTE:** The hashing algorithm for host mapping on continuum is always\nmd5.\n\nContributing to libmc\n---------------------\n\nFeel free to send a **Pull Request**. For feature requests or any\nquestions, please open an **Issue**.\n\nFor **SECURITY DISCLOSURE**, please disclose the information responsibly\nby sending an email to security@douban.com directly instead of creating\na GitHub issue.\n\nFAQ\n---\n\nDoes libmc support PHP?\n^^^^^^^^^^^^^^^^^^^^^^^\n\nNo. But if you like, you can write a wrapper for PHP based on the C++\nimplementation.\n\nIs Memcached binary protocol supported ?\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nNo. Only Memcached ASCII protocol is supported currently.\n\nWhy reinventing the wheel?\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nBefore libmc, we're using\n`python-libmemcached <https://github.com/douban/python-libmemcached>`__,\nwhich is a python extention for\n`libmemcached <http://libmemcached.org/libMemcached.html>`__.\nlibmemcached is quite weird and buggy. After nearly one decade, there're\nstill some unsolved bugs.\n\nIs libmc thread-safe ?\n^^^^^^^^^^^^^^^^^^^^^^\n\nlibmc is a single-threaded memcached client. If you initialize a libmc\nclient in one thread but reuse that in another thread, a Python\nException ``ThreadUnsafe`` will raise in Python.\n\nIs libmc compatible with gevent?\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nYes, with the help of `greenify <https://github.com/douban/greenify>`__,\nlibmc is friendly to gevent. Read ``tests/shabby/gevent_issue.py`` for\ndetails.\n\n**Notice:**\n\n`gevent.monkey.patch_all()` will override\n`threading.current_thread().ident` to Greenlet's ID,\nthis will cause libmc to throw a ThreadUnSafe error\nor run into dead lock, you should only patch the things\nthat you need, e.g.\n\n.. code:: python\n\n    from gevent import monkey\n    monkey.patch_socket()\n\nAcknowledgments\n---------------\n\n-  Thanks to `@fahrenheit2539 <https://github.com/fahrenheit2539>`__ and\n   the llvm project for the standalone.\n   `SmallVector <http://fahrenheit2539.blogspot.com/2012/06/introduction-in-depths-look-at.html>`__\n   implementation.\n-  Thanks to `@miloyip <https://github.com/miloyip>`__ for the high\n   performance `i64toa <https://github.com/miloyip/itoa-benchmark>`__\n   implementation.\n-  Thanks to `Ivan Novikov <https://twitter.com/d0znpp>`__ for the\n   research in `THE NEW PAGE OF INJECTIONS BOOK: MEMCACHED\n   INJECTIONS <https://www.blackhat.com/us-14/briefings.html#the-new-page-of-injections-book-memcached-injections>`__.\n-  Thanks to the PolarSSL project for the md5 implementation.\n-  Thanks to `@lericson <https://github.com/lericson>`__ for the `benchmark\n   script in\n   pylibmc <https://github.com/lericson/pylibmc/blob/master/bin/runbench.py>`__.\n-  Thanks to the libmemcached project and some other projects possibly\n   not mentioned here.\n\nContributors\n------------\n\n-  `@mckelvin <https://github.com/mckelvin>`__\n-  `@zzl0 <https://github.com/zzl0>`__\n-  `@windreamer <https://github.com/windreamer>`__\n-  `@lembacon <https://github.com/lembacon>`__\n-  `@seansay <https://github.com/seansay>`__\n-  `@mosasiru <https://github.com/mosasiru>`__\n-  `@jumpeiMano <https://github.com/jumpeiMano>`__\n\n\nWho is using\n------------\n\n- `\u8c46\u74e3 <https://douban.com>`__\n- `\u4e0b\u53a8\u623f <https://www.xiachufang.com>`__\n- `Some other projects on GitHub <https://github.com/douban/libmc/network/dependents>`__\n- Want to add your company/organization name here?\n  Please feel free to send a PR!\n\nDocumentation\n-------------\n\nhttps://github.com/douban/libmc/wiki\n\nLICENSE\n-------\n\nCopyright (c) 2014-2020, Douban Inc. All rights reserved.\n\nLicensed under a BSD license:\nhttps://github.com/douban/libmc/blob/master/LICENSE.txt\n\n.. |build_go| image:: https://github.com/douban/libmc/actions/workflows/golang.yml/badge.svg\n   :target: https://github.com/douban/libmc/actions/workflows/golang.yml\n\n.. |build_py| image:: https://github.com/douban/libmc/actions/workflows/python.yml/badge.svg\n   :target: https://github.com/douban/libmc/actions/workflows/python.yml\n\n.. |pypiv| image:: https://img.shields.io/pypi/v/libmc\n   :target: https://pypi.org/project/libmc/\n\n.. |status| image:: https://img.shields.io/pypi/status/libmc\n.. |pyversions| image:: https://img.shields.io/pypi/pyversions/libmc\n.. |wheel| image:: https://img.shields.io/pypi/wheel/libmc\n.. |license| image:: https://img.shields.io/pypi/l/libmc?color=blue\n",
    "bugtrack_url": null,
    "license": "BSD License",
    "summary": "Fast and light-weight memcached client for C++/Python",
    "version": "1.4.3",
    "project_urls": {
        "Homepage": "https://github.com/douban/libmc"
    },
    "split_keywords": [
        "memcached",
        " memcache",
        " client"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4e250f7eb81ad031aa97e3682fd9e07b379a9560d5115f79ae274e8600821e42",
                "md5": "d2896d8312f6a79c62303a92d3b99ac3",
                "sha256": "8dae170470322d76f107f4e72f44ab06119c47726dbb16c3b6ba19adc97885be"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "d2896d8312f6a79c62303a92d3b99ac3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1218429,
            "upload_time": "2024-06-05T08:12:23",
            "upload_time_iso_8601": "2024-06-05T08:12:23.309797Z",
            "url": "https://files.pythonhosted.org/packages/4e/25/0f7eb81ad031aa97e3682fd9e07b379a9560d5115f79ae274e8600821e42/libmc-1.4.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4e5a2d04a28fea8f4d54b009fc8615ddc9dac607b21031c911908b9ab0c5cad6",
                "md5": "16b81583f76f2c2ddbe526cfcedd6534",
                "sha256": "ac86d817b6b588e1e5d396151829528b4b37b4cd381d5ca7848301c75d3c23a4"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "16b81583f76f2c2ddbe526cfcedd6534",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1261820,
            "upload_time": "2024-06-05T08:12:27",
            "upload_time_iso_8601": "2024-06-05T08:12:27.546192Z",
            "url": "https://files.pythonhosted.org/packages/4e/5a/2d04a28fea8f4d54b009fc8615ddc9dac607b21031c911908b9ab0c5cad6/libmc-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a954a905e7689b7df47fd6dbe39499ed17bda9481a6fe4825a9fcad842e9883b",
                "md5": "27c57dbafaa6e1c9fb9a5f7c70ecda95",
                "sha256": "a5ee9c37055c52b0318f52dbd4b5ffb6777e81ecfc96a25faca5924df4c605c9"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp310-cp310-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "27c57dbafaa6e1c9fb9a5f7c70ecda95",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1808840,
            "upload_time": "2024-06-05T08:12:29",
            "upload_time_iso_8601": "2024-06-05T08:12:29.613414Z",
            "url": "https://files.pythonhosted.org/packages/a9/54/a905e7689b7df47fd6dbe39499ed17bda9481a6fe4825a9fcad842e9883b/libmc-1.4.3-cp310-cp310-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c8cf62af0a668f70feb9e712f8f497a082dc7e949587c71581c6bfda7d3de39b",
                "md5": "c0a1e415bf6b36ec7e04feb65b08d37e",
                "sha256": "a3308c529f585f51d0a338672c58e78405896d7f2c904087838727ddb01ea5df"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c0a1e415bf6b36ec7e04feb65b08d37e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1796960,
            "upload_time": "2024-06-05T08:12:31",
            "upload_time_iso_8601": "2024-06-05T08:12:31.460433Z",
            "url": "https://files.pythonhosted.org/packages/c8/cf/62af0a668f70feb9e712f8f497a082dc7e949587c71581c6bfda7d3de39b/libmc-1.4.3-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5b01749a859b27f82d3bb7fc7894d79d1b03012f6ea8a9361a348dcacabfdc9a",
                "md5": "06702cffa20ca28b282d7a0b61de591a",
                "sha256": "d48c21de1b8d4932bbeace3da6978ccab3aff4f5a952d11634178d556dd4e442"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "06702cffa20ca28b282d7a0b61de591a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1267958,
            "upload_time": "2024-06-05T08:12:33",
            "upload_time_iso_8601": "2024-06-05T08:12:33.647593Z",
            "url": "https://files.pythonhosted.org/packages/5b/01/749a859b27f82d3bb7fc7894d79d1b03012f6ea8a9361a348dcacabfdc9a/libmc-1.4.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fd74b48a6afde960964a1dff49c9d011410ecdfa7d416771c5bc7f9571899017",
                "md5": "a5a94a8bee7027c793e057a7d8de3dd7",
                "sha256": "739d043f1860471120aee972876bc050843c8645770d4c3cf23890293b6036e7"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a5a94a8bee7027c793e057a7d8de3dd7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1317365,
            "upload_time": "2024-06-05T08:12:35",
            "upload_time_iso_8601": "2024-06-05T08:12:35.060860Z",
            "url": "https://files.pythonhosted.org/packages/fd/74/b48a6afde960964a1dff49c9d011410ecdfa7d416771c5bc7f9571899017/libmc-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "baa392c10d892e08f74a2dfd9fc23c98dfb51e636e759052d0641a34d8f7f585",
                "md5": "cf8e2efb01eb300525a248639809a70f",
                "sha256": "e66a7050808e685032be7c618d40c44f3dcbc88925f42118a384db96ba970796"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp311-cp311-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "cf8e2efb01eb300525a248639809a70f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1848670,
            "upload_time": "2024-06-05T08:12:36",
            "upload_time_iso_8601": "2024-06-05T08:12:36.569149Z",
            "url": "https://files.pythonhosted.org/packages/ba/a3/92c10d892e08f74a2dfd9fc23c98dfb51e636e759052d0641a34d8f7f585/libmc-1.4.3-cp311-cp311-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04b1ac8e6c46f2074292bb27b2601aeedbae145417c3a7b936bf369c0bff2881",
                "md5": "21bca2d8e77fed0708c0efd6911c0930",
                "sha256": "88fdb5d8edb0a9b31f42d608e91119703ce918324d05a31b16b2a4a5cf0ebf73"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "21bca2d8e77fed0708c0efd6911c0930",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1849036,
            "upload_time": "2024-06-05T08:12:38",
            "upload_time_iso_8601": "2024-06-05T08:12:38.110665Z",
            "url": "https://files.pythonhosted.org/packages/04/b1/ac8e6c46f2074292bb27b2601aeedbae145417c3a7b936bf369c0bff2881/libmc-1.4.3-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0adf538b6e776bba42b40d3c1191e27c31191ec32710da1ccd6d45b9d4bd8e3f",
                "md5": "4c27d6ed955ac6944fc82beee28ebd09",
                "sha256": "387034d29bb8eaf840a97c2adf7c247727ebd73ae1964d4b399ef901d62a425b"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "4c27d6ed955ac6944fc82beee28ebd09",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1244549,
            "upload_time": "2024-06-05T08:12:39",
            "upload_time_iso_8601": "2024-06-05T08:12:39.600932Z",
            "url": "https://files.pythonhosted.org/packages/0a/df/538b6e776bba42b40d3c1191e27c31191ec32710da1ccd6d45b9d4bd8e3f/libmc-1.4.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "49f88e7eff9a7ecaac680720237bc916b54b59c3e70a44bc38f469ef7798a8a9",
                "md5": "13d6b0789d4c3a28fa1c102cadcc90d1",
                "sha256": "40106493b552357ac8548bc8813d7c7621a5ee57f1c998fe1e0d1e5a64b697f5"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "13d6b0789d4c3a28fa1c102cadcc90d1",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1307467,
            "upload_time": "2024-06-05T08:12:41",
            "upload_time_iso_8601": "2024-06-05T08:12:41.262624Z",
            "url": "https://files.pythonhosted.org/packages/49/f8/8e7eff9a7ecaac680720237bc916b54b59c3e70a44bc38f469ef7798a8a9/libmc-1.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "96354c34ff0bbd65ae0b124da00ac8e0d3b6d69ad58464c244ebd3730fcaebef",
                "md5": "644c35b1170a7cd3c1a62e18e676953a",
                "sha256": "e218692c2945b04f38a47766195a79717837e375b68b74c791246a43a008090a"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp312-cp312-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "644c35b1170a7cd3c1a62e18e676953a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1836989,
            "upload_time": "2024-06-05T08:12:42",
            "upload_time_iso_8601": "2024-06-05T08:12:42.706834Z",
            "url": "https://files.pythonhosted.org/packages/96/35/4c34ff0bbd65ae0b124da00ac8e0d3b6d69ad58464c244ebd3730fcaebef/libmc-1.4.3-cp312-cp312-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e5e57481244823a9e71b21f8144140093eb1429620d9fed51c36deaccb9ea10f",
                "md5": "7adea4204535c5b810a995ad8b605e61",
                "sha256": "44542150f748de04b52dd27a24f7808487e245989921fe57c3737891f86b10da"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp312-cp312-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7adea4204535c5b810a995ad8b605e61",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1840897,
            "upload_time": "2024-06-05T08:12:44",
            "upload_time_iso_8601": "2024-06-05T08:12:44.283086Z",
            "url": "https://files.pythonhosted.org/packages/e5/e5/7481244823a9e71b21f8144140093eb1429620d9fed51c36deaccb9ea10f/libmc-1.4.3-cp312-cp312-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3fa89acfe42b381520476ba3795b0dc271ffbb79a1645cb5aa7e8164ccc5d0f9",
                "md5": "d4fd4bcb2214c3e28fe15a2891e24b6a",
                "sha256": "4f69e7de7b4edbfa956d3f1a1fca48b7ed66beaf72877f821cee5b01b19ad588"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "d4fd4bcb2214c3e28fe15a2891e24b6a",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": null,
            "size": 1133128,
            "upload_time": "2024-06-05T08:12:45",
            "upload_time_iso_8601": "2024-06-05T08:12:45.688159Z",
            "url": "https://files.pythonhosted.org/packages/3f/a8/9acfe42b381520476ba3795b0dc271ffbb79a1645cb5aa7e8164ccc5d0f9/libmc-1.4.3-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3f771525c2e44245e1eb09a7c65e314614ea538e9d3835c4b6ccc29d15b00ed3",
                "md5": "5f1c3b8e0efe6eaa28ee3e0da51c01bb",
                "sha256": "0eafe56548377db947cdc7c99e65de0591b4daeeec6470772faa8bb63d44f7f0"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5f1c3b8e0efe6eaa28ee3e0da51c01bb",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": null,
            "size": 1177090,
            "upload_time": "2024-06-05T08:12:47",
            "upload_time_iso_8601": "2024-06-05T08:12:47.941621Z",
            "url": "https://files.pythonhosted.org/packages/3f/77/1525c2e44245e1eb09a7c65e314614ea538e9d3835c4b6ccc29d15b00ed3/libmc-1.4.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f63a85fdf61dfae2e00f4bf6111cd1551fa1e860baedaeee5c56f925ea0fa1f3",
                "md5": "3c0b8c3d355d1ed37d96695237e94e14",
                "sha256": "6e6d397f924efc9f5c5eb22dce3316b2bb218887b854af46118b17afa6fd1abb"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp36-cp36m-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "3c0b8c3d355d1ed37d96695237e94e14",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": null,
            "size": 1722930,
            "upload_time": "2024-06-05T08:12:49",
            "upload_time_iso_8601": "2024-06-05T08:12:49.943090Z",
            "url": "https://files.pythonhosted.org/packages/f6/3a/85fdf61dfae2e00f4bf6111cd1551fa1e860baedaeee5c56f925ea0fa1f3/libmc-1.4.3-cp36-cp36m-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6858dbe525e70a33010633686e10ec723327a84b820aa52a26c7e02a9a996976",
                "md5": "37a10c58ffaaad425453f3d27b058557",
                "sha256": "f51a9d0a2b3f6ffdab6e61e9c909b7d4f09f8b634ba25b960ee23f20caa01dd1"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp36-cp36m-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "37a10c58ffaaad425453f3d27b058557",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": null,
            "size": 1715602,
            "upload_time": "2024-06-05T08:12:52",
            "upload_time_iso_8601": "2024-06-05T08:12:52.171415Z",
            "url": "https://files.pythonhosted.org/packages/68/58/dbe525e70a33010633686e10ec723327a84b820aa52a26c7e02a9a996976/libmc-1.4.3-cp36-cp36m-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3bcd4d41f1f50a9f254199f121c51de01262995b89ba0ddba0a05332d41fd648",
                "md5": "557d03e607d18e0190345cfe4bcf7805",
                "sha256": "9f945e6a4a710979fe28304f8a0bf67ede4aae0ea4530f6b3bcb6ee284353a73"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "557d03e607d18e0190345cfe4bcf7805",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 1151434,
            "upload_time": "2024-06-05T08:12:54",
            "upload_time_iso_8601": "2024-06-05T08:12:54.476285Z",
            "url": "https://files.pythonhosted.org/packages/3b/cd/4d41f1f50a9f254199f121c51de01262995b89ba0ddba0a05332d41fd648/libmc-1.4.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "defe77bd087d2b4e21c9ac6bd46a5c7e28ffcd72ef5ce47a860a2fe104fac13c",
                "md5": "007af76f2f95a4de574cadefe02f8d9c",
                "sha256": "89d0e2ccc04e8cf5499c43440ac1067bfd218b5e6347d1b309e76176169f8fc9"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "007af76f2f95a4de574cadefe02f8d9c",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 1195753,
            "upload_time": "2024-06-05T08:12:55",
            "upload_time_iso_8601": "2024-06-05T08:12:55.930840Z",
            "url": "https://files.pythonhosted.org/packages/de/fe/77bd087d2b4e21c9ac6bd46a5c7e28ffcd72ef5ce47a860a2fe104fac13c/libmc-1.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d85e481efd0a3cf04e0d062199d80b72808de03b44add78fc3e1cdb3e9986dfc",
                "md5": "1ce63720c0009748873ef9bf6f3d285d",
                "sha256": "c63a36ae9e9197f3434e0bd759f9b889f7be36f36ef27634598746d33dc102d0"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp37-cp37m-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "1ce63720c0009748873ef9bf6f3d285d",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 1744656,
            "upload_time": "2024-06-05T08:12:57",
            "upload_time_iso_8601": "2024-06-05T08:12:57.902417Z",
            "url": "https://files.pythonhosted.org/packages/d8/5e/481efd0a3cf04e0d062199d80b72808de03b44add78fc3e1cdb3e9986dfc/libmc-1.4.3-cp37-cp37m-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "193449d11d7184d3e948be737da6c28396c0d7168d4ca10a7df5c1f9442d85ab",
                "md5": "64ccd96aaaa19df2c7515344a6bc0562",
                "sha256": "d4e8c3d7f6d8b010054a8aa61803d819781ee06b2770f09fb791b5da48d24663"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "64ccd96aaaa19df2c7515344a6bc0562",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 1736245,
            "upload_time": "2024-06-05T08:13:00",
            "upload_time_iso_8601": "2024-06-05T08:13:00.521350Z",
            "url": "https://files.pythonhosted.org/packages/19/34/49d11d7184d3e948be737da6c28396c0d7168d4ca10a7df5c1f9442d85ab/libmc-1.4.3-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "18d2e32ceec2d3f963baa57c8b6449daaa4bd3b86a0798aeca89a58dafc23483",
                "md5": "702bf46df84e43d84cc58bbce8de44a8",
                "sha256": "cd0ee7b5d2b4f3b9b987ed3180a2e4a001b3c9aa0009b2ce5db32d30a030412c"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "702bf46df84e43d84cc58bbce8de44a8",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 1229408,
            "upload_time": "2024-06-05T08:13:03",
            "upload_time_iso_8601": "2024-06-05T08:13:03.982918Z",
            "url": "https://files.pythonhosted.org/packages/18/d2/e32ceec2d3f963baa57c8b6449daaa4bd3b86a0798aeca89a58dafc23483/libmc-1.4.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "889f8e839dbd00cd6e579d61bd5760c13e31206560b2d706a6c61509ec8b8d72",
                "md5": "408202a199da2eb01ef7b1836c536a85",
                "sha256": "91a3e17467adf72d01639becc4a14982f0e3774d1d94ea42c1b47eae65997a22"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "408202a199da2eb01ef7b1836c536a85",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 1274100,
            "upload_time": "2024-06-05T08:13:05",
            "upload_time_iso_8601": "2024-06-05T08:13:05.467838Z",
            "url": "https://files.pythonhosted.org/packages/88/9f/8e839dbd00cd6e579d61bd5760c13e31206560b2d706a6c61509ec8b8d72/libmc-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bf76318708cf7ee62f65d82fe49c0646de79788b5ecb9cbdf5c4983d1c4ff8bc",
                "md5": "7b7db326e6f86356397d6eff9653d7e8",
                "sha256": "ce7e6a85ab1c38e06c0eaad31f3709cce220abe14719bf82d104d3d462975efb"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp38-cp38-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "7b7db326e6f86356397d6eff9653d7e8",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 1845489,
            "upload_time": "2024-06-05T08:13:07",
            "upload_time_iso_8601": "2024-06-05T08:13:07.203500Z",
            "url": "https://files.pythonhosted.org/packages/bf/76/318708cf7ee62f65d82fe49c0646de79788b5ecb9cbdf5c4983d1c4ff8bc/libmc-1.4.3-cp38-cp38-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95a0fdde567817eaff87a368a27a54316055f47c23c827635990f9a7e2f345cc",
                "md5": "458e8c904c04561c3219a8fde9cf5f23",
                "sha256": "73c9c486b3f4bd5483c272c31390b67fa041e15cdb94533cb4a889a8f60d8c2b"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "458e8c904c04561c3219a8fde9cf5f23",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 1845847,
            "upload_time": "2024-06-05T08:13:08",
            "upload_time_iso_8601": "2024-06-05T08:13:08.943010Z",
            "url": "https://files.pythonhosted.org/packages/95/a0/fdde567817eaff87a368a27a54316055f47c23c827635990f9a7e2f345cc/libmc-1.4.3-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bee35f387a0dec89eeed1efc49d8ecc7ab78828edf5df83a98591ad6cefdd134",
                "md5": "cf32d4f5ea4dd9c4d16a6ecca5c524b6",
                "sha256": "e9368c5c49e8e5c391a41d67b2816997a41b25cc4914778a97ee035e1f544616"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "cf32d4f5ea4dd9c4d16a6ecca5c524b6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1216257,
            "upload_time": "2024-06-05T08:13:10",
            "upload_time_iso_8601": "2024-06-05T08:13:10.352399Z",
            "url": "https://files.pythonhosted.org/packages/be/e3/5f387a0dec89eeed1efc49d8ecc7ab78828edf5df83a98591ad6cefdd134/libmc-1.4.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4868b7a5a2b958b2b8fbc9567ebd6c4cc600a116832781613f769b4e3ce6e34e",
                "md5": "82ac9e64e9de53e35a4344da9d183e3b",
                "sha256": "27ea25a5c9a00d1f28068ca484ed2841dca1570050ec531b844d3202f4590bfd"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "82ac9e64e9de53e35a4344da9d183e3b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1261716,
            "upload_time": "2024-06-05T08:13:12",
            "upload_time_iso_8601": "2024-06-05T08:13:12.451644Z",
            "url": "https://files.pythonhosted.org/packages/48/68/b7a5a2b958b2b8fbc9567ebd6c4cc600a116832781613f769b4e3ce6e34e/libmc-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "733845b6b61048f7a749b480f956c2c218dcc11fd46d60953048062e371b128e",
                "md5": "5b9b18a0c7a6b0eaaea6a1069ae60a29",
                "sha256": "b52a63c76323b39ca4a8e17ed1528b94f90a7ad366ef5347662fc9f29ffb5397"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp39-cp39-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "5b9b18a0c7a6b0eaaea6a1069ae60a29",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1809303,
            "upload_time": "2024-06-05T08:13:14",
            "upload_time_iso_8601": "2024-06-05T08:13:14.479198Z",
            "url": "https://files.pythonhosted.org/packages/73/38/45b6b61048f7a749b480f956c2c218dcc11fd46d60953048062e371b128e/libmc-1.4.3-cp39-cp39-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5b084c1d08d2a42581c40b362fa8eb2ddd52bce921684455b045ef38836c5bb1",
                "md5": "8229045dc7305848a3f46b60e84275ae",
                "sha256": "7d1e5f04c602e5258f9d5bfdd232c3bb87b2c8edc5345d597bda87ea86d39722"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8229045dc7305848a3f46b60e84275ae",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1797464,
            "upload_time": "2024-06-05T08:13:16",
            "upload_time_iso_8601": "2024-06-05T08:13:16.187463Z",
            "url": "https://files.pythonhosted.org/packages/5b/08/4c1d08d2a42581c40b362fa8eb2ddd52bce921684455b045ef38836c5bb1/libmc-1.4.3-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f577bd02ccecf80adce59b17b53f6d72f9afe5ec2f09018c1bd6e3b9a64a1ea5",
                "md5": "d84ab94e2d460f6d37a230bbf372616d",
                "sha256": "d3cb945fbe893439ad3c1cdca3386e0115603f119ae6c473c8fd895ab3717932"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "d84ab94e2d460f6d37a230bbf372616d",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": null,
            "size": 173949,
            "upload_time": "2024-06-05T08:13:17",
            "upload_time_iso_8601": "2024-06-05T08:13:17.841821Z",
            "url": "https://files.pythonhosted.org/packages/f5/77/bd02ccecf80adce59b17b53f6d72f9afe5ec2f09018c1bd6e3b9a64a1ea5/libmc-1.4.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9498f1efb46feb795995c64cc39cf62bacca1c04d007b9e8c2683d264c93cfbd",
                "md5": "8fc1ce30907586db3c5492b6e7258d99",
                "sha256": "f791c333e13a7342c78173d43eba3c2c5a4f87e426d58f78ff5efee81ebe7826"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8fc1ce30907586db3c5492b6e7258d99",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": null,
            "size": 166469,
            "upload_time": "2024-06-05T08:13:19",
            "upload_time_iso_8601": "2024-06-05T08:13:19.491390Z",
            "url": "https://files.pythonhosted.org/packages/94/98/f1efb46feb795995c64cc39cf62bacca1c04d007b9e8c2683d264c93cfbd/libmc-1.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "084e7d3073b52f94bc216f246398ce8efe1b6f6d1e85c46bb214164fee92b3a5",
                "md5": "5810b30299c25ae34e7bfc4ca5838503",
                "sha256": "40c1668bc389f8c83af0f10f0db0f1426eae50e7b5ec088312fbd393dcfd2c51"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "5810b30299c25ae34e7bfc4ca5838503",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": null,
            "size": 179158,
            "upload_time": "2024-06-05T08:13:21",
            "upload_time_iso_8601": "2024-06-05T08:13:21.310376Z",
            "url": "https://files.pythonhosted.org/packages/08/4e/7d3073b52f94bc216f246398ce8efe1b6f6d1e85c46bb214164fee92b3a5/libmc-1.4.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e4e98d638a8ac7bff77ebe5cf00c560d8a08afccfa0a194c8b2a8ce7efda4b52",
                "md5": "9a1301727feffdf8f738008dddea70a7",
                "sha256": "ce03d22026eba2856d86d2166a6225d6605066f472acd1366f43060cf9df66bb"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9a1301727feffdf8f738008dddea70a7",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": null,
            "size": 170911,
            "upload_time": "2024-06-05T08:13:22",
            "upload_time_iso_8601": "2024-06-05T08:13:22.607462Z",
            "url": "https://files.pythonhosted.org/packages/e4/e9/8d638a8ac7bff77ebe5cf00c560d8a08afccfa0a194c8b2a8ce7efda4b52/libmc-1.4.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d21cd796b5e1941e176c70b4dcac593986584e62be41dd1af58badf9d76eead1",
                "md5": "71299610d769526b6f36aafdf1bbecf7",
                "sha256": "c7f784af02a2368b1095daf168a2ff6e115b03c46f2dbbd0ea5fb0eef68c97ec"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "71299610d769526b6f36aafdf1bbecf7",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": null,
            "size": 176658,
            "upload_time": "2024-06-05T08:13:23",
            "upload_time_iso_8601": "2024-06-05T08:13:23.943467Z",
            "url": "https://files.pythonhosted.org/packages/d2/1c/d796b5e1941e176c70b4dcac593986584e62be41dd1af58badf9d76eead1/libmc-1.4.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "68a9b0d7bbb27c5bbb708c36fb9bd9335c5bc91cb4e3cbca8482202f8b7fe5f4",
                "md5": "b335b78ec3cf174947559b848d31dafa",
                "sha256": "c8c133bce9a4b5837aaf0c3e46826a630421fc63eef9f7d114d6d0659e682d6b"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b335b78ec3cf174947559b848d31dafa",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": null,
            "size": 168233,
            "upload_time": "2024-06-05T08:13:25",
            "upload_time_iso_8601": "2024-06-05T08:13:25.383701Z",
            "url": "https://files.pythonhosted.org/packages/68/a9/b0d7bbb27c5bbb708c36fb9bd9335c5bc91cb4e3cbca8482202f8b7fe5f4/libmc-1.4.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8de735e436bb57a771e40036bba732e4bd2c0a98f1e4abe0b6a8a94a26930fce",
                "md5": "42721c9290ee0a08efa56e457a0b68e5",
                "sha256": "c0b3ef4eb4e5d81cf132fbb8485b8c1d5d364026a51e602cb523dfe4245444ff"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "42721c9290ee0a08efa56e457a0b68e5",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": null,
            "size": 174289,
            "upload_time": "2024-06-05T08:13:26",
            "upload_time_iso_8601": "2024-06-05T08:13:26.827536Z",
            "url": "https://files.pythonhosted.org/packages/8d/e7/35e436bb57a771e40036bba732e4bd2c0a98f1e4abe0b6a8a94a26930fce/libmc-1.4.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7574be723ca63e83fcbbfa49760381325d4eb07cd36a994b475eddb7160e6cd3",
                "md5": "758b07d72ddb6314e7d42cd435bd1080",
                "sha256": "d01e988ad9535469c9e1c221b4364dc810957d6f7c327fcd660b39fd0491daaf"
            },
            "downloads": -1,
            "filename": "libmc-1.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "758b07d72ddb6314e7d42cd435bd1080",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": null,
            "size": 166729,
            "upload_time": "2024-06-05T08:13:28",
            "upload_time_iso_8601": "2024-06-05T08:13:28.232682Z",
            "url": "https://files.pythonhosted.org/packages/75/74/be723ca63e83fcbbfa49760381325d4eb07cd36a994b475eddb7160e6cd3/libmc-1.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-05 08:12:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "douban",
    "github_project": "libmc",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "libmc"
}
        
Elapsed time: 0.25701s