Commit 703d77f6 authored by Stephan Seitz's avatar Stephan Seitz
Browse files

Update to use JPype 0.7 (had breaking API changes)

parent 2b708146
Loading
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -12,20 +12,14 @@ except:
    __version__ = 'unknown'


from jpype import JDouble, JArray, JInt, JString, JShort, JProxy, JByte, JBoolean, JChar, JLong, JFloat, JClass, JIterator, java, JPackage, attachThreadToJVM, detachThreadFromJVM
try:
    from jpype import JavaException as JException
except Exception as e:
    from jpype import JException 
from jpype import JDouble, JArray, JInt, JString, JShort, JProxy, JByte, JBoolean, JChar, JLong, JFloat, JClass, JIterator, java, JPackage, attachThreadToJVM, JException, detachThreadFromJVM
import jpype
import jpype.imports
# TODO: deprecate PyGrid
from ._pygrid import PyGrid
from pyconrad._pyconrad import setup_pyconrad, start_gui, start_reconstruction_pipeline_gui, is_initialized, is_gui_started, terminate_pyconrad
from ._autocomplete_files.autocomplete_conrad import AutoCompleteConrad
from pyconrad._autocomplete_files.autocomplete_conrad import AutoCompleteConrad
from pyconrad._classgetter import ClassGetter
from .constants import java_float_dtype
from ._autocomplete import generate_autocomplete_file
from pyconrad.constants import java_float_dtype
from pyconrad._autocomplete import generate_autocomplete_file
from pyconrad._imageutils import imshow, to_conrad_grid
import pyconrad.config
import jpype.imports
+14 −14
Original line number Diff line number Diff line
import pyconrad
import os
import warnings

from mock import MagicMock

import pyconrad


def generate_autocomplete_file(file, conrad_dir: str, classname: str, alsoMembers=True):

@@ -50,15 +55,10 @@ def generate_autocomplete_file(file, conrad_dir:str, classname:str, alsoMembers
                        writer.writelines('    ' * indentation + filename + ' = None\r\n')




if __name__ == '__main__':

    generate_autocomplete_file('/home/stephan/foo.py', '/home/stephan/projects/CONRAD/src', 'AutoCompleteConrad', True)
    print(open('/home/stephan/foo.py', 'r').read())

import warnings

class AutoCompleteConrad(pyconrad.ClassGetter):
    def __init__(self):
        warnings.warn('This class should never be initialized! Use it as type hint: #type: pyconrad.AutoCompleteConrad')
AutoCompleteConrad = MagicMock()
+14 −12
Original line number Diff line number Diff line
import pyconrad
from jpype import JPackage

import pyconrad
from pyconrad._autocomplete import AutoCompleteConrad
from pyconrad._pyconrad import assert_pyconrad_initialization


@@ -23,57 +25,57 @@ class ClassGetter:
        self._imported_namespaces.append(namespaces)

    @property
    def SimpleVector(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.numerics.SimpleVector:
    def SimpleVector(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.numerics.SimpleVector:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.numerics.SimpleVector')

    @property
    def PointND(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.geometry.shapes.simple.PointND:
    def PointND(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.geometry.shapes.simple.PointND:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.geometry.shapes.simple.PointND')

    @property
    def SimpleMatrix(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.numerics.SimpleMatrix:
    def SimpleMatrix(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.numerics.SimpleMatrix:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.numerics.SimpleMatrix')

    @property
    def NumericGrid(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.NumericGrid:
    def NumericGrid(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.NumericGrid:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.data.numeric.NumericGrid')

    @property
    def Grid1D(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.Grid1D:
    def Grid1D(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.Grid1D:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.data.numeric.Grid1D')

    @property
    def Grid2D(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.Grid2D:
    def Grid2D(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.Grid2D:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.data.numeric.Grid2D')

    @property
    def Grid3D(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.Grid3D:
    def Grid3D(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.Grid3D:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.data.numeric.Grid3D')

    @property
    def Grid4D(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.Grid4D:
    def Grid4D(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.Grid4D:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.data.numeric.Grid4D')

    @property
    def OpenCLGrid1D(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.opencl.OpenCLGrid1D:
    def OpenCLGrid1D(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.opencl.OpenCLGrid1D:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.data.numeric.opencl.OpenCLGrid1D')

    @property
    def OpenCLGrid2D(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.opencl.OpenCLGrid2D:
    def OpenCLGrid2D(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.opencl.OpenCLGrid2D:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.data.numeric.opencl.OpenCLGrid2D')

    @property
    def OpenCLGrid3D(self) -> pyconrad.AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.opencl.OpenCLGrid3D:
    def OpenCLGrid3D(self) -> AutoCompleteConrad.edu.stanford.rsl.conrad.data.numeric.opencl.OpenCLGrid3D:
        assert_pyconrad_initialization()
        return pyconrad.JClass('edu.stanford.rsl.conrad.data.numeric.opencl.OpenCLGrid3D')

+14 −5
Original line number Diff line number Diff line
@@ -9,20 +9,24 @@ import numpy as np
from jpype import JArray, JClass, JDouble, JInt, JPackage, JProxy

import pyconrad
from pyconrad._java_pyconrad import JavaPyConrad

from ._imageutils import ImageUtil
from ._pygrid import PyGrid
from .constants import java_float_dtype

try:
    import pyconrad._vtk
except Exception:
    import warnings
    warnings.warn("Could not import pyconrad._vtk")
from pyconrad._java_pyconrad import JavaPyConrad

from ._imageutils import ImageUtil
from ._pygrid import PyGrid
from .constants import java_float_dtype

del JClass.__setattr__

try:
    import pyopencl as cl
except:
except Exception:
    cl = None


@@ -180,6 +184,10 @@ def _extend_numeric_grid():
    def _numeric_grid_shape(self):
        return tuple(reversed(self.getSize()[:]))

    @property
    def _numeric_grid_size(self):
        return tuple(self.getSize()[:])

    @property
    def _numeric_grid_ndim(self):
        return len(self.getSize()[:])
@@ -232,6 +240,7 @@ def _extend_numeric_grid():
    grid_class.__getitem__ = _numeric_grid_getitem
    grid_class.__setitem__ = _numeric_grid_setitem
    grid_class.shape = _numeric_grid_shape
    grid_class.size = _numeric_grid_size
    grid_class.ndim = _numeric_grid_ndim
    grid_class.pygrid = _pygrid
    grid_class.__array__ = _numpy_grid
+7 −5
Original line number Diff line number Diff line
@@ -10,18 +10,20 @@ import warnings
from os.path import join
from pathlib import Path

import jpype
from jpype import (JArray, JClass, JDouble, JPackage, JProxy,
                   attachThreadToJVM, detachThreadFromJVM, getDefaultJVMPath,
                   isJVMStarted, java, shutdownJVM, startJVM)


from . import _download_conrad, _extend_conrad_classes
from . import _windowlistener as wl

try:
    from jpype import JavaException as JException
except Exception as e:
    from jpype import JException

import jpype

from . import _download_conrad, _extend_conrad_classes
from . import _windowlistener as wl

module_path = os.path.dirname(__file__)

@@ -114,7 +116,7 @@ class PyConrad:
                    _download_conrad.download_conrad()
                os.chdir(self.__conrad_path)
                startJVM(getDefaultJVMPath(), conrad_source_and_libs,
                         "-Xmx%s" % max_ram, "-Xmn%s" % min_ram)
                         "-Xmx%s" % max_ram, "-Xmn%s" % min_ram, convertStrings=True)
                os.chdir(curr_directory)

                self._check_jre_version()
Loading