# pyreaqtive
[![Docs](https://readthedocs.org/projects/pyreaqtive/badge/?style=flat)](https://pyreaqtive.readthedocs.io/en/latest/)
[![PyPI](https://img.shields.io/pypi/v/pyreaqtive)](https://pypi.org/project/pyreaqtive/)
[![Pipeline](https://img.shields.io/github/workflow/status/polfeliu/pyreaqtive/Pipeline/master)](https://github.com/polfeliu/pyreaqtive/actions/workflows/push.yml)
[![Mypy](https://img.shields.io/badge/-mypy-brightgreen)](https://github.com/polfeliu/pyreaqtive/actions/workflows/push.yml)
[![License](https://img.shields.io/pypi/l/pyreaqtive)](https://raw.githubusercontent.com/polfeliu/pyreaqtive/master/LICENSE)
![Logo](https://raw.githubusercontent.com/polfeliu/pyreaqtive/master/doc/source/_static/logo256.png)
pyreaqtive is a framework for developing applications in pyqt/pyside with reactive programming. It enables to write applications in a declarative form, that is focused on data and functionality and that does not bloat code with gui callbacks.
The library provides several models to hold data, and many prebuilt widgets and layouts to present the data from the models to the user, making the separation from data and visualization, and the adequate link between them, a simple task.
All reactive widgets and layouts use qt built-in widgets, which makes them fully compatible with qt without loosing functionality. Reactive and non-reactive parts can be mixed into an application, and non-reactive components can be turned to reactive ones without necessarily changing codebases.
It was originally developed for PyQt5, but through the QtPy package it is also compatible with to PyQt6, PySide2 and PySide6.
## Documentation
https://pyreaqtive.readthedocs.io/en/latest/
Raw data
{
"_id": null,
"home_page": "https://github.com/polfeliu/pyreaqtive",
"name": "pyreaqtive",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "pyqt5 framework reactive gui",
"author": "Pol Feliu Cuberes",
"author_email": "feliupol@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/6c/8e/46701e4a700ce9f2a949f3fd04c91fe959b14bda25c03630f49a32f0c80e/pyreaqtive-1.4.4.tar.gz",
"platform": null,
"description": "# pyreaqtive\n[![Docs](https://readthedocs.org/projects/pyreaqtive/badge/?style=flat)](https://pyreaqtive.readthedocs.io/en/latest/)\n[![PyPI](https://img.shields.io/pypi/v/pyreaqtive)](https://pypi.org/project/pyreaqtive/)\n[![Pipeline](https://img.shields.io/github/workflow/status/polfeliu/pyreaqtive/Pipeline/master)](https://github.com/polfeliu/pyreaqtive/actions/workflows/push.yml)\n[![Mypy](https://img.shields.io/badge/-mypy-brightgreen)](https://github.com/polfeliu/pyreaqtive/actions/workflows/push.yml)\n[![License](https://img.shields.io/pypi/l/pyreaqtive)](https://raw.githubusercontent.com/polfeliu/pyreaqtive/master/LICENSE)\n![Logo](https://raw.githubusercontent.com/polfeliu/pyreaqtive/master/doc/source/_static/logo256.png)\n\npyreaqtive is a framework for developing applications in pyqt/pyside with reactive programming. It enables to write applications in a declarative form, that is focused on data and functionality and that does not bloat code with gui callbacks.\n\nThe library provides several models to hold data, and many prebuilt widgets and layouts to present the data from the models to the user, making the separation from data and visualization, and the adequate link between them, a simple task.\n\nAll reactive widgets and layouts use qt built-in widgets, which makes them fully compatible with qt without loosing functionality. Reactive and non-reactive parts can be mixed into an application, and non-reactive components can be turned to reactive ones without necessarily changing codebases.\n\nIt was originally developed for PyQt5, but through the QtPy package it is also compatible with to PyQt6, PySide2 and PySide6.\n\n## Documentation\nhttps://pyreaqtive.readthedocs.io/en/latest/\n",
"bugtrack_url": null,
"license": "Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)",
"summary": "PyQt Reactive Framework",
"version": "1.4.4",
"split_keywords": [
"pyqt5",
"framework",
"reactive",
"gui"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cfebd44f9dd8576fc6fc7d6f705847b7b39c9c686b0a1f4639186609f9de3c27",
"md5": "c815238e2a261f1f39a49abf474fe6c6",
"sha256": "c38a644d5739da5b8ada1c986a08b8d77d638adc7154bb1d5119f731c75bb75f"
},
"downloads": -1,
"filename": "pyreaqtive-1.4.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c815238e2a261f1f39a49abf474fe6c6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 36721,
"upload_time": "2023-01-21T20:28:34",
"upload_time_iso_8601": "2023-01-21T20:28:34.722037Z",
"url": "https://files.pythonhosted.org/packages/cf/eb/d44f9dd8576fc6fc7d6f705847b7b39c9c686b0a1f4639186609f9de3c27/pyreaqtive-1.4.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6c8e46701e4a700ce9f2a949f3fd04c91fe959b14bda25c03630f49a32f0c80e",
"md5": "cbe9ab110fbe13c84837af8ce51da27a",
"sha256": "0c3ab99c8d879f0991c6db61951411d1a455f0b33e876f9b82ea28dae80797dd"
},
"downloads": -1,
"filename": "pyreaqtive-1.4.4.tar.gz",
"has_sig": false,
"md5_digest": "cbe9ab110fbe13c84837af8ce51da27a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21804,
"upload_time": "2023-01-21T20:28:36",
"upload_time_iso_8601": "2023-01-21T20:28:36.322855Z",
"url": "https://files.pythonhosted.org/packages/6c/8e/46701e4a700ce9f2a949f3fd04c91fe959b14bda25c03630f49a32f0c80e/pyreaqtive-1.4.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-21 20:28:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "polfeliu",
"github_project": "pyreaqtive",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "pyreaqtive"
}