Code Monkey home page Code Monkey logo

ome / openmicroscopy Goto Github PK

View Code? Open in Web Editor NEW
187.0 26.0 100.0 1.89 GB

OME (Open Microscopy Environment) develops open-source software and data format standards for the storage and manipulation of biological light microscopy data. A joint project between universities, research establishments and industry in Europe and the USA, OME has over 20 active researchers with strong links to the microscopy community. Funded by private and public research grants, OME has been a major force on the international microscopy stage since 2000.

Home Page: https://www.openmicroscopy.org/omero

License: GNU General Public License v2.0

CMake 1.06% Shell 0.24% Python 20.71% HTML 0.68% Java 29.82% C++ 29.30% C 0.08% XSLT 1.29% Makefile 0.08% PLpgSQL 14.56% Batchfile 0.03% Dockerfile 0.04% RobotFramework 2.12%
omero java python server image database

openmicroscopy's Introduction

openmicroscopy's People

Contributors

atarkowska avatar c0c0n3 avatar chris-allan avatar cneves avatar criswell avatar ctrueden avatar dgault avatar djw23 avatar domgaudioso avatar dominikl avatar emilroz avatar harryhoch avatar jballanc avatar jburel avatar joshmoore avatar kennethgillen avatar knabar avatar lucalianas avatar manics avatar melissalinkert avatar mtbc avatar pwalczysko avatar qidane avatar rgozim avatar sbesson avatar snoopycrimecop avatar stick avatar waxenegger avatar will-moore avatar zeb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openmicroscopy's Issues

Tagging dialog does not work in web

Found out during the testing of #3187 (comment) - Note that this bug is present also on 5.0.6

Tagging of Project which are already tagged with 1 tag does not work.

  • login to trout merge as user-4, read-only group
  • find a project which has already at least one tag on, if cannot, than add tag to one project
  • click + to add another tag to the project
  • observe that you have no tags loaded into the left-hand side of the tagging window, the console reports syntax error - the starting lines of the error file listed below
  • create a new tag and hit enter -> the tagging window vanishes, and so does the original tag -> not expected
/*!
 * jQuery JavaScript Library v1.11.1
 * http://jquery.com/
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 *
 * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 *
 * Date: 2014-05-01T17:42Z
 */

