|
|
||
|---|---|---|
| .gitlab/issue_templates | ||
| docs | ||
| openflexure_microscope | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .pre-commit-config.yaml | ||
| .tarignore | ||
| changelog.config.js | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| poetry.lock | ||
| pyproject.toml | ||
| README.md | ||
| readthedocs.yaml | ||
OpenFlexure Microscope Software
Quickstart
A general user-guide on setting up your microscope can be found here on our website. This includes basic installation instructions suitable for most users.
Full developer documentation can be found on ReadTheDocs. This includes installing the server in a mode better suited for active development.
Developer guidelines
Installation
git clone https://gitlab.com/openflexure/openflexure-microscope-server.gitpoetry installpoetry run build_static- Building the static interface will require a valid Node.js installation
- To build on a Raspberry Pi:
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -sudo apt install nodejs
Formatting and linting
We use 3 main code analysis and formatting libraries in this project. Please run all of these before submitting a merge request.
Our CI will check each of these automatically, so ensuring they pass locally will save you time.
- Black - Code formatting with minimal configuration.
- While sometimes it's not perfect, its fine 90% of the time and prevents arguments about formatting.
- Automatically formats your code
poetry run black .
- Isort - Import sorting
- Automatically organises your imports to stop things getting out of hand
poetry run isort .
- Pylint - Static code analysis
- Analyses your code, failing if issues are detected.
- We've disabled some less severe warnings, so if anything fails your merge request will be blocked
poetry run pylint openflexure_microscope
Pre-commit hooks
We support pre-commit hooks to run code formatting before committing to the codebase.
The simplest way to ensure this works is to install pre-commits into your current Python environment:
pip3 install pre-commitpre-commit install
To run pre-commit analysis manually, you can run pre-commit run.
Build-system
As of 1.0.0b0, we're using Poetry to manage dependencies, build, and distribute the package. All package information and dependencies are found in pyproject.toml, in line with PEP 518. If you're developing this package, make use of poetry.lock to ensure you're using the latest locked dependency list.
Changelog generation
npm install -g conventional-changelog-cliconventional-changelog -r 1 --config ./changelog.config.js -i CHANGELOG.md -s
Microscope extensions
The Microscope module, and Flask app, both support plugins for extending lower-level functionality not well suited to web API calls. The current documentation can be found here.
Credits
Piexif
The microscope server includes a forked copy of hMatoba's Piexif, licensed under the MIT License.
Video streaming
Camera streaming was initially based on supporting code for the article video streaming with Flask and its follow-up Flask Video Streaming Revisited.