diff --git a/.gitignore b/.gitignore index 70c27dc..583228d 100644 --- a/.gitignore +++ b/.gitignore @@ -158,4 +158,5 @@ conda_packages/ # Sphinx documentation docs/html/ docs/source/_build/ -docs/source/components.rst \ No newline at end of file +docs/source/components.rst +docs/source/api/_autosummary \ No newline at end of file diff --git a/docs/source/_templates/autosummary-class.rst b/docs/source/_templates/autosummary-class.rst new file mode 100644 index 0000000..4a2889e --- /dev/null +++ b/docs/source/_templates/autosummary-class.rst @@ -0,0 +1,32 @@ +{{ fullname | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: + :undoc-members: + :show-inheritance: + + {% block methods %} + .. automethod:: __init__ + + {% if methods %} + .. rubric:: {{ _('Methods') }} + + .. autosummary:: + {% for item in methods %} + ~{{ name }}.{{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block attributes %} + {% if attributes %} + .. rubric:: {{ _('Attributes') }} + + .. autosummary:: + {% for item in attributes %} + ~{{ name }}.{{ item }} + {%- endfor %} + {% endif %} + {% endblock %} diff --git a/docs/source/_templates/autosummary-module.rst b/docs/source/_templates/autosummary-module.rst new file mode 100644 index 0000000..2ce2afd --- /dev/null +++ b/docs/source/_templates/autosummary-module.rst @@ -0,0 +1,66 @@ +{{ fullname | escape | underline}} + +{% block submodules %} +{% if modules %} +.. rubric:: {{ _('Sub-Modules') }} +.. autosummary:: + :toctree: + :template: autosummary-module.rst + :recursive: + + {% for item in modules %} + {{ item }} + {%- endfor %} +{% endif %} +{% endblock %} + +.. automodule:: {{ fullname }} + + {% block attributes %} + {% if attributes %} + .. rubric:: {{ _('Module Attributes') }} + + .. autosummary:: + :toctree: + {% for item in attributes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block functions %} + {% if functions %} + .. rubric:: {{ _('Functions') }} + + .. autosummary:: + :toctree: + {% for item in functions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block classes %} + {% if classes %} + .. rubric:: {{ _('Classes') }} + + .. autosummary:: + :toctree: + :template: autosummary-class.rst + {% for item in classes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block exceptions %} + {% if exceptions %} + .. rubric:: {{ _('Exceptions') }} + + .. autosummary:: + :toctree: + {% for item in exceptions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} diff --git a/docs/source/api/connections.rst b/docs/source/api/connections.rst deleted file mode 100644 index d4e5745..0000000 --- a/docs/source/api/connections.rst +++ /dev/null @@ -1,8 +0,0 @@ -=========================== -labscript_utils.connections -=========================== - -.. automodule:: labscript_utils.connections - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/dict_diff.rst b/docs/source/api/dict_diff.rst deleted file mode 100644 index 13b571b..0000000 --- a/docs/source/api/dict_diff.rst +++ /dev/null @@ -1,8 +0,0 @@ -========================= -labscript_utils.dict_diff -========================= - -.. automodule:: labscript_utils.dict_diff - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/double_import_denier.rst b/docs/source/api/double_import_denier.rst deleted file mode 100644 index be00f09..0000000 --- a/docs/source/api/double_import_denier.rst +++ /dev/null @@ -1,8 +0,0 @@ -==================================== -labscript_utils.double_import_denier -==================================== - -.. automodule:: labscript_utils.double_import_denier - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/filewatcher.rst b/docs/source/api/filewatcher.rst deleted file mode 100644 index b9dc72e..0000000 --- a/docs/source/api/filewatcher.rst +++ /dev/null @@ -1,8 +0,0 @@ -=========================== -labscript_utils.filewatcher -=========================== - -.. automodule:: labscript_utils.filewatcher - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/h5_lock.rst b/docs/source/api/h5_lock.rst deleted file mode 100644 index 7647103..0000000 --- a/docs/source/api/h5_lock.rst +++ /dev/null @@ -1,8 +0,0 @@ -======================= -labscript_utils.h5_lock -======================= - -.. automodule:: labscript_utils.h5_lock - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/impprof.rst b/docs/source/api/impprof.rst deleted file mode 100644 index 3948b81..0000000 --- a/docs/source/api/impprof.rst +++ /dev/null @@ -1,8 +0,0 @@ -======================= -labscript_utils.impprof -======================= - -.. automodule:: labscript_utils.impprof - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/index.rst b/docs/source/api/index.rst index 9e9ff9a..59bde58 100644 --- a/docs/source/api/index.rst +++ b/docs/source/api/index.rst @@ -2,62 +2,10 @@ API Reference ************* -Labscript Tools -~~~~~~~~~~~~~~~ - -.. toctree:: - :maxdepth: 2 +.. autosummary:: + :toctree: _autosummary + :template: autosummary-module.rst + :recursive: labscript_utils - connections - dict_diff - labconfig - settings - testing_utils - properties - unitconversions - -Communications -~~~~~~~~~~~~~~ - -.. toctree:: - :maxdepth: 2 - - h5_lock - ls_zprocess - remote - shared_drive - zlock - zlog - -GUI -~~~~ - -.. toctree:: - :maxdepth: 2 - - splash - qtwidgets - -Logging and Profiling -~~~~~~~~~~~~~~~~~~~~~ - -.. toctree:: - :maxdepth: 2 - - impprof - memprof - setup_logging - tracelog - - -Module and File Tools -~~~~~~~~~~~~~~~~~~~~~ - -.. toctree:: - :maxdepth: 2 - - double_import_denier - filewatcher - modulewatcher - versions + labscript_profile diff --git a/docs/source/api/labconfig.rst b/docs/source/api/labconfig.rst deleted file mode 100644 index d95907d..0000000 --- a/docs/source/api/labconfig.rst +++ /dev/null @@ -1,8 +0,0 @@ -========================= -labscript_utils.labconfig -========================= - -.. automodule:: labscript_utils.labconfig - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/labscript_utils.rst b/docs/source/api/labscript_utils.rst deleted file mode 100644 index f73d1e1..0000000 --- a/docs/source/api/labscript_utils.rst +++ /dev/null @@ -1,7 +0,0 @@ -=============== -labscript_utils -=============== - -.. automodule:: labscript_utils - :members: - :undoc-members: \ No newline at end of file diff --git a/docs/source/api/ls_zprocess.rst b/docs/source/api/ls_zprocess.rst deleted file mode 100644 index 27ddede..0000000 --- a/docs/source/api/ls_zprocess.rst +++ /dev/null @@ -1,8 +0,0 @@ -=========================== -labscript_utils.ls_zprocess -=========================== - -.. automodule:: labscript_utils.ls_zprocess - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/memprof.rst b/docs/source/api/memprof.rst deleted file mode 100644 index f52ff07..0000000 --- a/docs/source/api/memprof.rst +++ /dev/null @@ -1,8 +0,0 @@ -======================= -labscript_utils.memprof -======================= - -.. automodule:: labscript_utils.memprof - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/modulewatcher.rst b/docs/source/api/modulewatcher.rst deleted file mode 100644 index 95055be..0000000 --- a/docs/source/api/modulewatcher.rst +++ /dev/null @@ -1,8 +0,0 @@ -============================= -labscript_utils.modulewatcher -============================= - -.. automodule:: labscript_utils.modulewatcher - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/properties.rst b/docs/source/api/properties.rst deleted file mode 100644 index 0c4d364..0000000 --- a/docs/source/api/properties.rst +++ /dev/null @@ -1,8 +0,0 @@ -========================== -labscript_utils.properties -========================== - -.. automodule:: labscript_utils.properties - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/qtwidgets.rst b/docs/source/api/qtwidgets.rst deleted file mode 100644 index 1df32fe..0000000 --- a/docs/source/api/qtwidgets.rst +++ /dev/null @@ -1,78 +0,0 @@ -========================= -labscript_utils.qtwidgets -========================= - -.. automodule:: labscript_utils.qtwidgets - :members: - :undoc-members: - -Helper Widgets -~~~~~~~~~~~~~~ - -.. automodule:: labscript_utils.qtwidgets.dragdroptab - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.elide_label - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.fingertab - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.headerview_with_widgets - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.InputPlotWindow - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.outputbox - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.toolpalette - :members: - :undoc-members: - :show-inheritance: - -Input/Output Widgets -~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: labscript_utils.qtwidgets.analoginput - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.analogoutput - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.ddsoutput - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.digitaloutput - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.enumoutput - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.qtwidgets.imageoutput - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/api/remote.rst b/docs/source/api/remote.rst deleted file mode 100644 index 3704a84..0000000 --- a/docs/source/api/remote.rst +++ /dev/null @@ -1,8 +0,0 @@ -====================== -labscript_utils.remote -====================== - -.. automodule:: labscript_utils.remote - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/settings.rst b/docs/source/api/settings.rst deleted file mode 100644 index f42d1aa..0000000 --- a/docs/source/api/settings.rst +++ /dev/null @@ -1,8 +0,0 @@ -======================== -labscript_utils.settings -======================== - -.. automodule:: labscript_utils.settings - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/setup_logging.rst b/docs/source/api/setup_logging.rst deleted file mode 100644 index ac72f74..0000000 --- a/docs/source/api/setup_logging.rst +++ /dev/null @@ -1,8 +0,0 @@ -============================= -labscript_utils.setup_logging -============================= - -.. automodule:: labscript_utils.setup_logging - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/shared_drive.rst b/docs/source/api/shared_drive.rst deleted file mode 100644 index 612fdf2..0000000 --- a/docs/source/api/shared_drive.rst +++ /dev/null @@ -1,8 +0,0 @@ -============================ -labscript_utils.shared_drive -============================ - -.. automodule:: labscript_utils.shared_drive - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/splash.rst b/docs/source/api/splash.rst deleted file mode 100644 index 1c487ea..0000000 --- a/docs/source/api/splash.rst +++ /dev/null @@ -1,8 +0,0 @@ -====================== -labscript_utils.splash -====================== - -.. automodule:: labscript_utils.splash - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/testing_utils.rst b/docs/source/api/testing_utils.rst deleted file mode 100644 index dba7879..0000000 --- a/docs/source/api/testing_utils.rst +++ /dev/null @@ -1,8 +0,0 @@ -============================= -labscript_utils.testing_utils -============================= - -.. automodule:: labscript_utils.testing_utils - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/tracelog.rst b/docs/source/api/tracelog.rst deleted file mode 100644 index 2acedd0..0000000 --- a/docs/source/api/tracelog.rst +++ /dev/null @@ -1,8 +0,0 @@ -======================== -labscript_utils.tracelog -======================== - -.. automodule:: labscript_utils.tracelog - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/unitconversions.rst b/docs/source/api/unitconversions.rst deleted file mode 100644 index 553d98b..0000000 --- a/docs/source/api/unitconversions.rst +++ /dev/null @@ -1,64 +0,0 @@ -=============================== -labscript_utils.unitconversions -=============================== - -.. automodule:: labscript_utils.unitconversions - :members: - :undoc-members: - -Basic Unit Conversion Classes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: labscript_utils.unitconversions.test - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.unitconversions.example - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.unitconversions.UnitConversionBase - :members: - :undoc-members: - :show-inheritance: - -Unit Conversion Classes -~~~~~~~~~~~~~~~~~~~~~~~ - -.. automodule:: labscript_utils.unitconversions.aom - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.unitconversions.detuning - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.unitconversions.linear_coil_driver - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.unitconversions.NovaTechDDS9m - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.unitconversions.optotunelens - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.unitconversions.quad_driver - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: labscript_utils.unitconversions.quad_monitor - :members: - :undoc-members: - :show-inheritance: - diff --git a/docs/source/api/versions.rst b/docs/source/api/versions.rst deleted file mode 100644 index 996d686..0000000 --- a/docs/source/api/versions.rst +++ /dev/null @@ -1,8 +0,0 @@ -============================ -labscript_utils.versions -============================ - -.. automodule:: labscript_utils.versions - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/zlock.rst b/docs/source/api/zlock.rst deleted file mode 100644 index 0d9aac1..0000000 --- a/docs/source/api/zlock.rst +++ /dev/null @@ -1,8 +0,0 @@ -===================== -labscript_utils.zlock -===================== - -.. automodule:: labscript_utils.zlock - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/api/zlog.rst b/docs/source/api/zlog.rst deleted file mode 100644 index 160db96..0000000 --- a/docs/source/api/zlog.rst +++ /dev/null @@ -1,8 +0,0 @@ -==================== -labscript_utils.zlog -==================== - -.. automodule:: labscript_utils.zlog - :members: - :undoc-members: - :private-members: \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index e3df35c..fd757b8 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -40,6 +40,7 @@ # ones. extensions = [ "sphinx.ext.autodoc", + "sphinx.ext.autosummary", "sphinx.ext.autosectionlabel", "sphinx.ext.intersphinx", "sphinx.ext.napoleon", @@ -50,6 +51,8 @@ ] autodoc_typehints = 'description' +autosummary_generate = True +numfig = True # mock missing site packages methods import site @@ -241,3 +244,43 @@ def setup(app): img_path=img_path ) ) + + # hooks to test docstring coverage + app.connect('autodoc-process-docstring', doc_coverage) + app.connect('build-finished', doc_report) + + +members_to_watch = ['module', 'class', 'function', 'exception', 'method', 'attribute'] +doc_count = 0 +undoc_count = 0 +undoc_objects = [] +undoc_print_objects = False + + +def doc_coverage(app, what, name, obj, options, lines): + global doc_count + global undoc_count + global undoc_objects + + if (what in members_to_watch and len(lines) == 0): + # blank docstring detected + undoc_count += 1 + undoc_objects.append(name) + else: + doc_count += 1 + + +def doc_report(app, exception): + global doc_count + global undoc_count + global undoc_objects + # print out report of documentation coverage + total_docs = undoc_count + doc_count + if total_docs != 0: + print(f'\nAPI Doc coverage of {doc_count/total_docs:.1%}') + if undoc_print_objects or os.environ.get('READTHEDOCS'): + print('\nItems lacking documentation') + print('===========================') + print(*undoc_objects, sep='\n') + else: + print('No docs counted, run \'make clean\' then rebuild to get the count.') diff --git a/labscript_utils/filewatcher.py b/labscript_utils/filewatcher.py index c5b9dd5..4b6f84b 100644 --- a/labscript_utils/filewatcher.py +++ b/labscript_utils/filewatcher.py @@ -24,28 +24,27 @@ def __init__(self, callback, files=None, folders=None, clean_modified_info=None, Detect modification, deletion, creation, or restoration of specific files (and all files in specific folders). - callback -- elicited whenever file events are detected, requires at least - (name, info) arguments. Event specific callback requires - (name, info, event) arguments, where event is on of: - 'modified', 'deleted' (or None), 'created', 'restored', 'original' - The 'original' event corresponds to a state change that results in - the original file info at instantiation. - - Keyword arguments: - files -- List of specific files to watch. - A single file can be specified as a string (default None). - folders -- List of specific folders to watch. - A single folder can be specified as a string (default None). - If a file is created/deleted in/from any watched folder, it is added/ - removed to/from the FileWatcher.files attribute. - clean_modified_info -- File info to detect modification/restoration with respect - to. If None (default), or for files not present in clean_modified_info, the - initial modified info will be based on the first polling of files. - hashable_types -- File extensions for which MD5 checksum will be used to - detect modification/restoration with (default None). Files of any - other type will be watched using their modified time. - Restoration cannot be detected for types not in hashable_types. - interval -- Polling interval in seconds (default 1). + Args: + callback (function): elicited whenever file events are detected, requires at least + (name, info) arguments. Event specific callback requires + (name, info, event) arguments, where event is on of: + 'modified', 'deleted' (or None), 'created', 'restored', 'original' + The 'original' event corresponds to a state change that results in + the original file info at instantiation. + files (list, optional): List of specific files to watch. + A single file can be specified as a string (default None). + folders (list, optional): List of specific folders to watch. + A single folder can be specified as a string (default None). + If a file is created/deleted in/from any watched folder, it is added/ + removed to/from the FileWatcher.files attribute. + clean_modified_info (dict, optional): File info to detect modification/restoration with respect + to. If None (default), or for files not present in clean_modified_info, the + initial modified info will be based on the first polling of files. + hashable_types (iterable, optional): File extensions for which MD5 checksum will be used to + detect modification/restoration with (default None). Files of any + other type will be watched using their modified time. + Restoration cannot be detected for types not in hashable_types. + interval (float, optional): Polling interval in seconds (default 1). """ if len(getfullargspec(callback)[0]) > 2: # For backwards compatability, allow callback to have only two args diff --git a/setup.cfg b/setup.cfg index 235bcb7..e97a846 100644 --- a/setup.cfg +++ b/setup.cfg @@ -38,8 +38,8 @@ install_requires = [options.extras_require] docs = PyQt5 - Sphinx==3.0.1 - sphinx-rtd-theme==0.4.3 + Sphinx==3.5.3 + sphinx-rtd-theme==0.5.2 recommonmark==0.6.0 m2r==0.2.1
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: