-
Notifications
You must be signed in to change notification settings - Fork 126
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
Seriesgrouping #684
base: master
Are you sure you want to change the base?
Seriesgrouping #684
Changes from all commits
735e727
a7d4af1
c6c7106
7e75a8a
a667aca
e9c9289
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 | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -18,6 +18,7 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
import stat | ||||||||||||||||||||||||||||||||||||||||||||||||||
from subprocess import check_output | ||||||||||||||||||||||||||||||||||||||||||||||||||
import sys | ||||||||||||||||||||||||||||||||||||||||||||||||||
import string | ||||||||||||||||||||||||||||||||||||||||||||||||||
import tempfile | ||||||||||||||||||||||||||||||||||||||||||||||||||
from time import sleep | ||||||||||||||||||||||||||||||||||||||||||||||||||
from types import ModuleType | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -222,6 +223,41 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
return data | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
def is_deprecated_seriesid(series_id: str, len_hash_hex: int = 8) -> bool: | ||||||||||||||||||||||||||||||||||||||||||||||||||
"""Return True if series_id is in deprecated format. | ||||||||||||||||||||||||||||||||||||||||||||||||||
A deprecated series ID is in the format "series_number-protocol_name". | ||||||||||||||||||||||||||||||||||||||||||||||||||
A non-deprecated series ID is in the format "series_number-protocol_name-seriesUID_hash_hex" | ||||||||||||||||||||||||||||||||||||||||||||||||||
""" | ||||||||||||||||||||||||||||||||||||||||||||||||||
# Check at least two '-' in the series_id | ||||||||||||||||||||||||||||||||||||||||||||||||||
if series_id.count('-') <= 1: | ||||||||||||||||||||||||||||||||||||||||||||||||||
return True | ||||||||||||||||||||||||||||||||||||||||||||||||||
# Check the first part of the series_id is a number | ||||||||||||||||||||||||||||||||||||||||||||||||||
series_number = series_id.split('-')[0] | ||||||||||||||||||||||||||||||||||||||||||||||||||
if not series_number.isdigit(): | ||||||||||||||||||||||||||||||||||||||||||||||||||
return True | ||||||||||||||||||||||||||||||||||||||||||||||||||
# Check the last part of the series_id is a hash in hexadecimal format of length len_hash_hex | ||||||||||||||||||||||||||||||||||||||||||||||||||
hash_hex = series_id.split('-')[-1] | ||||||||||||||||||||||||||||||||||||||||||||||||||
hex_digits = set(string.hexdigits) | ||||||||||||||||||||||||||||||||||||||||||||||||||
if len(hash_hex) != len_hash_hex or not all(c in hex_digits for c in hash_hex): | ||||||||||||||||||||||||||||||||||||||||||||||||||
return True | ||||||||||||||||||||||||||||||||||||||||||||||||||
# If all previous tests passed, then the series_id is not deprecated | ||||||||||||||||||||||||||||||||||||||||||||||||||
return False | ||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+241
to
+244
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.
Suggested change
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. or may be better to use
Suggested change
this function needs a unittest which would be trivial to do
Comment on lines
+232
to
+244
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. overall can be
Suggested change
to just match regex... again -- just needs a unittest |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
def has_deprecated_seriesid(info_file: str) -> bool: | ||||||||||||||||||||||||||||||||||||||||||||||||||
"""Return True if any series_id in the info_file is in deprecated format.""" | ||||||||||||||||||||||||||||||||||||||||||||||||||
info = read_config(info_file) | ||||||||||||||||||||||||||||||||||||||||||||||||||
series_ids = [series_id for sublist in info.values() for series_id in sublist] | ||||||||||||||||||||||||||||||||||||||||||||||||||
if any(is_deprecated_seriesid(series_id) for series_id in series_ids): | ||||||||||||||||||||||||||||||||||||||||||||||||||
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. Could be shorter
Suggested change
but it is ok either way. |
||||||||||||||||||||||||||||||||||||||||||||||||||
lgr.warning( | ||||||||||||||||||||||||||||||||||||||||||||||||||
"Found deprecated series identifier in info file in the format" | ||||||||||||||||||||||||||||||||||||||||||||||||||
"<series num>-<protocol name> instead of <series num>-<protocol name>-<UID hash>" | ||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+253
to
+254
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.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||
"The existing conversion table will be ignored." | ||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||
return True | ||||||||||||||||||||||||||||||||||||||||||||||||||
return False | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
def assure_no_file_exists(path: str | Path) -> None: | ||||||||||||||||||||||||||||||||||||||||||||||||||
"""Check if file or symlink (git-annex?) exists, and if so -- remove""" | ||||||||||||||||||||||||||||||||||||||||||||||||||
if os.path.lexists(path): | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
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.
is that correct and that is why
[-1]
?