psygnal


Namepsygnal JSON
Version 0.9.4 PyPI version JSON
download
home_page
SummaryFast python callback/event system modeled after Qt Signals
upload_time2023-09-19 00:20:01
maintainer
docs_urlNone
author
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/pyapp-kit/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/pyapp-kit/psygnal/actions/workflows/test.yml/badge.svg)](https://github.com/pyapp-kit/psygnal/actions/workflows/test.yml)
[![codecov](https://codecov.io/gh/pyapp-kit/psygnal/branch/main/graph/badge.svg?token=qGnz9GXpEb)](https://codecov.io/gh/pyapp-kit/psygnal)
[![Documentation Status](https://readthedocs.org/projects/psygnal/badge/?version=latest)](https://psygnal.readthedocs.io/en/latest/?badge=latest)
[![Benchmarks](https://img.shields.io/badge/⏱-codspeed-%23FF7B53)](https://codspeed.io/pyapp-kit/psygnal)

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

> This library does ***not*** require or use Qt in any way, It simply implements
> a similar observer pattern API.

## Documentation

https://psygnal.readthedocs.io/

### Install

```sh
pip install psygnal
```

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

## Usage

The [observer pattern](https://en.wikipedia.org/wiki/Observer_pattern) is a software design pattern in which an object maintains a list of its dependents ("**observers**"), and notifies them of any state changes – usually by calling a **callback function** provided by the observer.

Here is a simple example of using psygnal:

```python
from psygnal import Signal

class MyObject:
    # define one or more signals as class attributes
    value_changed = Signal(str)

# create an instance
my_obj = MyObject()

# You (or others) can connect callbacks to your signals
@my_obj.value_changed.connect
def on_change(new_value: str):
    print(f"The value changed to {new_value}!")

# The object may now emit signals when appropriate,
# (for example in a setter method)
my_obj.value_changed.emit('hi')  # prints "The value changed to hi!"
```

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

### Evented Dataclasses

A particularly nice usage of the signal pattern is to emit signals whenever a
field of a dataclass changes. Psygnal provides an `@evented` decorator that will
emit a signal whenever a field changes.  It is compatible with `dataclasses`
from [the standard library](https://docs.python.org/3/library/dataclasses.html),
as well as [attrs](https://www.attrs.org/en/stable/), and
[pydantic](https://pydantic-docs.helpmanual.io):

```python
from psygnal import evented
from dataclasses import dataclass

@evented
@dataclass
class Person:
    name: str
    age: int = 0

person = Person('John', age=30)

# connect callbacks
@person.events.age.connect
def _on_age_change(new_age: str):
    print(f"Age changed to {new_age}")

person.age = 31  # prints: Age changed to 31
```

See the [dataclass documentation](https://psygnal.readthedocs.io/en/latest/dataclasses/) for more details.


## Benchmark history

https://pyapp-kit.github.io/psygnal/

and

https://codspeed.io/pyapp-kit/psygnal

## Developers

### Debugging

While `psygnal` is a pure python module, it is compiled with mypyc to increase
performance.  To disable all compiled files and run the pure python version,
you may run:

```bash
python -c "import psygnal.utils; psygnal.utils.decompile()"
```

To return the compiled version, run:

```bash
python -c "import psygnal.utils; psygnal.utils.recompile()"
```

The `psygnal._compiled` variable will tell you if you're using the compiled
version or not.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "psygnal",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "Talley Lambert <talley.lambert@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/83/36/e86937d4c60107c5e5a0e01369965b5455d37eaf3efad854be7411d2e58b/psygnal-0.9.4.tar.gz",
    "platform": null,
    "description": "# psygnal\n\n[![License](https://img.shields.io/pypi/l/psygnal.svg?color=green)](https://github.com/pyapp-kit/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/pyapp-kit/psygnal/actions/workflows/test.yml/badge.svg)](https://github.com/pyapp-kit/psygnal/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/pyapp-kit/psygnal/branch/main/graph/badge.svg?token=qGnz9GXpEb)](https://codecov.io/gh/pyapp-kit/psygnal)\n[![Documentation Status](https://readthedocs.org/projects/psygnal/badge/?version=latest)](https://psygnal.readthedocs.io/en/latest/?badge=latest)\n[![Benchmarks](https://img.shields.io/badge/\u23f1-codspeed-%23FF7B53)](https://codspeed.io/pyapp-kit/psygnal)\n\nPsygnal (pronounced \"signal\") is a pure python implementation of the [observer\npattern](https://en.wikipedia.org/wiki/Observer_pattern), with the API of\n[Qt-style Signals](https://doc.qt.io/qt-5/signalsandslots.html) with (optional)\nsignature and type checking, and support for threading.\n\n> This library does ***not*** require or use Qt in any way, It simply implements\n> a similar observer pattern API.\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\nThe [observer pattern](https://en.wikipedia.org/wiki/Observer_pattern) is a software design pattern in which an object maintains a list of its dependents (\"**observers**\"), and notifies them of any state changes \u2013 usually by calling a **callback function** provided by the observer.\n\nHere is a simple example of using psygnal:\n\n```python\nfrom psygnal import Signal\n\nclass MyObject:\n    # define one or more signals as class attributes\n    value_changed = Signal(str)\n\n# create an instance\nmy_obj = MyObject()\n\n# You (or others) can connect callbacks to your signals\n@my_obj.value_changed.connect\ndef on_change(new_value: str):\n    print(f\"The value changed to {new_value}!\")\n\n# The object may now emit signals when appropriate,\n# (for example in a setter method)\nmy_obj.value_changed.emit('hi')  # prints \"The value changed to hi!\"\n```\n\nMuch more detail available in the [documentation](https://psygnal.readthedocs.io/)!\n\n### Evented Dataclasses\n\nA particularly nice usage of the signal pattern is to emit signals whenever a\nfield of a dataclass changes. Psygnal provides an `@evented` decorator that will\nemit a signal whenever a field changes.  It is compatible with `dataclasses`\nfrom [the standard library](https://docs.python.org/3/library/dataclasses.html),\nas well as [attrs](https://www.attrs.org/en/stable/), and\n[pydantic](https://pydantic-docs.helpmanual.io):\n\n```python\nfrom psygnal import evented\nfrom dataclasses import dataclass\n\n@evented\n@dataclass\nclass Person:\n    name: str\n    age: int = 0\n\nperson = Person('John', age=30)\n\n# connect callbacks\n@person.events.age.connect\ndef _on_age_change(new_age: str):\n    print(f\"Age changed to {new_age}\")\n\nperson.age = 31  # prints: Age changed to 31\n```\n\nSee the [dataclass documentation](https://psygnal.readthedocs.io/en/latest/dataclasses/) for more details.\n\n\n## Benchmark history\n\nhttps://pyapp-kit.github.io/psygnal/\n\nand\n\nhttps://codspeed.io/pyapp-kit/psygnal\n\n## Developers\n\n### Debugging\n\nWhile `psygnal` is a pure python module, it is compiled with mypyc to increase\nperformance.  To disable all compiled files and run the pure python version,\nyou may run:\n\n```bash\npython -c \"import psygnal.utils; psygnal.utils.decompile()\"\n```\n\nTo return the compiled version, run:\n\n```bash\npython -c \"import psygnal.utils; psygnal.utils.recompile()\"\n```\n\nThe `psygnal._compiled` variable will tell you if you're using the compiled\nversion or not.\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License",
    "summary": "Fast python callback/event system modeled after Qt Signals",
    "version": "0.9.4",
    "project_urls": {
        "documentation": "https://psygnal.readthedocs.io",
        "homepage": "https://github.com/pyapp-kit/psygnal",
        "repository": "https://github.com/pyapp-kit/psygnal"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e36bc500df37d5cae29b9c4bc480f96b02428768df57bcaa69d1dde30cda3a17",
                "md5": "08744e282197ab91ee1f8bde9b233e57",
                "sha256": "dbb97204879ac37d3ff0c9afe978582c6e6e10cbf54ae8e9e8ee790d2e59995a"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp310-cp310-macosx_10_16_arm64.whl",
            "has_sig": false,
            "md5_digest": "08744e282197ab91ee1f8bde9b233e57",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 360647,
            "upload_time": "2023-09-19T00:28:14",
            "upload_time_iso_8601": "2023-09-19T00:28:14.956121Z",
            "url": "https://files.pythonhosted.org/packages/e3/6b/c500df37d5cae29b9c4bc480f96b02428768df57bcaa69d1dde30cda3a17/psygnal-0.9.4-cp310-cp310-macosx_10_16_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b258f0470738c9deebe75b22761e935d7bd453725453b25ef361bb1898266951",
                "md5": "19b7577355e818f7759d139ac374e627",
                "sha256": "498100d1b5ae83292422965a3637b37dddffde2548afac102de084a2a73a391d"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp310-cp310-macosx_10_16_x86_64.whl",
            "has_sig": false,
            "md5_digest": "19b7577355e818f7759d139ac374e627",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 384315,
            "upload_time": "2023-09-19T00:34:43",
            "upload_time_iso_8601": "2023-09-19T00:34:43.823372Z",
            "url": "https://files.pythonhosted.org/packages/b2/58/f0470738c9deebe75b22761e935d7bd453725453b25ef361bb1898266951/psygnal-0.9.4-cp310-cp310-macosx_10_16_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5a6f8393c5b6d473558542b7099a242854ab1be7561cb8beea734ae4ee10f0f0",
                "md5": "63820e636f18d8bd80a838028cfef218",
                "sha256": "1d0514f553b344a71efe94550ca090fdf06034597a316950770d33620f0f9d47"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "63820e636f18d8bd80a838028cfef218",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 601558,
            "upload_time": "2023-09-19T00:32:37",
            "upload_time_iso_8601": "2023-09-19T00:32:37.913951Z",
            "url": "https://files.pythonhosted.org/packages/5a/6f/8393c5b6d473558542b7099a242854ab1be7561cb8beea734ae4ee10f0f0/psygnal-0.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "058db8e384fcc22d2ec2a8085e433ca5d3c6501c1606f17dd2b260580928ca04",
                "md5": "f85cbf76b2db32183193313690dbeb8f",
                "sha256": "e38575d09eca6a8a7f167d6114cfdac740a3774c32820f9b650a59550afd3327"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f85cbf76b2db32183193313690dbeb8f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 582482,
            "upload_time": "2023-09-19T00:32:39",
            "upload_time_iso_8601": "2023-09-19T00:32:39.695732Z",
            "url": "https://files.pythonhosted.org/packages/05/8d/b8e384fcc22d2ec2a8085e433ca5d3c6501c1606f17dd2b260580928ca04/psygnal-0.9.4-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0127fa851cf3823f6567d2dd6f002210efbde8eec9c4e9e8372638abed519bac",
                "md5": "39b4f7726777d6934b4d9fc63139caa8",
                "sha256": "ca08bc6eaa0f6f5602e28fcb6924ba9dd929c40fe371cb96cc64f29cb0befb6c"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "39b4f7726777d6934b4d9fc63139caa8",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 306189,
            "upload_time": "2023-09-19T00:32:33",
            "upload_time_iso_8601": "2023-09-19T00:32:33.973657Z",
            "url": "https://files.pythonhosted.org/packages/01/27/fa851cf3823f6567d2dd6f002210efbde8eec9c4e9e8372638abed519bac/psygnal-0.9.4-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ed859e3adf0acf6b6f1afa09d604529de32288385fd1682efc36a251deca2dc2",
                "md5": "f6fed74f362635d5d371693a6e7f4616",
                "sha256": "0af6b1dca9a7ef29468a49d1fded8493bf91627f57a5bb02df6e3b3b97f6ba14"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp311-cp311-macosx_10_16_arm64.whl",
            "has_sig": false,
            "md5_digest": "f6fed74f362635d5d371693a6e7f4616",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 355470,
            "upload_time": "2023-09-19T00:28:16",
            "upload_time_iso_8601": "2023-09-19T00:28:16.460246Z",
            "url": "https://files.pythonhosted.org/packages/ed/85/9e3adf0acf6b6f1afa09d604529de32288385fd1682efc36a251deca2dc2/psygnal-0.9.4-cp311-cp311-macosx_10_16_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ec8ffc9f9b48b596976d5ba22fa4b8391a155b617707e2f04d70e73769f98215",
                "md5": "b13ca75cd82622fe112cc03f00f251fc",
                "sha256": "a193468e5581f9479af59df6fcd44905bfdfc996656f8b087ce0f60982e55e9a"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp311-cp311-macosx_10_16_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b13ca75cd82622fe112cc03f00f251fc",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 380466,
            "upload_time": "2023-09-19T00:34:45",
            "upload_time_iso_8601": "2023-09-19T00:34:45.319464Z",
            "url": "https://files.pythonhosted.org/packages/ec/8f/fc9f9b48b596976d5ba22fa4b8391a155b617707e2f04d70e73769f98215/psygnal-0.9.4-cp311-cp311-macosx_10_16_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "61b923493d740bc789f32113788398cee8bc02fb908032415e79d32a7b4bc779",
                "md5": "9eca1a1161a9be9134a76d436546755a",
                "sha256": "32794689fb208180fee7490e3cc76df65d383b40aa773a4c7120424a6b734965"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9eca1a1161a9be9134a76d436546755a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 594994,
            "upload_time": "2023-09-19T00:32:42",
            "upload_time_iso_8601": "2023-09-19T00:32:42.109955Z",
            "url": "https://files.pythonhosted.org/packages/61/b9/23493d740bc789f32113788398cee8bc02fb908032415e79d32a7b4bc779/psygnal-0.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "128535330f430ef8fbbbf2174e113f5a3bd1af3de20569505e90c5e2100a18d4",
                "md5": "e08889c8162043e333b6de13e958386c",
                "sha256": "c5e3963e35bc8b775e6baeba8c80f95eb451c9b9de00590590bc6a6ecdd4f8b1"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e08889c8162043e333b6de13e958386c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 574511,
            "upload_time": "2023-09-19T00:32:44",
            "upload_time_iso_8601": "2023-09-19T00:32:44.488076Z",
            "url": "https://files.pythonhosted.org/packages/12/85/35330f430ef8fbbbf2174e113f5a3bd1af3de20569505e90c5e2100a18d4/psygnal-0.9.4-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6732d91f410d42f2eb44f0830f1b2768a237229706e1fdd0b89328461d33a2c8",
                "md5": "0145f04bd6bd02ae27b5ede29c665de0",
                "sha256": "8646e39355d4c779d837bcbfd4438084e14c69a6fcc2768ba2d821d29b7670b7"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "0145f04bd6bd02ae27b5ede29c665de0",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 310710,
            "upload_time": "2023-09-19T00:32:35",
            "upload_time_iso_8601": "2023-09-19T00:32:35.433849Z",
            "url": "https://files.pythonhosted.org/packages/67/32/d91f410d42f2eb44f0830f1b2768a237229706e1fdd0b89328461d33a2c8/psygnal-0.9.4-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9b0527c189a6b7a9b794514c19f52a95d5e1f8ae652394c1b54fbe4fa31f1028",
                "md5": "f956135d2c0f01d7fe96f8550ab5f27f",
                "sha256": "b2bdc6cc28816e91b55c39caff332fe8f81cf4ab94b61a3a19c4833ab99b1a9d"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp37-cp37m-macosx_10_16_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f956135d2c0f01d7fe96f8550ab5f27f",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 367203,
            "upload_time": "2023-09-19T00:34:46",
            "upload_time_iso_8601": "2023-09-19T00:34:46.548781Z",
            "url": "https://files.pythonhosted.org/packages/9b/05/27c189a6b7a9b794514c19f52a95d5e1f8ae652394c1b54fbe4fa31f1028/psygnal-0.9.4-cp37-cp37m-macosx_10_16_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fdcce0e5aca16e950cddb5ca90dddf7a28ef7f9f18be05e53ecd75e1b9f2c69f",
                "md5": "9377f98283ccb8bddd785207f27fe3de",
                "sha256": "c4d3237c48d1692d954566a8f3611dc695fbce24786ac49b638c169872d782b7"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9377f98283ccb8bddd785207f27fe3de",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 464599,
            "upload_time": "2023-09-19T00:32:46",
            "upload_time_iso_8601": "2023-09-19T00:32:46.209050Z",
            "url": "https://files.pythonhosted.org/packages/fd/cc/e0e5aca16e950cddb5ca90dddf7a28ef7f9f18be05e53ecd75e1b9f2c69f/psygnal-0.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "37f5eb22f049f42fd5893c992354ede9ce1ad456e8295a6b37fb3cd85d47a102",
                "md5": "e562a1863476bf17a775c16204880857",
                "sha256": "99047badf82d12bfc42aa3b886ca358867e199af6d3b0c6e3be7d406a1f142ff"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e562a1863476bf17a775c16204880857",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 460854,
            "upload_time": "2023-09-19T00:32:47",
            "upload_time_iso_8601": "2023-09-19T00:32:47.939654Z",
            "url": "https://files.pythonhosted.org/packages/37/f5/eb22f049f42fd5893c992354ede9ce1ad456e8295a6b37fb3cd85d47a102/psygnal-0.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7922fcb45b9f1cbb0bb55c1e3862b2bb2f9e925fc9ef1c2887ab60d4a83cc98e",
                "md5": "995a10f5b595102f95a182be1639e1c9",
                "sha256": "c93d800e2e6aefd3022b966188efba9d74e016677c8c0872261dbbbfa5cd4350"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "995a10f5b595102f95a182be1639e1c9",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 293947,
            "upload_time": "2023-09-19T00:32:37",
            "upload_time_iso_8601": "2023-09-19T00:32:37.163970Z",
            "url": "https://files.pythonhosted.org/packages/79/22/fcb45b9f1cbb0bb55c1e3862b2bb2f9e925fc9ef1c2887ab60d4a83cc98e/psygnal-0.9.4-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7ad599b067d07e5b55697a96b899babf60fecbb0d2f4578285e394db968cd985",
                "md5": "72b5a7595ef1b7d071dcc077122d0695",
                "sha256": "aad2732760cee6622a53bca542ef2cccb30a270980de99bc882c8302c93531ef"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp38-cp38-macosx_10_16_arm64.whl",
            "has_sig": false,
            "md5_digest": "72b5a7595ef1b7d071dcc077122d0695",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 356239,
            "upload_time": "2023-09-19T00:28:19",
            "upload_time_iso_8601": "2023-09-19T00:28:19.327649Z",
            "url": "https://files.pythonhosted.org/packages/7a/d5/99b067d07e5b55697a96b899babf60fecbb0d2f4578285e394db968cd985/psygnal-0.9.4-cp38-cp38-macosx_10_16_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "efb623935eb5ab41fbd9015196ee1e63a9c1c7f0f123fd881ab1be4ee09c9212",
                "md5": "099dc2e661e2f433a321c4d796cc374a",
                "sha256": "bc9f3ebfac147a61f544f4ece782d4a2035cbc74f2471094d57196e165b4004f"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp38-cp38-macosx_10_16_x86_64.whl",
            "has_sig": false,
            "md5_digest": "099dc2e661e2f433a321c4d796cc374a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 380689,
            "upload_time": "2023-09-19T00:34:48",
            "upload_time_iso_8601": "2023-09-19T00:34:48.575076Z",
            "url": "https://files.pythonhosted.org/packages/ef/b6/23935eb5ab41fbd9015196ee1e63a9c1c7f0f123fd881ab1be4ee09c9212/psygnal-0.9.4-cp38-cp38-macosx_10_16_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f89b91504687bc14645ecd40d53450fa19afc54f9f10ce920cf68b5582e58819",
                "md5": "adb48bb8893d80b08461a3cac10812fb",
                "sha256": "d39a6b534ac9c203e3eab88d504e436cd6aace022d438e243570617e2c6f4e69"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "adb48bb8893d80b08461a3cac10812fb",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 579766,
            "upload_time": "2023-09-19T00:32:49",
            "upload_time_iso_8601": "2023-09-19T00:32:49.607170Z",
            "url": "https://files.pythonhosted.org/packages/f8/9b/91504687bc14645ecd40d53450fa19afc54f9f10ce920cf68b5582e58819/psygnal-0.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9c433e4822d35fd635999faf0d6a45aa52ac2a817f4a7d79d0b7feb70aabd18c",
                "md5": "0777ca34326cab0795c7371684839efc",
                "sha256": "f12d7ea15398b9df86f653f1c619a179fac35cd0e6a9084f2f3badc031cf786e"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0777ca34326cab0795c7371684839efc",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 575960,
            "upload_time": "2023-09-19T00:32:50",
            "upload_time_iso_8601": "2023-09-19T00:32:50.832010Z",
            "url": "https://files.pythonhosted.org/packages/9c/43/3e4822d35fd635999faf0d6a45aa52ac2a817f4a7d79d0b7feb70aabd18c/psygnal-0.9.4-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5f62ceeaf16ee4a1dcaae21c5e92107af136ac4766dfa007262c5f34bea725e0",
                "md5": "62f2b12107a25bdf6950d38682146d94",
                "sha256": "133ad346d0faeae03642ac422346f9708248ebb370c1461e283b8887e85b5be1"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "62f2b12107a25bdf6950d38682146d94",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 301025,
            "upload_time": "2023-09-19T00:32:38",
            "upload_time_iso_8601": "2023-09-19T00:32:38.514442Z",
            "url": "https://files.pythonhosted.org/packages/5f/62/ceeaf16ee4a1dcaae21c5e92107af136ac4766dfa007262c5f34bea725e0/psygnal-0.9.4-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7b0f098802913c8ce4fdfa8e9d3e0249ab313eb941b4922612581df3886a82b5",
                "md5": "30bb265689fa124f24faf91515ba7e80",
                "sha256": "05018751371ddc8a99a6ab9271f6b6ca7cca1df91637eb5b972d567fe2f8bc2c"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp39-cp39-macosx_10_16_arm64.whl",
            "has_sig": false,
            "md5_digest": "30bb265689fa124f24faf91515ba7e80",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 360472,
            "upload_time": "2023-09-19T00:28:21",
            "upload_time_iso_8601": "2023-09-19T00:28:21.137472Z",
            "url": "https://files.pythonhosted.org/packages/7b/0f/098802913c8ce4fdfa8e9d3e0249ab313eb941b4922612581df3886a82b5/psygnal-0.9.4-cp39-cp39-macosx_10_16_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7d75d132549dfdb6fe8e31c1f93ad4d660d3cf5257a130f9d4fd5a2026728289",
                "md5": "036ffb2e698e3691ab997018a53284ac",
                "sha256": "82e1c5110b474a1d98914ff8f8f3d29df76638924f4ec12769d0c8afb62d3a99"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp39-cp39-macosx_10_16_x86_64.whl",
            "has_sig": false,
            "md5_digest": "036ffb2e698e3691ab997018a53284ac",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 384196,
            "upload_time": "2023-09-19T00:34:50",
            "upload_time_iso_8601": "2023-09-19T00:34:50.528226Z",
            "url": "https://files.pythonhosted.org/packages/7d/75/d132549dfdb6fe8e31c1f93ad4d660d3cf5257a130f9d4fd5a2026728289/psygnal-0.9.4-cp39-cp39-macosx_10_16_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "546e8ae63560b308ec185e3a35e56f95b9c1c76831eec9a643e88de39d09a6c1",
                "md5": "b9f87bcae3e547ca77a4014fe2e3cb95",
                "sha256": "b0d5ce7926e8415cb296c1d267d7bd07e90d250397ae6cff3012b43bcd7dd6e1"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b9f87bcae3e547ca77a4014fe2e3cb95",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 599041,
            "upload_time": "2023-09-19T00:32:52",
            "upload_time_iso_8601": "2023-09-19T00:32:52.167785Z",
            "url": "https://files.pythonhosted.org/packages/54/6e/8ae63560b308ec185e3a35e56f95b9c1c76831eec9a643e88de39d09a6c1/psygnal-0.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cad902d06ff4725e0150b61a44f63838508b04315ac9fc8016a67adfbcb905a9",
                "md5": "f8258b2f99eda0f41ad59e973da321c2",
                "sha256": "fdf327ab12d97ab556400d28d8446ad6e59890a145719584687670b70813422a"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f8258b2f99eda0f41ad59e973da321c2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 578474,
            "upload_time": "2023-09-19T00:32:53",
            "upload_time_iso_8601": "2023-09-19T00:32:53.960288Z",
            "url": "https://files.pythonhosted.org/packages/ca/d9/02d06ff4725e0150b61a44f63838508b04315ac9fc8016a67adfbcb905a9/psygnal-0.9.4-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a64bb9400413c0c0373ee9469adc838c52cdf624219a7a1063e15a3fd6698add",
                "md5": "8e4534f06e29b8e3e983a8fea2e92b11",
                "sha256": "eedf46cbf9992be271367b7d732ddbded0ef1bdfc3df92ba77f99871f8666de5"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "8e4534f06e29b8e3e983a8fea2e92b11",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 305996,
            "upload_time": "2023-09-19T00:32:41",
            "upload_time_iso_8601": "2023-09-19T00:32:41.053908Z",
            "url": "https://files.pythonhosted.org/packages/a6/4b/b9400413c0c0373ee9469adc838c52cdf624219a7a1063e15a3fd6698add/psygnal-0.9.4-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "60fbf11642b49d9a20ec571f1227fbf47603d416eb781b4a536d20091432f7ac",
                "md5": "cede6dd10c077d0c349c1931dd25403b",
                "sha256": "7e696c0680f4ee73ebf0e93bf55f53d948b865b580b8b5ffbf037cd273b2c88b"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cede6dd10c077d0c349c1931dd25403b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 71344,
            "upload_time": "2023-09-19T00:19:58",
            "upload_time_iso_8601": "2023-09-19T00:19:58.943980Z",
            "url": "https://files.pythonhosted.org/packages/60/fb/f11642b49d9a20ec571f1227fbf47603d416eb781b4a536d20091432f7ac/psygnal-0.9.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8336e86937d4c60107c5e5a0e01369965b5455d37eaf3efad854be7411d2e58b",
                "md5": "bf2105f90dba4da0603e7ea800034148",
                "sha256": "26dc485bc86dea509abfb6eff93eb1f44865aa9b61c2ed8ee0fc0d57dde47bda"
            },
            "downloads": -1,
            "filename": "psygnal-0.9.4.tar.gz",
            "has_sig": false,
            "md5_digest": "bf2105f90dba4da0603e7ea800034148",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 83885,
            "upload_time": "2023-09-19T00:20:01",
            "upload_time_iso_8601": "2023-09-19T00:20:01.543554Z",
            "url": "https://files.pythonhosted.org/packages/83/36/e86937d4c60107c5e5a0e01369965b5455d37eaf3efad854be7411d2e58b/psygnal-0.9.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-19 00:20:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pyapp-kit",
    "github_project": "psygnal",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "psygnal"
}
        
Elapsed time: 0.16651s