(function( global, factory ) {

    if ( typeof module === "object" && typeof module.exports === "object" ) {
        // For CommonJS and CommonJS-like environments where a proper window is present,
        // execute the factory and get jQuery
        // For environments that do not inherently posses a window with a document
        // (such as Node.js), expose a jQuery-making factory as module.exports
        // This accentuates the need for the creation of a real window
        // e.g. var jQuery = require("jquery")(window);
        // See ticket #14549 for more info
        module.exports = global.document ?
            factory( global, true ) :
            function( w ) {
                if ( !w.document ) {
                    throw new Error( "jQuery requires a window with a document" );
                }
                return factory( w );
            };
    } else {
        factory( global );
    }

// Pass this if window is not defined yet
}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {

// Can't do this because several apps including ASP.NET trace
// the stack via arguments.caller.callee and Firefox dies if
// you try to trace through "use strict" call chains. (#13335)
// Support: Firefox 18+
//

var deletedIds = [];

var slice = deletedIds.slice;

var concat = deletedIds.concat;

var push = deletedIds.push;

var indexOf = deletedIds.indexOf;

var class2type = {};

var toString = class2type.toString;

var hasOwn = class2type.hasOwnProperty;

var support = {};



var
    version = "1.11.1",

    // Define a local copy of jQuery
    jQuery = function( selector, context ) {
        // The jQuery object is actually just the init constructor 'enhanced'
        // Need init if jQuery is called (just allow error to be thrown if not included)
        return new jQuery.fn.init( selector, context );
    },

omero.scripts.Float issues when setting to 0.0

This is a series of issues which may be related when setting a value to zero in the UI.

This simply disregards the default, and sets it to an empty text box:

client = omero.scripts.client("title", "documentation",
    omero.scripts.Float("name", optional=False, default=0.0),
)

This does not allow to enter a value of zero. Once the input focus leaves the text box, if the value is 0, the number disappears:

client = omero.scripts.client("title", "documentation",
    omero.scripts.Float("name", optional=True),
)

This will act the same as before. However, if one enters a non-zero value, such as "4.0", but then changes it to 0.0, OMERO insight will crash (with the abnormal termination window popping up asking if I want to send an email with more details). Note that for this to crash, I must change only part of the number (swap the 4 with a 0). If I delete the whole "4.0" number and then enter "0.0", there is no crash (but the number still disappears once the focus moves out of the text box):

client = omero.scripts.client("title", "documentation",
    omero.scripts.Float("name", optional=False),
)

omero command as root and stderr

Firstly it would be really nice to be able to run the omero CLI as any user. Yes, running as root could be bad, but for many functions there is no reason not to be able to do this, e.g. generating an nginx configuration.

Secondly, the fatal error reported when you do run as root is to stdout instead of stderr.

`client.getInputs()` does not return empty options

Consider the following script:

client = omero.scripts.client("title", "documentation",
    omero.scripts.Long("long"),
    omero.scripts.Int("int"),
    omero.scripts.Float("float"),
    omero.scripts.String("string"),
    omero.scripts.Bool("bool"),
    omero.scripts.List("list"),
    omero.scripts.Map("map"),
)
params = client.getInputs(unwrap=True)

In the case that a user enters no value for the options, params will only have the boolean. This makes it harder to parse the options since one needs check if the key exists, then check if the value is empty or not. Also means we can't just loop over the keys.

OmeroPy: image of single precision gives double precision numpy array

I'm using OmeroPy to access some of the images in the Omero server. The original images were floating type (32 bit) and that's the precision I get from the Image object. However, the numpy array I get is floating 64bit:

>>> im = conn.getObject("Image", 51)
>>> im.getPixelsType()
'float'
>>> px = img.getPrimaryPixels()
>>> p = px.getPlane(theC=0, theT=0, theZ=0)
>>> p.dtype
dtype('float64')

The reason for this is that numpy.float will default to numpy.float64 on my system but the original image was not on this precision. If single and double from omero::models::PixelsType are always 32 and 64 bit floating point, then a fix should probably be on omero.gateway._PixelsWrapper.getTiles() which could map them numpy.float32 and numpy.float64 instead.

Ice3.6 slice2java and omero serveur installation

Dear all.
I'm trying to install Omero server using homebrew, and the brew install Omero won't terminate successfully saying that "
==> ./build.py -Dice.home=/usr/local/opt/ice build-default
*******************************************************
Ice is not properly installed. Cannot find slice2java
*******************************************************
"
I had macports installed and uninstalled it, I installed xCode which is up to date and its command line tool, Python seems to be installed correctly and the last version of Java as well. I am very near the last idea I can think of so : is there anyone having the same issue ? I understand that Ice 3.6 has just some out so is it possible there is something wrong with both package and is installed automatically by homebrew will installing it with no possibilities to install the version 3.5...
Also when reinstalling Ice is systematically reinstalled wether it already exists on the system or not, as it s very long to install it makes very long to try other ways? is there a way to bypass Ice installation while installing Omero ?

Thanks for your answers.
A good day to all.
Cheers
Rémi

omero.scripts.Set always reports missing input

When running the following script

from omero.rtypes import rstring, rlong
import omero.scripts as scripts
client = scripts.client('testscript.py', 'Test script',
    scripts.Set('Test set', optional=False).ofType(rlong(0)))
try:
    params = client.getInputs(unwrap=True)
    client.setOutput("Inputs", rstring(repr(params)))
finally:
    client.closeSession()

I always get the message Invalid parameters: MISSING INPUT for "Test set":, no matter what I enter as the argument. Is this an issue with Set or am I using it incorrectly?

syntax error on apache default configuration

The default apache configuration created by omero 5.2.2, via bin/omero web config apache, has a syntax error:

Syntax error on line 70 of /etc/apache2/sites-ena....
Either all Options must start with + or -, or no Option may.

The fix is is replacing:

  Options -Indexes FollowSymLinks

with:

  Options -Indexes +FollowSymLinks

I will guess this is version dependent or someone would have found it before. This is Apache 2.4.10 running in Debian 8 (Jessie), current Debian stable.

Which OS is the openjdk:8 image built upon?

Please excuse the newb nature of the question:
The Dockerfiles builds using the image openjdk:8 from Dockerhub. Which OS ist this built upon?
The OMERO docs have guides for, e.g. CentOS 7 and Ubuntu 16.04, so it isn't quite clear to me. You are using yum, so most likely it is not Ubuntu.

Ice3.5 slice2java and omero serveur installation

Hi all,

Im reopening this issue because the installation of Omero.server doesn't seem to work, while I don't have any errors reported there are no files copied to the installation folder. however, zeroc ice3.5 is correctly installed, the Omero folder is not even created by the brew omero installation formula. Is there anything I should look at ?
Here is the output I get :
$ brew install omero --with-cpp --with-nginx
==> Installing omero from ome/homebrew-alt
==> Using Homebrew-provided fortran compiler.
This may be changed by setting the FC environment variable.
==> Downloading http://downloads.openmicroscopy.org/omero/5.1.2/artifacts/openmicroscopy-5.1.2.zip
Already downloaded: /Library/Caches/Homebrew/omero-5.1.2.zip
==> ./build.py -Dice.home=/usr/local/opt/zeroc-ice35 build-all
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 83 more

Total time: 8 minutes 31 seconds

Thanks for you answer.
Remi

Possible bug in code (defect) (CWE-398)

Hello!

We've checked your sources with AppChecker static analyzer and found suspicious place:

https://github.com/openmicroscopy/openmicroscopy/blob/c4d3e2eca743198739746747eacf7713875c913c/components/insight/SRC/org/openmicroscopy/shoola/agents/treeviewer/actions/CreateTopContainerAction.java#L332

                        if (ns != null &&
                                TagAnnotationData.INSIGHT_TAGSET_NS.equals(
                                        ns));
                        withParent = model.canLink(tag);

If-statement contains empty block (;), i.e. (ns != null && TagAnnotationData.INSIGHT_TAGSET_NS.equals(ns)) doesn't effect anything

Possible defect was found by Echelon Team with AppChecker static analyzer

Idempotent configuration commands & config management

During our recent ansible configuration of OMERO I had to do some less than desirable things to make it work because some of the configuration can not be done idempotently.

Examples:

When configuring omero.web.ui.top_links it is not possible to use append because this will result in (after multiple runs) repeated entries, so instead it is necessary to use set which necessitates specifying all of the defaults (which could easily change with a new OMERO version).

omero.web.ui.top_links: '[["Data", "webindex", {"title": "Browse Data via Projects, Tags etc"}],["History", "history", {"title": "History"}],["Help", "http://help.openmicroscopy.org/", {"title": "Open OMERO user guide in a new tab", "target": "new"}],["Figure", "figure_index"],["Tag Search", "tagsearch"]]'

I think the best solution to this could be a new command exists for things which are lists.

For the omero.web.ui.top_links example:

omero config exists omero.web.ui.top_links '["Figure", "figure_index"]'
omero config exists omero.web.ui.top_links '["Tag Search", "tagsearch"]'

This one could probably be configured by manipulating XML instead, but as that is not the recommended way to do these changes then I think this makes more sense. Here is another example which could not be done that way though.

Plugin scripts are installed with upload and then replaced with replace. This is fine when doing things manually, but when using config management, it has no way of knowing what to do. If you run upload every time this results in the original script not being replaced. On the flip side, even if the script is already installed, it can't be replaced without some nasty bash foo to get the ID.

- name: check if figure script has been installed (database)
  shell: "{{ omero_base }}/OMERO.server/current/bin/omero -u root -w {{ omero_root_password }} -s localhost script list | grep 'Figure_To_Pdf' | gawk -F '|' '{ print $1 }'"
  sudo: yes
  sudo_user: "{{ omero_user }}"
  register: figure_script_id

# Install the figure script (only the first time)
- name: load plugin scripts (first time)
  shell: "{{ omero_base }}/OMERO.server/current/bin/omero -u root -w {{ omero_root_password }} -s localhost script upload omero/figure_scripts/Figure_To_Pdf.py --official"
  sudo: yes
  sudo_user: "{{ omero_user }}"
  args:
    chdir: "{{ omero_base }}/OMERO.web/current/lib/python/omeroweb/figure/scripts/"
  when: figure_script_id.stdout == ""

# Always reinstall the figure script (unless this was the first time)
- name: load plugin scripts (subsequent times)
  shell: "{{ omero_base }}/OMERO.server/current/bin/omero -u root -w {{ omero_root_password }} -s localhost script replace {{ figure_script_id.stdout }} omero/figure_scripts/Figure_To_Pdf.py"
  sudo: yes
  sudo_user: "{{ omero_user }}"
  args:
    chdir: "{{ omero_base }}/OMERO.web/current/lib/python/omeroweb/figure/scripts/"
  when: figure_script_id.stdout != ""

I'm not certain what the best way to fix that one is. Perhaps a command that is not based on ID like replace_or_install_script_at_location or something.

It would be really nice to be able to have any idempotent commands return values be such that config management could determine if something has changed or not.

Finally, if Ansible is what we are all using, then perhaps an action plugin or module could be developed (perhaps making use of underlying idempotent commands with nice return types) so that one could do something like:

- name: Add OMERO.figure to web top links
  omero_config:
    key: 'omero.web.config.ui.top_links'
    value: '["Figure", "figure_index"]'
    state: present

Some possible defects. Part 2 (strings issues)

Hi!

The next part of the weaknesses found with static analyzer AppChecker:

https://github.com/openmicroscopy/openmicroscopy/blob/d527261e7b4118da9dc1c924dad9bb499fc9ad8e/components/blitz/src/ome/services/blitz/fire/Registry.java#L124

            if (client_uuid == null || client_uuid == "") {
                client_uuid = UUID.randomUUID().toString();
            }

It is stongly unrecommended to compare string with "", as result is not always correct: http://ideone.com/XeFo5x
It is better to use isEmpty():

            if (client_uuid == null || client_uuid.isEmpty()) {
                client_uuid = UUID.randomUUID().toString();
            }
  1. https://github.com/openmicroscopy/openmicroscopy/blob/d527261e7b4118da9dc1c924dad9bb499fc9ad8e/components/insight/SRC/org/openmicroscopy/shoola/env/data/model/appdata/WindowsApplicationDataExtractor.java#L250
    The same as 1)
    if (fileDescription != "")
                applicationName = fileDescription;
  1. https://github.com/openmicroscopy/openmicroscopy/blob/d527261e7b4118da9dc1c924dad9bb499fc9ad8e/components/insight/SRC/org/openmicroscopy/shoola/env/data/model/appdata/WindowsApplicationDataExtractor.java#L252
    The same as 1)
            else if (productName != "")
                applicationName = productName;

  1. https://github.com/openmicroscopy/openmicroscopy/blob/d527261e7b4118da9dc1c924dad9bb499fc9ad8e/components/insight/SRC/org/openmicroscopy/shoola/util/ui/UIUtilities.java#L1416
    The same as 1)

