Extensions
----------
Plugins can be written and put in the ``lib/python/omero/plugins``
directory. On execution, all plugins in that directory are registered
with the |CLI|.
For testing purposes the ``--path`` argument can be used to point to other
plugin files or directories, too.
Alternatively, plugins can be added to any directory ending with
``omero/plugins``. If this directory is part of the :envvar:`PYTHONPATH` the
|CLI| will automatically include them. An example of such a plugin is
`omero-cli-render `_.
Team-supported |CLI| plugins will be pip-installable. Search for
"`omero cli `_"
on PyPI_.
Thread-safety
^^^^^^^^^^^^^
The ``omero.cli.CLI`` should be considered not thread-safe. A single
connection object is accessible from all plugins via
``self.ctx.conn(args)``, and it is assumed that changes to this object
will only take place in the current thread. The |CLI| instance itself,
however, can be passed between multiple threads, as long as only one
accesses it sequentially, possibly via locking.
.. seealso::
|ExtendingOmero|
Other extensions to OMERO