https://github.com/ome/omero-web
Django-based OMERO.web client
https://github.com/ome/omero-web
client django omero python web
Last synced: about 1 year ago
JSON representation
Django-based OMERO.web client
- Host: GitHub
- URL: https://github.com/ome/omero-web
- Owner: ome
- Created: 2019-08-05T15:05:08.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-08T00:01:12.000Z (over 1 year ago)
- Last Synced: 2024-10-29T14:23:06.803Z (over 1 year ago)
- Topics: client, django, omero, python, web
- Language: Python
- Homepage: https://www.openmicroscopy.org/omero
- Size: 25.2 MB
- Stars: 16
- Watchers: 12
- Forks: 30
- Open Issues: 136
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
OMERO.web
=========
.. image:: https://github.com/ome/omero-web/workflows/Tox/badge.svg
:target: https://github.com/ome/omero-web/actions
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
.. image:: https://badge.fury.io/py/omero-web.svg
:target: https://badge.fury.io/py/omero-web
Introduction
------------
OMERO.web provides a web based client and plugin infrastructure.
Dependencies
------------
Direct dependencies of OMERO.web are:
- `OMERO.py`_
- `ZeroC IcePy`_
- `Pillow`_
- `NumPy`_
- A WSGI capable web server
Installation
------------
We recommend installing ``omero-web`` in a Python virtual environment.
Before installing ``omero-web``, we recommend to install the `ZeroC IcePy`_ Python bindings.
Our commercial partner `Glencoe Software `_ has produced several Python wheels to install the Ice-Python bindings depending on the desired Python version and the operating system. Please visit `OMERO Python language bindings `_ for a list of supported platforms and Python versions.
When the wheel is installed, activate the virtual environment and install ``omero-web`` from `PyPI `_.
::
$ pip install -U omero-web
Setting of the environment variable ``OMERODIR`` is required.
``$OMERODIR/var/log/`` directory will contain log files.
``$OMERODIR/etc/grid/config.xml`` is used to store config::
$ export OMERODIR=$(pwd)
Usage
-----
For running omero-web in production with NGINX, see See: `OMERO.web install`_ documentation.
To run in development mode, see below.
LUTs caching
------------
The OMERO server ships with a set of look-up tables (LUTs) for rendering images. Admins can also
add their own LUTs to the server. The LUTs available on the server can be retrieved from the
``/webgateway/luts/`` endpoint as JSON data.
To include the ``rgb`` values of each LUT in the JSON response, append ``?rgb=true`` to the URL.
A copy of the JSON output from ``/webgateway/luts/?rgb=true`` is included in the ``omero-web`` package
as a static file at
https://github.com/ome/omero-web/blob/master/omeroweb/webgateway/static/webgateway/json/luts.json.
This is used to generate a LUT preview png at ``/webgateway/luts_png/`` that can be used by clients
such as OMERO.ivewer and OMERO.figure to display the LUTs in a user-friendly way.
By using the static ``luts.json``, the ``/luts_png/`` can be quickly generated without needing to load LUTs from
the server.
The sequence of LUTs in ``/webgateway/luts_png/`` corresponds to the dynamic list from ``/webgateway/luts/``.
If there are new LUTs on the server that are not found in the static ``luts.json``, the ``/luts_png/`` will
show a blank placeholder for that LUT.
If you have Django caching enabled on your server (e.g. with Redis) then you can cache the png *with* new
LUTs by visiting ``/webgateway/luts_png/?cached=false``. This will then be read by other users when
they visit ``/webgateway/luts_png/``.
If Django caching isn't enabled, the JSON response from ``/webgateway/luts/?rgb=true``
can instead be manually updated in the static ``luts.json`` file in the ``omero-web`` package.
Contributing
------------
See: `OMERO`_ documentation
Developer installation
----------------------
For a development installation we recommend creating a virtual environment as described above.
Then install OMERO.web into your virtual environment as an editable package, so that any edits
to source files will be reflected in your installation.
::
$ git clone https://github.com/ome/omero-web
$ cd omero-web
$ pip install -e .
Note some ``omero-web`` tests may not run when this module and/or ``omero-py`` are installed in editable mode.
Configuration for developer usage::
$ omero config set omero.web.debug True
$ omero config set omero.web.application_server development
# If you want to connect to OMERO.server other than 'localhost'
$ omero config append omero.web.server_list '["demo.openmicroscopy.org", 4064, "demo"]'
Then run omero-web in the foreground with::
$ omero web start
...
Starting development server at http://127.0.0.1:4080/
Or, run Django directly::
$ cd omero-web
$ python omeroweb/manage.py runserver 4080
...
Starting development server at http://127.0.0.1:4080/
Upgrading
---------
Plugin developers should review the `Upgrading `_
document highlighting steps that may need to be taken
when upgrading OMERO.web to ensure plugins or other customizations
continue to function as expected.
Running tests
-------------
Unit tests are located under the `test` directory and can be run with pytest.
Integration tests
^^^^^^^^^^^^^^^^^
Integration tests are stored in the main repository (ome/openmicroscopy) and depend on the
OMERO integration testing framework. Reading about `Running and writing tests`_ in the `OMERO`_ documentation
is essential.
Release process
---------------
This repository uses `bump2version `_ to manage version numbers.
To tag a release run::
$ bumpversion release
This will remove the ``.dev0`` suffix from the current version, commit, and tag the release.
To switch back to a development version run::
$ bumpversion --no-tag patch
NB: this assumes next release will be a ``patch`` (see below).
To complete the release, push the master branch and the release tag to origin::
$ git push origin master v5.8.0
If any PRs are merged that would require the next release to be a ``major`` or ``minor`` version
(see `semver.org `_) then that PR can include a version bump created via::
$ bumpversion --no-tag minor|major
If this hasn't been performed prior to release and you wish to specify the next version
number directly when creating the release, this can be achieved with::
$ bumpversion --new-version 5.9.0 release
omero-web-docker
^^^^^^^^^^^^^^^^
Following ``omero-web`` release, need to update and release ``omero-web-docker``.
License
-------
OMERO.web is released under the AGPL.
Copyright
---------
2009-2024, The Open Microscopy Environment, Glencoe Software, Inc.
.. _OMERO: https://www.openmicroscopy.org/omero
.. _OMERO.web install: https://omero.readthedocs.io/en/stable/sysadmins/unix/install-web/web-deployment.html
.. _OMERO.py: https://pypi.python.org/pypi/omero-py
.. _ZeroC IcePy: https://zeroc.com/downloads/ice/3.6
.. _Pillow: https://python-pillow.org/
.. _NumPy: http://matplotlib.org/
.. _Running and writing tests: https://omero.readthedocs.io/en/stable/omero/developers/testing.html