Metadata-Version: 2.1
Name: dvg-qdeviceio
Version: 1.2.0
Summary: Hassle-free PyQt/PySide interface for multithreaded data acquisition and communication with an I/O device.
Home-page: https://python-dvg-qdeviceio.readthedocs.io/
Author: Dennis van Gils
Author-email: vangils.dennis@gmail.com
License: MIT
Project-URL: Issue Tracker, https://github.com/Dennis-van-Gils/python-dvg-qdeviceio/issues
Keywords: PyQt5,PyQt6,PySide2,PySide6,multithread,device I/O,automation,laboratory,science
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
License-File: LICENSE.txt
License-File: AUTHORS.rst

.. image:: https://img.shields.io/pypi/v/dvg-qdeviceio
    :target: https://pypi.org/project/dvg-qdeviceio
.. image:: https://img.shields.io/pypi/pyversions/dvg-qdeviceio
    :target: https://pypi.org/project/dvg-qdeviceio
.. image:: https://github.com/Dennis-van-Gils/python-dvg-qdeviceio/actions/workflows/python-package.yml/badge.svg
    :target: https://github.com/Dennis-van-Gils/python-dvg-qdeviceio/actions/workflows/python-package.yml
.. image:: https://readthedocs.org/projects/python-dvg-qdeviceio/badge/?version=latest
    :target: https://python-dvg-qdeviceio.readthedocs.io/en/latest/?badge=latest
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
.. image:: https://img.shields.io/badge/License-MIT-purple.svg
    :target: https://github.com/Dennis-van-Gils/python-dvg-qdeviceio/blob/master/LICENSE.txt

DvG_QDeviceIO
=============
*Hassle-free PyQt/PySide interface for multithreaded data acquisition and communication with an I/O device.*

It will manage many necessary components for proper multithreading -- creation
and handling of the threads, workers, signals and mutexes -- *for you*, reducing
it to just a few simple method calls of a QDeviceIO class instance to get set up
and going.

Supports PyQt5, PyQt6, PySide2 and PySide6.

- Documentation: https://python-dvg-qdeviceio.readthedocs.io
- Github: https://github.com/Dennis-van-Gils/python-dvg-qdeviceio
- PyPI: https://pypi.org/project/dvg-qdeviceio

Installation::

    pip install dvg-qdeviceio

Changelog
=========

1.2.0 (2023-02-27)
------------------
* Deprecated `requires.io` and `travis`
* Raise `ImportError` instead of general `Exception`

1.1.2 (2022-10-26)
------------------
* Minor refactor of mechanism to support PyQt5, PyQt6, PySide2 and PySide6

1.1.1 (2022-09-14)
------------------
* Forgot to bump requirement ``dvg-debug-functions~=2.2`` to ensure support for
  PyQt5, PyQt6, PySide2 and PySide6

1.1.0 (2022-09-13)
------------------
* Added support for PyQt5, PyQt6, PySide2 and PySide6

1.0.0 (2021-07-02)
------------------
* Stable release, identical to v0.4.0

0.4.0 (2021-05-09)
------------------
* Fixed buggy ``worker_DAQ`` pause and unpause routines in ``CONTINUOUS`` mode

0.3.0 (2020-07-23)
-------------------
* Updated start & stop machinery Workers
* Removed unneccesary lambdas
* Revamped DAQ rate calculation. Init arg ``calc_DAQ_rate_every_N_iter`` got removed.

0.2.2 (2020-07-17)
-------------------
* Traceback will be printed when ``DAQ_function`` raises an internal error.
* Introduced ``Worker_###._has_finished`` to prevent hang when closing workers twice.

0.2.1 (2020-07-15)
-------------------
* Added documentation

0.2.0 (2020-07-07)
-------------------
* ``quit_worker_###()``: Added check to see if thread was already closed, due to a ``lost_connection`` event. This prevents an hanging app during quit.
* Changed name of enum class ``DAQ_trigger`` to ``DAQ_TRIGGER``

0.1.2 (2020-07-04)
-------------------
* Proper use of ``super()``, now passing ``**kwargs`` onto subclass ``QtCore.QObject()``

0.1.1 (2020-07-02)
-------------------
* ``Worker_DAQ`` now stores all init arguments, some as _private

0.1.0 (2020-07-02)
-------------------
* DvG module filenames changed to lowercase
* Nearing full release status

0.0.12 (2020-06-29)
-------------------
* ``INTERNAL_TIMER``: Already instantiate the ``QTimer`` in ``create_worker_DAQ()``, instead of in ``start_worker_DAQ()``
* Changed default ``DAQ_timer_type`` from ``CoarseTimer`` to ``PreciseTimer``
* Added more Sphinx documentation

0.0.11
-------------------
Skipped (I screwed up the versioning)

0.0.10 (2020-06-22)
-------------------
* Major: Changed name ``Worker_send`` to ``Worker_jobs`` and similar
* Added more Sphinx documentation

0.0.9 (2020-06-17)
------------------
* Moved the ``Worker_###()`` classes outside of ``QDeviceIO`` and into module root
* Added documentation using Sphinx and Read the docs
* Changed from MarkDown to ReStructuredText

0.0.8 (2020-06-09)
------------------
* Added ``pause_DAQ``, ``unpause_DAQ()``, ``wake_up_DAQ()``
* Changed many attribute and method names
* Code style: black

0.0.6 (2020-06-07)
------------------
* Added ``start()``, renamed ``quit_all_workers()`` to ``quit()``
* Added ``send()``, ``add_to_send_queue()``, ``process_send_queue()``

0.0.5 (2020-06-06)
------------------
* Implemented smooth start and stop machinery to the workers

0.0.1 (2020-05-25)
------------------
* First release on PyPI
