Name | psygnal JSON |
Version |
0.9.4
JSON |
| download |
home_page | |
Summary | Fast python callback/event system modeled after Qt Signals |
upload_time | 2023-09-19 00:20:01 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.7 |
license | BSD 3-Clause License |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# psygnal
[](https://github.com/pyapp-kit/psygnal/raw/master/LICENSE)
[](https://pypi.org/project/psygnal)

[](https://python.org)
[](https://github.com/pyapp-kit/psygnal/actions/workflows/test.yml)
[](https://codecov.io/gh/pyapp-kit/psygnal)
[](https://psygnal.readthedocs.io/en/latest/?badge=latest)
[](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[](https://github.com/pyapp-kit/psygnal/raw/master/LICENSE)\n[](https://pypi.org/project/psygnal)\n\n[](https://python.org)\n[](https://github.com/pyapp-kit/psygnal/actions/workflows/test.yml)\n[](https://codecov.io/gh/pyapp-kit/psygnal)\n[](https://psygnal.readthedocs.io/en/latest/?badge=latest)\n[](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"
}