summaryrefslogtreecommitdiffstats
path: root/Wrappers/Python
diff options
context:
space:
mode:
authorEdoardo Pasca <edo.paskino@gmail.com>2018-01-23 17:30:20 +0000
committerEdoardo Pasca <edo.paskino@gmail.com>2018-01-23 22:45:21 +0000
commit20ca5ce5a1c23936d0ebf6d49cd80e90e81da7fe (patch)
tree4e5f5ccf61890404edec12d43bb2987902fcfbac /Wrappers/Python
parent8935451cc1449570b485cd244ca564a17b80bfa2 (diff)
downloadregularization-20ca5ce5a1c23936d0ebf6d49cd80e90e81da7fe.tar.gz
regularization-20ca5ce5a1c23936d0ebf6d49cd80e90e81da7fe.tar.bz2
regularization-20ca5ce5a1c23936d0ebf6d49cd80e90e81da7fe.tar.xz
regularization-20ca5ce5a1c23936d0ebf6d49cd80e90e81da7fe.zip
Added conda recipe for FISTA
removed dangling files
Diffstat (limited to 'Wrappers/Python')
-rw-r--r--Wrappers/Python/CMakeLists.txt195
-rw-r--r--Wrappers/Python/ccpi/reconstruction/Reconstructor.py4
-rw-r--r--Wrappers/Python/compile-fista.bat.in7
-rw-r--r--Wrappers/Python/compile-fista.sh.in9
-rw-r--r--Wrappers/Python/compile.bat.in7
-rw-r--r--Wrappers/Python/compile.sh.in9
-rw-r--r--Wrappers/Python/fista-recipe/meta.yaml2
-rw-r--r--Wrappers/Python/setup-fista.py.in27
-rw-r--r--Wrappers/Python/setup.py.in69
9 files changed, 3 insertions, 326 deletions
diff --git a/Wrappers/Python/CMakeLists.txt b/Wrappers/Python/CMakeLists.txt
deleted file mode 100644
index 92baf2c..0000000
--- a/Wrappers/Python/CMakeLists.txt
+++ /dev/null
@@ -1,195 +0,0 @@
-# Copyright 2017 Edoardo Pasca
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# variables that must be set for conda compilation
-cmake_minimum_required (VERSION 3.0)
-
-project(FISTA)
-#https://stackoverflow.com/questions/13298504/using-cmake-with-setup-py
-
-# The version number.
-set (FISTA_VERSION_MAJOR 1)
-set (FISTA_VERSION_MINOR 0)
-
-set (CIL_VERSION_MAJOR 0)
-set (CIL_VERSION_MINOR 9)
-set (CIL_VERSION_PATCH 1)
-
-set (CIL_VERSION '${CIL_VERSION_MAJOR}.${CIL_VERSION_MINOR}.${CIL_VERSION_PATCH}' CACHE INTERNAL "Core Imaging Library version" FORCE)
-
-#PREFIX=C:\Apps\Miniconda2\envs\cil\Library
-#LIBRARY_INC=C:\\Apps\\Miniconda2\\envs\\cil\\Library\\include
-set (NUMPY_VERSION 1.12)
-
-## Tries to parse the output of conda env list to determine the current
-## active conda environment
-message ("Trying to determine your active conda environment...")
-execute_process(COMMAND "conda" "env" "list"
- OUTPUT_VARIABLE _CONDA_ENVS
- RESULT_VARIABLE _CONDA_RESULT
- ERROR_VARIABLE _CONDA_ERR)
- if(NOT _CONDA_RESULT)
- string(REPLACE "\n" ";" ENV_LIST ${_CONDA_ENVS})
- foreach(line ${ENV_LIST})
- string(REGEX MATCHALL "(.+)[*](.+)" match ${line})
- if (NOT ${match} EQUAL "")
- #message("MATCHED " ${CMAKE_MATCH_0})
- #message("MATCHED " ${CMAKE_MATCH_1})
- #message("MATCHED " ${CMAKE_MATCH_2})
- string(STRIP ${CMAKE_MATCH_1} CONDA_ENVIRONMENT)
- string(STRIP ${CMAKE_MATCH_2} CONDA_ENVIRONMENT_PATH)
- endif()
- endforeach()
- else()
- message(FATAL_ERROR "ERROR with conda command " ${_CONDA_ERR})
- endif()
-
-if (${CONDA_ENVIRONMENT} AND ${CONDA_ENVIRONMENT_PATH})
- message (FATAL_ERROR "CONDA NOT FOUND")
-else()
- message("**********************************************************")
- message("Using current conda environmnet " ${CONDA_ENVIRONMENT})
- message("Using current conda environmnet path " ${CONDA_ENVIRONMENT_PATH})
-endif()
-
-message("CIL VERSION " ${CIL_VERSION})
-
-findPythonForAnacondaEnvironment(${CONDA_ENVIRONMENT_PATH})
-
-message("Python found " ${PYTHON_VERSION_STRING})
-message("Python found Major " ${PYTHON_VERSION_MAJOR})
-message("Python found Minor " ${PYTHON_VERSION_MINOR})
-
-findPythonPackagesPath()
-message("PYTHON_PACKAGES_FOUND " ${PYTHON_PACKAGES_PATH})
-
-## CACHE SOME VARIABLES ##
-set (CONDA_ENVIRONMENT ${CONDA_ENVIRONMENT} CACHE INTERNAL "active conda environment" FORCE)
-set (CONDA_ENVIRONMENT_PATH ${CONDA_ENVIRONMENT_PATH} CACHE INTERNAL "active conda environment" FORCE)
-
-set (PYTHON_VERSION_STRING ${PYTHON_VERSION_STRING} CACHE INTERNAL "conda environment Python version string" FORCE)
-set (PYTHON_VERSION_MAJOR ${PYTHON_VERSION_MAJOR} CACHE INTERNAL "conda environment Python version major" FORCE)
-set (PYTHON_VERSION_MINOR ${PYTHON_VERSION_MINOR} CACHE INTERNAL "conda environment Python version minor" FORCE)
-set (PYTHON_VERSION_PATCH ${PYTHON_VERSION_PATCH} CACHE INTERNAL "conda environment Python version patch" FORCE)
-set (PYTHON_PACKAGES_PATH ${PYTHON_PACKAGES_PATH} CACHE INTERNAL "conda environment Python packages path" FORCE)
-
-if (WIN32)
- #set (CONDA_ENVIRONMENT_PATH "C:\\Apps\\Miniconda2\\envs\\${CONDA_ENVIRONMENT}" CACHE PATH "Main environment directory")
- set (CONDA_ENVIRONMENT_PREFIX "${CONDA_ENVIRONMENT_PATH}\\Library" CACHE PATH "env dir")
- set (CONDA_ENVIRONMENT_LIBRARY_INC "${CONDA_ENVIRONMENT_PREFIX}\\include" CACHE PATH "env dir")
-elseif (UNIX)
- #set (CONDA_ENVIRONMENT_PATH "/apps/anaconda/2.4/envs/${CONDA_ENVIRONMENT}" CACHE PATH "Main environment directory")
- set (CONDA_ENVIRONMENT_PREFIX "${CONDA_ENVIRONMENT_PATH}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" CACHE PATH "env dir")
- set (CONDA_ENVIRONMENT_LIBRARY_INC "${CONDA_ENVIRONMENT_PREFIX}/include" CACHE PATH "env dir")
-endif()
-
-######### CONFIGURE REGULARIZER PACKAGE #############
-
-# copy the Pyhon files of the package regularizer
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ccpi/imaging/)
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/ccpi/__init__.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ccpi)
-# regularizers
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/ccpi/imaging/__init__.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ccpi/imaging)
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/ccpi/imaging/Regularizer.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ccpi/imaging)
-
-# Copy and configure the relative conda build and recipes
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup.py.in ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/conda-recipe)
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/conda-recipe/meta.yaml DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/conda-recipe)
-
-if (WIN32)
-
- file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/conda-recipe/bld.bat DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/conda-recipe/)
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/compile.bat.in ${CMAKE_CURRENT_BINARY_DIR}/compile.bat)
-
-elseif(UNIX)
-
- message ("We are on UNIX")
- file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/conda-recipe/build.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/conda-recipe/)
- # assumes we will use bash
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/compile.sh.in ${CMAKE_CURRENT_BINARY_DIR}/compile.sh)
-
-endif()
-
-########## CONFIGURE FISTA RECONSTRUCTOR PACKAGE
-# fista reconstructor
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/ccpi/reconstruction/FISTAReconstructor.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ccpi/reconstruction)
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/ccpi/reconstruction/__init__.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ccpi/reconstruction)
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/ccpi/reconstruction/DeviceModel.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ccpi/reconstruction)
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/ccpi/reconstruction/AstraDevice.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ccpi/reconstruction)
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup-fista.py.in ${CMAKE_CURRENT_BINARY_DIR}/setup-fista.py)
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fista-recipe)
-file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/fista-recipe/meta.yaml DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/fista-recipe)
-
-if (WIN32)
-
- file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/fista-recipe/bld.bat DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/fista-recipe/)
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/compile-fista.bat.in ${CMAKE_CURRENT_BINARY_DIR}/compile-fista.bat)
-
-elseif(UNIX)
- message ("We are on UNIX")
- file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/fista-recipe/build.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/fista-recipe/)
- # assumes we will use bash
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/compile-fista.sh.in ${CMAKE_CURRENT_BINARY_DIR}/compile-fista.sh)
-endif()
-
-############################# TARGETS
-
-########################## REGULARIZER PACKAGE ###############################
-
-# runs cmake on the build tree to update the code from source
-add_custom_target(update_code
- COMMAND ${CMAKE_COMMAND}
- ARGS ${CMAKE_SOURCE_DIR}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- )
-
-
-add_custom_target(fista
- COMMAND bash
- compile-fista.sh
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- DEPENDS ${update_code}
- )
-
-add_custom_target(regularizers
- COMMAND bash
- compile.sh
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- DEPENDS update_code
- )
-
-add_custom_target(install-fista
- COMMAND ${CONDA_EXECUTABLE}
- install --force --use-local ccpi-fista=${CIL_VERSION} -c ccpi -c conda-forge
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- )
-
-add_custom_target(install-regularizers
- COMMAND ${CONDA_EXECUTABLE}
- install --force --use-local ccpi-regularizers=${CIL_VERSION} -c ccpi -c conda-forge
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- )
-### add tests
-
-#add_executable(RegularizersTest )
-#find_package(tiff)
-#if (TIFF_FOUND)
-# message("LibTIFF Found")
-# message("TIFF_INCLUDE_DIR " ${TIFF_INCLUDE_DIR})
-# message("TIFF_LIBRARIES" ${TIFF_LIBRARIES})
-#else()
-# message("LibTIFF not found")
-#endif()
diff --git a/Wrappers/Python/ccpi/reconstruction/Reconstructor.py b/Wrappers/Python/ccpi/reconstruction/Reconstructor.py
index ba67327..2ad8a44 100644
--- a/Wrappers/Python/ccpi/reconstruction/Reconstructor.py
+++ b/Wrappers/Python/ccpi/reconstruction/Reconstructor.py
@@ -351,7 +351,7 @@ class FISTA():
#end
del proj_geomT
del vol_geomT
- else
+ else:
#% divergen beam geometry
#fprintf('%s \n', 'Calculating Lipshitz constant for divergen beam geometry...');
niter = 8; #% number of iteration for PM
@@ -391,7 +391,7 @@ class FISTA():
def setRegularizer(self, regularizer):
- if regularizer
+ #if regularizer
self.pars['regularizer'] = regularizer
diff --git a/Wrappers/Python/compile-fista.bat.in b/Wrappers/Python/compile-fista.bat.in
deleted file mode 100644
index b1db686..0000000
--- a/Wrappers/Python/compile-fista.bat.in
+++ /dev/null
@@ -1,7 +0,0 @@
-set CIL_VERSION=@CIL_VERSION@
-
-set PREFIX=@CONDA_ENVIRONMENT_PREFIX@
-set LIBRARY_INC=@CONDA_ENVIRONMENT_LIBRARY_INC@
-
-REM activate @CONDA_ENVIRONMENT@
-conda build fista-recipe --python=@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@ --numpy=@NUMPY_VERSION@ -c ccpi -c conda-forge
diff --git a/Wrappers/Python/compile-fista.sh.in b/Wrappers/Python/compile-fista.sh.in
deleted file mode 100644
index 267f014..0000000
--- a/Wrappers/Python/compile-fista.sh.in
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-# compile within the right conda environment
-#module load python/anaconda
-#source activate @CONDA_ENVIRONMENT@
-
-export CIL_VERSION=@CIL_VERSION@
-export LIBRARY_INC=@CONDA_ENVIRONMENT_LIBRARY_INC@
-
-conda build fista-recipe --python=@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@ --numpy=@NUMPY_VERSION@ -c ccpi
diff --git a/Wrappers/Python/compile.bat.in b/Wrappers/Python/compile.bat.in
deleted file mode 100644
index e5342ed..0000000
--- a/Wrappers/Python/compile.bat.in
+++ /dev/null
@@ -1,7 +0,0 @@
-set CIL_VERSION=@CIL_VERSION@
-
-set PREFIX=@CONDA_ENVIRONMENT_PREFIX@
-set LIBRARY_INC=@CONDA_ENVIRONMENT_LIBRARY_INC@
-
-REM activate @CONDA_ENVIRONMENT@
-conda build conda-recipe --python=@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@ --numpy=@NUMPY_VERSION@ -c ccpi -c conda-forge \ No newline at end of file
diff --git a/Wrappers/Python/compile.sh.in b/Wrappers/Python/compile.sh.in
deleted file mode 100644
index 93fdba2..0000000
--- a/Wrappers/Python/compile.sh.in
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-# compile within the right conda environment
-#module load python/anaconda
-#source activate @CONDA_ENVIRONMENT@
-
-export CIL_VERSION=@CIL_VERSION@
-export LIBRARY_INC=@CONDA_ENVIRONMENT_LIBRARY_INC@
-
-conda build conda-recipe --python=@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@ --numpy=@NUMPY_VERSION@ -c ccpi
diff --git a/Wrappers/Python/fista-recipe/meta.yaml b/Wrappers/Python/fista-recipe/meta.yaml
index 265541f..4e5cba6 100644
--- a/Wrappers/Python/fista-recipe/meta.yaml
+++ b/Wrappers/Python/fista-recipe/meta.yaml
@@ -19,7 +19,7 @@ requirements:
- python
- numpy
#- astra-toolbox
- - ccpi-regularizers
+ - ccpi-regularizer
diff --git a/Wrappers/Python/setup-fista.py.in b/Wrappers/Python/setup-fista.py.in
deleted file mode 100644
index c5c9f4d..0000000
--- a/Wrappers/Python/setup-fista.py.in
+++ /dev/null
@@ -1,27 +0,0 @@
-from distutils.core import setup
-#from setuptools import setup, find_packages
-import os
-
-cil_version=os.environ['CIL_VERSION']
-if cil_version == '':
- print("Please set the environmental variable CIL_VERSION")
- sys.exit(1)
-
-setup(
- name="ccpi-fista",
- version=cil_version,
- packages=['ccpi','ccpi.reconstruction'],
- install_requires=['numpy'],
-
- zip_safe = False,
-
- # metadata for upload to PyPI
- author="Edoardo Pasca",
- author_email="edo.paskino@gmail.com",
- description='CCPi Core Imaging Library - FISTA Reconstructor module',
- license="Apache v2.0",
- keywords="tomography interative reconstruction",
- url="http://www.ccpi.ac.uk", # project home page, if any
-
- # could also include long_description, download_url, classifiers, etc.
-)
diff --git a/Wrappers/Python/setup.py.in b/Wrappers/Python/setup.py.in
deleted file mode 100644
index 12e8af1..0000000
--- a/Wrappers/Python/setup.py.in
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-
-import setuptools
-from distutils.core import setup
-from distutils.extension import Extension
-from Cython.Distutils import build_ext
-
-import os
-import sys
-import numpy
-import platform
-
-cil_version=@CIL_VERSION@
-
-library_include_path = ""
-library_lib_path = ""
-try:
- library_include_path = os.environ['LIBRARY_INC']
- library_lib_path = os.environ['LIBRARY_LIB']
-except:
- library_include_path = os.environ['PREFIX']+'/include'
- pass
-
-extra_include_dirs = [numpy.get_include(), library_include_path]
-extra_library_dirs = [os.path.join(library_include_path, "..", "lib")]
-extra_compile_args = ['-fopenmp','-O2', '-funsigned-char', '-Wall', '-std=c++0x']
-extra_libraries = []
-extra_include_dirs += [os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU"),
- os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_GPU") ,
- "@CMAKE_CURRENT_SOURCE_DIR@"]
-
-if platform.system() == 'Windows':
- extra_compile_args[0:] = ['/DWIN32','/EHsc','/DBOOST_ALL_NO_LIB' , '/openmp' ]
-
- if sys.version_info.major == 3 :
- extra_libraries += ['boost_python3-vc140-mt-1_64', 'boost_numpy3-vc140-mt-1_64']
- else:
- extra_libraries += ['boost_python-vc90-mt-1_64', 'boost_numpy-vc90-mt-1_64']
-else:
- if sys.version_info.major == 3:
- extra_libraries += ['boost_python3', 'boost_numpy3','gomp']
- else:
- extra_libraries += ['boost_python', 'boost_numpy','gomp']
-
-setup(
- name='ccpi',
- description='CCPi Core Imaging Library - Image Regularizers',
- version=cil_version,
- cmdclass = {'build_ext': build_ext},
- ext_modules = [Extension("ccpi.imaging.cpu_regularizers",
- sources=[os.path.join("@CMAKE_CURRENT_SOURCE_DIR@" , "fista_module.cpp" ),
- os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "FGP_TV_core.c"),
- os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "SplitBregman_TV_core.c"),
- os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "LLT_model_core.c"),
- os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "PatchBased_Regul_core.c"),
- os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "TGV_PD_core.c"),
- os.path.join("@CMAKE_SOURCE_DIR@" , "main_func" , "regularizers_CPU", "utils.c")
- ],
- include_dirs=extra_include_dirs,
- library_dirs=extra_library_dirs,
- extra_compile_args=extra_compile_args,
- libraries=extra_libraries ),
-
- ],
- zip_safe = False,
- packages = {'ccpi','ccpi.imaging'},
-)
-
-