import semanticscholar.Paper
from semanticscholar.SemanticScholarObject import SemanticScholarObject
class Author(SemanticScholarObject):
'''
This class abstracts an author.
'''
FIELDS = [
'affiliations',
'authorId',
'citationCount',
'externalIds',
'hIndex',
'homepage',
'name',
'paperCount',
'papers',
'papers.abstract',
'papers.authors',
'papers.citationCount',
'papers.corpusId',
'papers.externalIds',
'papers.fieldsOfStudy',
'papers.influentialCitationCount',
'papers.isOpenAccess',
'papers.journal',
'papers.openAccessPdf',
'papers.paperId',
'papers.publicationDate',
'papers.publicationTypes',
'papers.publicationVenue',
'papers.referenceCount',
'papers.s2FieldsOfStudy',
'papers.title',
'papers.url',
'papers.venue',
'papers.year',
'url'
]
SEARCH_FIELDS = FIELDS
def __init__(self, data) -> None:
super().__init__()
self._affiliations = None
self._authorId = None
self._citationCount = None
self._externalIds = None
self._hIndex = None
self._homepage = None
self._name = None
self._paperCount = None
self._papers = None
self._url = None
self._init_attributes(data)
@property
def affiliations(self) -> list:
'''
:type: :class:`list`
'''
return self._affiliations
@property
def authorId(self) -> str:
'''
:type: :class:`str`
'''
return self._authorId
@property
def citationCount(self) -> int:
'''
:type: :class:`int`
'''
return self._citationCount
@property
def externalIds(self) -> dict:
'''
:type: :class:`dict`
'''
return self._externalIds
@property
def hIndex(self) -> int:
'''
:type: :class:`int`
'''
return self._hIndex
@property
def homepage(self) -> str:
'''
:type: :class:`str`
'''
return self._homepage
@property
def name(self) -> str:
'''
:type: :class:`int`
'''
return self._name
@property
def paperCount(self) -> int:
'''
:type: :class:`int`
'''
return self._paperCount
@property
def papers(self) -> list:
'''
:type: :class:`list`
'''
return self._papers
@property
def url(self) -> str:
'''
:type: :class:`str`
'''
return self._url
def _init_attributes(self, data):
self._data = data
if 'affiliations' in data:
self._affiliations = data['affiliations']
if 'authorId' in data:
self._authorId = data['authorId']
if 'citationCount' in data:
self._citationCount = data['citationCount']
if 'externalIds' in data:
self._externalIds = data['externalIds']
if 'hIndex' in data:
self._hIndex = data['hIndex']
if 'homepage' in data:
self._homepage = data['homepage']
if 'name' in data:
self._name = data['name']
if 'paperCount' in data:
self._paperCount = data['paperCount']
if 'papers' in data:
items = []
for item in data['papers']:
items.append(semanticscholar.Paper.Paper(item))
self._papers = items
if 'url' in data:
self._url = data['url']