@classmethod
def from_csl_item(cls, csl_item):
    """
        Create an Unpaywall object for `csl_item`.
        """
    from .csl_item import CSL_Item
    csl_item = CSL_Item(csl_item)
    doi = csl_item.get('DOI')
    if doi:
        return cls.from_citekey(f'doi:{doi}', csl_item=csl_item)
    csl_item.infer_id()
    return cls.from_citekey(csl_item['id'], csl_item=csl_item)
