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"
}