Quickstart¶
Authentication¶
An authentification is required to use the Unpaywall Service. For that,
unpywall offers two options for authorizing the client. You can either import
UnpywallCredentials
which generates an environment variable or you can set
the environment variable by yourself. Both methods require an email.
from unpywall.utils import UnpywallCredentials
UnpywallCredentials('nick.haupka@gmail.com')
Notice that the environment variable for authentication needs to be called
UNPAYWALL_EMAIL
.
export UNPAYWALL_EMAIL=nick.haupka@gmail.com
Pandas Integration¶
unpywall uses the data analysis tool pandas for evaluating information from Unpaywall.
Query Unpaywall by DOI¶
If you want to search articles by a given DOI use the method doi
.
from unpywall import Unpywall
Unpywall.doi(dois=['10.1038/nature12373',
'10.1093/nar/gkr1047'])
# data_standard ... best_oa_location.version
# 0 2 ... publishedVersion
# 1 2 ... publishedVersion
# [2 rows x 32 columns]
You can track the progress of your API call by setting the parameter
progress
to True. This is especially useful for estimating the time
required.
Unpywall.doi(dois=['10.1038/nature12373',
'10.1093/nar/gkr1047'],
progress=True)
# |========================= | 50%
Calculate the fraction of OA types¶
df = Unpywall.doi(dois=['10.1038/nature12373',
'10.1093/nar/gkr1047'])
df.oa_status.value_counts(normalize=True)
# green 0.5
# gold 0.5
# Name: oa_status, dtype: float64