if (f == null || f == "") return null;

  1. https://github.com/openmicroscopy/openmicroscopy/blob/d527261e7b4118da9dc1c924dad9bb499fc9ad8e/components/server/src/ome/security/SmtpAuthenticator.java#L28
    The same as 1)

if (this.username != "" && this.password != "") {

  1. https://github.com/openmicroscopy/openmicroscopy/blob/d527261e7b4118da9dc1c924dad9bb499fc9ad8e//components/rendering/test/util/mocks/MethodSignature.java#L246

Strings ms.name and name are compared with "==", but it should be "equals"

   b = ms.visibility == visibility && ms.returnType == returnType
                    && ms.name == name && ms.paramTypes.length == paramTypes.length;

All possible defects were found by Echelon Team with AppChecker static analyzer

Default value for omero.scripts.String is ignored

While creating a an omero.server plugin, I came across a small issue when setting default value for a List. Basically, the default value seems to be ignored when creating the GUI, and the first on the list becomes the actual default instead.

Examples can be seen on the core scripts that are distributed with the stock OMERO.server. For example, Images_From_ROIs, Batch_Image_Export, and Combine_Images, which have their default values for Data_Type set to Image, incorrectly display Dataset as the initial value on the dropdown menu.

Using Omero server 5.0.1, and same version number of OMERO.insight with OpenJDK 7, all from stock Debian Jessie (current testing version).

OmeroPy script_utils.getObjects() requires unwrapped dict

I have had some trouble getting the selected objects from an Omero script and using the provided script utils due to a conflict by using omero "r" classes. A very simple example for a script:

client = omero.scripts.client (
    "script name",
    "script documentation",
    omero.scripts.String (
        "Data_Type", optional = False, grouping = "1",
        values = ["Dataset", "Image"], default = "Image",
        description = "Choose Images by their IDs or via their 'Dataset'",
    ),
    omero.scripts.List (
        "IDs", optional = False, grouping = "2",
        description = "List of Dataset IDs or Image IDs",
    ),
)

params = omero.util.script_utils.parseInputs (client, None)
conn = omero.gateway.BlitzGateway (client_obj = client)
objs, msg = omero.util.script_utils.getObjects (conn, params)

This will return an empty objs but no message whatsoever about it. The reason is that params["IDs"] will be a list of rlongs, but during the re-sorting of the objects in script_utils.getObjects(), these are compared against longs effectively filtering out all of the objects found. These are the lines that cause it:

    # Sort the objects according to the order of IDs
    idMap = dict( [(o.id, o) for o in objects] )
    objects = [idMap[i] for i in ids if i in idMap]

This could be fixed in several ways:

  1. have conn.getObjects() already return a list correctly ordered so none of this is required;
  2. unwrap ids;
  3. convert the o.ids to rlong;
  4. use getInput(key, unwrap = True) or unwrap (getInput(key)) instead of getInput(key).getValue() in script_utils.parseInputs().

I don't yet understand enough of Omero to have an idea about the implications of each option. However, in my mind, conn.getObjects() would have already returned a list in the correct order and raise an exception if any of the IDs was somehow invalid.

How is this solved in the official omero scripts? None uses parseInputs(), they all parse the input themselves and unwrap the values.

build.py failures on Windows

trying to build openmicroscopy-3.4.6 on Windows 10 using MSVC2015

In build/CMakeFiles/CMakeError.log
BUILD FAILED
C:\work\Qi\openmicroscopy-5.4.6\build.xml:157: The following error occurred while executing this line:
C:\work\Qi\openmicroscopy-5.4.6\components\antlib\resources\global.xml:439: The following error occurred while executing this line:
C:\work\Qi\openmicroscopy-5.4.6\components\antlib\resources\lifecycle.xml:190: The following error occurred while executing this line:
C:\work\Qi\openmicroscopy-5.4.6\components\antlib\resources\lifecycle.xml:170: Error running javac.exe compiler

java -version says:
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode

I no next to nothing about java. Can you help me?

-- Running build.py to generate C++ and Ice sources; this may take some time
-- Failed to run build.py to generate C++ and Ice sources; cleaning.
CMake Error at CMakeLists.txt:110 (message):
Failed to run build.py to generate C++ and Ice sources. See
CMakeFiles/OmeroBuildOutput.txt and CMakeFiles/OmeroBuildError.txt

-- Configuring incomplete, errors occurred!
See also "C:/work/Qi/openmicroscopy-5.4.6/build-msvc2015_64-x64/CMakeFiles/CMakeOutput.log".
See also "C:/work/Qi/openmicroscopy-5.4.6/build-msvc2015_64-x64/CMakeFiles/CMakeError.log".

OMERO.server set up feedback

I was trying to make OMERO server run on Ubuntu, but kept getting stalled and got Failed to startup some components after 300 seconds message.

It turns out that the database tables are not created, I don't know why running OMERO.server/bin/omero db script -f OMERO.server/db.sql --password "$OMERO_ROOT_PASS" doesn't work for me ( I was not aware of this),but I do check the environment variable.

After log into psql and load db.sql manually, finally I'm able to start omero server. Maybe it would be good to have some meaningful message when the database tables are not setup?

One more thing I still don't know is OMERO_WEB_PORT=80 given in setting.env, seems like it has nothing to do with during this phase? I suppose it has to do with OMERO.web, but the document in OMERO.web refer to it as WEBPORT=80?

Just some thoughts, thank you.

Maintain slice definitions in separate repository?

Hi,

What are your thoughts about maintaining OMERO's Slice files in a separate repository? I'm interested in developing a Ruby client library that can use those protocols for interacting with OMERO server, but trying to reference those files when they're co-located in the Java source codebase is kind of tricky.

Cheers!

ROI `shape` loading improvements and strategies

OMERO currently does not support a scalable strategy for loading a large number of shapes in the forms of regions of interest (ROI).

There are instances were users are creating and using images with large numbers of ROIs, sometimes in the regions of hundreds of thousands.

The current implementation in the JSON API returns ROIs as a composite object, containing shapes, details and other meta data. This results in a 13 second load time for a single HTTP request from the eel OMERO server and subsequently is limited to returning only 500 JSON array items.

Solution

  • Reduce server load by only fetching the exact data required to list all ROIs (this will still require a limit on max ROIs)

  • Add ability for loading ROIs by a viewport size and an x, y position for images of a high resolution

  • Add function for loading ROIs by timepoint

omero cli - unable to set debug level

Using the omero command line, there is mention of a debug option to set the level of stuff printed to stderr:

$ bin/omero help import
[...]
  --debug LEVEL             Turn debug logging on (optional level)
[...]

There are apparently the following debug levels:

choose from:
    ALL, DEBUG, ERROR, FATAL, INFO, TRACE, WARN

However, setting any of this values actually turns on all of the messages:

$ bin/omero import -s localhost -k uuid_key --debug ERROR filepath
[... a bunch of stuff is printed inclusive DEBUG and INFO]

None of the above mentioned levels is capable to actually filter the messages, it always prints everything.

Opening CZI in Fiji causes an ArrayIndexOutOfBoundsException

Hi all,

I'm not sure who I should address with this issue, so I just ask here:

Opening this czi-image with Fiji (bioformats 5...) causes an AIOOBE:

java.lang.ArrayIndexOutOfBoundsException: 1
at loci.formats.in.ZeissCZIReader.translateExperiment(ZeissCZIReader.java:2190)
at loci.formats.in.ZeissCZIReader.translateMetadata(ZeissCZIReader.java:1214)
at loci.formats.in.ZeissCZIReader.initFile(ZeissCZIReader.java:699)
at loci.formats.FormatReader.setId(FormatReader.java:1315)
at loci.plugins.in.ImportProcess.initializeFile(ImportProcess.java:494)
at loci.plugins.in.ImportProcess.execute(ImportProcess.java:144)
at loci.plugins.in.Importer.showDialogs(Importer.java:141)
at loci.plugins.in.Importer.run(Importer.java:79)
at loci.plugins.LociImporter.run(LociImporter.java:81)
at ij.IJ.runUserPlugIn(IJ.java:201)
at ij.IJ.runPlugIn(IJ.java:165)
at ij.IJ.runPlugIn(IJ.java:154)
at HandleExtraFileTypes.openImage(HandleExtraFileTypes.java:421)
at HandleExtraFileTypes.run(HandleExtraFileTypes.java:57)
at ij.IJ.runUserPlugIn(IJ.java:201)
at ij.IJ.runPlugIn(IJ.java:165)
at ij.IJ.runPlugIn(IJ.java:154)
at ij.io.Opener.openWithHandleExtraFileTypes(Opener.java:454)
at ij.io.Opener.openImage(Opener.java:311)
at ij.io.Opener.openImage(Opener.java:334)
at ij.io.Opener.open(Opener.java:144)
at ij.io.Opener.open(Opener.java:71)
at ij.plugin.Commands.run(Commands.java:27)
at ij.IJ.runPlugIn(IJ.java:171)
at ij.Executer.runCommand(Executer.java:131)
at ij.Executer.run(Executer.java:64)
at java.lang.Thread.run(Thread.java:662)

Any ideas?

Thank you very much in advance!

Best,
Martin

Error when Installing from Source - javadoc: error - invalid flag: -XDoclint:none

I have been trying to install OMERO from source on an Ubuntu 16.04 VM with Ice 3.6.3 following the walk throughs at:

http://www.openmicroscopy.org/site/support/omero5.2/sysadmins/unix/server-ubuntu1404-ice36.html
http://www.openmicroscopy.org/site/support/omero5.2/developers/installation.html

I ran into an error executing the build.py script to build the OMERO server after installing all of the dependencies following the walk throughs. The error I received is as followed:

Generating Javadoc
Javadoc execution
javadoc: error - invalid flag: -Xdoclint:none

BUILD FAILED
/home/mbpadmin/openmicroscopy/build.xml:178: The following error occurred while executing this line:
/home/mbpadmin/openmicroscopy/components/antlib/resources/global.xml:430: The following error occurred while executing this line:
/home/mbpadmin/openmicroscopy/components/antlib/resources/lifecycle.xml:400: Javadoc returned 1

I did some research and I could only find information that the error could occur if I was running Java 1.7, as the -Xdoclint:none flag exists for Java 1.8 only. But I downloaded Java 1.8 as the dependency, so I believe that should not be the problem. I found a post on the OMERO boards, that mentioned that OMERO could not be built from source with ice 3.6.3 and thought it might be related. The post is found at:

https://www.openmicroscopy.org/community/viewtopic.php?f=5&t=8143&p=17555&hilit=source#p17555

Avatar bug in Web

This bug was found during testing of #3187 (comment).

Secvuln3 scenario, section upload avatar

  • login as test-will to trout/merge
  • select User settings
  • press Change button on avatar
  • do not upload any image
  • click onto Edit image link
  • click onto Crop button
  • click OK in the dialog
  • click again onto Crop button
  • click again OK in the dialog
  • click again Crop button
  • tick the box in the dialog saying prevent....
  • click OK in the dialog
  • click Crop
  • observe error
Traceback:
File "/opt/hudson/workspace/OMERO-5.1-merge-deploy/src/dist/lib/python/django/core/handlers/base.py" in get_response
  114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/hudson/workspace/OMERO-5.1-merge-deploy/src/dist/lib/python/omeroweb/decorators.py" in wrapped
  440.             retval = f(request, *args, **kwargs)
File "/opt/hudson/workspace/OMERO-5.1-merge-deploy/src/dist/lib/python/omeroweb/decorators.py" in wrapper
  487.             context = f(request, *args, **kwargs)
File "/opt/hudson/workspace/OMERO-5.1-merge-deploy/src/dist/lib/python/omeroweb/webadmin/views.py" in manage_avatar
  823.         x1 = long(request.REQUEST.get('x1'))

Exception Type: ValueError at /webadmin/change_avatar/2702/crop/
Exception Value: invalid literal for long() with base 10: ''

screen shot 2014-11-25 at 12 47 12

screen shot 2014-11-25 at 12 57 44

screen shot 2014-11-25 at 12 58 05

screen shot 2014-11-25 at 12 58 11

importer standalone

@joshmoore:
branch jburel feature/importStandalone
most of the functionality in place. build target to add. Is issue a way to communicate

Problem: I can only assign one person to the issue. Trying in the text
@omeroscott

Bug: Name edits not updated when Description follows

Repeats on both trout merge and latest. Follow up of comment on #3187.

  • select an P/D or image
  • edit its name in right hand pane, change it and press Save
  • name updates in right-hand pane as well as left-hand tree as expected
  • now add description and press Save -> the name reverts to its original value before the first edit -> not expected

screen shot 2014-11-26 at 17 14 47

[feature request] download link for correct version of client on webclient login page

The webclient login page could have a link to download the insight client for the correct server version.

Assuming that omero users shouldn't have to worry about what is the underlying server version, it becomes the job of the omero admin to keep updating any internal documentation pointing to the right version of the client.

This would remove the need for such internal documentation or save the user from googling for omero client download and ending up downloading the wrong version.

/OMERO still required after omero config set omero.data.dir ~/var/OMERO.data

I followed the instructions for building the source as detailed here: http://www.openmicroscopy.org/site/support/omero4/sysadmins/unix/server-install-homebrew.html .

I'm sure that I followed everything, especially: omero config set omero.data.dir ~/var/OMERO.data .

However, I found the following error in Blitz-0.log:

2013-05-15 19:59:30,736 ERROR ome.services.blitz.fire.SessionManagerI Error while creating ServiceFactoryI
Ice.ObjectAdapterDeactivatedException: null
at Ice.ObjectAdapterI.checkForDeactivation(ObjectAdapterI.java:1028) ~[ice.jar:na]
at Ice.ObjectAdapterI.addFacet(ObjectAdapterI.java:394) ~[ice.jar:na]
at Ice.ObjectAdapterI.add(ObjectAdapterI.java:388) ~[ice.jar:na]
at ome.services.blitz.fire.SessionManagerI.create(SessionManagerI.java:208) ~[blitz.jar:na]
at Glacier2._SessionManagerDisp.___create(_SessionManagerDisp.java:92) [ice.jar:na]
at Glacier2._SessionManagerDisp.__dispatch(_SessionManagerDisp.java:125) [ice.jar:na]
at IceInternal.Incoming.invoke(Incoming.java:159) [ice.jar:na]
at Ice.ConnectionI.invokeAll(ConnectionI.java:2037) [ice.jar:na]
at Ice.ConnectionI.message(ConnectionI.java:972) [ice.jar:na]
at IceInternal.ThreadPool.run(ThreadPool.java:577) [ice.jar:na]
at IceInternal.ThreadPool.access$100(ThreadPool.java:12) [ice.jar:na]
at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971) [ice.jar:na]
2013-05-15 19:59:30,746 ERROR ome.services.blitz.Entry Error on startup.
org.springframework.beans.factory.access.BootstrapException: Unable to return specified BeanFactory instance: factory key [OMERO.blitz], from group with resource name [classpath*:beanRefContext.xml]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'OMERO.blitz' defined in URL [jar:file:/Users/hugh/Projects/openmicroscopy/dist/lib/server/blitz.jar!/beanRefContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [ome.system.OmeroContext]: Constructor threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'legacyRepository' defined in URL [jar:file:/Users/hugh/Projects/openmicroscopy/dist/lib/server/blitz.jar!/ome/services/blitz-repositories.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [ome.services.blitz.repo.LegacyRepositoryI]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Invalid directory specified for file system service./OMERO
at org.springframework.beans.factory.access.SingletonBeanFactoryLocator.useBeanFactory(SingletonBeanFactoryLocator.java:409) ~[org.springframework.beans.jar:3.0.1.RELEASE-A]
at ome.system.OmeroContext.getInstance(OmeroContext.java:203) ~[common.jar:na]
at ome.services.blitz.Entry.start(Entry.java:193) [blitz.jar:na]
at ome.services.blitz.Entry.main(Entry.java:150) [blitz.jar:na]

It appears that ~/var/OMERO.data was not being used. After I created /OMERO and /OMERO/ManagedRepository, the server ran correctly.

Big images Preview pane problem

Originating from a comment on #3187

Big images Preview (own data):

  • I cannot slide any sliders (missing) - invalid as of today (26-11-14 on trout merge)
  • switching Grayscale tickbox has strange effect only when ticked and unticked again (tick and untick makes the svs image red, no apparent reason for this) - (repeated on trout latest)
  • Save button in Preview not enabled although the changes have been made - invalid as of today (26-11-14 on trout merge)
  • the changes made in Full Viewer are saved, then
    go to Preview of the same image, and use Imported buton
    no effect -> not expected (this was intermittent, on second go, just the birds view insert is not updated)
    trout/merge, user-2/private-1, http://trout.openmicroscopy.org/merge/webclient/?show=image-5 - still persists on trout merge partially, the Save action in Full viewer does not update the thumb on the bottom of Preview pane; cannot repeat on trout latest, because of the logout problems)

Importing images from ImageJ fails if they are loaded from non-OME TIFFs

It is not possible to import images that have been loaded from a TIFF file to OMERO with OMERO.insight-ij.5.1.3. The result is an exception:

[Fatal Error] :1:1: Content is not allowed in prolog.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at org.openmicroscopy.shoola.env.data.model.FileObject.isNewImage(FileObject.java:264)
    at org.openmicroscopy.shoola.agents.fsimporter.chooser.FileSelectionTable.allowAddToQueue(FileSelectionTable.java:399)
    at org.openmicroscopy.shoola.agents.fsimporter.chooser.FileSelectionTable.addFiles(FileSelectionTable.java:579)
    at org.openmicroscopy.shoola.agents.fsimporter.chooser.ImportDialog.addImageJFiles(ImportDialog.java:1608)
    at org.openmicroscopy.shoola.agents.fsimporter.chooser.ImportDialog.propertyChange(ImportDialog.java:1671)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
    at java.awt.Component.firePropertyChange(Component.java:8154)
    at org.openmicroscopy.shoola.agents.fsimporter.chooser.LocationDialog.actionPerformed(LocationDialog.java:950)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
    at java.awt.Component.processMouseEvent(Component.java:6289)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6054)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4652)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
    at java.awt.EventQueue.access$000(EventQueue.java:85)
    at java.awt.EventQueue$1.run(EventQueue.java:603)
    at java.awt.EventQueue$1.run(EventQueue.java:601)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$2.run(EventQueue.java:617)
    at java.awt.EventQueue$2.run(EventQueue.java:615)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

