Package: accbib
Bibliography info verification and format conversion packageThe "accbib" package aims to accelerate and accurise the bibliography data preparation. It collects complete and accurate bibliography data based on DOIs. It does the following jobs:generate accurate bibliography data from DOI list, bib file, or xml (used for microsoft word) database;check and correct the data of bib and xml file by looking up the entry's DOI;export bibliography database as either bib or xml format;so it can do format conversion between bib and xml files.The package fetches information fromhttp://dx.doi.org/website with DOI number usingapplication/vnd.citationstyles.csl+jsonheader for content negotiation. However, lots of materials do not have DOIs, such as Phd thesis, websites, very old publications, etc., this package allows users to provide an additional bib file in which user-defined DOIs and their corresponding contents is included. Thefetchadoiwill look into this bib database if DOI was not found on the internet.InstallationDependence:pybtexlxmlThis module can be installed via pip:pipinstallaccbibExamplesretrieve info from a DOIimportaccbib# fetch a doi, the returned data is an Entry object defined by pybtexdata=accbib.fetchadoi('10.1103/PhysRevA.103.063112')print(data)The output would be:Entry('article',fields=[('doi','10.1103/physreva.103.063112'),('journal','Physical Review A'),('number','6'),('publisher','American Physical Society (APS)'),('title','Controlling quantum numbers and light emission of Rydberg states via the laser pulse duration'),('url','http://dx.doi.org/10.1103/PhysRevA.103.063112'),('volume','103'),('pages','063112'),('year','2021')],persons=OrderedCaseInsensitiveDict([('author',[Person('Ortmann, L.'),Person('Hofmann, C.'),Person('Ivanov, I. A.'),Person('Landsman, A. S.')])]))retrieve bibliography data from a DOI list, bib or xml file# generate bibliography database from a file containing DOI list# the .dat file contains one DOI in each row# userlib is an optional parameter. For some special materials which do not# have DOIs, you can make up a fake DOI and put all the info (must include#"DOI":<fake DOI>) in userlib.bib in bib format. The accbib.loadois# function will look into that bib file if not found on internet.bibdata=accbib.loadois('dois.dat',userlib='userlib.bib')# load bib and correct the reference info with doi if possible.bibdata_1=accbib.loaddb('test.bib',checkdoi=True)# load xml and correct the reference info with doi if possible.bibdata_2=accbib.loaddb('test.xml',checkdoi=True)save bibliography data as different formats# save the database as an xml file, which can be imported in microsoft# office# jnStyle specifies whether to output full ('full') or abbreviation#('abbr') journal name# there is a small journal name database in translation.py file. Everyone#can add journal names and their abbreviations for his/her research area.accbib.export('example.xml',bibdata,jnStyle='abbr')# save the database as a bib file# for .bib file, full journal name is always output.accbib.export('example.bib',bibdata)a sample output bib file@article{Ortmann2021,author="Ortmann, L. and Hofmann, C. and Ivanov, I. A. and Landsman,A. S.",doi="10.1103/physreva.103.063112",journal="Physical Review A",number="6",publisher="American Physical Society (APS)",title="Controlling quantum numbers and light emission of Rydberg states via the laser pulse duration",url="http://dx.doi.org/10.1103/PhysRevA.103.063112",volume="103",pages="063112",year="2021"}@article{Facon2016,author="Facon, Adrien and Dietsche, Eva-Katharina and Grosso, Dorianand Haroche, Serge and Raimond, Jean-Michel and Brune, Michel andGleyzes, Sébastien",doi="10.1038/nature18327",journal="Nature",number="7611",pages="262-265",publisher="Springer Science and Business Media LLC",title="A sensitive electrometer based on a Rydberg atom in a Schrödinger-cat state",url="http://dx.doi.org/10.1038/nature18327",volume="535",year="2016"}a sample output xml file<?xml version='1.0' encoding='UTF-8'?><Sourcesxmlns="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"><Source><SourceType>JournalArticle</SourceType><Tag>Ortmann2021</Tag><Author><Author><NameList><Person><Last>Ortmann</Last><First>L.</First><Middle></Middle></Person><Person><Last>Hofmann</Last><First>C.</First><Middle></Middle></Person><Person><Last>Ivanov</Last><First>I.</First><Middle>A.</Middle></Person><Person><Last>Landsman</Last><First>A.</First><Middle>S.</Middle></Person></NameList></Author></Author><Title>ControllingquantumnumbersandlightemissionofRydbergstatesviathelaserpulseduration</Title><JournalName>Phys.Rev.A</JournalName><DOI>10.1103/physreva.103.063112</DOI><Issue>6</Issue><Publisher>AmericanPhysicalSociety(APS)</Publisher><URL>http://dx.doi.org/10.1103/PhysRevA.103.063112</URL><Volume>103</Volume><Pages>063112</Pages><Year>2021</Year></Source><Source><SourceType>JournalArticle</SourceType><Tag>Facon2016</Tag><Author><Author><NameList><Person><Last>Facon</Last><First>Adrien</First><Middle></Middle></Person><Person><Last>Dietsche</Last><First>Eva-Katharina</First><Middle></Middle></Person><Person><Last>Grosso</Last><First>Dorian</First><Middle></Middle></Person><Person><Last>Haroche</Last><First>Serge</First><Middle></Middle></Person><Person><Last>Raimond</Last><First>Jean-Michel</First><Middle></Middle></Person><Person><Last>Brune</Last><First>Michel</First><Middle></Middle></Person><Person><Last>Gleyzes</Last><First>Sébastien</First><Middle></Middle></Person></NameList></Author></Author><Title>AsensitiveelectrometerbasedonaRydbergatominaSchrödinger-catstate</Title><JournalName>Nature</JournalName><DOI>10.1038/nature18327</DOI><Issue>7611</Issue><Pages>262-265</Pages><Publisher>SpringerScienceandBusinessMediaLLC</Publisher><URL>http://dx.doi.org/10.1038/nature18327</URL><Volume>535</Volume><Year>2016</Year></Source></Sources>