*****
qcore
*****
``qcore`` is a library of common utility functions used at Quora. It is used to
abstract out common functionality for other Quora libraries like `asynq <https://github.com/quora/asynq>`_.
Its component modules are discussed below. See the docstrings in the code
itself for more detail.
qcore.asserts
-------------
When a normal Python assert fails, it only indicates that there was a failure,
not what the bad values were that caused the assert to fail. This module
provides rich assertion helpers that automatically produce better error
messages. For example:
.. code-block:: python
>>> from qcore.asserts import assert_eq
>>> assert 5 == 2 * 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
>>> assert_eq(5, 2 * 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "qcore/asserts.py", line 82, in assert_eq
assert expected == actual, _assert_fail_message(message, expected, actual, '!=', extra)
AssertionError: 5 != 4
Similar methods are provided by the standard library's ``unittest`` package,
but those are tied to the ``TestCase`` class instead of being standalone
functions.
qcore.caching
-------------
This provides helpers for caching data. Some examples include:
.. code-block:: python
from qcore.caching import cached_per_instance, lazy_constant
@lazy_constant
def some_function():
# this will only be executed the first time some_function() is called;
# afterwards it will be cached
return expensive_computation()
class SomeClass:
@cached_per_instance()
def some_method(self, a, b):
# for any instance of SomeClass, this will only be executed once
return expensive_computation(a, b)
qcore.debug
-----------
This module provides some helpers useful for debugging Python. Among others, it
includes the ``@qcore.debug.trace()`` decorator, which can be used to trace
every time a function is called.
qcore.decorators
----------------
This module provides an abstraction for class-based decorators that supports
transparently decorating functions, methods, classmethods, and staticmethods
while also providing the option to add additional custom attributes. For
example, it could be used to provide a caching decorator that adds a ``.dirty``
attribute to decorated functions to dirty their cache:
.. code-block:: python
from qcore.decorators import DecoratorBase, DecoratorBinder, decorate
class CacheDecoratorBinder(DecoratorBinder):
def dirty(self, *args):
if self.instance is None:
return self.decorator.dirty(*args)
else:
return self.decorator.dirty(self.instance, *args)
class CacheDecorator(DecoratorBase):
binder_cls = CacheDecoratorBinder
def __init__(self, *args):
super().__init__(*args)
self._cache = {}
def dirty(self, *args):
try:
del self._cache[args]
except KeyError:
pass
def __call__(self, *args):
try:
return self._cache[args]
except KeyError:
value = self.fn(*args)
self._cache[args] = value
return value
cached = decorate(CacheDecorator)
qcore.enum
----------
This module provides an abstraction for defining enums. You can define an enum
as follows:
.. code-block:: python
from qcore.enum import Enum
class Color(Enum):
red = 1
green = 2
blue = 3
qcore.errors
------------
This module provides some commonly useful exception classes and helpers for
reraising exceptions from a different place.
qcore.events
------------
This provides an abstraction for registering events and running callbacks.
Example usage:
.. code-block:: python
>>> from qcore.events import EventHook
>>> event = EventHook()
>>> def callback():
... print('callback called')
...
>>> event.subscribe(callback)
>>> event.trigger()
callback called
qcore.helpers
-------------
This provides a number of small helper functions.
qcore.inspectable_class
-----------------------
This provides a base class that automatically provides hashing, equality
checks, and a readable ``repr()`` result. Example usage:
.. code-block:: python
>>> from qcore.inspectable_class import InspectableClass
>>> class Pair(InspectableClass):
... def __init__(self, a, b):
... self.a = a
... self.b = b
...
>>> Pair(1, 2)
Pair(a=1, b=2)
>>> Pair(1, 2) == Pair(1, 2)
True
qcore.inspection
----------------
This provides functionality similar to the standard ``inspect`` module. Among
others, it includes the ``get_original_fn`` function, which extracts the
underlying function from a ``qcore.decorators``-decorated object.
qcore.microtime
---------------
This includes helpers for dealing with time, represented as an integer number
of microseconds since the Unix epoch.
qcore.testing
-------------
This provides helpers to use in unit tests. Among others, it provides an
``Anything`` object that compares equal to any other Python object.
Raw data
{
"_id": null,
"home_page": "https://github.com/quora/qcore",
"name": "qcore",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "quora, core, common, utility",
"author": null,
"author_email": "\"Quora, Inc.\" <asynq@quora.com>",
"download_url": "https://files.pythonhosted.org/packages/c5/0c/aad40d2a44366390aef0a5c8313da0201481c9f743a96059c042a3688c86/qcore-1.11.1.tar.gz",
"platform": null,
"description": "*****\nqcore\n*****\n\n``qcore`` is a library of common utility functions used at Quora. It is used to\nabstract out common functionality for other Quora libraries like `asynq <https://github.com/quora/asynq>`_.\n\nIts component modules are discussed below. See the docstrings in the code\nitself for more detail.\n\nqcore.asserts\n-------------\n\nWhen a normal Python assert fails, it only indicates that there was a failure,\nnot what the bad values were that caused the assert to fail. This module\nprovides rich assertion helpers that automatically produce better error\nmessages. For example:\n\n.. code-block:: python\n\n >>> from qcore.asserts import assert_eq\n >>> assert 5 == 2 * 2\n Traceback (most recent call last):\n File \"<stdin>\", line 1, in <module>\n AssertionError\n >>> assert_eq(5, 2 * 2)\n Traceback (most recent call last):\n File \"<stdin>\", line 1, in <module>\n File \"qcore/asserts.py\", line 82, in assert_eq\n assert expected == actual, _assert_fail_message(message, expected, actual, '!=', extra)\n AssertionError: 5 != 4\n\nSimilar methods are provided by the standard library's ``unittest`` package,\nbut those are tied to the ``TestCase`` class instead of being standalone\nfunctions.\n\nqcore.caching\n-------------\n\nThis provides helpers for caching data. Some examples include:\n\n.. code-block:: python\n\n from qcore.caching import cached_per_instance, lazy_constant\n\n @lazy_constant\n def some_function():\n # this will only be executed the first time some_function() is called;\n # afterwards it will be cached\n return expensive_computation()\n\n class SomeClass:\n @cached_per_instance()\n def some_method(self, a, b):\n # for any instance of SomeClass, this will only be executed once\n return expensive_computation(a, b)\n\nqcore.debug\n-----------\n\nThis module provides some helpers useful for debugging Python. Among others, it\nincludes the ``@qcore.debug.trace()`` decorator, which can be used to trace\nevery time a function is called.\n\nqcore.decorators\n----------------\n\nThis module provides an abstraction for class-based decorators that supports\ntransparently decorating functions, methods, classmethods, and staticmethods\nwhile also providing the option to add additional custom attributes. For\nexample, it could be used to provide a caching decorator that adds a ``.dirty``\nattribute to decorated functions to dirty their cache:\n\n.. code-block:: python\n\n from qcore.decorators import DecoratorBase, DecoratorBinder, decorate\n\n class CacheDecoratorBinder(DecoratorBinder):\n def dirty(self, *args):\n if self.instance is None:\n return self.decorator.dirty(*args)\n else:\n return self.decorator.dirty(self.instance, *args)\n\n class CacheDecorator(DecoratorBase):\n binder_cls = CacheDecoratorBinder\n\n def __init__(self, *args):\n super().__init__(*args)\n self._cache = {}\n\n def dirty(self, *args):\n try:\n del self._cache[args]\n except KeyError:\n pass\n\n def __call__(self, *args):\n try:\n return self._cache[args]\n except KeyError:\n value = self.fn(*args)\n self._cache[args] = value\n return value\n\n cached = decorate(CacheDecorator)\n\nqcore.enum\n----------\n\nThis module provides an abstraction for defining enums. You can define an enum\nas follows:\n\n.. code-block:: python\n\n from qcore.enum import Enum\n\n class Color(Enum):\n red = 1\n green = 2\n blue = 3\n\nqcore.errors\n------------\n\nThis module provides some commonly useful exception classes and helpers for\nreraising exceptions from a different place.\n\nqcore.events\n------------\n\nThis provides an abstraction for registering events and running callbacks.\nExample usage:\n\n.. code-block:: python\n\n >>> from qcore.events import EventHook\n >>> event = EventHook()\n >>> def callback():\n ... print('callback called')\n ...\n >>> event.subscribe(callback)\n >>> event.trigger()\n callback called\n\nqcore.helpers\n-------------\n\nThis provides a number of small helper functions.\n\nqcore.inspectable_class\n-----------------------\n\nThis provides a base class that automatically provides hashing, equality\nchecks, and a readable ``repr()`` result. Example usage:\n\n.. code-block:: python\n\n >>> from qcore.inspectable_class import InspectableClass\n >>> class Pair(InspectableClass):\n ... def __init__(self, a, b):\n ... self.a = a\n ... self.b = b\n ...\n >>> Pair(1, 2)\n Pair(a=1, b=2)\n >>> Pair(1, 2) == Pair(1, 2)\n True\n\nqcore.inspection\n----------------\n\nThis provides functionality similar to the standard ``inspect`` module. Among\nothers, it includes the ``get_original_fn`` function, which extracts the\nunderlying function from a ``qcore.decorators``-decorated object.\n\nqcore.microtime\n---------------\n\nThis includes helpers for dealing with time, represented as an integer number\nof microseconds since the Unix epoch.\n\nqcore.testing\n-------------\n\nThis provides helpers to use in unit tests. Among others, it provides an\n``Anything`` object that compares equal to any other Python object.\n",
"bugtrack_url": null,
"license": "Apache Software License",
"summary": null,
"version": "1.11.1",
"project_urls": {
"Homepage": "https://github.com/quora/qcore"
},
"split_keywords": [
"quora",
" core",
" common",
" utility"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "650efe94b737919a81bac3fd0881d18c31b03fa91c78e2230251bd70ccc5ec1f",
"md5": "7556c925eb79d99bb1b54af44a405c16",
"sha256": "df810b30747d86e37e8b19e1bc8ecc7bc7c188674b4b202b43c7610795016aa1"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "7556c925eb79d99bb1b54af44a405c16",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 500602,
"upload_time": "2024-10-11T04:55:43",
"upload_time_iso_8601": "2024-10-11T04:55:43.349821Z",
"url": "https://files.pythonhosted.org/packages/65/0e/fe94b737919a81bac3fd0881d18c31b03fa91c78e2230251bd70ccc5ec1f/qcore-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "44f062c7139d8cda570d565b5270a46ac64fd438efab40ee09f026c1429100df",
"md5": "b3ac436df220ec856841f586d0b0fd7b",
"sha256": "87180c2f906479bc19892eb7df8e5a4ad7f2fcfc48554b0b82343162bda87552"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "b3ac436df220ec856841f586d0b0fd7b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2465589,
"upload_time": "2024-10-11T04:55:45",
"upload_time_iso_8601": "2024-10-11T04:55:45.402986Z",
"url": "https://files.pythonhosted.org/packages/44/f0/62c7139d8cda570d565b5270a46ac64fd438efab40ee09f026c1429100df/qcore-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1e0f0885d5e952fcfb9b051a109e8a72a6035b47fcff9fc5fc546597018a1144",
"md5": "4137d7b283559dcae93ec6f453018934",
"sha256": "45e91a16b09ecd43dcb19d5def9781f152c2477013c1d0c2c8395c8436a64f08"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "4137d7b283559dcae93ec6f453018934",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2347814,
"upload_time": "2024-10-11T04:55:47",
"upload_time_iso_8601": "2024-10-11T04:55:47.754060Z",
"url": "https://files.pythonhosted.org/packages/1e/0f/0885d5e952fcfb9b051a109e8a72a6035b47fcff9fc5fc546597018a1144/qcore-1.11.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a71454be8c0cf6b1f2cb1420c5ff86884321e602b2b9548a3bf87dfc96701560",
"md5": "befcc7c3d8f5139b9b7543720ffac496",
"sha256": "540d027c243bcbf09277115595d7089291367bcfa7b3e15aeee2d087707ffec0"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "befcc7c3d8f5139b9b7543720ffac496",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2330164,
"upload_time": "2024-10-11T04:55:49",
"upload_time_iso_8601": "2024-10-11T04:55:49.815063Z",
"url": "https://files.pythonhosted.org/packages/a7/14/54be8c0cf6b1f2cb1420c5ff86884321e602b2b9548a3bf87dfc96701560/qcore-1.11.1-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cca9fa875a92fec0a60883ce4661b7193f63e67b22304da96afeb4ed75aa6378",
"md5": "510d0265e3196eff0cb826e1d1578510",
"sha256": "501429b772362abbb3a415dc7cfebaa1d4cdba456bed4927c28b33d772b186ca"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "510d0265e3196eff0cb826e1d1578510",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2418454,
"upload_time": "2024-10-11T04:55:51",
"upload_time_iso_8601": "2024-10-11T04:55:51.764210Z",
"url": "https://files.pythonhosted.org/packages/cc/a9/fa875a92fec0a60883ce4661b7193f63e67b22304da96afeb4ed75aa6378/qcore-1.11.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0d20c6a42ca5ed5e55df0d539acc7adbca1783e3d84e8ae65894ce8f17ba1d58",
"md5": "9e22ddc1eb4d4684de14e02621cf5f43",
"sha256": "ede4b51586b34571306a34bd59ed64dbe2d0bc417b674b01651e409b5c896a2d"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "9e22ddc1eb4d4684de14e02621cf5f43",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 397880,
"upload_time": "2024-10-11T04:55:53",
"upload_time_iso_8601": "2024-10-11T04:55:53.676389Z",
"url": "https://files.pythonhosted.org/packages/0d/20/c6a42ca5ed5e55df0d539acc7adbca1783e3d84e8ae65894ce8f17ba1d58/qcore-1.11.1-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "359df0b10cd40285043d71dc3b83beb912141bc81d3bc3eff24ebbe4272bfd76",
"md5": "cd1a347ff2b25fb4c0090575eb477907",
"sha256": "dad495f8178510b47d58478932c309dcb86f2b4ddb8e2f6cc104e43aba3fe45e"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "cd1a347ff2b25fb4c0090575eb477907",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 447039,
"upload_time": "2024-10-11T04:55:54",
"upload_time_iso_8601": "2024-10-11T04:55:54.812415Z",
"url": "https://files.pythonhosted.org/packages/35/9d/f0b10cd40285043d71dc3b83beb912141bc81d3bc3eff24ebbe4272bfd76/qcore-1.11.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ef44d856c030c58fb3e8d1d58cfa7197415ac49cc358e744bd4ef8676c9ab393",
"md5": "0c279663278046f57d2c961ed122a260",
"sha256": "cdaf5a8cce5e3e8715f52c235a5f7e2f55c5e392b5d7c30c862d19ec82c8ab05"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "0c279663278046f57d2c961ed122a260",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 504519,
"upload_time": "2024-10-11T04:55:55",
"upload_time_iso_8601": "2024-10-11T04:55:55.896421Z",
"url": "https://files.pythonhosted.org/packages/ef/44/d856c030c58fb3e8d1d58cfa7197415ac49cc358e744bd4ef8676c9ab393/qcore-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e76f851f6e0141ef4505d86d726b6b64dba038485ead50532311cfc3761bb463",
"md5": "5f34534ad1b2deeecb21bbeb05605311",
"sha256": "f9856fe0b2b6b42cfe2dec8262a6ae58bc914e242af5f148db89cee402ed103b"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "5f34534ad1b2deeecb21bbeb05605311",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2684410,
"upload_time": "2024-10-11T04:55:57",
"upload_time_iso_8601": "2024-10-11T04:55:57.080614Z",
"url": "https://files.pythonhosted.org/packages/e7/6f/851f6e0141ef4505d86d726b6b64dba038485ead50532311cfc3761bb463/qcore-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8ed6bdf0ce8c9d2342ee26632407f259cf00070376a79c6d770abaac70adac56",
"md5": "205f85ec42793346126147fc87c95fad",
"sha256": "7ba6afc72a05858360c9229d5b52ac8a1d8992aad6bb1a1d6d40622a0e6eb858"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "205f85ec42793346126147fc87c95fad",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2545621,
"upload_time": "2024-10-11T04:55:59",
"upload_time_iso_8601": "2024-10-11T04:55:59.102370Z",
"url": "https://files.pythonhosted.org/packages/8e/d6/bdf0ce8c9d2342ee26632407f259cf00070376a79c6d770abaac70adac56/qcore-1.11.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7bd6dff2803fea8694eb31c9193646c15a7c5f38f4e3466db762f9caf993d036",
"md5": "f25629646846e84a54a4c9dbd7160d51",
"sha256": "8600b9f4c673e8473b95c284b7c26edb010e448f099ddcb6e209f8d956b1fadd"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "f25629646846e84a54a4c9dbd7160d51",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2548785,
"upload_time": "2024-10-11T04:56:00",
"upload_time_iso_8601": "2024-10-11T04:56:00.381439Z",
"url": "https://files.pythonhosted.org/packages/7b/d6/dff2803fea8694eb31c9193646c15a7c5f38f4e3466db762f9caf993d036/qcore-1.11.1-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "25dbf52f448c2340551f6a28512459459b4322688aff92b4aba0179c3aec9001",
"md5": "8d04f91cea8f786b0664c8af31c7d770",
"sha256": "0f86ba66ded4971bdacc72dc69e9c416ee80a0a1cbfdaab01c371b5720dff3c3"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "8d04f91cea8f786b0664c8af31c7d770",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2632463,
"upload_time": "2024-10-11T04:56:02",
"upload_time_iso_8601": "2024-10-11T04:56:02.469100Z",
"url": "https://files.pythonhosted.org/packages/25/db/f52f448c2340551f6a28512459459b4322688aff92b4aba0179c3aec9001/qcore-1.11.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2d0e67b8304a1fa13698ed90c0cdd4f73697c1847c47b2a8a99a5801f3df69bf",
"md5": "1efc80982385a5cad7c1f2fabd8f1cbf",
"sha256": "605a974de4b48845f87eac490e800b65b383cf7d29ecf36db9f5f35a9a847c2a"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "1efc80982385a5cad7c1f2fabd8f1cbf",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 396696,
"upload_time": "2024-10-11T04:56:04",
"upload_time_iso_8601": "2024-10-11T04:56:04.554204Z",
"url": "https://files.pythonhosted.org/packages/2d/0e/67b8304a1fa13698ed90c0cdd4f73697c1847c47b2a8a99a5801f3df69bf/qcore-1.11.1-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f72930040205ee148bb40ee1663d7aa24d6021155e8bc7ce386d27f2148f311c",
"md5": "12a6d7937570cd55d218b3ef36d4bfaf",
"sha256": "a437ecdf663650e0c4f0cf8128bcb76a2362d368cfe92a17c7d39ab07d239d94"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "12a6d7937570cd55d218b3ef36d4bfaf",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 447586,
"upload_time": "2024-10-11T04:56:05",
"upload_time_iso_8601": "2024-10-11T04:56:05.816132Z",
"url": "https://files.pythonhosted.org/packages/f7/29/30040205ee148bb40ee1663d7aa24d6021155e8bc7ce386d27f2148f311c/qcore-1.11.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7cf86e4376405fa23029be1ec35318a042210ebd0f9236d62bb84c307187926a",
"md5": "86d7304dd4876a28eb080e1aa73ad99e",
"sha256": "680e410b427665e05290298fb163cbbe0d2f4bbfcfb3653d27400c748734d9d7"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp312-cp312-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "86d7304dd4876a28eb080e1aa73ad99e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 496903,
"upload_time": "2024-10-11T04:56:06",
"upload_time_iso_8601": "2024-10-11T04:56:06.934575Z",
"url": "https://files.pythonhosted.org/packages/7c/f8/6e4376405fa23029be1ec35318a042210ebd0f9236d62bb84c307187926a/qcore-1.11.1-cp312-cp312-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d69d070c0584425ae2884d3f990b19f4048e9ee8743845a6653d5a2f79b62bb0",
"md5": "a35555b23d02238eaeb58a7fece7c0c5",
"sha256": "dd17cace8e06c82655688834dbc43c34a244d814de6cb015cfba256bd6bc9095"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a35555b23d02238eaeb58a7fece7c0c5",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2658396,
"upload_time": "2024-10-11T04:56:09",
"upload_time_iso_8601": "2024-10-11T04:56:09.048356Z",
"url": "https://files.pythonhosted.org/packages/d6/9d/070c0584425ae2884d3f990b19f4048e9ee8743845a6653d5a2f79b62bb0/qcore-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "83222098336cf0c5666f492ba42a0e29d9f807680044e2a180b23cd4889f53d3",
"md5": "bc497b182e2412433c4fe21af4e935bd",
"sha256": "d5ddca505be0ed50f3175fb8278d5358020d568d8303dd79a3ba793411902840"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "bc497b182e2412433c4fe21af4e935bd",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2504133,
"upload_time": "2024-10-11T04:56:10",
"upload_time_iso_8601": "2024-10-11T04:56:10.430716Z",
"url": "https://files.pythonhosted.org/packages/83/22/2098336cf0c5666f492ba42a0e29d9f807680044e2a180b23cd4889f53d3/qcore-1.11.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "803bc6e1efe2747a53b48eef431e51f3e0d8707986b738bc92680ee3a972718b",
"md5": "e06e3eac1065e31e938225636164da3f",
"sha256": "874f22c3cef33d40fe3faca8c14875bfba249d5a69ef05bdcd36d3e045e6c82f"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "e06e3eac1065e31e938225636164da3f",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2520414,
"upload_time": "2024-10-11T04:56:12",
"upload_time_iso_8601": "2024-10-11T04:56:12.444270Z",
"url": "https://files.pythonhosted.org/packages/80/3b/c6e1efe2747a53b48eef431e51f3e0d8707986b738bc92680ee3a972718b/qcore-1.11.1-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "34f85dbf821f2da2166c6ac04a4d40d35938fd178855e7af363b80254a5bc93d",
"md5": "48f241d500e9b829b98be4d9bd5b2f58",
"sha256": "5f30cc77193a677040036563bcb470b3b4a9972609d75a1ad6737728d47a80be"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "48f241d500e9b829b98be4d9bd5b2f58",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2615112,
"upload_time": "2024-10-11T04:56:14",
"upload_time_iso_8601": "2024-10-11T04:56:14.450213Z",
"url": "https://files.pythonhosted.org/packages/34/f8/5dbf821f2da2166c6ac04a4d40d35938fd178855e7af363b80254a5bc93d/qcore-1.11.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "36b18164e2d3be46e2feade7a13e0dae6e8097f57be7609c8a858a072aac6584",
"md5": "357d22aa4ff76e0e3d8d289531ff495e",
"sha256": "6405978e1a63712077c7aa515365f8dedc681c3ea0501c20d6fe15b664f2a5f7"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "357d22aa4ff76e0e3d8d289531ff495e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 391058,
"upload_time": "2024-10-11T04:56:16",
"upload_time_iso_8601": "2024-10-11T04:56:16.433399Z",
"url": "https://files.pythonhosted.org/packages/36/b1/8164e2d3be46e2feade7a13e0dae6e8097f57be7609c8a858a072aac6584/qcore-1.11.1-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ae498b6decdceab3a6c2ddef4a4d8f743f77b0db4205657f62895d2de36f77ed",
"md5": "8c59a5c0eeb723b63ef42137aa19cf5f",
"sha256": "754ab7287eda46ba09dee7ee5bce7384a45752f0ff0df89fb50d8d68c4fbf24b"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "8c59a5c0eeb723b63ef42137aa19cf5f",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 439916,
"upload_time": "2024-10-11T04:56:17",
"upload_time_iso_8601": "2024-10-11T04:56:17.548679Z",
"url": "https://files.pythonhosted.org/packages/ae/49/8b6decdceab3a6c2ddef4a4d8f743f77b0db4205657f62895d2de36f77ed/qcore-1.11.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5ff50440999394d60cb6ea863c3a386c8a815e7db93366723e128a1e6538da0e",
"md5": "e8de65c75e6a24d184941f351ea07130",
"sha256": "a0d3eff26b317bdc0aaaeee4dd10b8dfc44701c3f9680aa25659c7f41fa2c866"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp313-cp313-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "e8de65c75e6a24d184941f351ea07130",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 493990,
"upload_time": "2024-10-11T04:56:18",
"upload_time_iso_8601": "2024-10-11T04:56:18.752028Z",
"url": "https://files.pythonhosted.org/packages/5f/f5/0440999394d60cb6ea863c3a386c8a815e7db93366723e128a1e6538da0e/qcore-1.11.1-cp313-cp313-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ef8fb5acaeb262ae0fccd211f89d0aecd61997ddd0cf4370ba6ea29c15875c06",
"md5": "e6c9b42e3a6589b29c3ef2d83409e6fe",
"sha256": "a55aed745ade74d2a23c6233c17aafbc1deb4d7b505b37b58ece9c9c2265a388"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e6c9b42e3a6589b29c3ef2d83409e6fe",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 2633319,
"upload_time": "2024-10-11T04:56:20",
"upload_time_iso_8601": "2024-10-11T04:56:20.093893Z",
"url": "https://files.pythonhosted.org/packages/ef/8f/b5acaeb262ae0fccd211f89d0aecd61997ddd0cf4370ba6ea29c15875c06/qcore-1.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5d5560af98e1e7812c6b8970471e10984dd9b39367ebf11f0e81813910de5e23",
"md5": "7c410675b6f5a6fd8c3c688fbfc5ce15",
"sha256": "7d0fd3ea080b1fd673c17446fb38be2804d11eb14fd6415f7b07ed12e5ace60f"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "7c410675b6f5a6fd8c3c688fbfc5ce15",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 2470609,
"upload_time": "2024-10-11T04:56:21",
"upload_time_iso_8601": "2024-10-11T04:56:21.454911Z",
"url": "https://files.pythonhosted.org/packages/5d/55/60af98e1e7812c6b8970471e10984dd9b39367ebf11f0e81813910de5e23/qcore-1.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a708b8092f3a9a7577be6f9e614482b94a41200a5ba3b7e493a1ee6b5b24aef5",
"md5": "175ce10a16775b41b389443578bd1fe5",
"sha256": "5a562f7f6bc3e39226e2ee62b9f85cfcda8b01eb051ae67113b5b96942cdf9e4"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp313-cp313-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "175ce10a16775b41b389443578bd1fe5",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 2502050,
"upload_time": "2024-10-11T04:56:23",
"upload_time_iso_8601": "2024-10-11T04:56:23.518017Z",
"url": "https://files.pythonhosted.org/packages/a7/08/b8092f3a9a7577be6f9e614482b94a41200a5ba3b7e493a1ee6b5b24aef5/qcore-1.11.1-cp313-cp313-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "159ba8c85b55d8ed8b23106179e44c3865b65b8fa0f433c1449cfee5df59b5b5",
"md5": "21eadfdc11a111ec806fb1b8760a790b",
"sha256": "4e3eee75e24828edbc89119f25747a52092a409ce4b68d51541f4db8a58a6d61"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "21eadfdc11a111ec806fb1b8760a790b",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 2603745,
"upload_time": "2024-10-11T04:56:24",
"upload_time_iso_8601": "2024-10-11T04:56:24.857786Z",
"url": "https://files.pythonhosted.org/packages/15/9b/a8c85b55d8ed8b23106179e44c3865b65b8fa0f433c1449cfee5df59b5b5/qcore-1.11.1-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "099def65daa848fac866b6a3c6a6adeea7a73497674baf6b4228cb959246bba0",
"md5": "63e80de1defceba5cdad73ffac905ac3",
"sha256": "99f9ab341c38b02d8641375c2c87a45234f78fb1a8dcf26899c1e7374005857f"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "63e80de1defceba5cdad73ffac905ac3",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 389748,
"upload_time": "2024-10-11T04:56:26",
"upload_time_iso_8601": "2024-10-11T04:56:26.385645Z",
"url": "https://files.pythonhosted.org/packages/09/9d/ef65daa848fac866b6a3c6a6adeea7a73497674baf6b4228cb959246bba0/qcore-1.11.1-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5b1ae1643376d42756d2d5343cb0d4a276cea844ed86e7e296ec8e75981043e2",
"md5": "c09e0770699cbbac1cc400699cac82a2",
"sha256": "7635eef06f0aa3cd38001c9058d7401fedb52929b5e54eb5ca3af41396e90c7a"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "c09e0770699cbbac1cc400699cac82a2",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 437968,
"upload_time": "2024-10-11T04:56:27",
"upload_time_iso_8601": "2024-10-11T04:56:27.499713Z",
"url": "https://files.pythonhosted.org/packages/5b/1a/e1643376d42756d2d5343cb0d4a276cea844ed86e7e296ec8e75981043e2/qcore-1.11.1-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6bfc9378d1967830b21ae7c1689b7c97f33401ccc54c369995cd07f45db074ee",
"md5": "3fc895201fadc4a79ab8d53bf3503ca4",
"sha256": "35483d0df49c38e5fd957fcc7da734383a9cf3ad319142d1fc25b9f4211decc6"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "3fc895201fadc4a79ab8d53bf3503ca4",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 503265,
"upload_time": "2024-10-11T04:56:28",
"upload_time_iso_8601": "2024-10-11T04:56:28.650273Z",
"url": "https://files.pythonhosted.org/packages/6b/fc/9378d1967830b21ae7c1689b7c97f33401ccc54c369995cd07f45db074ee/qcore-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "03c0e15dcef92a42c4be1346ca3746449c53a7ea81b456835f9daa36d7ff070c",
"md5": "6e0627ba482201619307a953b7ae5886",
"sha256": "2e8a3c9b7c0769899ce8f15bbd63a6c71cb7a9010cada2488c7b2edcf2d169aa"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6e0627ba482201619307a953b7ae5886",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 2474089,
"upload_time": "2024-10-11T04:56:30",
"upload_time_iso_8601": "2024-10-11T04:56:30.026671Z",
"url": "https://files.pythonhosted.org/packages/03/c0/e15dcef92a42c4be1346ca3746449c53a7ea81b456835f9daa36d7ff070c/qcore-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bd215ea3a408a18d15be3f6d664aea862c1a90748c43b67bdc80b598320a2b62",
"md5": "019e2785221e9104e26b40dbdc797733",
"sha256": "31d7c82baf88ac858b17db068ba41be0db6d6ea9001b543588764f3e2de548f0"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "019e2785221e9104e26b40dbdc797733",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 2356230,
"upload_time": "2024-10-11T04:56:32",
"upload_time_iso_8601": "2024-10-11T04:56:32.125244Z",
"url": "https://files.pythonhosted.org/packages/bd/21/5ea3a408a18d15be3f6d664aea862c1a90748c43b67bdc80b598320a2b62/qcore-1.11.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "344b6571521a0e1833a5192706facb1ef765e84177456201c9cdffe13fc96dfd",
"md5": "88342a876d153f52d2143a12754245b3",
"sha256": "6a309afb0e20d278370edd3ced9ec3dde948c775fe38d1f140716e25cff0df2a"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp39-cp39-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "88342a876d153f52d2143a12754245b3",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 2341937,
"upload_time": "2024-10-11T04:56:33",
"upload_time_iso_8601": "2024-10-11T04:56:33.387684Z",
"url": "https://files.pythonhosted.org/packages/34/4b/6571521a0e1833a5192706facb1ef765e84177456201c9cdffe13fc96dfd/qcore-1.11.1-cp39-cp39-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "15692d33c333f62a2410e5724489ab6ef24df726b7cf5ce393b4846b19b41c8a",
"md5": "00df717fd82ad2810711770fcbfd564c",
"sha256": "354a3b41afdd9438c6cbf35ade409f7aec3083ed54b535c2acee8575487caa50"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "00df717fd82ad2810711770fcbfd564c",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 2426850,
"upload_time": "2024-10-11T04:56:35",
"upload_time_iso_8601": "2024-10-11T04:56:35.391714Z",
"url": "https://files.pythonhosted.org/packages/15/69/2d33c333f62a2410e5724489ab6ef24df726b7cf5ce393b4846b19b41c8a/qcore-1.11.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "10b99b1b215e39f6959a5c373dd39ae728fcbc97eb790c04039edcacab1708d2",
"md5": "d1ddeb537b5ef6501bfece010b9e5f1d",
"sha256": "73df4bfff0d68714c29e18f960f263c36ed35eabb481abb5267a82213e964464"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "d1ddeb537b5ef6501bfece010b9e5f1d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 399668,
"upload_time": "2024-10-11T04:56:36",
"upload_time_iso_8601": "2024-10-11T04:56:36.572847Z",
"url": "https://files.pythonhosted.org/packages/10/b9/9b1b215e39f6959a5c373dd39ae728fcbc97eb790c04039edcacab1708d2/qcore-1.11.1-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "329401fd72b4dff19a1d0525e4575f831f8728fdcf496d6a6411bc2d8d36a9ee",
"md5": "94d63a67441d8581266718cb6965f794",
"sha256": "e511dd87c3f1950c4a7b3a62e22d2ae8a376b3eab1253646a3e717990d859d1a"
},
"downloads": -1,
"filename": "qcore-1.11.1-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "94d63a67441d8581266718cb6965f794",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 448660,
"upload_time": "2024-10-11T04:56:37",
"upload_time_iso_8601": "2024-10-11T04:56:37.714271Z",
"url": "https://files.pythonhosted.org/packages/32/94/01fd72b4dff19a1d0525e4575f831f8728fdcf496d6a6411bc2d8d36a9ee/qcore-1.11.1-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c50caad40d2a44366390aef0a5c8313da0201481c9f743a96059c042a3688c86",
"md5": "3430c257d659d2a0da9bde4124ba19ad",
"sha256": "c98ef47209a5d2a0f1bedda716e47325b8a42c1f148a36262e038be1a74c1efc"
},
"downloads": -1,
"filename": "qcore-1.11.1.tar.gz",
"has_sig": false,
"md5_digest": "3430c257d659d2a0da9bde4124ba19ad",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 53575,
"upload_time": "2024-10-11T04:56:39",
"upload_time_iso_8601": "2024-10-11T04:56:39.129997Z",
"url": "https://files.pythonhosted.org/packages/c5/0c/aad40d2a44366390aef0a5c8313da0201481c9f743a96059c042a3688c86/qcore-1.11.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-11 04:56:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "quora",
"github_project": "qcore",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "pytest",
"specs": [
[
"==",
"8.3.3"
]
]
},
{
"name": "mypy",
"specs": [
[
"==",
"1.11.2"
]
]
},
{
"name": "black",
"specs": [
[
"==",
"24.10.0"
]
]
}
],
"tox": true,
"lcname": "qcore"
}