I have tracked down the issue to commit 0c39c23, where the method isNewImage() is introduced. The method makes the assumption in L259 that info.description returns a description that is well formed XML (which is true for files loaded from OME-TIFF). This seems not to be the case for files that have been stored to plain TIFF with ImageJ, as the description for such files usually looks like this:

ImageJ=1.50a
images=50
frames=50
unit=micron
finterval=1200.4774169921875
loop=false
min=2126.0
max=16383.0

To reproduce the issue, open any image an save it to TIFF. After loading that image, try to save that image to OMERO (Plugins > OMERO > Save Image(s) to OMERO).

Exception is created but not thrown

Hi!

Static code analyzer AppChecker found some place where an exception is created, but not thrown. Perhaps it is a mistake.

  1. components/blitz/src/omero/gateway/util/PojoMapper.java, line 614
        } catch (ClassNotFoundException e) {
            new IllegalArgumentException(pojoType + " not found");
        }
  1. components/blitz/src/omero/gateway/Gateway.java, line 1305
            } catch (Throwable e) {
                new Exception("Cannot close the connector", e);
            }
  1. components/blitz/src/omero/gateway/Gateway.java, line 1507
        } catch (Throwable e) {
            new Exception("Cannot close the derived connectors", e);
        }
  1. components/blitz/src/ome/formats/importer/util/HtmlMessenger.java, line 110
        } catch (Exception e) {
            new HtmlMessengerException("Cannot create security context", e);
        }
  1. components/insight/SRC/org/openmicroscopy/shoola/svc/transport/BasicChannel.java, line 106
        } catch (Exception e) {
            new TransportException("Cannot create security context", e);
        }

