psygnal


Namepsygnal JSON
Version 0.4.2 PyPI version JSON
download
home_page
SummaryPure python callback/event system modeled after Qt Signals
upload_time2022-09-25 20:21:59
maintainer
docs_urlNone
authorTalley Lambert
requires_python>=3.7
licenseBSD 3-Clause License
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # psygnal

[![License](https://img.shields.io/pypi/l/psygnal.svg?color=green)](https://github.com/tlambert03/psygnal/raw/master/LICENSE)
[![PyPI](https://img.shields.io/pypi/v/psygnal.svg?color=green)](https://pypi.org/project/psygnal)
![Conda](https://img.shields.io/conda/v/conda-forge/psygnal)
[![Python Version](https://img.shields.io/pypi/pyversions/psygnal.svg?color=green)](https://python.org)
[![CI](https://github.com/tlambert03/psygnal/actions/workflows/ci.yml/badge.svg)](https://github.com/tlambert03/psygnal/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/tlambert03/psygnal/branch/main/graph/badge.svg?token=qGnz9GXpEb)](https://codecov.io/gh/tlambert03/psygnal)

Psygnal (pronounced "signal") is a pure python implementation of
[Qt-style Signals](https://doc.qt.io/qt-5/signalsandslots.html) with
(optional) signature and type checking, and support for threading.


> Note: this library does _not_ require Qt. It just implements a similar pattern of inter-object communication with loose coupling.

## Documentation

https://psygnal.readthedocs.io/

### Install

```sh
pip install psygnal
```

```sh
conda install -c conda-forge psygnal
```

## Usage

A very simple example:

```python
from psygnal import Signal

class MyObject:
    value_changed = Signal(str)
    shutting_down = Signal()

my_obj = MyObject()

@my_obj.value_changed.connect
def on_change(new_value: str):
    print(f"The value changed to {new_value}!")

my_obj.value_changed.emit('hi')
```

Much more detail available in the [documentation](https://psygnal.readthedocs.io/)!

## Alternatives

There are other libraries that implement similar event-based signals, they may
server your purposes better depending on what you are doing.

### [PySignal](https://github.com/dgovil/PySignal) (deprecated)

This package borrows inspiration from – and is most similar to – the now
deprecated [PySignal](https://github.com/dgovil/PySignal) project, with a few
notable new features in `psygnal` regarding signature and type checking, sender
querying, and threading.

#### similarities with `PySignal`

- still a "Qt-style" signal implementation that doesn't depend on Qt
- supports class methods, functions, lambdas and partials

#### differences with `PySignal`

- the class attribute `pysignal.ClassSignal` is called simply `Signal` in
  `psygnal` (to more closely match the PyQt/Pyside syntax).  Correspondingly
  `pysignal.Signal` is similar to `psygnal.SignalInstance`.
- Whereas `PySignal` refrained from doing any signature and/or type checking
  either at slot-connection time, or at signal emission time, `psygnal` offers
  signature declaration similar to Qt with , for example, `Signal(int, int)`.
  along with opt-in signature compatibility (with `check_nargs=True`) and type
  checking (with `check_types=True`). `.connect(..., check_nargs=True)` in
  particular ensures that any slot to connected to a signal will at least be
  compatible with the emitted arguments.
- You *can* query the sender in `psygnal` by using the `Signal.sender()` or
  `Signal.current_emitter()` class methods. (The former returns the *instance*
  emitting the signal, similar to Qt's
  [`QObject.sender()`](https://doc.qt.io/qt-5/qobject.html#sender) method,
  whereas the latter returns the currently emitting `SignalInstance`.)
- There is basic threading support (calling all slots in another thread), using
  `emit(..., asynchronous=True)`.  This is experimental, and while thread-safety
  is the goal, it is not guaranteed.
- There are no `SignalFactory` classes here.

*The following two libraries implement django-inspired signals, they do not
attempt to mimic the Qt API.*

### [Blinker](https://github.com/jek/blinker)

Blinker provides a fast dispatching system that allows any number of interested
parties to subscribe to events, or "signals".

### [SmokeSignal](https://github.com/shaunduncan/smokesignal/)

(This appears to be unmaintained)

## Benchmark history

https://www.talleylambert.com/psygnal/

## Developers

### Debugging

While `psygnal` is a pure python module, it is compiled with Cython to increase
performance.  To import `psygnal` in uncompiled mode, without deleting the
shared library files from the psyngal module, set the environment variable
`PSYGNAL_UNCOMPILED` before importing psygnal.  The `psygnal._compiled` variable
will tell you if you're running the compiled library or not.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "psygnal",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "Talley Lambert",
    "author_email": "talley.lambert@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/e1/3c/b569cdd4073a81f6739e8c01efa82992ebd9fec275144ab42b4bb32775e4/psygnal-0.4.2.tar.gz",
    "platform": null,
    "description": "# psygnal\n\n[![License](https://img.shields.io/pypi/l/psygnal.svg?color=green)](https://github.com/tlambert03/psygnal/raw/master/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/psygnal.svg?color=green)](https://pypi.org/project/psygnal)\n![Conda](https://img.shields.io/conda/v/conda-forge/psygnal)\n[![Python Version](https://img.shields.io/pypi/pyversions/psygnal.svg?color=green)](https://python.org)\n[![CI](https://github.com/tlambert03/psygnal/actions/workflows/ci.yml/badge.svg)](https://github.com/tlambert03/psygnal/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/tlambert03/psygnal/branch/main/graph/badge.svg?token=qGnz9GXpEb)](https://codecov.io/gh/tlambert03/psygnal)\n\nPsygnal (pronounced \"signal\") is a pure python implementation of\n[Qt-style Signals](https://doc.qt.io/qt-5/signalsandslots.html) with\n(optional) signature and type checking, and support for threading.\n\n\n> Note: this library does _not_ require Qt. It just implements a similar pattern of inter-object communication with loose coupling.\n\n## Documentation\n\nhttps://psygnal.readthedocs.io/\n\n### Install\n\n```sh\npip install psygnal\n```\n\n```sh\nconda install -c conda-forge psygnal\n```\n\n## Usage\n\nA very simple example:\n\n```python\nfrom psygnal import Signal\n\nclass MyObject:\n    value_changed = Signal(str)\n    shutting_down = Signal()\n\nmy_obj = MyObject()\n\n@my_obj.value_changed.connect\ndef on_change(new_value: str):\n    print(f\"The value changed to {new_value}!\")\n\nmy_obj.value_changed.emit('hi')\n```\n\nMuch more detail available in the [documentation](https://psygnal.readthedocs.io/)!\n\n## Alternatives\n\nThere are other libraries that implement similar event-based signals, they may\nserver your purposes better depending on what you are doing.\n\n### [PySignal](https://github.com/dgovil/PySignal) (deprecated)\n\nThis package borrows inspiration from \u2013 and is most similar to \u2013 the now\ndeprecated [PySignal](https://github.com/dgovil/PySignal) project, with a few\nnotable new features in `psygnal` regarding signature and type checking, sender\nquerying, and threading.\n\n#### similarities with `PySignal`\n\n- still a \"Qt-style\" signal implementation that doesn't depend on Qt\n- supports class methods, functions, lambdas and partials\n\n#### differences with `PySignal`\n\n- the class attribute `pysignal.ClassSignal` is called simply `Signal` in\n  `psygnal` (to more closely match the PyQt/Pyside syntax).  Correspondingly\n  `pysignal.Signal` is similar to `psygnal.SignalInstance`.\n- Whereas `PySignal` refrained from doing any signature and/or type checking\n  either at slot-connection time, or at signal emission time, `psygnal` offers\n  signature declaration similar to Qt with , for example, `Signal(int, int)`.\n  along with opt-in signature compatibility (with `check_nargs=True`) and type\n  checking (with `check_types=True`). `.connect(..., check_nargs=True)` in\n  particular ensures that any slot to connected to a signal will at least be\n  compatible with the emitted arguments.\n- You *can* query the sender in `psygnal` by using the `Signal.sender()` or\n  `Signal.current_emitter()` class methods. (The former returns the *instance*\n  emitting the signal, similar to Qt's\n  [`QObject.sender()`](https://doc.qt.io/qt-5/qobject.html#sender) method,\n  whereas the latter returns the currently emitting `SignalInstance`.)\n- There is basic threading support (calling all slots in another thread), using\n  `emit(..., asynchronous=True)`.  This is experimental, and while thread-safety\n  is the goal, it is not guaranteed.\n- There are no `SignalFactory` classes here.\n\n*The following two libraries implement django-inspired signals, they do not\nattempt to mimic the Qt API.*\n\n### [Blinker](https://github.com/jek/blinker)\n\nBlinker provides a fast dispatching system that allows any number of interested\nparties to subscribe to events, or \"signals\".\n\n### [SmokeSignal](https://github.com/shaunduncan/smokesignal/)\n\n(This appears to be unmaintained)\n\n## Benchmark history\n\nhttps://www.talleylambert.com/psygnal/\n\n## Developers\n\n### Debugging\n\nWhile `psygnal` is a pure python module, it is compiled with Cython to increase\nperformance.  To import `psygnal` in uncompiled mode, without deleting the\nshared library files from the psyngal module, set the environment variable\n`PSYGNAL_UNCOMPILED` before importing psygnal.  The `psygnal._compiled` variable\nwill tell you if you're running the compiled library or not.\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License",
    "summary": "Pure python callback/event system modeled after Qt Signals",
    "version": "0.4.2",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "9cc116d8259a7ffc530a3400c923339b",
                "sha256": "b048180454bbca27fc8d3177addf2b061408663f135b93bc5566d2c33b161c82"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9cc116d8259a7ffc530a3400c923339b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 828509,
            "upload_time": "2022-09-25T20:21:11",
            "upload_time_iso_8601": "2022-09-25T20:21:11.392942Z",
            "url": "https://files.pythonhosted.org/packages/f6/ca/ad3f370747ec0b88e93817dd24abc3f6b6cbebe365473923db4672e4b104/psygnal-0.4.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "55d8e8aa28614dc462ace617dd50de6f",
                "sha256": "60e6e0277e671ecb19c310515528a7e36024dc8a3b0aaf86c652f7f364f45409"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "55d8e8aa28614dc462ace617dd50de6f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 727403,
            "upload_time": "2022-09-25T20:21:13",
            "upload_time_iso_8601": "2022-09-25T20:21:13.451176Z",
            "url": "https://files.pythonhosted.org/packages/42/af/9487985c2821ebc573ee189e090991dad15d432af6b881622b07108195be/psygnal-0.4.2-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "9901eb425e617373bb5fc249dce9c02f",
                "sha256": "3fe0c372058002c7b9309394e160c7c31b119c8bc5fbb6b21bfd8e67540b1cc4"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9901eb425e617373bb5fc249dce9c02f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 4122427,
            "upload_time": "2022-09-25T20:21:15",
            "upload_time_iso_8601": "2022-09-25T20:21:15.739554Z",
            "url": "https://files.pythonhosted.org/packages/37/de/e491cade65c26b953ec4d2570555847e2f6ff118b8373b69a400f653d2ab/psygnal-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "a4bc3455c69fba3b8d82635b3029978e",
                "sha256": "973e98ce8e0a7aee21c404080437b0e18b097942641699fd32922be580e6c2ec"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "a4bc3455c69fba3b8d82635b3029978e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3907429,
            "upload_time": "2022-09-25T20:21:18",
            "upload_time_iso_8601": "2022-09-25T20:21:18.226943Z",
            "url": "https://files.pythonhosted.org/packages/e5/2f/332beffc4857c26474942b336ed8be404421eb464ff1f45335a46ace982a/psygnal-0.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "ae4dcebab1506f39611d215b359ed4d9",
                "sha256": "5206037475f17e71ed2db893044c3b7de0c110d4883b3bcf989824cab01c67fd"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp310-cp310-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "ae4dcebab1506f39611d215b359ed4d9",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3945827,
            "upload_time": "2022-09-25T20:21:20",
            "upload_time_iso_8601": "2022-09-25T20:21:20.260296Z",
            "url": "https://files.pythonhosted.org/packages/09/c5/32e9e1b80e1af588d0708483b1a40dbdcfe7f4f80cbaed0351e1a590111d/psygnal-0.4.2-cp310-cp310-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "e152fbe9f8bb172d852707c206282e1d",
                "sha256": "afd09ad4b9f62f591470ff47102546de03d085aab59408ae8321262ba8b1c01e"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e152fbe9f8bb172d852707c206282e1d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 4152318,
            "upload_time": "2022-09-25T20:21:22",
            "upload_time_iso_8601": "2022-09-25T20:21:22.423892Z",
            "url": "https://files.pythonhosted.org/packages/38/1b/d21324fecc2424818430ccc094e63a587c0bc723e90d449c933418e4bb49/psygnal-0.4.2-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "df35198f0e2c9569daff0073a82f32b0",
                "sha256": "78f376210b621fa03610318c983944d0e5cdc859905900b7bcf71e280b318758"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "df35198f0e2c9569daff0073a82f32b0",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 657428,
            "upload_time": "2022-09-25T20:21:23",
            "upload_time_iso_8601": "2022-09-25T20:21:23.819878Z",
            "url": "https://files.pythonhosted.org/packages/0c/6b/39af12fc943d44909bda81535b90cf7b73337bd067aff24616d1050d20b3/psygnal-0.4.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "d39c3715e2511ff0855b69d94abfa2c0",
                "sha256": "09c920c89f5d41e40057f8dd78546c600f8356f043de062c85404eb331de8c6d"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d39c3715e2511ff0855b69d94abfa2c0",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 810932,
            "upload_time": "2022-09-25T20:21:25",
            "upload_time_iso_8601": "2022-09-25T20:21:25.123947Z",
            "url": "https://files.pythonhosted.org/packages/1e/07/5cfe59402adba3519ac0f572e3fa44dc57c22d716e35def1293f1af24e25/psygnal-0.4.2-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "1666a8797d5d1d746fa05e9891759cd9",
                "sha256": "bfbae2392021400022a4c6032b5ff08e657d909e371f2f39fb575f43e2db1166"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1666a8797d5d1d746fa05e9891759cd9",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3731122,
            "upload_time": "2022-09-25T20:21:26",
            "upload_time_iso_8601": "2022-09-25T20:21:26.733333Z",
            "url": "https://files.pythonhosted.org/packages/85/52/0354cee1eba8e637560ed790d93dd82d5908022c1c48f7b1f204639d3c77/psygnal-0.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "b3d0e29ee1bddd7c519c1e13508422ca",
                "sha256": "dfb91edfa3a3aca9d5ab45e26560162416438c6e74f309cb1236adcc6915a03a"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "b3d0e29ee1bddd7c519c1e13508422ca",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3529895,
            "upload_time": "2022-09-25T20:21:28",
            "upload_time_iso_8601": "2022-09-25T20:21:28.765398Z",
            "url": "https://files.pythonhosted.org/packages/a3/e3/077ccb87b5037662e3160d5efb1b6056eb27cfed1be0ad1b0392add85c1e/psygnal-0.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "a41d99c6cbe23c8618769f680772dc7a",
                "sha256": "f1d1b8cfd6a38ea3d5e919cdaf38fb51aa01eb57ebbee88b5cc8d5b5d1b9c13f"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp37-cp37m-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "a41d99c6cbe23c8618769f680772dc7a",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3554320,
            "upload_time": "2022-09-25T20:21:30",
            "upload_time_iso_8601": "2022-09-25T20:21:30.457909Z",
            "url": "https://files.pythonhosted.org/packages/9a/2e/8fbec18bddcefc7917d585cb849c63ce4e0b512c8229d060a4934ccd27bd/psygnal-0.4.2-cp37-cp37m-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "857a3808198191a0434a321a7bb0012f",
                "sha256": "0210e54a930391059f21f0d5036512ad2b07afe234e7f912ba50cbab953c5206"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "857a3808198191a0434a321a7bb0012f",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3731431,
            "upload_time": "2022-09-25T20:21:32",
            "upload_time_iso_8601": "2022-09-25T20:21:32.084312Z",
            "url": "https://files.pythonhosted.org/packages/59/30/acb533be7cfe08d65086be8d6f374e779628925ee4b2dc15efcafc81665e/psygnal-0.4.2-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "231c6e079022d56b704a51866adadeb5",
                "sha256": "8708c76b1bf7ec3f0e45feb3686d6efb9cc01e6ba3c49cf29668c1f0bab3d610"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "231c6e079022d56b704a51866adadeb5",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 649936,
            "upload_time": "2022-09-25T20:21:33",
            "upload_time_iso_8601": "2022-09-25T20:21:33.917732Z",
            "url": "https://files.pythonhosted.org/packages/8e/25/deaec796b28f4871812b90c02ffdc1972d5bf043fb29d6bff99091d6ff68/psygnal-0.4.2-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "8f4ace83b47ff1e2ec7b344135d5256b",
                "sha256": "1346fb502a883765b4c6003c88481a9b8435496e8a3fa95e3a5300b206624a0e"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8f4ace83b47ff1e2ec7b344135d5256b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 833352,
            "upload_time": "2022-09-25T20:21:35",
            "upload_time_iso_8601": "2022-09-25T20:21:35.134488Z",
            "url": "https://files.pythonhosted.org/packages/a2/bb/0474e047bb1a2c90c98ee715ec130d41c8f9881d4b453aa46c3d645d1812/psygnal-0.4.2-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "1109578aa108c4d3297cc4c5262d955e",
                "sha256": "1b59ed6ea816041eb6cc9e92258ad3b1697b2b6fbca953e2b6cc51e8d5bd514a"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "1109578aa108c4d3297cc4c5262d955e",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 737251,
            "upload_time": "2022-09-25T20:21:36",
            "upload_time_iso_8601": "2022-09-25T20:21:36.575650Z",
            "url": "https://files.pythonhosted.org/packages/f2/a5/f4e3826a1ca3f3a678f5d58b893692c874c4139b5f18dec53c31bff41782/psygnal-0.4.2-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "79dc7149260f8c030315da0df2324486",
                "sha256": "5ad53efee34f5b815a2abcf58efbf880946363dcbd7a5a54ac1db9c970c65c02"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "79dc7149260f8c030315da0df2324486",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 4201375,
            "upload_time": "2022-09-25T20:21:38",
            "upload_time_iso_8601": "2022-09-25T20:21:38.134913Z",
            "url": "https://files.pythonhosted.org/packages/a7/6b/a8fdca921d1e38970ee3f2335f99c5a9768e2d1d2dbe3b62449d2e604cb2/psygnal-0.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "6f8a462639a5008b191f4a834109f70a",
                "sha256": "9ab2158f096bd83763bbd8066b50a459c9207e9b314f689d1e09f19e27ba6b32"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "6f8a462639a5008b191f4a834109f70a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 3984985,
            "upload_time": "2022-09-25T20:21:39",
            "upload_time_iso_8601": "2022-09-25T20:21:39.761630Z",
            "url": "https://files.pythonhosted.org/packages/5b/b8/4b8858e431b18af26f23c053c22a2bc3b4bff3eecdb482e39b78feac1fc6/psygnal-0.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "bad8a0c21e13c48a92b2edb9eae475f9",
                "sha256": "4050723613f69227957e5ca346b29802cea615a26d0b22e789e4836ba90f9989"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp38-cp38-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "bad8a0c21e13c48a92b2edb9eae475f9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 4233236,
            "upload_time": "2022-09-25T20:21:41",
            "upload_time_iso_8601": "2022-09-25T20:21:41.835448Z",
            "url": "https://files.pythonhosted.org/packages/d4/13/54c8fed2340ca9e6e172a0f6ddd26f91c0aa60c589ede26e40de6e2b00c4/psygnal-0.4.2-cp38-cp38-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "50e1451ad907cf80d60f8133e71c883b",
                "sha256": "2fc45fe226928d5cd76551b7c9624840c66cd85d28c2a5fcdafcf13bc48ff12d"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "50e1451ad907cf80d60f8133e71c883b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 4483305,
            "upload_time": "2022-09-25T20:21:44",
            "upload_time_iso_8601": "2022-09-25T20:21:44.574758Z",
            "url": "https://files.pythonhosted.org/packages/34/f0/bee900de6309daf9802f9f26acd679759a4401a5887a1b7b4c6ef89a5ce6/psygnal-0.4.2-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "5b1cf78ab0101d2eea9870716fa3dc94",
                "sha256": "3e255c2653c478f81f69731b08012ad0bb3ea81e0d83fe9282fcb7ceb131e146"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5b1cf78ab0101d2eea9870716fa3dc94",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 662454,
            "upload_time": "2022-09-25T20:21:46",
            "upload_time_iso_8601": "2022-09-25T20:21:46.119515Z",
            "url": "https://files.pythonhosted.org/packages/7f/4e/c278e37ac0e7e44de58ca344acbcf0f39ea66f081936203ef8e370c51159/psygnal-0.4.2-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "984cba8f7251b3da5861652fbb7e8b6b",
                "sha256": "1b410644f1d99cdad0b35049b6cde2b504a4739cb6dcddc3f6c5e6e9c853deea"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "984cba8f7251b3da5861652fbb7e8b6b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 831305,
            "upload_time": "2022-09-25T20:21:48",
            "upload_time_iso_8601": "2022-09-25T20:21:48.019409Z",
            "url": "https://files.pythonhosted.org/packages/b0/ac/ae57798bbbfb90a5ecb658e407666338c1aead7f7f78df26550f77daec51/psygnal-0.4.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "2dc3b72ee7e02b3b2c2aac4dd19ddf1a",
                "sha256": "fca3632b920486036eb9f4f52a20dd409cee57701119fabe666f5ed7ba13a27c"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "2dc3b72ee7e02b3b2c2aac4dd19ddf1a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 730060,
            "upload_time": "2022-09-25T20:21:49",
            "upload_time_iso_8601": "2022-09-25T20:21:49.427468Z",
            "url": "https://files.pythonhosted.org/packages/3f/42/4f10fb65534321eb1cbecd41ac82b125b1537891a84cbf8f32e6b96047c3/psygnal-0.4.2-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "b50c6a62003f6aeecfdda626b15e7993",
                "sha256": "bc37c7f01e4e48dcd69972f3eedc7f24ab71535c4be5bd41fe29aa9686c622ec"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b50c6a62003f6aeecfdda626b15e7993",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 4136752,
            "upload_time": "2022-09-25T20:21:51",
            "upload_time_iso_8601": "2022-09-25T20:21:51.431168Z",
            "url": "https://files.pythonhosted.org/packages/73/b5/5fb5eab5f5395a1d851460faa00c3d266a7a592a0976d019dfe58049d6a6/psygnal-0.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "068cf8e62d7c7997895e81d7cad2a474",
                "sha256": "311146f4335a25ddbb008c379d30c938cf247c3e966054022117030f163f51c5"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "068cf8e62d7c7997895e81d7cad2a474",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3923654,
            "upload_time": "2022-09-25T20:21:53",
            "upload_time_iso_8601": "2022-09-25T20:21:53.311549Z",
            "url": "https://files.pythonhosted.org/packages/61/f7/c159eef6bdd6f6ea5294b82e7d2e41829b797cca3472186cf5c0b74ea8d0/psygnal-0.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "c50440d08debacf8256316d3664afce4",
                "sha256": "15830f652106ecd0dd9d4bcaba96c0f798b5bb7f59e0ed8760b9eb971eb6df82"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp39-cp39-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "c50440d08debacf8256316d3664afce4",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3962323,
            "upload_time": "2022-09-25T20:21:54",
            "upload_time_iso_8601": "2022-09-25T20:21:54.976713Z",
            "url": "https://files.pythonhosted.org/packages/77/d1/f531955d78574294b95f6704e39ea279381ecdca074481bc4d611058c1c2/psygnal-0.4.2-cp39-cp39-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "c866a24a57dfb79ca8750bb9753df133",
                "sha256": "4b83cd4abd26deb0c268519ff7d5c05c32621ef297fb5debdcf846f5e6d23aef"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c866a24a57dfb79ca8750bb9753df133",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 4161580,
            "upload_time": "2022-09-25T20:21:56",
            "upload_time_iso_8601": "2022-09-25T20:21:56.690782Z",
            "url": "https://files.pythonhosted.org/packages/05/31/ad9b3bd9a094711afdec68fba72f52522410cc99623724d08d9d44532b50/psygnal-0.4.2-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "85e182dcd62f7cf8d6d490e440860890",
                "sha256": "e2d290f98922a5c6e99d40144e2851c72acf26f3e6a5ef01f0b2e455a2bbe7f9"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "85e182dcd62f7cf8d6d490e440860890",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 658347,
            "upload_time": "2022-09-25T20:21:58",
            "upload_time_iso_8601": "2022-09-25T20:21:58.204789Z",
            "url": "https://files.pythonhosted.org/packages/ad/17/c1fedb9348b5b49da69b09d6a89b2be2242a74f2083e1ffcc683a2702dbd/psygnal-0.4.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "492e79da5fe9ee2812a6a1407ce793ff",
                "sha256": "18aad22a37edcb2f2f89ae836c46a2724bfe0e100270e81c22939161b9012efd"
            },
            "downloads": -1,
            "filename": "psygnal-0.4.2.tar.gz",
            "has_sig": false,
            "md5_digest": "492e79da5fe9ee2812a6a1407ce793ff",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 1134206,
            "upload_time": "2022-09-25T20:21:59",
            "upload_time_iso_8601": "2022-09-25T20:21:59.641789Z",
            "url": "https://files.pythonhosted.org/packages/e1/3c/b569cdd4073a81f6739e8c01efa82992ebd9fec275144ab42b4bb32775e4/psygnal-0.4.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-09-25 20:21:59",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "psygnal"
}
        
Elapsed time: 0.45766s