Skip to content

Commit fba5b50

Browse files
Squashed commit of the following:
commit 76e7b63 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Thu Jun 25 20:09:18 2020 +1000 Update dependencies in setup.cfg Bumped all labscript-suite dependencies to `>=3.0.0` commit 1567faa Merge: 17f02fe e0ac239 Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Thu Jun 25 15:48:24 2020 +1000 Merge pull request #50 from rpanderson/labscript-profile-dir-docs Clarify note about labscript-suite/labscript-utils#37 commit e0ac239 Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Thu Jun 25 15:43:26 2020 +1000 Clarify note about labscript-suite/labscript-utils#37 commit 17f02fe Merge: 907619d 90330ba Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Mon Jun 22 18:08:23 2020 +1000 Merge pull request #49 from philipstarkey/master fix docs conf bugs identified in labscript-suite/labscript-utils#57 commit 90330ba Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Sat Jun 20 18:14:39 2020 +1000 fix docs conf bugs identified in labscript-suite/labscript-utils#57 commit 907619d Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Fri Jun 19 16:50:41 2020 +1000 64x64 icons per other styling, and https doi badge commit 25fe511 Merge: fadeab2 3b8377d Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Fri Jun 19 16:43:34 2020 +1000 Merge pull request #48 from philipstarkey/master Added links to other component docs commit 3b8377d Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Fri Jun 19 15:57:44 2020 +1000 Addressing latest review comments commit d5e175b Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Fri Jun 19 10:56:52 2020 +1000 Simplified sphinx conf by moving logic into template commit 6abe116 Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Thu Jun 18 19:14:25 2020 +1000 Moved auto generated components.rst to a jinja2 template commit 8159129 Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Thu Jun 18 16:43:21 2020 +1000 Updated .gitignore with latest GitHub defaults commit d697cb9 Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Thu Jun 18 16:40:30 2020 +1000 Relocated custom sphinx gitignore rules (and restored the original) commit 42172f5 Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Thu Jun 18 16:32:45 2020 +1000 reversed order of sections in .gitignore This is so that custom rules added by git tools will be in the right section when they are appended to the file commit cb399ec Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Thu Jun 18 16:09:49 2020 +1000 Split out metapackage link in generalised config (hidden in docs built for this project) * also removed metapackage table from components page (since I realised I shouldn't have really added it) commit a00526b Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Thu Jun 18 13:06:16 2020 +1000 Fixed bug where component docs URLs were alsways using "latest". * Now use the intersphinx mapping URL already generated * Also added entry for metapackage commit 58ed4fd Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Thu Jun 18 12:31:24 2020 +1000 Added dynamic generation of labscript suite component table commit b3087a6 Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Thu Jun 18 11:10:54 2020 +1000 Implemented some review changes * fixed typo in labscriptsuite.org URLs * Updated to use `pathlib` * Updated .gitignore to delineate custom and generic ignore rules * renamed component_docs.rst -> components.rst commit fadeab2 Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Wed Jun 17 11:38:48 2020 +1000 README.md badges and edits commit e419ce1 Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Tue Jun 16 21:03:32 2020 +1000 Populated README.md with styling, iconogrpahy, prose, and badges commit 8e5ea93 Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Tue Jun 16 18:08:33 2020 +1000 black formatting commit 0f0da2e Author: philipstarkey <philipstarkey@users.noreply.github.com> Date: Tue Jun 16 18:06:02 2020 +1000 Added links to other component docs Co-authored-by: Russell Anderson <5637107+rpanderson@users.noreply.github.com>
1 parent ffbdd5a commit fba5b50

File tree

9 files changed

+203
-66
lines changed

9 files changed

+203
-66
lines changed

.gitignore

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# This gitignore file consists of 2 parts:
2+
# * The standard Python .gitignore rules from GitHub
3+
# * custom ignore rules for the labscript suite.
4+
#
5+
# These should be kept separate so that the generic rules can be updated with a
6+
# copy/paste without having to worry about whether we are removing custom rules
7+
18
# Byte-compiled / optimized / DLL files
29
__pycache__/
310
*.py[cod]
@@ -20,7 +27,6 @@ parts/
2027
sdist/
2128
var/
2229
wheels/
23-
pip-wheel-metadata/
2430
share/python-wheels/
2531
*.egg-info/
2632
.installed.cfg
@@ -50,6 +56,7 @@ coverage.xml
5056
*.py,cover
5157
.hypothesis/
5258
.pytest_cache/
59+
cover/
5360

5461
# Translations
5562
*.mo
@@ -69,9 +76,10 @@ instance/
6976
.scrapy
7077