I hope this will be helpful for you

omero.cli `--err` option does not redirect all of stderr

Using the omero cli, one should be able to redirect stdout and stderr using the options ---file and ---err. However, the line about the session is actually never redirected:

$ bin/omero import -s localhost -k session_uuid ---err /dev/null ---file /dev/null filepath 
Joined session 85aa3fb9-0649-4003-a724-9e48120e2820 (root@localhost:4064). Expires in 23330827.5175 min. Current group: system

It is the redirection of stderr that is failing since piping stdout via bash still prints that extra line:

$ bin/omero import -s localhost -k session_uuid ---err /dev/null ---file /dev/null filepath > /dev/null
Joined session 85aa3fb9-0649-4003-a724-9e48120e2820 (root@localhost:4064). Expires in 23330827.5175 min. Current group: system

but piping stderr does not:

$ bin/omero import -s localhost -k session_uuid ---err /dev/null ---file /dev/null filepath 2> /dev/null

While it is very easy to redirect this correctly in bash, this bug is passed on to OmeroPy's omero.cli.CLI so that writing an omero script that uses it to import an image (I am told that it is the recommended method) will still tell the user that an error occurred and provide a file with that line to download.

I am currently working around this on my scripts with:

stderr = sys.stderr
try:
    with open(os.devnull, 'w') as devnull:
        sys.stderr = devnull
        cli.invoke(cmd)
