diff --git a/pymodaq_plugin_manager/doc/PluginList.md b/pymodaq_plugin_manager/doc/PluginList.md index b1cd5f1..9a1b284 100644 --- a/pymodaq_plugin_manager/doc/PluginList.md +++ b/pymodaq_plugin_manager/doc/PluginList.md @@ -1,16 +1,19 @@ # PyMoDAQ Plugins | Plugin Name | Authors | Version | Description | |------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Amplitude Lasers | | 0.0.2 | This repository contains a set of PyMoDAQ plugins for Amplitude Systems Lasers Viewer0D: | +| Andor | | 0.0.1 | Set of PyMoDAQ plugins for Andor Camera (CCD camera using SDK2, SCMOS cameras using SDK3...) Viewer1D:Viewer2D: | | Default | | 2.0.0 | Plugins initially developed with PyMoDAQ Includes Mock plugins that are plugins of virtual instruments dedicated to code testing a new functionalities development. The list of included plugins can be found on https://docs.google.com/spreadsheets/d/1wfMfvLwTitZd2R2m1O5i6wVEaX1lJBahP2HUbxVdidg Actuator:Viewer0D:Viewer1D:Viewer2D:ViewerND: | +| FLIM | | 0.0.1 | Set of PyMoDAQ plugins for Fluorescence Lifetime Imaging Microscopy ViewerND: | +| Holoeye | | 0.0.2 | Set of PyMoDAQ plugins for Holoeye Spatial Light Modulator (SLM) Actuator: | +| Horiba | | 0.0.1 | Set of PyMoDAQ plugins for Horiba Instruments (Lapspec6TCP to communicate with labspec softaware using the AFM TCP/IP protocol) Viewer1D: | | National Instrument DAQmx | | 0.0.2 | Plugin devoted to the National Instrument signal acquisition and generation using the NiDAQmx library. Includes an actuator plugin for signal generation, a 1D viewer plugin for data acquisition as a function of time and a 0D viewer plugin for quick time averaging acquisition Actuator:Viewer0D:Viewer1D: | -| OrsaySTEM and Cameras | | 0.0.1 | PyMoDAQ Orsay STEM and Camera plugin Can be used to control Ropers or Princeton Cameras Can be used to control STEM (Scanning Tunnel Electron Microscope) using the HOUDs 2 hardware module to drive coils within a STEM From Marcel Tence source code from LPS Laboratory at Orsay University, France Actuator:Viewer2D: | | Newport Instruments | | 0.0.2 | Set of PyMoDAQ plugins for instruments from Newport (Conex, ESP100,...) Actuator: | -| Thorlabs Instruments | | 0.0.1 | Set of PyMoDAQ plugins for instruments from Thorlabs (Kinesis K10CR1 (stepper rotation actuator), Kinesis Flipper, Kinesis KSP100...) Actuator:Viewer0D: | +| Ocean Insight (Optics) | | 0.0.1 | Set of PyMoDAQ plugins for OceanInsight (OceanOptics) spectrometers Viewer1D: | +| OrsaySTEM and Cameras | | 0.0.1 | PyMoDAQ Orsay STEM and Camera plugin Can be used to control Ropers or Princeton Cameras Can be used to control STEM (Scanning Tunnel Electron Microscope) using the HOUDs 2 hardware module to drive coils within a STEM From Marcel Tence source code from LPS Laboratory at Orsay University, France Actuator:Viewer2D: | +| Physical Measurements Hardware | | 0.0.2 | Set of PyMoDAQ plugins for various physical measurements: multimeter, lockin, oscilloscope, indus cameras... Viewer0D:Viewer1D:Viewer2D: | | Physik Instrumente | | 0.0.1 | Set of PyMoDAQ plugins for Actuators from Physik Instumente (All the ones compatible with the GCS2 commands as well as the old 32bits MMC controller...) Actuator: | +| Picoquant | | 0.0.1 | Set of PyMoDAQ plugins for Picoquant instruments (TimeHarp260, ...) Viewer1D: | | PiezoConcept | | 0.0.2 | Set of PyMoDAQ plugins for Actuators from Piezoconcept (Tested on the Bio200 XY stage. Include a version of the controller firmware emulating functions from PhysikInstrumente) Actuator: | | Smaract | | 0.0.1 | Set of PyMoDAQ plugins for Actuators from Smaract (MCS_controller, ...) Actuator: | -| Andor | | 0.0.1 | Set of PyMoDAQ plugins for Andor Camera (CCD camera using SDK2, SCMOS cameras using SDK3...) Viewer1D:Viewer2D: | -| Picoquant | | 0.0.1 | Set of PyMoDAQ plugins for Picoquant instruments (TimeHarp260, ...) Viewer1D: | -| Horiba | | 0.0.1 | Set of PyMoDAQ plugins for Horiba Instruments (Lapspec6TCP to communicate with labspec softaware using the AFM TCP/IP protocol) Viewer1D: | -| FLIM | | 0.0.1 | Set of PyMoDAQ plugins for Fluorescence Lifetime Imaging Microscopy ViewerND: | -| Physical Measurements Hardware | | 0.0.1 | Set of PyMoDAQ plugins for various physical measurements: multimeter, lockin, oscilloscope, indus cameras... Viewer0D:Viewer1D:Viewer2D: | +| Thorlabs Instruments | | 0.0.1 | Set of PyMoDAQ plugins for instruments from Thorlabs (Kinesis K10CR1 (stepper rotation actuator), Kinesis Flipper, Kinesis KSP100...) Actuator:Viewer0D: | diff --git a/pymodaq_plugin_manager/manager.py b/pymodaq_plugin_manager/manager.py index 34b4275..252a9ff 100644 --- a/pymodaq_plugin_manager/manager.py +++ b/pymodaq_plugin_manager/manager.py @@ -79,8 +79,9 @@ def filterAcceptsRow(self, sourcerow, parent_index): f'pymodaq_plugins_{plugin_name}') match = self.textRegExp.pattern().lower() in plugin_name.lower() if not not plugin: - match = self.textRegExp.pattern() in plugin['description'].lower() or \ - any(self.textRegExp.pattern() in plug.lower() for plug in plugin['instruments']) + match = match or self.textRegExp.pattern() in plugin['description'].lower() + for plug in plugin['instruments']: + match = match | any(self.textRegExp.pattern().lower() in p.lower() for p in plugin['instruments'][plug]) return match except Exception as e: print(e) @@ -271,25 +272,29 @@ def display_info(self, index): plugin = self.plugins_update[index.model().mapToSource(index).row()] elif self.plugin_choice.currentText() == 'Installed': plugin = self.plugins_installed[index.model().mapToSource(index).row()] - self.info_widget.insertPlainText(plugin['description']) + doc, tag, text = Doc().tagtext() + + with tag('p'): + text(plugin['description']) if not not plugin['authors']: - self.info_widget.insertPlainText('\r\n\r\nAuthors:') - doc, tag, text = Doc().tagtext() + text('Authors:') with tag('ul'): for inst in plugin['authors']: with tag('li'): text(inst) - self.info_widget.insertHtml(doc.getvalue()) if not not plugin['instruments']: - self.info_widget.insertPlainText('\r\n\r\nThis package include plugins for the instruments listed below:') - doc, tag, text = Doc().tagtext() - with tag('ul'): - for inst in plugin['instruments']: - with tag('li'): - text(inst) - self.info_widget.insertHtml(doc.getvalue()) + with tag('p'): + text('This package include plugins for the instruments listed below:') + for inst in plugin['instruments']: + with tag('p'): + text(f'{inst}:') + with tag('ul'): + for instt in plugin['instruments'][inst]: + with tag('li'): + text(instt) + self.info_widget.insertHtml(doc.getvalue()) if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) diff --git a/pymodaq_plugin_manager/src/PluginList.json b/pymodaq_plugin_manager/src/PluginList.json index 554e9ee..96bea88 100644 --- a/pymodaq_plugin_manager/src/PluginList.json +++ b/pymodaq_plugin_manager/src/PluginList.json @@ -1,6 +1,6 @@ { "name": "pymodaq-pluginList", - "version": "0.0.2", + "version": "0.0.3", "pymodaq-plugins": [ { "plugin-name": "pymodaq_plugins", @@ -169,7 +169,7 @@ "repository": "https://github.com/CEMES-CNRS/pymodaq_plugins_picoquant/archive/0.0.1.tar.gz", "description": "Set of PyMoDAQ plugins for Picoquant instruments (TimeHarp260, ...)", "instruments": { - "Viewer1D": ["Timeharp 260 for photon counting and time tagging"] + "Viewer1D": ["Timeharp TH260 for photon counting and time tagging"] }, "authors": ["Sebastien Weber"], "contributors": [], @@ -206,9 +206,9 @@ { "plugin-name": "pymodaq_plugins_physical_measurements", "display-name": "Physical Measurements Hardware", - "version": "0.0.1", - "id": "ecb69225b7c0f74074bc5033f9c8c5568e5ee7968a08498bab6df1c583e157d5", - "repository": "https://github.com/CEMES-CNRS/pymodaq_plugins_physical_measurements/archive/0.0.1.tar.gz", + "version": "0.0.2", + "id": "aad070b94772b2bb877f14118194825df758b3d3f7fb3d647923d69d64cbeef0", + "repository": "https://github.com/CEMES-CNRS/pymodaq_plugins_physical_measurements/archive/0.0.2.tar.gz", "description": "Set of PyMoDAQ plugins for various physical measurements: multimeter, lockin, oscilloscope, indus cameras...", "instruments": { "Viewer0D": ["Pico-Amperemeter Keithley 648X Series, 6430 and 6514", @@ -225,6 +225,52 @@ "authors": ["Sebastien Weber", "Damien Lodie"], "contributors": ["David Bresteau", "Nicolas Bruyant"], "homepage": "https://github.com/CEMES-CNRS/pymodaq_plugins_horiba" + }, + { + "plugin-name": "pymodaq_plugins_holoeye", + "display-name": "Holoeye", + "version": "0.0.2", + "id": "a3a63205dee749872a0ce3f5151a941d04b6780d57b57e771cf4bc5272141a1a", + "repository": "https://github.com/CEMES-CNRS/pymodaq_plugins_holoeye/archive/0.0.2.tar.gz", + "description": "Set of PyMoDAQ plugins for Holoeye Spatial Light Modulator (SLM)", + "instruments": { + "Actuator": [ + "Let you apply various phase accross the SLM (tested with the LC2012)" + ] + }, + "authors": ["Sebastien Weber"], + "contributors": [], + "homepage": "https://github.com/CEMES-CNRS/pymodaq_plugins_holoeye" + }, + { + "plugin-name": "pymodaq_plugins_amplitude", + "display-name": "Amplitude Lasers", + "version": "0.0.2", + "id": "f8c262aedd985f3d3be90b28399caeda13a4855f99e68aa53ff640f7cab5e511", + "repository": "https://github.com/CEMES-CNRS/pymodaq_plugins_amplitude/archive/0.0.1.tar.gz", + "description": "This repository contains a set of PyMoDAQ plugins for Amplitude Systems Lasers", + "instruments": { + "Viewer0D": [ + "Let you control the laser settings and grab info on the laser status (tested on a Satsuma)" + ] + }, + "authors": ["Sebastien Weber"], + "contributors": [], + "homepage": "https://github.com/CEMES-CNRS/pymodaq_plugins_amplitude" + }, + { + "plugin-name": "pymodaq_plugins_oceaninsight", + "display-name": "Ocean Insight (Optics)", + "version": "0.0.1", + "id": "02c9776f0cfba56a6987300fb88040a22fbac1ba66573445d239ef685eb12007", + "repository": "https://github.com/CEMES-CNRS/pymodaq_plugins_oceaninsight/archive/0.0.1.tar.gz", + "description": "Set of PyMoDAQ plugins for OceanInsight (OceanOptics) spectrometers", + "instruments": { + "Viewer1D": ["Control of Spectrometer using the Omnidriver library (should be installed)"] + }, + "authors": ["Sebastien Weber"], + "contributors": [], + "homepage": "https://github.com/CEMES-CNRS/pymodaq_plugins_oceaninsight" } - ] + ] } diff --git a/pymodaq_plugin_manager/validate.py b/pymodaq_plugin_manager/validate.py index 07b26be..8279d21 100644 --- a/pymodaq_plugin_manager/validate.py +++ b/pymodaq_plugin_manager/validate.py @@ -184,6 +184,8 @@ def write_plugin_doc(): header = ['Plugin Name', 'Authors', 'Version', 'Description'] plugins_tmp = [] + plugins.sort(key=lambda plugin: plugin['display-name']) + for ind, plug in enumerate(plugins): tmp = [] for k in header_keys: