Example #1
0
def file_list(expression = None, file_list = None, sort = True, verbose = False):
  """Returns the list of files that match the tag expression.
  
  Arguments
  ---------
  expression :str
    The regular expression the file names should match.
  sort : bool
    If True, sort files naturally.
  verbose : bool
    If True, print warning if no files exists.
  
  Returns
  -------
  file_list : list of str
    The list of files that matched the expression.
  """
  return fl._file_list(expression=expression, file_list=file_list, sort=sort, verbose=verbose)
Example #2
0
def _test():
    from importlib import reload
    import ClearMap.Tests.Files as tf

    import ClearMap.IO.FileList as fl
    reload(fl)

    expression = tf.io.join(tf.tif_sequence, 'sequence<Z,I,4>.tif')

    f = fl.Source(expression=expression)
    print(f)
    print(f.expression.string({'Z': 10}))

    d = f.__getitem__((slice(None), slice(None), 1), processes='serial')
    d = f[:, :, 1]

    import numpy as np
    import ClearMap.IO.IO as io
    np.all(d == io.read(f.file_list[1]))

    # genreate some files
    data = np.asarray(20 * np.random.rand(4, 5, 2, 3), dtype='int32')
    data[5:15, 20:45, 2:9] = 0

    f = fl.Source('./test_file_list/test<I,3>_<I,2>.npy',
                  shape=(4, 5, 2, 3),
                  dtype='int32')

    f.__setitem__(slice(None, ), data, processes='serial')

    reload(fl)
    f2 = fl.Source('./test_file_list')
    print(f2)

    data2 = f2.__getitem__(slice(None), processes='serial')

    s = io.as_source(data)
    s2 = io.as_source(data2)
    print(s)
    print(s2)

    np.all(data2 == data)

    data3 = f2[:]
    np.all(data3 == data)

    np.all(f2[:, :, 1, :] == data[:, :, 1, :])

    fl.fu.delete_directory('./test_file_list')

    import ClearMap.Tests.Files as tf
    name = tf.tif_sequence

    fl1 = fl._file_list(name)

    name = fl.fu.join(tf.tif_sequence, 'sequence<I,4>.tif')
    fl2 = fl._file_list(name)

    print(fl1 == fl2)

    f = fl.Source(name)
    print(f)
    f.shape
    f.dtype