finally:
    sys.stderr = stderr

However, this means that I left without an easy method to return actual errors back to the user since the --debug option will no longer work.

[web][bug] incorrect aspect ratio and missing image "explorer" window in preview tab

Original forum post : https://www.openmicroscopy.org/community/viewtopic.php?f=4&t=8728

For a public user without rendering settings for an image, the preview pane aspect ratio is incorrect and the navigation thumbnail window is missing.

Steps to reproduce:

  • create public user group
  • add an admin and a non-admin user to the public group
  • with the admin user import an image with an odd aspect ratio, choosing to skip thumbnail generation
  • using OMERO.web, login as public user and view the imported image in the preview pane
  • note the aspect ratio of the preview image under user settings

Screenshot 2019-04-22 at 13 44 48

Thumbnail views

Greetings, by default our OMERO thumbnail viewer shows a single plane of z-series data. I can open the data and look at a max projection and save it, but the thumbnail reverts back to the single plane. Would it be possible to display thumbnails as max projections by default or render the thumbnail as a max projection after it is saved that way?

Many thanks and happy holidays,
Josh

Build against Ice 3.7.0 fails

You have this in your root CMakeLists.txt:

# Find Ice programs, includes, slice definitions and libraries
find_package(Ice 3.5.0 REQUIRED COMPONENTS Ice IceUtil Glacier2)

