@@ -57,56 +57,53 @@ def _set_author_from_item(self, *, record_dict: dict, item: dict) -> None:
5757
5858 record_dict [Fields .AUTHOR ] = " and " .join (author_list )
5959
60- def _parse_item_to_record (self , * , item : dict ) -> colrev .record .record .Record :
61- def set_entrytype (* , record_dict : dict , item : dict ) -> None :
62- # pylint: disable=colrev-missed-constant-usage
63- if "title" in record_dict and record_dict ["title" ] is None :
64- del record_dict ["title" ]
65- if item .get ("type_crossref" , "" ) == "proceedings-article" :
66- record_dict [Fields .ENTRYTYPE ] = ENTRYTYPES .INPROCEEDINGS
67- if (
68- item .get ("primary_location" , None ) is not None
69- and item ["primary_location" ].get ("source" , None ) is not None
70- ):
71- display_name = item ["primary_location" ]["source" ]["display_name" ]
72- if display_name != "Proceedings" :
73- record_dict [Fields .BOOKTITLE ] = display_name
74- elif item ["type" ] in ["journal-article" , "article" ]:
75- record_dict [Fields .ENTRYTYPE ] = ENTRYTYPES .ARTICLE
76- if (
77- item .get ("primary_location" , None ) is not None
78- and item ["primary_location" ].get ("source" , None ) is not None
79- ):
80- record_dict [Fields .JOURNAL ] = item ["primary_location" ]["source" ][
81- "display_name"
82- ]
83- else :
84- record_dict [Fields .ENTRYTYPE ] = ENTRYTYPES .MISC
85-
86- record_dict = {}
87- record_dict ["id" ] = item ["id" ].replace ("https://openalex.org/" , "" )
60+ def _get_record_id (self , * , item : dict ) -> str :
61+ return item ["id" ].replace ("https://openalex.org/" , "" )
62+
63+ def _set_title_field (self , * , record_dict : dict , item : dict ) -> None :
8864 # pylint: disable=colrev-missed-constant-usage
8965 if "title" in item and item ["title" ] is not None :
9066 record_dict [Fields .TITLE ] = item ["title" ].lstrip ("[" ).rstrip ("]." )
91- set_entrytype (record_dict = record_dict , item = item )
92-
67+ if "title" in record_dict and record_dict ["title" ] is None :
68+ del record_dict ["title" ]
69+
70+ def _set_entrytype (self , * , record_dict : dict , item : dict ) -> None :
71+ if item .get ("type_crossref" , "" ) == "proceedings-article" :
72+ record_dict [Fields .ENTRYTYPE ] = ENTRYTYPES .INPROCEEDINGS
73+ if (
74+ item .get ("primary_location" , None ) is not None
75+ and item ["primary_location" ].get ("source" , None ) is not None
76+ ):
77+ display_name = item ["primary_location" ]["source" ]["display_name" ]
78+ if display_name != "Proceedings" :
79+ record_dict [Fields .BOOKTITLE ] = display_name
80+ elif item ["type" ] in ["journal-article" , "article" ]:
81+ record_dict [Fields .ENTRYTYPE ] = ENTRYTYPES .ARTICLE
82+ if (
83+ item .get ("primary_location" , None ) is not None
84+ and item ["primary_location" ].get ("source" , None ) is not None
85+ ):
86+ record_dict [Fields .JOURNAL ] = item ["primary_location" ]["source" ][
87+ "display_name"
88+ ]
89+ else :
90+ record_dict [Fields .ENTRYTYPE ] = ENTRYTYPES .MISC
91+
92+ def _set_basic_fields (self , * , record_dict : dict , item : dict ) -> None :
9393 if "publication_year" in item and item ["publication_year" ] is not None :
9494 record_dict [Fields .YEAR ] = str (item ["publication_year" ])
9595 # pylint: disable=colrev-missed-constant-usage
9696 if "language" in item and item ["language" ] is not None :
9797 record_dict [Fields .LANGUAGE ] = item ["language" ]
98-
9998 if "is_retracted" in item and item ["is_retracted" ]:
10099 record_dict [FieldValues .RETRACTED ] = item ["is_retracted" ]
101-
102- # pylint: disable=colrev-missed-constant-usage
103100 if "doi" in item and item ["doi" ] is not None :
104101 record_dict [Fields .DOI ] = (
105102 item ["doi" ].upper ().replace ("HTTPS://DOI.ORG/" , "" )
106103 )
107-
108104 record_dict [Fields .CITED_BY ] = item ["cited_by_count" ]
109105
106+ def _set_biblio_fields (self , * , record_dict : dict , item : dict ) -> None :
110107 # pylint: disable=colrev-missed-constant-usage
111108 if "volume" in item ["biblio" ] and item ["biblio" ]["volume" ] is not None :
112109 record_dict [Fields .VOLUME ] = item ["biblio" ]["volume" ]
@@ -117,6 +114,13 @@ def set_entrytype(*, record_dict: dict, item: dict) -> None:
117114 if "last_page" in item ["biblio" ] and item ["biblio" ]["last_page" ] is not None :
118115 record_dict [Fields .PAGES ] += "--" + item ["biblio" ]["last_page" ]
119116
117+ def _parse_item_to_record (self , * , item : dict ) -> colrev .record .record .Record :
118+ record_dict = {"id" : self ._get_record_id (item = item )}
119+ self ._set_title_field (record_dict = record_dict , item = item )
120+ self ._set_entrytype (record_dict = record_dict , item = item )
121+ self ._set_basic_fields (record_dict = record_dict , item = item )
122+ self ._set_biblio_fields (record_dict = record_dict , item = item )
123+
120124 self ._set_author_from_item (record_dict = record_dict , item = item )
121125 record = colrev .record .record .Record (record_dict )
122126
0 commit comments