コード例 #1
0
ファイル: convert.py プロジェクト: evelthon/Zotero-to-DSpace
    def create_issn(self, key, var_list=None):
        tmp_list = []
        for var in var_list:
            # print(self.csvRow[var].strip())
            tmp_elem = re.split('; |, ', self.csvRow[var].strip())
            for i in range(len(tmp_elem)):
                """
                Filter ISSN and ISBN only
                """
                tmp_var_issn = self.remove_non_isbn_chars(tmp_elem[i].upper())
                if issn.is_valid(tmp_var_issn):
                    # print("Valid ISSN: " + tmp_var_issn)
                    tmp_elem[i] = issn.format(tmp_var_issn)
                else:
                    tmp_elem[i] = None

            # Filter all elements, remove text chars, parenthesis etc

            # print(tmp_elem)
            tmp_list += tmp_elem
            # print(tmp_list)
        tmp_list = list(filter(None, tmp_list))  # remove empty list elements
        # print(tmp_list)
        # No semi-colon, so do a join here. Cannot use the function to split semi-colons
        return '||'.join(filter(None, tmp_list)).strip()
コード例 #2
0
ファイル: parser.py プロジェクト: jbzdak/journal-list
def check_rows(groups):
    last_id = None
    errors = []
    for group in groups:
        if not issn.is_valid(group[2]):
            errors.append(u"Invalid issn '{}'".format(group[2]))

    return errors
コード例 #3
0
ファイル: validate.py プロジェクト: hda-technical/dancebooks
def validate_issn(item, errors):
	"""
	Checks ISSN for validity
	"""
	issn_list = item.get("issn")
	if issn_list is None:
		return
	for idx, single_issn in enumerate(issn_list):
		if not issn.is_valid(single_issn):
			errors.add(f"ISSN #{idx} [{single_issn}] isn't valid")
		formatted = issn.format(single_issn)
		if (formatted != single_issn):
			errors.add(f"ISSN #{idx} [{single_issn}] should be reformatted to [{formatted}]")
コード例 #4
0
ファイル: validate.py プロジェクト: mityafil/dancebooks
def validate_issn(item, errors):
    """
	Checks ISSN for validity
	"""
    issn_list = item.get("issn")
    if issn_list is None:
        return
    for idx, single_issn in enumerate(issn_list):
        if not issn.is_valid(single_issn):
            errors.add(f"ISSN #{idx} [{single_issn}] isn't valid")
        formatted = issn.format(single_issn)
        if (formatted != single_issn):
            errors.add(
                f"ISSN #{idx} [{single_issn}] should be reformatted to [{formatted}]"
            )
コード例 #5
0
def validate_issn(item, errors):
    """
	Checks ISSN for validity
	"""
    issn_list = item.get("issn")
    if issn_list is None:
        return
    for idx, single_issn in enumerate(issn_list):
        if not issn.is_valid(single_issn):
            errors.add("ISSN #{idx} isn't valid".format(idx=idx))
        formatted = issn.format(single_issn)
        if (formatted != single_issn):
            errors.add(
                "ISSN #{idx} ({single_issn}) should be reformatted to {formatted}"
                .format(idx=idx, single_issn=single_issn, formatted=formatted))
コード例 #6
0
def check_issn(item, errors):
	"""
	Checks ISSN for validity
	"""
	issn_list = item.get("issn")
	if issn_list is None:
		return
	for idx, single_issn in enumerate(issn_list):
		if not issn.is_valid(single_issn):
			errors.add("ISSN #{idx} isn't valid".format(
				idx=idx
			))
		formatted = issn.format(single_issn)
		if (formatted != single_issn):
			errors.add("ISSN #{idx} ({single_issn}) should be reformatted to {formatted}".format(
				idx=idx,
				single_issn=single_issn,
				formatted=formatted
			))
コード例 #7
0
ファイル: generator.py プロジェクト: Phantasus/library-opac
def formatIdentifier(stringToFormat, type):
    """
        This is used to format/check ISBN and ISSN numbers
    """
    if type.lower() == "isbn":
        if isbn.is_valid(stringToFormat):
            log.debug("OK ISBN: {0}".format(stringToFormat))
            return isbn.format(stringToFormat)
        else:
            log.warning("Malformed ISBN: {0}".format(stringToFormat))
            return stringToFormat

    elif type.lower() == "issn":
        if issn.is_valid(stringToFormat):
            log.debug("OK ISSN: {0}".format(stringToFormat))
            return issn.format(stringToFormat)
        else:
            log.warning("Malformed ISSN: {0}".format(stringToFormat))
            return stringToFormat
コード例 #8
0
ファイル: check.py プロジェクト: ilri/csv-metadata-quality
def issn(field):
    """Check if an ISSN is valid.

    Prints the ISSN if invalid.

    stdnum's is_valid() function never raises an exception.

    See: https://arthurdejong.org/python-stdnum/doc/1.11/index.html#stdnum.module.is_valid
    """

    # Skip fields with missing values
    if pd.isna(field):
        return

    # Try to split multi-value field on "||" separator
    for value in field.split("||"):

        if not stdnum_issn.is_valid(value):
            print(f"{Fore.RED}Invalid ISSN: {Fore.RESET}{value}")

    return