*****
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": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "quora core common utility",
"author": "Quora, Inc.",
"author_email": "asynq@quora.com",
"download_url": "https://files.pythonhosted.org/packages/41/9e/3f94ced42287473e3a6383faa8d5b04bc397699965f8fe3143dc506f9dec/qcore-1.10.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": "Quora's core utility library",
"version": "1.10.1",
"project_urls": {
"Homepage": "https://github.com/quora/qcore"
},
"split_keywords": [
"quora",
"core",
"common",
"utility"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "35a0f4d77ff0b2d53db6c78dc301c5411770aad83a4f4b4716d12c5b44f0511d",
"md5": "db5717813b1f6105588b0ccfc3dc59fc",
"sha256": "ddd730f0ad88f8c4489ad2880a37135676778d1bf7819fa4f333d33b9aa59851"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "db5717813b1f6105588b0ccfc3dc59fc",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 501410,
"upload_time": "2024-03-04T16:52:11",
"upload_time_iso_8601": "2024-03-04T16:52:11.984272Z",
"url": "https://files.pythonhosted.org/packages/35/a0/f4d77ff0b2d53db6c78dc301c5411770aad83a4f4b4716d12c5b44f0511d/qcore-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e89aebf3d00685d9579398266c4d05a83fff5c9eea87951f4a9b227f14fa1aa2",
"md5": "c372719d9a4da76f93f7f47e4d4cc2d3",
"sha256": "0365b778c2114595580ebb1bc772d0de4682af71e194385a109c575b1acefef8"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c372719d9a4da76f93f7f47e4d4cc2d3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 2466159,
"upload_time": "2024-03-04T16:52:14",
"upload_time_iso_8601": "2024-03-04T16:52:14.519463Z",
"url": "https://files.pythonhosted.org/packages/e8/9a/ebf3d00685d9579398266c4d05a83fff5c9eea87951f4a9b227f14fa1aa2/qcore-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f10e4d984fe67c72915ffe97721d1464e869417eda674a457706c2ec79a67da8",
"md5": "7e6d370f15623988c6f6be0bfe3bddbe",
"sha256": "f0202c3741b767d86b5763ae8da0246df438e5692f0819acbf57d0d0c7aa699a"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "7e6d370f15623988c6f6be0bfe3bddbe",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 2346931,
"upload_time": "2024-03-04T16:52:16",
"upload_time_iso_8601": "2024-03-04T16:52:16.368985Z",
"url": "https://files.pythonhosted.org/packages/f1/0e/4d984fe67c72915ffe97721d1464e869417eda674a457706c2ec79a67da8/qcore-1.10.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": "98c6445f07be064053f19aef71d92142c3f9fb573641ccd4d8a3e94ec1d83508",
"md5": "71a5cc1dd47d08fd57fc6e89206b59f1",
"sha256": "c5b5744f318f0c54218db4c4d7382accd940ae939707db8b32b712dfa9eec1ce"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp310-cp310-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "71a5cc1dd47d08fd57fc6e89206b59f1",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 2363591,
"upload_time": "2024-03-04T16:52:18",
"upload_time_iso_8601": "2024-03-04T16:52:18.719469Z",
"url": "https://files.pythonhosted.org/packages/98/c6/445f07be064053f19aef71d92142c3f9fb573641ccd4d8a3e94ec1d83508/qcore-1.10.1-cp310-cp310-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "32be0250e792ecb6feb4c38c1c58f29e6c8a536f5e52b95d19a4dbe8fd7b0d62",
"md5": "f1514d8de3f495e93005ece47686c8ff",
"sha256": "331f4b6e2bae6e278b42158902cb71cc8dd0d700a7f7abeeb074ed16b7282845"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "f1514d8de3f495e93005ece47686c8ff",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 2468434,
"upload_time": "2024-03-04T16:52:20",
"upload_time_iso_8601": "2024-03-04T16:52:20.513631Z",
"url": "https://files.pythonhosted.org/packages/32/be/0250e792ecb6feb4c38c1c58f29e6c8a536f5e52b95d19a4dbe8fd7b0d62/qcore-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c88647e23ef2c8d1ac3db10cb07ae033ec87ad791054f7a230516958ae1a3cdd",
"md5": "73cc67a4f699286ce7c25814058fcff6",
"sha256": "4bd99011ad0a93239da0b2dcd9353eaba82cd7b4f0305b4de2f69a2f8ad599a6"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "73cc67a4f699286ce7c25814058fcff6",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 398029,
"upload_time": "2024-03-04T16:52:23",
"upload_time_iso_8601": "2024-03-04T16:52:23.186743Z",
"url": "https://files.pythonhosted.org/packages/c8/86/47e23ef2c8d1ac3db10cb07ae033ec87ad791054f7a230516958ae1a3cdd/qcore-1.10.1-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "292b262f8e606c6e46946b6bd96a97393bc4d480d30d4f95155c1b1b7f454b5d",
"md5": "50e97b8338f3283bdf34ed864568aecc",
"sha256": "f73eec1be15462b93bba5c2be17ea97096498d78eb2daddf4af237458c808ad8"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "50e97b8338f3283bdf34ed864568aecc",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 447711,
"upload_time": "2024-03-04T16:52:25",
"upload_time_iso_8601": "2024-03-04T16:52:25.398984Z",
"url": "https://files.pythonhosted.org/packages/29/2b/262f8e606c6e46946b6bd96a97393bc4d480d30d4f95155c1b1b7f454b5d/qcore-1.10.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a17fb964038fb213571828ba4630fee7e2a42d5cc368ab0649130ecc3c986ff0",
"md5": "a63ebcf90fedeb09ca0a183d9b12f870",
"sha256": "884f5bc260577e0307a655339aed0ae0bf353de82f6c46bd97e1b3019e9a9607"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "a63ebcf90fedeb09ca0a183d9b12f870",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 505943,
"upload_time": "2024-03-04T16:52:27",
"upload_time_iso_8601": "2024-03-04T16:52:27.073369Z",
"url": "https://files.pythonhosted.org/packages/a1/7f/b964038fb213571828ba4630fee7e2a42d5cc368ab0649130ecc3c986ff0/qcore-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e496237c569f1557cb3b807d093cd41eea4a32846ed4de2d6f53fafd95ae5d3b",
"md5": "8f29211d5d18ee630b34328a5a6f7607",
"sha256": "07724b8c1cb9b6940d012c2ae4e069b98af915e0c1407f3688473d0fc29874e9"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "8f29211d5d18ee630b34328a5a6f7607",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 2684414,
"upload_time": "2024-03-04T16:52:29",
"upload_time_iso_8601": "2024-03-04T16:52:29.287462Z",
"url": "https://files.pythonhosted.org/packages/e4/96/237c569f1557cb3b807d093cd41eea4a32846ed4de2d6f53fafd95ae5d3b/qcore-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "81cfd8c71961ed2060b73197f8dc2e0f3cd90ed1f60312f40dd9f9cd96013465",
"md5": "c68265652c9ada5c10f807b53da70ff7",
"sha256": "4f870ed9579444ba808c6511cb7fc835a5d58e15bcdd26a6aab34a008402518e"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "c68265652c9ada5c10f807b53da70ff7",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 2546169,
"upload_time": "2024-03-04T16:52:30",
"upload_time_iso_8601": "2024-03-04T16:52:30.943647Z",
"url": "https://files.pythonhosted.org/packages/81/cf/d8c71961ed2060b73197f8dc2e0f3cd90ed1f60312f40dd9f9cd96013465/qcore-1.10.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": "592637d80f476f4500bf71b18357b2741bc98c2529f0b6b67992092d7068c13a",
"md5": "f35e67aa1320ba6a302d85b4a5f14d1c",
"sha256": "dac50813739ec21e4d289492570595236eab6762d2f812c6bb53dc82eaabe157"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp311-cp311-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "f35e67aa1320ba6a302d85b4a5f14d1c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 2543441,
"upload_time": "2024-03-04T16:52:32",
"upload_time_iso_8601": "2024-03-04T16:52:32.747461Z",
"url": "https://files.pythonhosted.org/packages/59/26/37d80f476f4500bf71b18357b2741bc98c2529f0b6b67992092d7068c13a/qcore-1.10.1-cp311-cp311-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8391362c47e12ebb9e76e10f88c649e62cfdd7ba6f987572448fcbb41f8cbf01",
"md5": "ab221740c968a7bf4214489329c14e71",
"sha256": "563dd353bf285713f70fd2bd2cb29038b02beb46850360ec546fb2749bd93da5"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "ab221740c968a7bf4214489329c14e71",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 2668657,
"upload_time": "2024-03-04T16:52:34",
"upload_time_iso_8601": "2024-03-04T16:52:34.323460Z",
"url": "https://files.pythonhosted.org/packages/83/91/362c47e12ebb9e76e10f88c649e62cfdd7ba6f987572448fcbb41f8cbf01/qcore-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ef847f3ebbf83e02b11fc15facb012bf742bd5037c08f202bb7005fe6052a8d6",
"md5": "61effc4661dcd63e17945233035badee",
"sha256": "43771b55ca6585e58a9fed099a4c0216772f9397fa2f0e2c8ef7a22f384c1417"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "61effc4661dcd63e17945233035badee",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 396860,
"upload_time": "2024-03-04T16:52:36",
"upload_time_iso_8601": "2024-03-04T16:52:36.274901Z",
"url": "https://files.pythonhosted.org/packages/ef/84/7f3ebbf83e02b11fc15facb012bf742bd5037c08f202bb7005fe6052a8d6/qcore-1.10.1-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "06fef9af01beda04228eab73b60f02ea35075d7cd4f40408aa804896be8ba487",
"md5": "44d51e739e6df446139ddccbb08df4a1",
"sha256": "c53bf55b800a4d8282142a9a6c406053772acc355d464050b4eff455fe2f968e"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "44d51e739e6df446139ddccbb08df4a1",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 448347,
"upload_time": "2024-03-04T16:52:38",
"upload_time_iso_8601": "2024-03-04T16:52:38.090399Z",
"url": "https://files.pythonhosted.org/packages/06/fe/f9af01beda04228eab73b60f02ea35075d7cd4f40408aa804896be8ba487/qcore-1.10.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7414d7b17f40d3f1241b07b7b180f02fbdccaa9e61e1a61055822e0b8d3ac873",
"md5": "e297c7bfc77f65d1f0d0c52d9920ea40",
"sha256": "e51914eccdd054df2e5b163f7225016f6a8375279ba0c24ee002e4ed344cdb7a"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "e297c7bfc77f65d1f0d0c52d9920ea40",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 498042,
"upload_time": "2024-03-04T16:52:39",
"upload_time_iso_8601": "2024-03-04T16:52:39.993572Z",
"url": "https://files.pythonhosted.org/packages/74/14/d7b17f40d3f1241b07b7b180f02fbdccaa9e61e1a61055822e0b8d3ac873/qcore-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "dffa54c3c3cb6c06cbd610b4dab87cb53ed647980a4d358b87650e81adaa3798",
"md5": "aa17b1f51968bf552a70c10267e4e077",
"sha256": "6a9984f9ce6e0bab472b1a0765918b6c683e1258475365a33a6af9287fe3feb0"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "aa17b1f51968bf552a70c10267e4e077",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 2665358,
"upload_time": "2024-03-04T16:52:41",
"upload_time_iso_8601": "2024-03-04T16:52:41.536612Z",
"url": "https://files.pythonhosted.org/packages/df/fa/54c3c3cb6c06cbd610b4dab87cb53ed647980a4d358b87650e81adaa3798/qcore-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f173873c343e04b17f80fc571f942ce9636db91c53bc0dc1420f6744a53b9a4f",
"md5": "8d0dfead473cbca233a49cc944695a06",
"sha256": "0ff1a3e28a9d486d5e344f4d1b5d183bcfa0295e8a5368bbd0b40a86576fcf26"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "8d0dfead473cbca233a49cc944695a06",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 2510599,
"upload_time": "2024-03-04T16:52:43",
"upload_time_iso_8601": "2024-03-04T16:52:43.246648Z",
"url": "https://files.pythonhosted.org/packages/f1/73/873c343e04b17f80fc571f942ce9636db91c53bc0dc1420f6744a53b9a4f/qcore-1.10.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": "fd817005189d8a9ca848372934187839ee9805f75f992b663340152d8af28489",
"md5": "92a1d9a5b20c676bb662bd827ab7566e",
"sha256": "91fb22a9df65649368830c3ac0c8d0762f8b18c1419106bab8c378a362fcd8f9"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp312-cp312-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "92a1d9a5b20c676bb662bd827ab7566e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 2494052,
"upload_time": "2024-03-04T16:52:45",
"upload_time_iso_8601": "2024-03-04T16:52:45.127625Z",
"url": "https://files.pythonhosted.org/packages/fd/81/7005189d8a9ca848372934187839ee9805f75f992b663340152d8af28489/qcore-1.10.1-cp312-cp312-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c052f71e1b5bd11c04d3ac41e677102a2e5ab84591b92275c703c227427a79d0",
"md5": "3503aee285dfc25a1d5d2d7c09f8ead4",
"sha256": "7aff39c3157fd0e7acdaacccfcb3a6714df8af9856b7e792565fe7f02f723e53"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "3503aee285dfc25a1d5d2d7c09f8ead4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 2639588,
"upload_time": "2024-03-04T16:52:46",
"upload_time_iso_8601": "2024-03-04T16:52:46.724726Z",
"url": "https://files.pythonhosted.org/packages/c0/52/f71e1b5bd11c04d3ac41e677102a2e5ab84591b92275c703c227427a79d0/qcore-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b498631d9ff98a0fca407ba8815267c35505954d44768e146cf73e7a25bf7e69",
"md5": "296be7dfbc34c471792df36d316b37e4",
"sha256": "82e2e48ed0c8d266dab1e0d9637237b7b8b4686c993270f868388e25134e1119"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "296be7dfbc34c471792df36d316b37e4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 391238,
"upload_time": "2024-03-04T16:52:48",
"upload_time_iso_8601": "2024-03-04T16:52:48.058681Z",
"url": "https://files.pythonhosted.org/packages/b4/98/631d9ff98a0fca407ba8815267c35505954d44768e146cf73e7a25bf7e69/qcore-1.10.1-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a227af85b8e79fe50d4d0b9cbdfc67769d0cdc97c09dc975af01562344bb92dc",
"md5": "d081deedbdd9d4ac921a3804df2c5b6e",
"sha256": "10f6659f2c06ba577ced04220d99e55cc8198141b164c1b0816bad4ba8625c94"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "d081deedbdd9d4ac921a3804df2c5b6e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 440670,
"upload_time": "2024-03-04T16:52:49",
"upload_time_iso_8601": "2024-03-04T16:52:49.375129Z",
"url": "https://files.pythonhosted.org/packages/a2/27/af85b8e79fe50d4d0b9cbdfc67769d0cdc97c09dc975af01562344bb92dc/qcore-1.10.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4cf6b596e72291bc7e6d597ad30ae66b7755859f52bb665a930f332a12b8ce2e",
"md5": "cfb7a09603d238a8ec500a35066b7917",
"sha256": "dbbb298b46505162e7911394fa20cf103e7ab68a509b9b2916566f4fc7bd2082"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "cfb7a09603d238a8ec500a35066b7917",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 504535,
"upload_time": "2024-03-04T16:52:50",
"upload_time_iso_8601": "2024-03-04T16:52:50.843348Z",
"url": "https://files.pythonhosted.org/packages/4c/f6/b596e72291bc7e6d597ad30ae66b7755859f52bb665a930f332a12b8ce2e/qcore-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "281fa98ccfdaaa55a936048c12229d57ba3307d27d509952d6ab243963f24b0f",
"md5": "77f1ca7b5c6d71e8eff263ac27d16573",
"sha256": "5bf56d29899a7ecf5ffdc095200ab14d4299015f43834f787ac02010f58ad2fc"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "77f1ca7b5c6d71e8eff263ac27d16573",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 2527491,
"upload_time": "2024-03-04T16:52:52",
"upload_time_iso_8601": "2024-03-04T16:52:52.420531Z",
"url": "https://files.pythonhosted.org/packages/28/1f/a98ccfdaaa55a936048c12229d57ba3307d27d509952d6ab243963f24b0f/qcore-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ec7bd7143bc5fd424cdbaa318c1c618d16d761a5032888a8f11d458bd49bcbe7",
"md5": "23c2c74b0dc776478ab5cd9752dccbaa",
"sha256": "ef9a73e72e92fd80dcdc2601c9c1eaa6f51d7f9404cf48d7a618615530d179a2"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "23c2c74b0dc776478ab5cd9752dccbaa",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 2401410,
"upload_time": "2024-03-04T16:52:54",
"upload_time_iso_8601": "2024-03-04T16:52:54.000301Z",
"url": "https://files.pythonhosted.org/packages/ec/7b/d7143bc5fd424cdbaa318c1c618d16d761a5032888a8f11d458bd49bcbe7/qcore-1.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b9e119b4c2e07799a9129f93320ac11e3418c2f939197e3b31610875604f74fb",
"md5": "edb53f2f771ae07a53b20210acfea81e",
"sha256": "36c5eab3ad9fc9a60b83d44c9e2541170db769ebf9b4929c650909aa846a0a98"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp38-cp38-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "edb53f2f771ae07a53b20210acfea81e",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 2513600,
"upload_time": "2024-03-04T16:52:55",
"upload_time_iso_8601": "2024-03-04T16:52:55.524993Z",
"url": "https://files.pythonhosted.org/packages/b9/e1/19b4c2e07799a9129f93320ac11e3418c2f939197e3b31610875604f74fb/qcore-1.10.1-cp38-cp38-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f3cccecd9d54a6cc875c32168f729629b94c03d05f5c44ebd98c4297a70a7928",
"md5": "c786786a6f5a16dc6cf65c77e4214f04",
"sha256": "7056ee4b448935d24c31b9aee5bf4219936cc910a22ec738d7d4edd81a75277d"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "c786786a6f5a16dc6cf65c77e4214f04",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 2639073,
"upload_time": "2024-03-04T16:52:57",
"upload_time_iso_8601": "2024-03-04T16:52:57.869835Z",
"url": "https://files.pythonhosted.org/packages/f3/cc/cecd9d54a6cc875c32168f729629b94c03d05f5c44ebd98c4297a70a7928/qcore-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "719555c4886b1fd3d8b488cf0fa636e306a04cc2393147941c8d9168a3ee6e15",
"md5": "8243d0dc8f51cdaea309d1d703f9ad6b",
"sha256": "30f398720a566f1193406cc87bdaff3f8cc4c3187dfdbf1214c04aacfae0373e"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp38-cp38-win32.whl",
"has_sig": false,
"md5_digest": "8243d0dc8f51cdaea309d1d703f9ad6b",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 400206,
"upload_time": "2024-03-04T16:52:59",
"upload_time_iso_8601": "2024-03-04T16:52:59.805868Z",
"url": "https://files.pythonhosted.org/packages/71/95/55c4886b1fd3d8b488cf0fa636e306a04cc2393147941c8d9168a3ee6e15/qcore-1.10.1-cp38-cp38-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c87fd7f6bde256883a61fbebfbd39ef26d4f0500822745898a5e3fe5283f09ab",
"md5": "2c7e96e5b82ebbd8a879985ac3dbd53e",
"sha256": "8345854c02a765cfd431bec8226b5c6db1dc683dec3d9bca6b616bb138379988"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "2c7e96e5b82ebbd8a879985ac3dbd53e",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 450889,
"upload_time": "2024-03-04T16:53:01",
"upload_time_iso_8601": "2024-03-04T16:53:01.239383Z",
"url": "https://files.pythonhosted.org/packages/c8/7f/d7f6bde256883a61fbebfbd39ef26d4f0500822745898a5e3fe5283f09ab/qcore-1.10.1-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "38f62d6d4c082e8fc98b7b7faeea543608133f94cf2977c3e0991fcd80c5b5b7",
"md5": "96c1ff7cb200f97c2f618f95f83a175b",
"sha256": "a5cc91beea7d6b2ba4d39b4db40f90a574ac4a2203b4ba3e816a2e6e368b3da4"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "96c1ff7cb200f97c2f618f95f83a175b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 504526,
"upload_time": "2024-03-04T16:53:02",
"upload_time_iso_8601": "2024-03-04T16:53:02.615468Z",
"url": "https://files.pythonhosted.org/packages/38/f6/2d6d4c082e8fc98b7b7faeea543608133f94cf2977c3e0991fcd80c5b5b7/qcore-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a3d774101100277c724d46cfa4e9898b45c6fa435b9bc0f3eb35508592fe0538",
"md5": "7bc18f3964771b0bd254d4bc33d04f59",
"sha256": "a449880751045896f0656260f55824c3d0724e594087da22339b328a6ad1c601"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7bc18f3964771b0bd254d4bc33d04f59",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 2474242,
"upload_time": "2024-03-04T16:53:04",
"upload_time_iso_8601": "2024-03-04T16:53:04.459442Z",
"url": "https://files.pythonhosted.org/packages/a3/d7/74101100277c724d46cfa4e9898b45c6fa435b9bc0f3eb35508592fe0538/qcore-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "31073bfd18a83a9466ba0400e1e259626086ff71dbecd379f9e549ad5c1bed66",
"md5": "91673ecc9c53786f2a7416f82dc7f89a",
"sha256": "8ec2d6261adc91484396c202731e431898afc7d83703af23e08c488dc987aa6f"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "91673ecc9c53786f2a7416f82dc7f89a",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 2355742,
"upload_time": "2024-03-04T16:53:06",
"upload_time_iso_8601": "2024-03-04T16:53:06.153384Z",
"url": "https://files.pythonhosted.org/packages/31/07/3bfd18a83a9466ba0400e1e259626086ff71dbecd379f9e549ad5c1bed66/qcore-1.10.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": "19ae780993d15826f2f0bec3039ac08abaaa5980e8cfd6b6ea85e88396cee210",
"md5": "8aa73daaff055373fa84fb2f5b677f19",
"sha256": "a9bd9f58517ff5bcfb75052f30a6d8ce38457311dece43eed4e1ae44dd39618f"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp39-cp39-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "8aa73daaff055373fa84fb2f5b677f19",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 2375717,
"upload_time": "2024-03-04T16:53:07",
"upload_time_iso_8601": "2024-03-04T16:53:07.609383Z",
"url": "https://files.pythonhosted.org/packages/19/ae/780993d15826f2f0bec3039ac08abaaa5980e8cfd6b6ea85e88396cee210/qcore-1.10.1-cp39-cp39-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "135d9c912a0169c3cdf21811e358d4b55139e4a8a93f85c024d9da5e8454ab01",
"md5": "b3fe9af3f67f9b9b2c71053cb703e88e",
"sha256": "60d1fcba0cfb296cb86f491ecd33ad8e8f72b1027fe2424a64d5c1061e85dadf"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "b3fe9af3f67f9b9b2c71053cb703e88e",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 2479335,
"upload_time": "2024-03-04T16:53:09",
"upload_time_iso_8601": "2024-03-04T16:53:09.399065Z",
"url": "https://files.pythonhosted.org/packages/13/5d/9c912a0169c3cdf21811e358d4b55139e4a8a93f85c024d9da5e8454ab01/qcore-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6db4ed473f7bfe71f03ef9187f39588d18f78353183e22caa6663285e1be5bd2",
"md5": "57b59e5508c65abb0338fc80d6a1eb6b",
"sha256": "ada03fbd8148b3f0bf98f7711c2b51ca62ec59904530eca95e6672ab4b311085"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "57b59e5508c65abb0338fc80d6a1eb6b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 399831,
"upload_time": "2024-03-04T16:53:10",
"upload_time_iso_8601": "2024-03-04T16:53:10.850392Z",
"url": "https://files.pythonhosted.org/packages/6d/b4/ed473f7bfe71f03ef9187f39588d18f78353183e22caa6663285e1be5bd2/qcore-1.10.1-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "115e14e2188794744a86ff2789a58a15ec8a930e12dbca973d8bbc2f870e9d20",
"md5": "2ce59f6b25de5118badeadee0b479056",
"sha256": "7a6e8a153c616a2b927d713667eed7bbf2e20366aca6e03dca5ba10eb2882324"
},
"downloads": -1,
"filename": "qcore-1.10.1-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "2ce59f6b25de5118badeadee0b479056",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 449345,
"upload_time": "2024-03-04T16:53:12",
"upload_time_iso_8601": "2024-03-04T16:53:12.503458Z",
"url": "https://files.pythonhosted.org/packages/11/5e/14e2188794744a86ff2789a58a15ec8a930e12dbca973d8bbc2f870e9d20/qcore-1.10.1-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "419e3f94ced42287473e3a6383faa8d5b04bc397699965f8fe3143dc506f9dec",
"md5": "3353b8737a8bffabd15436fa5b893093",
"sha256": "506d5c7be09979335f3a550118d6ec33a087d6f5a37e1171da5d298959ab5561"
},
"downloads": -1,
"filename": "qcore-1.10.1.tar.gz",
"has_sig": false,
"md5_digest": "3353b8737a8bffabd15436fa5b893093",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 53489,
"upload_time": "2024-03-04T16:53:13",
"upload_time_iso_8601": "2024-03-04T16:53:13.613078Z",
"url": "https://files.pythonhosted.org/packages/41/9e/3f94ced42287473e3a6383faa8d5b04bc397699965f8fe3143dc506f9dec/qcore-1.10.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-04 16:53:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "quora",
"github_project": "qcore",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "qcore"
}