def process_citation(citation_str: str) -> dict:
citation_obj = {}<EOL>citation_list = convert_csv_str_to_list(citation_str)<EOL>(citation_type, name, doc_id, pub_date, authors, comment, *extra) = (<EOL>citation_list + [None] * <NUM_LIT:7><EOL>)<EOL>authors_list = []<EOL>if authors:<EOL><INDENT>authors_list = authors.split("<STR_LIT:|>")<EOL>citation_obj["<STR_LIT>"] = authors_list<EOL><DEDENT>if name and re.match("<STR_LIT>", name):<EOL><INDENT>citation_obj["<STR_LIT>"] = name<EOL><DEDENT>elif citation_type and citation_type.upper() == "<STR_LIT>":<EOL><INDENT>citation_obj["<STR_LIT>"] = {"<STR_LIT:name>": "<STR_LIT>", "<STR_LIT:id>": doc_id}<EOL>if name:<EOL><INDENT>citation_obj["<STR_LIT>"] = name<EOL><DEDENT><DEDENT>elif name:<EOL><INDENT>citation_obj["<STR_LIT>"] = name<EOL><DEDENT>else:<EOL><INDENT>citation_obj["<STR_LIT>"] = "<STR_LIT>"<EOL><DEDENT>if pub_date:<EOL><INDENT>citation_obj["<STR_LIT>"] = pub_date<EOL><DEDENT>if comment:<EOL><INDENT>citation_obj["<STR_LIT>"] = comment<EOL><DEDENT>return citation_obj<EOL>
Parse BEL Script Citation string into nanopub_bel citation object