qcore


Nameqcore JSON
Version 1.11.1 PyPI version JSON
download
home_pagehttps://github.com/quora/qcore
SummaryNone
upload_time2024-10-11 04:56:39
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseApache Software License
keywords quora core common utility
VCS
bugtrack_url
requirements pytest mypy black
Travis-CI No Travis.
coveralls test coverage No coveralls.
            *****
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"
}
        
Elapsed time: 0.91012s