@@ -31,6 +31,7 @@ def create_item(
3131 is_doi = False ,
3232 prepare_edit = False ,
3333 id = 2000001 ,
34+ replace_title = True ,
3435):
3536 """Create items based on the provided creation information.
3637
@@ -44,6 +45,7 @@ def create_item(
4445 is_doi(bool, optional): Boolean indicating whether to assign a DOI to the item.
4546 prepare_edit(bool, optional): Boolean indicating whether to prepare the item for editing after creation.
4647 id(int, optional): Optional ID to assign to the created item.
48+ replace_title(bool, optional): Boolean indicating whether to replace the title of the item.
4749
4850 Raises:
4951 Exception: If any step in the item creation process fails.
@@ -63,18 +65,21 @@ def create_item(
6365 with open (create_info ["data_file" ], "r" ) as f :
6466 data = json .loads (f .read ())
6567
66- url = data [create_info ["file_key" ]][0 ]["url" ]["url" ]
67- replaced_url = url .replace ("{id}" , str (id ))
68- data [create_info ["file_key" ]][0 ]["url" ]["url" ] = replaced_url
69-
70- title_key = create_info ["title_key" ].split ("." )
71- title = data [title_key [0 ]][int (title_key [1 ])][title_key [2 ]]
72- replaced_title = title + f"_{ id } "
73- data [title_key [0 ]][int (title_key [1 ])][title_key [2 ]] = replaced_title
74-
75- identifier = data [create_info ["identifier_key" ]][0 ]["subitem_identifier_uri" ]
76- replaced_identifier = identifier + f"_{ id } "
77- data [create_info ["identifier_key" ]][0 ]["subitem_identifier_uri" ] = replaced_identifier
68+ if create_info .get ("file_key" ) and data .get (create_info ["file_key" ]) is not None :
69+ url = data [create_info ["file_key" ]][0 ]["url" ]["url" ]
70+ replaced_url = url .replace ("{id}" , str (id ))
71+ data [create_info ["file_key" ]][0 ]["url" ]["url" ] = replaced_url
72+
73+ if replace_title :
74+ title_key = create_info ["title_key" ].split ("." )
75+ title = data [title_key [0 ]][int (title_key [1 ])][title_key [2 ]]
76+ replaced_title = title + f"_{ id } "
77+ data [title_key [0 ]][int (title_key [1 ])][title_key [2 ]] = replaced_title
78+
79+ if create_info .get ("identifier_key" ) and data .get (create_info ["identifier_key" ]) is not None :
80+ identifier = data [create_info ["identifier_key" ]][0 ]["subitem_identifier_uri" ]
81+ replaced_identifier = identifier + f"_{ id } "
82+ data [create_info ["identifier_key" ]][0 ]["subitem_identifier_uri" ] = replaced_identifier
7883
7984 for _ in range (creation_count ):
8085 # create activity
0 commit comments