68 files_to_combine = [] |
68 files_to_combine = [] |
69 for p in data_paths: |
69 for p in data_paths: |
70 if os.path.isfile(p): |
70 if os.path.isfile(p): |
71 files_to_combine.append(os.path.abspath(p)) |
71 files_to_combine.append(os.path.abspath(p)) |
72 elif os.path.isdir(p): |
72 elif os.path.isdir(p): |
73 pattern = os.path.join(os.path.abspath(p), f"{local}.*") |
73 pattern = glob.escape(os.path.join(os.path.abspath(p), local)) +".*" |
74 files_to_combine.extend(glob.glob(pattern)) |
74 files_to_combine.extend(glob.glob(pattern)) |
75 else: |
75 else: |
76 raise NoDataError(f"Couldn't combine from non-existent path '{p}'") |
76 raise NoDataError(f"Couldn't combine from non-existent path '{p}'") |
77 return files_to_combine |
77 return files_to_combine |
78 |
78 |
130 data._warn(str(exc)) |
130 data._warn(str(exc)) |
131 else: |
131 else: |
132 data.update(new_data, aliases=aliases) |
132 data.update(new_data, aliases=aliases) |
133 files_combined += 1 |
133 files_combined += 1 |
134 if message: |
134 if message: |
135 message(f"Combined data file {os.path.relpath(f)}") |
135 try: |
|
136 file_name = os.path.relpath(f) |
|
137 except ValueError: |
|
138 # ValueError can be raised under Windows when os.getcwd() returns a |
|
139 # folder from a different drive than the drive of f, in which case |
|
140 # we print the original value of f instead of its relative path |
|
141 file_name = f |
|
142 message(f"Combined data file {file_name}") |
136 if not keep: |
143 if not keep: |
137 if data._debug.should('dataio'): |
144 if data._debug.should('dataio'): |
138 data._debug.write(f"Deleting combined data file {f!r}") |
145 data._debug.write(f"Deleting combined data file {f!r}") |
139 file_be_gone(f) |
146 file_be_gone(f) |
140 |
147 |