@@ -95,13 +95,13 @@ def filename_to_doi(filename):
9595 :return: full unique identifier for a PLOS article
9696 """
9797 filename = os .path .basename (filename )
98- if correction in filename and validate_filename (filename ):
98+ if not validate_filename (filename ):
99+ raise Exception ("Invalid format for PLOS filename: {}" .format (filename ))
100+ elif correction in filename :
99101 article = 'annotation/' + filename .split ('.' , 4 )[2 ]
100102 doi = PREFIX + article
101- elif validate_filename (filename ):
102- doi = PREFIX + os .path .splitext (filename )[0 ]
103103 else :
104- doi = ''
104+ doi = PREFIX + os . path . splitext ( filename )[ 0 ]
105105 return doi
106106
107107
@@ -154,6 +154,8 @@ def doi_to_url(doi):
154154 :param doi: full unique identifier for a PLOS article
155155 :return: online location of a PLOS article's XML
156156 """
157+ if validate_doi (doi ) is False :
158+ raise Exception ("Invalid format for PLOS DOI: {}" .format (doi ))
157159 journal = Journal .doi_to_journal (doi )
158160 base_page = _get_base_page (journal )
159161 return '' .join ([base_page , 'article/file?id=' , doi , URL_SUFFIX ])
@@ -177,9 +179,8 @@ def doi_to_path(doi, directory=None):
177179 article_file = os .path .join (directory , "plos.correction." + doi .split ('/' )[- 1 ] + SUFFIX_LOWER )
178180 elif validate_doi (doi ):
179181 article_file = os .path .join (directory , doi .lstrip (PREFIX ) + SUFFIX_LOWER )
180- # NOTE: The following check is weird, a DOI should never validate as a file name.
181- elif validate_filename (doi ):
182- article_file = doi
182+ else :
183+ raise Exception ("Invalid format for PLOS DOI: {}" .format (doi ))
183184 return article_file
184185
185186
0 commit comments