spacetelescope / imexam

imexam is a python tool for simple image examination, and plotting, with similar functionality to IRAF's imexamine
http://imexam.readthedocs.io
BSD 3-Clause "New" or "Revised" License
74 stars 45 forks source link

fix ginga display of HDUList #171

Closed sosey closed 5 years ago

sosey commented 5 years ago

This should fix the issue with displaying a fits HDUList to a ginga viewer. @bsipocz check it out? Note that you should try this from a jupyter notebook or console right now, there's a threading conflict between tornado and ginga when starting just with an ipython terminal that needs fixing (#154)

coveralls commented 5 years ago

Coverage Status

Coverage decreased (-0.03%) to 28.515% when pulling 5aefab10d2834243ad0b8dc72e2b7802995490b9 on sosey:issue170 into 65873986d34f56e86199904fa2a5fae63627caa4 on spacetelescope:master.

bsipocz commented 5 years ago

Ohh, that tornado issue may explain why the pop up gui windows never show up.

bsipocz commented 5 years ago

I'm having issues installing this branch:

$ ~/munka/devel/other/imexam [:5aefab1|✚ 2] $ pip install -e .
Obtaining file:///Users/bsipocz/munka/devel/other/imexam
Requirement already satisfied: astropy in /usr/local/lib/python3.7/site-packages (from imexam==0.8.2.dev375) (3.2rc1)
Requirement already satisfied: numpy>=1.13 in /usr/local/lib/python3.7/site-packages (from astropy->imexam==0.8.2.dev375) (1.16.3)
Installing collected packages: imexam
  Found existing installation: imexam 0.8.1
    Uninstalling imexam-0.8.1:
      Successfully uninstalled imexam-0.8.1
  Running setup.py develop for imexam
    ERROR: Complete output from command /usr/local/opt/python/bin/python3.7 -c 'import setuptools, tokenize;__file__='"'"'/Users/bsipocz/munka/devel/other/imexam/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps:
    ERROR: running develop
    running egg_info
    writing imexam.egg-info/PKG-INFO
    writing dependency_links to imexam.egg-info/dependency_links.txt
    writing entry points to imexam.egg-info/entry_points.txt
    writing requirements to imexam.egg-info/requires.txt
    writing top-level names to imexam.egg-info/top_level.txt
    reading manifest file 'imexam.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    /usr/local/lib/python3.7/site-packages/setuptools/dist.py:472: UserWarning: Normalizing '0.8.2dev375' to '0.8.2.dev375'
      normalized_version,
    warning: no files found matching 'ez_setup.py'
    warning: no files found matching '*' under directory 'scripts'
    warning: no previously-included files found matching 'cextern/xpa/man'
    warning: no previously-included files found matching 'cextern/xpa/doc'
    warning: no previously-included files found matching 'cextern/xpa/notes'
    no previously-included directories found matching 'astropy_helpers/build'
    no previously-included directories found matching 'docs/build'
    no previously-included directories found matching 'build'
    no previously-included directories found matching 'dist'
    writing manifest file 'imexam.egg-info/SOURCES.txt'
    running build_ext
    rm -f *.a *.so *.so.* *.dylib *.o *.exe core \
                errs *pure* .nfs* \
                foo* *~ *.log \#* TAGS *.E a.out errors \
                xpaset xpaget xpainfo xpaaccess xpans xpamb ctest stest rtest \
                gmon.out *.pg *.bak \
                config.info config.log \
                doc/*~ doc/*.bak man/*~
    rm -f -r autom4te.cache a.out.dSYM
    checking build system type... i386-apple-darwin17.7.0
    checking host system type... i386-apple-darwin17.7.0
    checking for gcc... gcc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ANSI C... none needed
    checking how to run the C preprocessor... gcc -E
    checking for egrep... grep -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for long... yes
    checking size of long... 8
    checking for ranlib... ranlib
    checking for ANSI C header files... (cached) yes
    checking malloc.h usability... no
    checking malloc.h presence... no
    checking for malloc.h... no
    checking getopt.h usability... yes
    checking getopt.h presence... yes
    checking for getopt.h... yes
    checking pwd.h usability... yes
    checking pwd.h presence... yes
    checking for pwd.h... yes
    checking values.h usability... no
    checking values.h presence... no
    checking for values.h... no
    checking dlfcn.h usability... yes
    checking dlfcn.h presence... yes
    checking for dlfcn.h... yes
    checking setjmp.h usability... yes
    checking setjmp.h presence... yes
    checking for setjmp.h... yes
    checking sys/un.h usability... yes
    checking sys/un.h presence... yes
    checking for sys/un.h... yes
    checking sys/shm.h usability... yes
    checking sys/shm.h presence... yes
    checking for sys/shm.h... yes
    checking sys/mman.h usability... yes
    checking sys/mman.h presence... yes
    checking for sys/mman.h... yes
    checking sys/ipc.h usability... yes
    checking sys/ipc.h presence... yes
    checking for sys/ipc.h... yes
    checking for socklen_t... yes
    checking for an ANSI C-conforming const... yes
    checking for strchr... yes
    checking for memcpy... yes
    checking for snprintf... yes
    checking for atexit... yes
    checking for setenv... yes
    checking for connect... yes
    checking for gethostbyname... yes
    checking for threaded xpans... no
    checking for shared library build... no
    checking for request to use posix_spawn... no
    checking for X... no
    checking for Tcl configuration... can't find Tcl configuration definitions
    checking for incorporation of thread support... no
    checking for gtk... no
    checking darwin17.7.0 configuration... ./configure: line 7667: test: version: integer expression expected
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating xpa.pc
    config.status: creating conf.h
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xpa.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xpaio.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H command.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H acl.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H remote.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H clipboard.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H port.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H tcp.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H client.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H word.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xalloc.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H find.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xlaunch.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H timedconn.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H  tclloop.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H  tcl.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H  xtloop.c
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H  gtkloop.c
    rm -f libxpa.a
    ar crv libxpa.a xpa.o xpaio.o command.o acl.o remote.o clipboard.o port.o tcp.o client.o word.o xalloc.o find.o xlaunch.o timedconn.o tclloop.o tcl.o  xtloop.o gtkloop.o
    a - xpa.o
    a - xpaio.o
    a - command.o
    a - acl.o
    a - remote.o
    a - clipboard.o
    a - port.o
    a - tcp.o
    a - client.o
    a - word.o
    a - xalloc.o
    a - find.o
    a - xlaunch.o
    a - timedconn.o
    a - tclloop.o
    a - tcl.o
    a - xtloop.o
    a - gtkloop.o
    ranlib libxpa.a
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xpaset.c
    gcc -g -O2 xpaset.o -o xpaset libxpa.a
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xpaget.c
    gcc -g -O2 xpaget.o -o xpaget libxpa.a
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xpainfo.c
    gcc -g -O2 xpainfo.o -o xpainfo libxpa.a
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xpaaccess.c
    gcc -g -O2 xpaaccess.o -o xpaaccess libxpa.a
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xpans.c
    gcc -g -O2 xpans.o -o xpans libxpa.a
    gcc -c -I. -g -O2 -DHAVE_CONFIG_H xpamb.c
    gcc -g -O2 xpamb.o -o xpamb libxpa.a
    building 'xpa' extension
    creating build/temp.macosx-10.13-x86_64-3.7
    creating build/temp.macosx-10.13-x86_64-3.7/wrappers
    creating build/temp.macosx-10.13-x86_64-3.7/cextern
    creating build/temp.macosx-10.13-x86_64-3.7/cextern/xpa
    clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -DHAVE_CONFIG_H=1 -Icextern/xpa/ -I/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c wrappers/xpa.c -o build/temp.macosx-10.13-x86_64-3.7/wrappers/xpa.o
    wrappers/xpa.c:1472:11: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    wrappers/xpa.c:214:79: note: expanded from macro '__Pyx_PyFastCFunction_Check'
        ((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    wrappers/xpa.c:1472:11: note: place parentheses around the '==' expression to silence this warning
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    wrappers/xpa.c:214:79: note: expanded from macro '__Pyx_PyFastCFunction_Check'
        ((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
    wrappers/xpa.c:1472:11: note: place parentheses around the & expression to evaluate it first
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    wrappers/xpa.c:214:79: note: expanded from macro '__Pyx_PyFastCFunction_Check'
        ((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    wrappers/xpa.c:1889:11: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    wrappers/xpa.c:214:79: note: expanded from macro '__Pyx_PyFastCFunction_Check'
        ((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    wrappers/xpa.c:1889:11: note: place parentheses around the '==' expression to silence this warning
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    wrappers/xpa.c:214:79: note: expanded from macro '__Pyx_PyFastCFunction_Check'
        ((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
    wrappers/xpa.c:1889:11: note: place parentheses around the & expression to evaluate it first
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    wrappers/xpa.c:214:79: note: expanded from macro '__Pyx_PyFastCFunction_Check'
        ((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    wrappers/xpa.c:3109:65: error: too many arguments to function call, expected 3, have 4
        return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     ^~~~
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/10.0.0/include/stddef.h:105:16: note: expanded from macro 'NULL'
    #  define NULL ((void*)0)
                   ^~~~~~~~~~
    2 warnings and 1 error generated.
    error: command 'clang' failed with exit status 1
    ----------------------------------------
  Rolling back uninstall of imexam
  Moving to /usr/local/lib/python3.7/site-packages/imexam-0.8.1.dist-info/
   from /usr/local/lib/python3.7/site-packages/~mexam-0.8.1.dist-info
  Moving to /usr/local/lib/python3.7/site-packages/imexam/
   from /usr/local/lib/python3.7/site-packages/~mexam
  Moving to /usr/local/lib/python3.7/site-packages/xpa.cpython-37m-darwin.so
   from /private/var/folders/dc/hsm7tqpx2d57n7vb3k1l81xw0000gq/T/pip-uninstall-h4l9e5ss/xpa.cpython-37m-darwin.so
ERROR: Command "/usr/local/opt/python/bin/python3.7 -c 'import setuptools, tokenize;__file__='"'"'/Users/bsipocz/munka/devel/other/imexam/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps" failed with error code 1 in /Users/bsipocz/munka/devel/other/imexam/
sosey commented 5 years ago

oof. That clang xpa error might have something to do with why you can't use ds9... lemme take a harder look at this error tomorrow and I'll get back to you, traveling today. You could try removing cython from the env temporarily and installing should skip the xpa build.

bsipocz commented 5 years ago

With cython removed I got the following complain:

$ ~/munka/devel/other/imexam [:5aefab1|✔] $ pip install -e .
Obtaining file:///Users/bsipocz/munka/devel/other/imexam
Requirement already satisfied: astropy in /usr/local/lib/python3.7/site-packages (from imexam==0.8.2.dev375) (3.2rc1)
Requirement already satisfied: numpy>=1.13 in /usr/local/lib/python3.7/site-packages (from astropy->imexam==0.8.2.dev375) (1.16.3)
Installing collected packages: imexam
  Found existing installation: imexam 0.8.1
    Uninstalling imexam-0.8.1:
      Successfully uninstalled imexam-0.8.1
  Running setup.py develop for imexam
    ERROR: Complete output from command /usr/local/opt/python/bin/python3.7 -c 'import setuptools, tokenize;__file__='"'"'/Users/bsipocz/munka/devel/other/imexam/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps:
    ERROR: Building without Cython
    running develop
    running egg_info
    writing imexam.egg-info/PKG-INFO
    writing dependency_links to imexam.egg-info/dependency_links.txt
    writing entry points to imexam.egg-info/entry_points.txt
    writing requirements to imexam.egg-info/requires.txt
    writing top-level names to imexam.egg-info/top_level.txt
    reading manifest file 'imexam.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    /usr/local/lib/python3.7/site-packages/setuptools/dist.py:472: UserWarning: Normalizing '0.8.2dev375' to '0.8.2.dev375'
      normalized_version,
    warning: no files found matching 'ez_setup.py'
    warning: no files found matching '*' under directory 'scripts'
    warning: no files found matching '*' under directory 'cextern'
    warning: no previously-included files found matching 'cextern/xpa/.git'
    warning: no previously-included files found matching 'cextern/xpa/.gitignore'
    warning: no previously-included files found matching 'cextern/xpa/man'
    warning: no previously-included files found matching 'cextern/xpa/doc'
    warning: no previously-included files found matching 'cextern/xpa/notes'
    warning: no previously-included files matching '*.o' found anywhere in distribution
    no previously-included directories found matching 'astropy_helpers/build'
    no previously-included directories found matching 'docs/build'
    no previously-included directories found matching 'docs/api'
    no previously-included directories found matching 'build'
    no previously-included directories found matching 'dist'
    writing manifest file 'imexam.egg-info/SOURCES.txt'
    running build_ext
    error: [Errno 2] Could not find C/C++ file wrappers/xpa.(c/cpp) for Cython file wrappers/xpa.pyx when building extension xpa. Cython must be installed to build from a git checkout.: 'wrappers/xpa.c'
    ----------------------------------------
  Rolling back uninstall of imexam
  Moving to /usr/local/lib/python3.7/site-packages/imexam-0.8.1.dist-info/
   from /usr/local/lib/python3.7/site-packages/~mexam-0.8.1.dist-info
  Moving to /usr/local/lib/python3.7/site-packages/imexam/
   from /usr/local/lib/python3.7/site-packages/~mexam
  Moving to /usr/local/lib/python3.7/site-packages/xpa.cpython-37m-darwin.so
   from /private/var/folders/dc/hsm7tqpx2d57n7vb3k1l81xw0000gq/T/pip-uninstall-eo3nlq__/xpa.cpython-37m-darwin.so
ERROR: Command "/usr/local/opt/python/bin/python3.7 -c 'import setuptools, tokenize;__file__='"'"'/Users/bsipocz/munka/devel/other/imexam/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps" failed with error code 1 in /Users/bsipocz/munka/devel/other/imexam/