7178
# Sphinx documentation
72-
docs/html/
79+
docs/_build/
7380

7481
# PyBuilder
82+
.pybuilder/
7583
target/
7684

7785
# Jupyter Notebook
@@ -82,6 +90,8 @@ profile_default/
8290
ipython_config.py
8391

8492
# pyenv
93+
# For a library or package, you might want to ignore these files since the code is
94+
# intended to run in multiple environments; otherwise, check them in:
8595
.python-version
8696

8797
# pipenv
@@ -128,5 +138,20 @@ dmypy.json
128138
# Pyre type checker
129139
.pyre/
130140

141+
# pytype static type analyzer
142+
.pytype/
143+
144+
# Cython debug symbols
145+
cython_debug/
146+
147+
#
148+
# Custom labscript suite .gitignore rules start below
149+
#
150+
131151
# Editors
132-
.vscode/
152+
.vscode/
153+
154+
# Sphinx documentation
155+
docs/html/
156+
docs/source/_build/
157+
docs/source/components.rst

README.md

Lines changed: 28 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
# the _labscript suite_
22

3-
<!-- ![labscript logo](https://raw.githubusercontent.com/rpanderson/labscript-suite/readme/suite_logo_white_bg.png "labscript suite logo") -->
4-
5-
<a href="https://github.com/labscript-suite/labscript"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/labscript_32nx32n.svg" height="96" alt="the labscript suite – labscript"></a> <a href="https://github.com/labscript-suite/runmanager"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/runmanager_32nx32n.svg" height="96" alt="the labscript suite – runmanager"></a> <a href="https://github.com/labscript-suite/blacs"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/blacs_32nx32n.svg" height="96" alt="the labscript suite – blacs"></a> <a href="https://github.com/labscript-suite/lyse"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/lyse_32nx32n.svg" height="96" alt="the labscript suite – lyse"></a> <a href="https://github.com/labscript-suite/runviewer"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/runviewer_32nx32n.svg" height="96" alt="the labscript suite – runviewer"></a>
3+
<a href="https://github.com/labscript-suite/labscript"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/labscript_32nx32n.svg" height="64" alt="the labscript suite – labscript"></a> <a href="https://github.com/labscript-suite/runmanager"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/runmanager_32nx32n.svg" height="64" alt="the labscript suite – runmanager"></a> <a href="https://github.com/labscript-suite/blacs"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/blacs_32nx32n.svg" height="64" alt="the labscript suite – blacs"></a> <a href="https://github.com/labscript-suite/lyse"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/lyse_32nx32n.svg" height="64" alt="the labscript suite – lyse"></a> <a href="https://github.com/labscript-suite/runviewer"><img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/runviewer_32nx32n.svg" height="64" alt="the labscript suite – runviewer"></a>
64

75
### Experiment control and automation system
86

9-
___
7+
[![Actions Status](https://github.com/labscript-suite/labscript-suite/workflows/Build%20and%20Release/badge.svg?branch=maintenance%2F3.0.x)](https://github.com/labscript-suite/labscript-suite/actions)
8+
[![Documentation Status](https://readthedocs.org/projects/labscriptsuite/badge/?version=latest)](https://docs.labscriptsuite.org)
9+
[![License](https://img.shields.io/pypi/l/labscript-suite.svg)](https://github.com/labscript-suite/labscript-suite/raw/master/LICENSE.txt)
10+
[![Python Version](https://img.shields.io/pypi/pyversions/labscript-suite.svg)](https://python.org)
11+
[![PyPI](https://img.shields.io/pypi/v/labscript-suite.svg)](https://pypi.org/project/labscript-suite)
12+
[![Conda Version](https://img.shields.io/conda/v/labscript-suite/labscript-suite)](https://anaconda.org/labscript-suite/labscript-suite)
13+
[![Google Group](https://img.shields.io/badge/Google%20Group-labscriptsuite-blue.svg)](https://groups.google.com/forum/#!forum/labscriptsuite)
14+
[![DOI](https://img.shields.io/badge/DOI-10.1063%2F1.4817213-0F79D0.svg)](https://doi.org/10.1063/1.4817213)
15+
1016

11-
The _labscript suite_ is a powerful and extensible framework for experiment [composition](https://github.com/labscript-suite/labscript), [control](https://github.com/labscript-suite/runmanager), [execution](https://github.com/labscript-suite/blacs), and [analysis](https://github.com/labscript-suite/lyse). Developed for quantum science and quantum engineering, from laboratory to in-field devices. Applicable to optics, microscopy, materials engineering, biophysics, and any application predicated on the repetition of parameterised, hardware-timed experiments.
17+
The _labscript suite_ is a powerful and extensible framework for experiment [composition](https://github.com/labscript-suite/labscript), [control](https://github.com/labscript-suite/runmanager), [execution](https://github.com/labscript-suite/blacs), and [analysis](https://github.com/labscript-suite/lyse). Developed for quantum science and quantum engineering; deployable in laboratory and in-field devices. Also applicable to optics, microscopy, materials engineering, biophysics, and any application predicated on the repetition of parameterised, hardware-timed experiments.
1218

1319
This is a metapackage for the _labscript suite_. Formerly the _labscript suite_ installer repository, prior to the packages being installable via [PyPI](https://pypi.org/user/labscript-suite) and [Anaconda Cloud](https://anaconda.org/labscript-suite).
1420

@@ -23,28 +29,26 @@ This is a metapackage for the _labscript suite_. Formerly the _labscript suite_
2329
- Dynamic visualisation of experiment composition and results.
2430
- Remote operation: different modules can run on physically separate hosts / single modules can be run on multiple hosts (including hardware supervisor, [blacs](https://github.com/labscript-suite/blacs)).
2531
- Auto-generating user-interfaces.
26-
- High-level scripting: all user-interface interaction can be programatically synthesised.
32+
- High-level scripting: user-interface interaction can be programatically synthesised.
2733

2834
## Table of contents
2935

3036
- [Installing the _labscript suite_](#installing-the-labscript-suite)
3137
- [Recent changes to the _labscript suite_](#recent-changes-to-the-labscript-suite)
3238
- [Profile directories](#profile-directories)
33-
- [Application shortcuts](#application-shortcuts)
3439
- [Secure communication](#secure-communication)
40+
- [Application shortcuts](#application-shortcuts)
3541
- [Source code structure (developer installation)](#source-code-structure-developer-installation)
3642
- [Versioning (developer installation)](#versioning-developer-installation)
3743
- [BitBucket archive](#bitbucket-archive)
38-
- [What to do if you had custom code in a fork on BitBucket](#what-to-do-if-you-had-custom-code-in-a-fork-on-bitbucket)
39-
- [Migrating other repositories to GitHub](#migrating-other-repositories-to-github)
4044
- [Contributing to the _labscript suite_](#contributing-to-the-labscript-suite)
4145
- [Issue tracking](#issue-tracking)
4246
- [Request for developers](#request-for-developers)
4347
- [Citing the _labscript suite_](#citing-the-labscript-suite)
4448

4549
## Installing the _labscript suite_
4650

47-
We're excited to announce that accompanying the recent migration to GitHub, _labscript suite_ components are now distributed as Python packages on [PyPI](https://pypi.org/user/labscript-suite) and [Anaconda Cloud](https://anaconda.org/anaconda/conda).
51+
We're excited to announce that accompanying the recent migration to GitHub, _labscript suite_ components are now distributed as Python packages on [PyPI](https://pypi.org/user/labscript-suite) and [Anaconda Cloud](https://anaconda.org/labscript-suite).
4852

4953
This makes it far easier to get started using the _labscript suite_, as you no longer require a Mercurial or Git installation (or any knowledge of version control software); components can be installed and upgraded using:
5054

@@ -79,23 +83,16 @@ A typical structure of the profile directory is:
7983
└── user_devices/
8084
```
8185

82-
This structure is created by calling the command `labscript-profile-create`.
83-
84-
in a terminal after installing `labscript-utils` (per the [installation instructions](http://docs.labscriptsuite.org/en/latest/installation#regular-installation-from-the-python-package-index)).
85-
86-
_Note:_ As of [labscript-suite/labscript-utils#37](https://github.com/labscript-suite/labscript-utils/issues/37) this can be the same directory as an editable installation.
87-
88-
89-
### Application shortcuts
86+
This structure is created by calling the command `labscript-profile-create` in a terminal after installing `labscript-utils` (per the [installation instructions](http://docs.labscriptsuite.org/en/latest/installation#regular-installation-from-the-python-package-index)).
9087

91-
Operating-system menu shortcuts, correct taskbar behaviour, and environment activation for the Python GUI applications (blacs, lyse, runmanager, and runviewer) is now handled by a standalone Python package [desktop-app](https://github.com/chrisjbillington/desktop-app) (per installation instructions above). This currently supports Windows and Linux (Mac OS X support is forthcoming).
88+
_Note:_ As of [labscript-suite/labscript-utils#37](https://github.com/labscript-suite/labscript-utils/issues/37) an editable installation can be located within the labscript-suite profile directory.
9289

9390

9491
### Secure communication
9592

9693
Interprocess communication between components of the *labscript suite* is based on the [ZeroMQ](https://zeromq.org) (ZMQ) messaging protocol. We have supported secure interprocess communication via encrypted ZMQ messaging since February 2019 (labscript-utils 2.11.0).
9794

98-
As of labscript-utils 2.16.0, **encryted interprocess communication will be the default**. If you haven't already, this means you'll need to create a new shared secret(or [pre-shared key](https://en.wikipedia.org/wiki/Pre-shared_key)) as follows:
95+
As of labscript-utils 2.16.0, **encryted interprocess communication will be the default**. If you haven't already, this means you'll need to create a new shared secret (or [pre-shared key](https://en.wikipedia.org/wiki/Pre-shared_key)) as follows:
9996

10097
1. Run `python -m zprocess.makesecret` from the labconfig directory.
10198

@@ -108,7 +105,7 @@ As of labscript-utils 2.16.0, **encryted interprocess communication will be the
108105

109106
3. Copy the same pre-shared key to all computers running the *labscript suite* that need to communicate with each other, repeating step 2 for each of them.
110107

111-
Treat this file like a password: it allows anyone on the same network access to *labscript suite* programs.
108+
Treat this file like a password; it allows anyone on the same network access to *labscript suite* programs.
112109

113110
If you are on a trusted network and don't want to use secure communication, you may instead set:
114111
@@ -119,11 +116,16 @@ allow_insecure = True
119116
120117
*Notes*:
121118
122-
* Steps 1 and 2 are executed automatically as part of the `labscript-profile-create` command. However, for multiple hosts, step 3 above must still be followed.
119+
* Steps 1 and 2 are executed automatically as part of the `labscript-profile-create` command. However, for multiple hosts, step 3 above must still be followed to ensure the same public-key is used by all hosts running *labscript suite* programs.
123120
124121
* There is an outstanding issue with the ZMQ Python bindings on Windows ([zeromq/pyzmq#1148](https://github.com/zeromq/pyzmq/issues/1148)), whereby encryption is significantly slower for Python distributions other than [Anaconda](https://www.anaconda.com). Until this issue is resolved, we recommend that Windows users on an untrusted network use the Anaconda Python distribution (and install `pyzmq` using `conda install pyzmq`).
125122
126123
124+
### Application shortcuts
125+
126+
Operating-system menu shortcuts, correct taskbar behaviour, and environment activation for the Python GUI applications (blacs, lyse, runmanager, and runviewer) is now handled by a standalone Python package [desktop-app](https://github.com/chrisjbillington/desktop-app) (per installation instructions above). This currently supports Windows and Linux (Mac OS X support is forthcoming).
127+
128+
127129
### Source code structure (developer installation)
128130
129131
Existing users who move to a developer (editable) installation, please note the following structural changes to the _labscript suite_ source code:
@@ -150,10 +152,10 @@ Existing users who move to a developer (editable) installation, please note the
150152
151153
152154
* Package names (shared by repositories and top-level folders) are now hyphenated, e.g. labscript-devices and labscript-utils.
153-
* Module names remain underscored, i.e. labscript_devices and labscript_utils.
155+
* Module names remain underscored, e.g. labscript_devices and labscript_utils.
154156
* The mixing of hyphen and underscores is inelegant but conventional.
155157
* All references to blacs are now lowercase.
156-
* As installation no longer requires a separate package, the repository formerly named ‘installer’ has been renamed to ‘[labscript-suite](https://github.com/labscript-suite/labscript-suite/issues)’, and will be used as a metapackage for the labscript suite.
158+
* As installation no longer requires a separate package, the repository formerly named ‘installer’ has been renamed to ‘[labscript-suite](https://github.com/labscript-suite/labscript-suite/issues)’, and is a metapackage for the *labscript suite* (installing it via `pip`/`conda` installs the suite).
157159
158160
159161
### Versioning (developer installation)
@@ -163,7 +165,7 @@ Aside from the maintenance branches documented [here](http://docs.labscriptsuite
163165
164166
## BitBucket archive
165167
166-
Some repository metadata (such as pull request discussions) could not be migrated directly from BitBucket to GitHub. As such, we have created an archived copy of everything that was on BitBucket. This includes:
168+
In April–May 2020 the _labscript suite_ code base was migrated from BitBucket to GitHub. All commit history and issues was preserved, however some repository metadata (such as pull request discussions) could not be migrated directly. As such, we have created an archived copy of everything that was on BitBucket. This includes:
167169
168170
* Issues (as they appear on BitBucket);
169171
* Pull requests discussions;
@@ -172,14 +174,8 @@ Some repository metadata (such as pull request discussions) could not be migrate
172174
173175
This archive can be found at [bitbucket-archive.labscriptsuite.org](https://bitbucket-archive.labscriptsuite.org/) (this page can take some time to load for the first time). Copies of every public fork of our repositories are at [github.com/labscript-suite-bitbucket-archive](https://github.com/labscript-suite-bitbucket-archive). As this is an archive, we will not be transferring ownership of these repositories back to their original owners. However, should you wish to continue development on one of those repositories you can fork it into your own account through the GitHub web interface. Should you have uncommitted changes (or changes made after 1st February, 2020) that you wish to have archived, please contact us to discuss the best approach to including these. Please note that we are not recommending continuing development in such forks long term, due to the changes in package structure outlined above.
174176
177+
Further information about migrating your own customisations of the labscript suite can be found [here](https://docs.labscriptsuite.org/en/latest/archive/).
175178
176-
### What to do if you had custom code in a fork on BitBucket
177-
178-
_Coming soon!_
179-
180-
### Migrating other repositories to GitHub
181-
182-
Should you have other repositories on BitBucket such as labscriptlib, analysislib, userlib, or labconfig (or any project unrelated to the _labscript suite_) we strongly suggest using the tools we developed to migrate the _labscript suite_. These are [philipstarkey/bitbucket-hg-exporter](https://github.com/philipstarkey/bitbucket-hg-exporter) and [chrisjbillington/hg-export-tool](https://github.com/chrisjbillington/hg-export-tool) which can be used together. See the documentation of those projects for further details.
183179
184180
## Contributing to the _labscript suite_
185181

docs/source/_static/custom.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,7 @@ details {
5757
0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
5858
margin-bottom: 24px;
5959
}
60+
61+
img.labscript-suite-icon {
62+
min-width: 32px;
63+
}

docs/source/_templates/components.rst

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{% if current_project != 'the labscript suite' %}
2+
.. toctree::
3+
:maxdepth: 2
4+
:hidden:
5+
6+
the labscript suite <{{intersphinx_mapping['labscript-suite'][0]}}>
7+
8+
{% endif %}
9+
*labscript suite* components
10+
============================
11+
12+
The *labscript suite* is modular by design, and is comprised of:
13+
14+
.. list-table:: Python libraries
15+
:widths: 10 90
16+
:header-rows: 0
17+
18+
{% for prog, item in programs.items() if item.type == 'lib' %}
19+
* - .. image:: {{img_path}}/{{item.icon}}
20+
:target: {{intersphinx_mapping['%s' | format(prog)][0]}}
21+
:class: labscript-suite-icon
22+
- |{{prog}}|_ --- {{item.desc}}
23+
{% endfor %}
24+
25+
.. list-table:: Graphical applications
26+
:widths: 10 90
27+
:header-rows: 0
28+
29+
{% for prog, item in programs.items() if item.type == 'gui' %}
30+
* - .. image:: {{img_path}}/{{item.icon}}
31+
:target: {{intersphinx_mapping['%s' | format(prog)][0]}}
32+
:class: labscript-suite-icon
33+
- |{{prog}}|_ --- {{item.desc}}
34+
{% endfor %}
35+
36+
.. toctree::
37+
:maxdepth: 2
38+
:hidden:
39+
40+
{% for prog in programs|sort if prog != current_project %}
41+
{{prog}} <{{intersphinx_mapping['%s' | format(prog)][0]}}>
42+
{% endfor %}
43+
44+
{% for prog in programs %}
45+
.. |{{prog}}| replace:: **{{prog}}**
46+
.. _{{prog}}: {{intersphinx_mapping['%s' | format(prog)][0]}}
47+
{% endfor %}

docs/source/changes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ A typical structure of the profile directory is:
2626

2727
This structure is created by calling the command `labscript-profile-create` in a terminal after installing `labscript-utils` (per the [installation instructions](../installation)).
2828

29-
_Note:_ As of [labscript-suite/labscript-utils#37](https://github.com/labscript-suite/labscript-utils/issues/37) this can be the same directory as an editable installation.
29+
_Note:_ As of [labscript-suite/labscript-utils#37](https://github.com/labscript-suite/labscript-utils/issues/37) an editable installation can be located within the labscript-suite profile directory.
3030

3131

3232
### Secure communication

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy