summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-01-07 12:24:45 +0100
committerROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-01-07 12:24:45 +0100
commitd832d3585bf47c48f28d861469730fc47f4956c8 (patch)
treed5dd594cfc1b46ec5bc4f663e2393b59f7619d2d
parentba406558f707f55b638be92d197ae3039595b29a (diff)
Code review: less strict with numpy arrays for cubical ctors. Also accept lists
-rw-r--r--src/python/gudhi/cubical_complex.pyx14
-rw-r--r--src/python/gudhi/periodic_cubical_complex.pyx18
2 files changed, 16 insertions, 16 deletions
diff --git a/src/python/gudhi/cubical_complex.pyx b/src/python/gudhi/cubical_complex.pyx
index 04b22921..63911478 100644
--- a/src/python/gudhi/cubical_complex.pyx
+++ b/src/python/gudhi/cubical_complex.pyx
@@ -60,7 +60,7 @@ cdef class CubicalComplex:
:param top_dimensional_cells: A multidimensional array of cells
filtration values.
- :type top_dimensional_cells: numpy ndarray
+ :type top_dimensional_cells: numpy ndarray or list of list of double
Or
@@ -76,12 +76,12 @@ cdef class CubicalComplex:
self.thisptr = new Bitmap_cubical_complex_base_interface(dimensions, top_dimensional_cells)
elif ((dimensions is None) and (top_dimensional_cells is not None)
and (perseus_file == '')):
- if isinstance(top_dimensional_cells, np.ndarray):
- dimensions = top_dimensional_cells.shape
- top_dimensional_cells = top_dimensional_cells.ravel(order='F')
- self.thisptr = new Bitmap_cubical_complex_base_interface(dimensions, top_dimensional_cells)
- else:
- print("top_dimensional_cells is not an instance of ndarray. It is a " + type(top_dimensional_cells))
+ top_dimensional_cells = np.array(top_dimensional_cells,
+ copy = False,
+ order = 'F')
+ dimensions = top_dimensional_cells.shape
+ top_dimensional_cells = top_dimensional_cells.ravel(order='F')
+ self.thisptr = new Bitmap_cubical_complex_base_interface(dimensions, top_dimensional_cells)
elif ((dimensions is None) and (top_dimensional_cells is None)
and (perseus_file != '')):
if os.path.isfile(perseus_file):
diff --git a/src/python/gudhi/periodic_cubical_complex.pyx b/src/python/gudhi/periodic_cubical_complex.pyx
index 1d6f1e59..3c0f529b 100644
--- a/src/python/gudhi/periodic_cubical_complex.pyx
+++ b/src/python/gudhi/periodic_cubical_complex.pyx
@@ -62,7 +62,7 @@ cdef class PeriodicCubicalComplex:
:param top_dimensional_cells: A multidimensional array of cells
filtration values.
- :type top_dimensional_cells: numpy ndarray
+ :type top_dimensional_cells: numpy ndarray or list of list of double
:param periodic_dimensions: A list of top dimensional cells periodicity value.
:type periodic_dimensions: list of boolean
@@ -82,14 +82,14 @@ cdef class PeriodicCubicalComplex:
periodic_dimensions)
elif ((dimensions is None) and (top_dimensional_cells is not None)
and (periodic_dimensions is not None) and (perseus_file == '')):
- if isinstance(top_dimensional_cells, np.ndarray):
- dimensions = top_dimensional_cells.shape
- top_dimensional_cells = top_dimensional_cells.ravel(order='F')
- self.thisptr = new Periodic_cubical_complex_base_interface(dimensions,
- top_dimensional_cells,
- periodic_dimensions)
- else:
- print("top_dimensional_cells is not an instance of ndarray. It is a " + type(top_dimensional_cells))
+ top_dimensional_cells = np.array(top_dimensional_cells,
+ copy = False,
+ order = 'F')
+ dimensions = top_dimensional_cells.shape
+ top_dimensional_cells = top_dimensional_cells.ravel(order='F')
+ self.thisptr = new Periodic_cubical_complex_base_interface(dimensions,
+ top_dimensional_cells,
+ periodic_dimensions)
elif ((dimensions is None) and (top_dimensional_cells is None)
and (periodic_dimensions is None) and (perseus_file != '')):
if os.path.isfile(perseus_file):