-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Npi 3290 clearer error on empty sinex header extras #27
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,17 +25,21 @@ | |
|
||
|
||
def _get_snx_header(path_or_bytes): | ||
# Helper for error logging | ||
def file_desc(pb) -> str: | ||
return "Source file: unknown (passed as bytes)" if isinstance(path_or_bytes, bytes) else "Source file: "+str(path_or_bytes) | ||
|
||
# read line that starts with %=SNX and parse it into dict | ||
snx_bytes = _gn_io.common.path2bytes(path_or_bytes) | ||
header_begin = snx_bytes.find(b"%=SNX") | ||
if (header_begin == -1): | ||
raise ValueError("Sinex header missing!", file_desc(path_or_bytes)) | ||
header_end = snx_bytes.find(b"\n", header_begin) | ||
if header_end == -1: | ||
raise ValueError("Sinex header found but wasn't newline terminated (end unclear)", file_desc(path_or_bytes)) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've tried to end up here but wasn't successful in editing an SNX to do so - do you have an example file where you were able to? |
||
snx_hline = snx_bytes[header_begin:header_end].decode() | ||
if len(snx_hline) == 0: # Raise an inteligible error if the Sinex header is effectively empty. | ||
# Is the source bytes, or a path / str path? If not bytes, we can output it. | ||
if isinstance(path_or_bytes, bytes): | ||
raise ValueError(f"Sinex header is empty for UNKNOWN file (passed in as bytes object not path)") | ||
else: | ||
raise ValueError(f"Sinex header is empty for file: '{str(path_or_bytes)}'") | ||
raise ValueError(f"Sinex header found, but empty!", file_desc(path_or_bytes)) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Again, wasn't able to get here.
Anyway, none of this is a show stopper so I think it can go in |
||
dates = _gn_datetime.yydoysec2datetime([snx_hline[15:27], snx_hline[32:44], snx_hline[45:57]]).tolist() | ||
return { | ||
"version": float(snx_hline[6:10]), | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was able to test this and works well