arxiv.users.domain module¶
Defines user concepts for use in arXiv-NG services.
-
class
arxiv.users.domain.Authorizations[source]¶ Bases:
tupleAuthorization information, e.g. associated with a
Session.-
classmethod
before_init(data)[source]¶ Make sure that endorsements are
Categoryinstances.Return type: None
-
classic¶ Capability code associated with a user’s session.
-
endorsements¶ Categories to which the user is permitted to submit.
-
scopes¶ Authorized
scope`s. See also :mod:`arxiv.users.auth.scopes.
-
classmethod
-
class
arxiv.users.domain.Category[source]¶ Bases:
tupleReprents a classification category.
-
archive¶ Archives group together related subjects in a domain.
-
classmethod
from_compound(category)[source]¶ Create a
Categoryfrom a compound classification slug.E.g. “astro-ph.CO” -> Category(archive=”astro-ph”, subject=”CO”)
Parameters: category (str) – A dot-delimited compound category slug. Returns: Return type: CategoryReturn type: Category
-
subject¶ Leaf-level classification in the arXiv taxonomy.
-
-
class
arxiv.users.domain.Client[source]¶ Bases:
tupleAPI client.
-
description¶ Brief description of the API client.
-
name¶ Human-friendly name of the API client.
-
owner_id¶ The arXiv user responsible for the client.
-
redirect_uri¶ The authorized redirect URI for the client.
-
url¶ Homepage or other resource describing the API client.
-
-
class
arxiv.users.domain.Scope[source]¶ Bases:
tupleRepresents an authorization policy.
-
class
actions[source]¶ Bases:
objectKnown authorization actions.
-
CREATE= 'created'¶
-
DELETE= 'delete'¶
-
PROXY= 'proxy'¶
-
READ= 'read'¶
-
RELEASE= 'release'¶
-
UPDATE= 'update'¶
-
-
domain¶ The domain to which the scope applies.
This will generally refer to a specific service.
-
class
domains[source]¶ Bases:
objectKnown authorization domains.
-
PROFILE= 'profile'¶ arXiv user profile.
-
PUBLIC= 'public'¶ The public arXiv site, including APIs.
-
SUBMISSION= 'submission'¶ Submission interfaces and actions.
-
UPLOAD= 'upload'¶ File uploads, including those for submissions.
-
-
for_resource(resource_id)[source]¶ Create a copy of this scope with a specific resource.
Return type: Scope
-
resource¶ The specific resource to which this policy applies.
-
class
-
class
arxiv.users.domain.Session[source]¶ Bases:
tupleRepresents an authenticated session in the arXiv system.
Authorizations for the current session.
-
client¶ The client for which the session was created.
-
end_time¶ The ISO-8601 datetime when the session ended.
-
expires¶ Number of seconds until the session expires.
If the session is already expired, returns 0.
Return type: Optional[int]
-
ip_address¶ The IP address of the client for which the session was created.
-
nonce¶ A pseudo-random nonce generated when the session was created.
-
remote_host¶ The hostname of the client for which the session was created.
-
session_id¶ Unique identifier for the session.
-
start_time¶ The ISO-8601 datetime when the session was created.
-
user¶ The user for which the session was created.
-
class
arxiv.users.domain.User[source]¶ Bases:
tupleRepresents an arXiv user and their authorizations.
-
email¶ The user’s primary e-mail address.
-
name¶ The user’s full name (if available).
-
profile¶ The user’s account profile (if available).
-
user_id¶ Unique identifier for the user. If
None, the user does not exist.
-
username¶ Slug-like username.
-
verified¶ Whether or not the users’ e-mail address has been verified.
-
-
class
arxiv.users.domain.UserFullName[source]¶ Bases:
tupleRepresents a user’s full name.
-
forename¶ First name or given name.
-
suffix¶ Any title or qualifier used as a suffix/postfix.
-
surname¶ Last name or family name.
-
-
class
arxiv.users.domain.UserProfile[source]¶ Bases:
tupleUser profile data.
-
GRAD_STUDENT= ('4', 'Grad student')¶
-
OTHER= ('5', 'Other')¶
-
POST_DOC= ('3', 'Post doc')¶
-
PROFESSOR= ('2', 'Professor')¶
-
RANKS= [('1', 'Staff'), ('2', 'Professor'), ('3', 'Post doc'), ('4', 'Grad student'), ('5', 'Other')]¶
-
STAFF= ('1', 'Staff')¶
-
affiliation¶ Institutional affiliation.
-
country¶ Should be an ISO 3166-1 alpha-2 country code.
-
default_category¶ Default submission category.
Should be one of arxiv.taxonomy.CATEGORIES.
-
homepage_url¶ User’s homepage or external profile URL.
-
rank¶ Academic rank. Must be one of
UserProfile.RANKS.
-
remember_me¶ Indicates whether the user prefers permanent session cookies.
-
submission_groups¶ Groups to which the user prefers to submit.
Items should be one of arxiv.taxonomy.GROUPS.
-
-
arxiv.users.domain.from_dict(cls, data)[source]¶ Generate a NamedTuple instance from a dict, with recursion.
This is the inverse of
to_dict().It’s easy to instantiate NamedTuples from dicts, but it’s not so easy if a NamedTuple field is typed with another NamedTuple. This function instantiates a NamedTuple class
clswith the data in dictdata, and also instantiates any referenced NamedTuple classes expected bycls’s fields with the appropriate data indata.Parameters: Returns: An instance of
cls.Return type: NamedTuple
Return type:
-
arxiv.users.domain.to_dict(obj)[source]¶ Generate a dict representation of a NamedTuple instance.
This just uses the built-in
_asdictmethod on the intance, but also calls this on any child NamedTuple instances (recursively) so that the entire tree is cast todict.Parameters: obj (tuple) – A NamedTuple instance. Returns: Return type: dict Return type: dict