Simplify the client interface. The function signature for query includes a great number of options.
Make client more robust, including against brittleness in the underlying API.
Prepare for the eventual release of an arXiv JSON API: complete an abstraction layer over the Atom-specific tooling.
To that end, this rewrite is designed as follows:
Introduces Search and Client classes for managing client behavior and running queries.
Former query arguments are split between them so that Search doesn't include any values specifying a request strategy.
Introduces retries in the Search class.
Uses a new Result class in lieu of raw FeedParserDict objects.
Introduces ArxivError, child classes.
Breaking changes
List any changes that break the API usage supported on master.
This breaks the whole v0.x interface. Certain features have not been reimplemented:
Nongenerator queries. This can be equivalently achieved with list(generator); the nongenerator option was always about backwards-compatibility, which is no longer of concern.
start is no longer exposed externally. This can be re-added as a Search option if there are requests for it.
Development changes
Added pdoc generated documentation to ./docs, which will be hosted using GitHub Pages.
Added linting with flake8; ignoring the line length rules to permit descriptive comments.
Description
There are a few overarching goals to this change:
query
includes a great number of options.To that end, this rewrite is designed as follows:
Search
andClient
classes for managing client behavior and running queries.query
arguments are split between them so thatSearch
doesn't include any values specifying a request strategy.Search
class.Result
class in lieu of rawFeedParserDict
objects.ArxivError
, child classes.Breaking changes
This breaks the whole v0.x interface. Certain features have not been reimplemented:
Nongenerator queries. This can be equivalently achieved with
list(generator)
; the nongenerator option was always about backwards-compatibility, which is no longer of concern.start
is no longer exposed externally. This can be re-added as aSearch
option if there are requests for it.Development changes
pdoc
generated documentation to./docs
, which will be hosted using GitHub Pages.flake8
; ignoring the line length rules to permit descriptive comments.Relevant issues
Checklist
make test
.README.md
.