Example #1
0
 def read_file(cls,
               filename,
               make_complex=True,
               property_to_vars=True,
               guess_unit=True,
               normalize=True,
               make_matrix=False,
               merge=True,
               verbose=False,
               multiple_files=True,
               hyper=False,
               encoding="cp1252",
               **kw):
     obj = cls(make_complex=make_complex,
               property_to_vars=property_to_vars,
               guess_unit=guess_unit,
               normalize=normalize,
               make_matrix=make_matrix,
               merge=merge,
               verbose=verbose,
               hyper=hyper,
               **kw)
     obj.filename = filename
     if multiple_files:
         if isinstance(filename, (list, tuple)):
             filenames = []
             for f in filename:
                 filenames.extend(glob(f))
         else:
             filenames = glob(filename)
     else:
         filenames = [filename]
     filenames = [path(f) for f in filenames]
     objs = []
     if not filenames:
         raise IOError("Pattern %r did not match any files" % filename)
     for idx, fname in enumerate(filenames):
         if verbose:
             print("\r%-80s\r" % fname.basename(), end="")
         with io.open(fname, encoding=encoding) as fil:
             res = obj.do_file(fil)
             if multiple_files:
                 #res["FILEINDEX"] = DimPartial("FILEINDEX", [idx])
                 fname = py3.cast_unicode(fname)
                 if "FILENAME" not in res:
                     res["FILENAME"] = hfarray(fname)
             objs.append(res)
     if multiple_files:
         res = obj._merge(objs)
     else:
         res = objs
     if verbose:
         print("\r%80s\r" % "")
     return res
Example #2
0
    def read_file(cls,
                  filename,
                  make_complex=True,
                  property_to_vars=True,
                  guess_unit=True,
                  normalize=True,
                  make_matrix=False,
                  merge=True,
                  verbose=False,
                  multiple_files=True,
                  blockname=None,
                  **kw):

        if multiple_files:
            merge = False
        obj = cls(make_complex=make_complex,
                  property_to_vars=property_to_vars,
                  guess_unit=guess_unit,
                  normalize=normalize,
                  make_matrix=make_matrix,
                  merge=merge,
                  verbose=verbose,
                  **kw)
        obj.filename = filename

        if multiple_files:
            filenames = glob(filename)
        else:
            filenames = [filename]
        objs = {}
        for idx, fname in enumerate(filenames):
            with open(fname) as fil:
                res = obj.do_file(fil)
                for k, v in res.items():
                    if isinstance(v, list):
                        for a in v:
                            a["FILENAME"] = hfarray(fname)
                        objs.setdefault(k, []).extend(v)
                    else:
                        v["FILENAME"] = hfarray(fname)
                        objs.setdefault(k, []).append(v)

        if multiple_files:
            res = {}
            for k, v in objs.items():
                res[k] = simple_merge_blocks(v)
                res[k].guess_units()
        else:
            res = objs

        if blockname:
            if blockname in res:
                return res[blockname]
            else:
                msg = "%r not a block in mdif file %r" % (blockname, filename)
                MDIFError(msg)
        else:
            return res
Example #3
0
    def read_file(
        cls,
        filename,
        make_complex=True,
        property_to_vars=True,
        guess_unit=True,
        normalize=True,
        make_matrix=False,
        merge=True,
        verbose=False,
        multiple_files=True,
        blockname=None,
        **kw
    ):

        if multiple_files:
            merge = False
        obj = cls(
            make_complex=make_complex,
            property_to_vars=property_to_vars,
            guess_unit=guess_unit,
            normalize=normalize,
            make_matrix=make_matrix,
            merge=merge,
            verbose=verbose,
            **kw
        )
        obj.filename = filename

        if multiple_files:
            filenames = glob(filename)
        else:
            filenames = [filename]
        objs = {}
        for idx, fname in enumerate(filenames):
            with open(fname) as fil:
                res = obj.do_file(fil)
                for k, v in res.items():
                    if isinstance(v, list):
                        for a in v:
                            a["FILENAME"] = hfarray(fname)
                        objs.setdefault(k, []).extend(v)
                    else:
                        v["FILENAME"] = hfarray(fname)
                        objs.setdefault(k, []).append(v)

        if multiple_files:
            res = {}
            for k, v in objs.items():
                res[k] = simple_merge_blocks(v)
                res[k].guess_units()
        else:
            res = objs

        if blockname:
            if blockname in res:
                return res[blockname]
            else:
                msg = "%r not a block in mdif file %r" % (blockname, filename)
                MDIFError(msg)
        else:
            return res
Example #4
0
 def test_glob_1(self):
     f = utils.glob(os.path.join(self.base, "*"))
     f = [os.path.split(x)[1] for x in f]
     self.assertEqual(f, ["aa", "bb5", "bb11"])