Building openmicroscopy against Ice 3.7.0:

cd /hidden/build/OmeroCppProject-prefix/src/OmeroCppProject-build && /usr/local/Cellar/cmake/3.11.1/bin/cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/hidden/build/omerocpp-install -DCMAKE_CXX_STANDARD=14 -DCMAKE_POSITION_INDEPENDENT_CODE=on -DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 -DCMAKE_EXE_LINKER_FLAGS= -Dtest=OFF -GNinja /hidden/build/OmeroCppProject-prefix/src/OmeroCppProject && /usr/local/Cellar/cmake/3.11.1/bin/cmake -E touch /hidden/build/OmeroCppProject-prefix/src/OmeroCppProject-stamp/OmeroCppProject-configure
-- Obtaining release version from source
-- Configuring openmicroscopy version 5.4.5
-- Using git commit 2937466 on 2018-03-27 09:33:15 +0100
-- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY) 
-- Using embedded GTest
-- Ice version: 3.7.0
-- Found the following Ice libraries:
--   Ice (required)
--   Glacier2 (required)
-- The following Ice libraries were not found:
--   IceUtil (required)
CMake Error at /usr/local/Cellar/cmake/3.11.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Failed to find all Ice components (missing: Ice_SLICE_DIR
  _Ice_REQUIRED_LIBS_FOUND) (found suitable version "3.7.0", minimum required
  is "3.5.0")
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.11.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  components/tools/OmeroCpp/cmake/FindIce.cmake:423 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:71 (find_package)

Problem: IceUtil was merged into Ice in 3.7.0 release, cf. https://doc.zeroc.com/display/Ice37/Upgrading+your+Application+from+Ice+3.6#UpgradingyourApplicationfromIce3.6-IceUtilLibraryRemoved

I'd suggest adding code like this to your root CMakeLists.txt:

find_package(Ice REQUIRED COMPONENTS Ice Glacier2)
# Starting with Ice 3.7.0, IceUtil got merged into Ice. For older versions, check if IceUtil is there (we need it)
# cf. https://doc.zeroc.com/display/Ice37/Upgrading+your+Application+from+Ice+3.6
if (Ice_FOUND AND Ice_VERSION VERSION_LESS 3.7.0)
    find_package(Ice REQUIRED COMPONENTS IceUtil)good!
endif()

Referencing images in OMERO

Hi,

I am new to OMERO and so my terminology may not be super accurate.

What feature in OMERO should I look into if I want to reference images stored in OMERO via a URL. We plan to generate scientific reports (some of them in HTML format) which references work done by other scientists who will be using OMERO (when we get it installed and setup), we want the reader of the report to either see the image directly (possibly via the img tag) or via some other URL means (maybe launch some simple viewer)

Cheers

Timezone of log files is inconsistent

All the log files in var/log use timestamps with local time, except for OMEROweb.log and OMEROweb_request.log, which use UTC.

I very quickly looked into the code, and it seems that OMERO.web simply calls OmeroPy's configure_logging method, which uses regular Python logging, so I'm not sure why the discrepancy. But it would be good to be consistent across all the log files.

web-client: open full viewer on a new browser tab

When navigating the web client, I see 2 ways to open the full viewer:

  • double click on the image thumbnail;
  • click on the "full viewer" button in the right pane.

However, none of them allows to open the full viewer in a separate tab of the browser, it is always on a new window (with minimal browser interface). Since there is no link for the full viewer, I can't see a place where one would be able to do right click for "Open Link in New Tab".

Ideally, the following two things would be nice:

  • "Full Viewer" button in the right pane is an actual link for the full viewer (but I guess there's a reason for why using OME.openPopup('/webclient/img_detail/... instead of a link straight to it -- I'm guessing that's to use a window with less browser clutter)
  • RIght click on the web client thumbnail would bring up a context menu instead of the default browser right click menu. This context menu would include a link to that image full viewer.

User case: going through the thumbnails of a dataset, and select a series of them for a closer look and discussion. Currently this opens several new windows which are difficult to navigate. Multiple tabs in a single window have an order which is lost when using multiple windows.

It is possible to workaround this with a tag, but a tag suggest a more permanent classification, while the purpose of this is for the selection to expire at the end of the meeting. Our suggested workflow in the mean time is to tag all the interesting images (we are using "viewer stack"), then use the full viewer (with the "< Prev" and "Next >" buttons) on that tag.

