elm.web.rhub.PublicationsRecord

class PublicationsRecord(record)[source]

Bases: dict

Class to handle a single publication as dictionary data. This class requires setting an ‘RHUB_API_KEY’ environment variable to access the Pure Web Service. The API key can be obtained by contacting an NREL library representative: Library@nrel.gov.

Parameters:

record (dict) – Research Hub record in dict form, typically a response from API.

Methods

clear()

copy()

download(pdf_dir, txt_dir)

Download PDFs and TXT files to the directories provided.

fromkeys([value])

Create a new dictionary with keys from iterable and values set to value.

get(key[, default])

Return the value for key if key is in the dictionary, else default.

items()

keys()

pop(k[,d])

If key is not found, default is returned if given, otherwise KeyError is raised

popitem()

Remove and return a (key, value) pair as a 2-tuple.

save_abstract(abstract_text, out_fp)

Download abstract text to .txt file to the directory provided.

setdefault(key[, default])

Insert key with a value of default if key is not in the dictionary.

update([E, ]**F)

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values()

Attributes

abstract

Get the abstract text for this publication.

authors

Get the names of all authors for a publication.

category

Get the publication category for this record.

id

Get the 'NREL Publication Number' for this record.

links

Get the doi and pdf links for a publication.

title

Get the title of this publication.

url

Get the url associated with the publication.

year

Get the publish year.

property title

Get the title of this publication.

Returns:

title (str) – Publication title.

property year

Get the publish year.

Returns:

year (int) – Year of publication.

property url

Get the url associated with the publication.

Returns:

url (str) – Publication URL.

property id

Get the ‘NREL Publication Number’ for this record.

Returns:

id (str) – Publication Number.

property authors

Get the names of all authors for a publication.

Returns:

out (str) – String containing author names.

property category

Get the publication category for this record.

Returns:

cat (str) – Publication category, ex: Technical Report, Article.

Get the doi and pdf links for a publication.

Returns:

  • doi (str) – doi link for publication.

  • pdf_url (str) – pdf link for publication.

property abstract

Get the abstract text for this publication.

Returns:

value (str) – String containing abstract text.

save_abstract(abstract_text, out_fp)[source]

Download abstract text to .txt file to the directory provided.

Parameters:
  • abstract_text (str) – String with abstract text.

  • out_dir (str) – Directory to download TXT files to.

download(pdf_dir, txt_dir)[source]

Download PDFs and TXT files to the directories provided. If a record does not fit the criteria for PDF download, a TXT file with the record abstract will be saved to the TXT directory.

Parameters:
  • pdf_dir (str) – Directory for pdf download.

  • txt_dir (str) – Directory for txt download.

clear() None.  Remove all items from D.
copy() a shallow copy of D
fromkeys(value=None, /)

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)

Return the value for key if key is in the dictionary, else default.

items() a set-like object providing a view on D's items
keys() a set-like object providing a view on D's keys
pop(k[, d]) v, remove specified key and return the corresponding value.

If key is not found, default is returned if given, otherwise KeyError is raised

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault(key, default=None, /)

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) None.  Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() an object providing a view on D's values