An alternative for this would be to have the "< Prev" and "Next >" buttons on the full viewer go through the currently selected images (instead of all images in the dataset) but that sounds like substantially more work.

Some possible defects (expression/statement issues)

Hi!

The next part of the weaknesses found with static analyzer AppChecker:

  1. components/insight/SRC/org/openmicroscopy/shoola/env/config/OMEROInfo.java, line 108
	if (AgentInfo.TRUE.equals(encrypted) ||
				AgentInfo.TRUE.equals(encrypted))

AgentInfo.TRUE is checked twice.
May be checked AgentInfo.TRUE_SHORT ?

  1. components/insight/SRC/org/openmicroscopy/shoola/env/config/OMEROEntry.java, line 112

if (AgentInfo.TRUE.equals(value) || AgentInfo.TRUE.equals(value))

Similarly

  1. components/server/src/ome/formats/OMEROMetadataStore.java, line 2206

     if (compare(lc.getMode(), lc2.getMode())
    

....
&& compare(lc.getNdFilter(), lc2.getNdFilter())
&& lc.getOtf() == lc.getOtf()
&& compare(lc.getPinHoleSize(), lc2.getPinHoleSize())
.....
)

Result of lc.getOtf() is compared with itself

  1. components/insight/SRC/org/openmicroscopy/shoola/agents/fsimporter/chooser/LocationDialog.java, line 897
     if (plugin == LookupNames.IMAGE_J_IMPORT ||
                plugin == LookupNames.IMAGE_J_IMPORT) 

Variable plugin is compared with LookupNames.IMAGE_J_IMPORT twice

components/blitz/src/ome/formats/OMEROMetadataStoreClient.java, line 1722

            if (perm.isWorldWrite())  groupLevel = ImportEvent.GROUP_PUBLIC;
            else groupLevel = ImportEvent.GROUP_PUBLIC;

The both statements of the if-statement are same

OMERO.py: DNSException gets double logged

-bash-4.2$ bin/omero login root@localhsot
Password:
WARNING:omero.client:..Ignoring error in client.__del__:<class 'Ice.DNSException'>
Ice.DNSException: bad host name: 'localhsot'

[feature request] Python 3 support

Dear developers,

Python 2 is going to end being supported in about 9 months, the 1st of January 2020. Many libraries pledged to stop their support as well, like tensorflow, pandas, numpy, scikit, biopython and many others. A more extensive list is given there: https://python3statement.org/.

Python 3 was released in 2008 and there are many tools to help you convert your code, so you wouldn't to rewrite everything (2to3 for instance). Zeroc-Ice is available for Python 3.6 too. There still would be some work to do, for instance the variable typing that you currently use does not exist any more in Python 3.

Is there any plan on supporting Python 3? Many deep learning applications, newly written libraries and python scripts could benefit from such implementation.

script UI: multiple subgroupings without a parent disappear

In the following simple script, the first subgroup is not displayed in the UI,. it just disappears.

client = omero.scripts.client("title", "documentation",
    omero.scripts.String("Data_Type", grouping="1.1"),
    omero.scripts.List("IDs", grouping="1.2"),

    omero.scripts.Bool("time", grouping="2.1"),
    omero.scripts.Bool("channel", grouping="2.2"),
    omero.scripts.Bool("z slices", grouping="2.3"),
)

In the case of even more subgroups, only one is displayed, all others disappear. This only happens if there is no parent for the group. However, I couldn't find a way to add a parent that does not create some sort of input (it would actually be useful to add some text in the middle of the UI, to name the group for the user).

Attachments from local do not work in Web

Bug found during testing of #3187 (comment)

NOTE: THIS PROBLEM IS NOT on 5.0.6 !!! - nightshade is okay and does attachments allright.

screen shot 2014-11-26 at 14 17 47
Bug: Attaching files from local disk is not working, instead produces no files chosen response

  • select a Project as user-4 (read-only-1)
  • Attach file
  • in the dialog, select local file
  • use the Browse button, select a valid local file (a screenshot and a csv file was attampted)
  • click Accept -> the file is not attached, insted a message gets produced in the Attachments (see screenshot)
http://trout.openmicroscopy.org/merge/webclient/annotate_file/?project=559&index=0


<script type="text/javascript">
    $(document).ready(function(){
        $(":button:contains('Accept')",
            $("#choose_attachments_form").parent()).prop("disabled", true).addClass(
                'ui-state-disabled');

        $('#id_annotation_file, #id_files').change(
            function(){
                if ($(this).val()){
                    $(":button:contains('Accept')",
                        $("#choose_attachments_form").parent()
                            ).prop("disabled", false).removeClass('ui-state-disabled');
                }
                else {
                    $(":button:contains('Accept')",
                        $("#choose_attachments_form").parent()).prop("disabled", true).addClass(
                            'ui-state-disabled');
            }
        });

    });
</script>

<div>

    <h1>Upload a new file:</h1>
    <span>Choose a local file to upload and attach</span>
    <input id="id_annotation_file" name="annotation_file" type="file" />
</div>

<p>
    <h1>And/or attach an existing File:</h1>
    <span>Select the attachments to add</span>

    <div><select multiple="multiple" class="existing" id="id_files" name="files" size="8">
<option value="46502">Batch_Image_Export.zip</option>
<option value="48709">Batch_Image_Export.zip</option>
<option value="48758">Batch_Image_Export.zip</option>
<option value="47096">error report.docx</option>
</select></div>
    <!-- hidden fields used to specify the objects we're tagging -->
    <div class="hiddenField"></div>
    <div class="hiddenField"></div>
    <div class="hiddenField"><select multiple="multiple" id="id_project" name="project" size="10">
<option value="559" selected="selected">559</option>
</select></div>
    <div class="hiddenField"></div>
    <div class="hiddenField"></div>
    <div class="hiddenField"></div>
    <div class="hiddenField"></div>
    <div class="hiddenField"><input type="text" name="index" value="0"/></div>

</p>

Exposed github token?

I noticed this line. I can't see what that token used for but I don't it show be exposed at all. Travis-ci has a mechanism to protect private information, see here for details.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.