arxiv.submission.services.classic.models module

SQLAlchemy ORM classes for the classic database.

class arxiv.submission.services.classic.models.AdminLogEntry(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Field

Type

Null

Key

Default

id logtime created paper_id username host program command logtext document_id submission_id notify

int(11) varchar(24) timestamp varchar(20) varchar(20) varchar(64) varchar(20) varchar(20) text mediumint(8) unsigned int(11) tinyint(1)

NO YES NO YES YES YES YES YES YES YES YES YES

PRI

MUL

MUL

MUL

NULL NULL CURRENT_TIMESTAMP NULL NULL NULL NULL NULL NULL NULL NULL 0

command
created
document_id
host
id
logtext
logtime
notify
paper_id
program
submission_id
username
class arxiv.submission.services.classic.models.Archive(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Supplemental data about archives in the classification hierarchy.

arXiv_group
archive_id
archive_name
end_date
in_group
start_date
subdivided
class arxiv.submission.services.classic.models.ArchiveCategory(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Maps categories to the archives in which they reside.

archive_id
category_id
class arxiv.submission.services.classic.models.ArchiveDef(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Defines the archives in the arXiv classification taxonomy.

archive
name
class arxiv.submission.services.classic.models.ArchiveGroup(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Maps archives to the groups in which they reside.

archive_id
group_id
class arxiv.submission.services.classic.models.Category(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Supplemental data about arXiv categories, including endorsement.

active

Only use rows where active == 1.

arXiv_archive
arXiv_endorsement_domain
archive

E.g. cond-mat, astro-ph, cs.

category_name
definitive
endorse_all
endorse_email
endorsement_domain

E.g. astro-ph, acc-phys, chem-ph, cs.

papers_to_endorse
subject_class

E.g. AI, spr-con, str-el, CO, EP.

class arxiv.submission.services.classic.models.CategoryDef(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Classification categories available for submissions.

active
category
name
class arxiv.submission.services.classic.models.CategoryProposal(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Represents a proposal to change the classification of a submission.

Field

Type

Null

Key

Default

proposal_id submission_id category is_primary proposal_status user_id updated proposal_comment_id response_comment_id

int(11) int(11) varchar(32) tinyint(1) int(11) int(4) unsigned datetime int(11) int(11)

NO NO NO NO YES NO YES YES YES

PRI PRI PRI PRI

MUL

MUL MUL

NULL NULL NULL 0 0 NULL NULL NULL NULL

ACCEPTED_AS_PRIMARY = 1
ACCEPTED_AS_SECONDARY = 2
DOMAIN_STATUS = {0: <Status.PENDING: 'pending'>, 1: <Status.ACCEPTED: 'accepted'>, 2: <Status.ACCEPTED: 'accepted'>, 3: <Status.REJECTED: 'rejected'>}
REJECTED = 3
UNRESOLVED = 0
category
is_primary
proposal_comment
proposal_comment_id
proposal_id
proposal_status
response_comment
response_comment_id
status_from_domain(proposal)[source]
Return type

int

submission
submission_id
updated
user
user_id
class arxiv.submission.services.classic.models.Document(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Represents an announced arXiv paper.

This is here so that we can look up the arXiv ID after a submission is announced.

authors

Canonical author string.

created
dated
dated_datetime

Return the created time as a datetime.

Return type

datetime

document_id
paper_id
primary_subject_class
submitter
submitter_email
submitter_id
title
class arxiv.submission.services.classic.models.DocumentCategory(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Relation between announced arXiv papers and their classifications.

category

E.g. cs.CG, cond-mat.dis-nn, etc.

category_def
document
document_id
is_primary
class arxiv.submission.services.classic.models.EndorsementDomain(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Endorsement configurations.

endorse_all
endorse_email
endorsement_domain
mods_endorse_all
papers_to_endorse
class arxiv.submission.services.classic.models.Group(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Supplemental data about groups in the classification hierarchy.

group_id
group_name
start_year
class arxiv.submission.services.classic.models.GroupDef(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Defines the groups in the arXiv classification taxonomy.

archive_group
name
class arxiv.submission.services.classic.models.License(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Licenses available for submissions.

active

Only offer licenses with active=1.

label

Display label for the license.

name

This is the URI of the license.

note
sequence
class arxiv.submission.services.classic.models.PolicyClass(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Defines user roles in the system.

class_id
description
name
password_storage
permanent_login
recovery_policy
class arxiv.submission.services.classic.models.Submission(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Represents an arXiv submission.

ANNOUNCED = 7
CROSS_LIST = 'cross'
DELETED = (10, 22, 25, 29, 30, 20)
DELETED_ANNOUNCED = 27

Announced and files expired.

DELETED_EXPIRED = 20

Was working but expired.

DELETED_ON_HOLD = 22
DELETED_PROCESSING = 25
DELETED_REMOVED = 29
DELETED_USER_EXPIRED = 30

User deleted and files expired.

ERROR_STATE = 19

There was a problem validating the submission during publication.

FILES_ADDED = 2
JOURNAL_REFERENCE = 'jref'
METADATA_ADDED = 4
NEEDS_EMAIL = 6

Announced, not yet announced.

NEW = 0
NEW_SUBMISSION = 'new'
NEXT_PUBLISH_DAY = 4

Scheduled for the next publication cycle.

NOT_SUBMITTED = 0
ON_HOLD = 2
PROCESSED = 3
PROCESSING = 5

Scheduled for today.

PROCESSING_SUBMISSION = 8
REMOVED = 9
REPLACEMENT = 'rep'
STAGES = [0, 1, 2, 3, 4, 5]
STARTED = 1
SUBMITTED = 1
UNUSED = 3
USER_DELETED = 10
WDR_DELIMETER = '. Withdrawn: '
WITHDRAWAL = 'wdr'
WITHDRAWN_FORMAT = 'withdrawn'
abstract
acm_class
admin_ok

Used by administrators for reporting/bookkeeping.

agree_policy
allow_tex_produced

Whether to allow a TeX-produced PDF.

arXiv_license
authors
auto_hold

Should be placed on hold when submission comes out of working status.

categories
comments
created
doc_paper_id
document
document_id
doi
get_arxiv_id()[source]

Get the arXiv identifier for this submission.

Return type

Optional[str]

get_created()[source]

Get the UTC-localized creation datetime.

Return type

datetime

get_submitter()[source]

Generate a User representing the submitter.

Return type

User

get_updated()[source]

Get the UTC-localized updated datetime.

Return type

datetime

get_withdrawal_reason()[source]

Extract the withdrawal reason from the comments field.

Return type

Optional[str]

has_pilot_data
is_active()[source]
Return type

bool

is_announced()[source]
Return type

bool

is_author
is_crosslist()[source]
Return type

bool

is_deleted()[source]
Return type

bool

is_finalized()[source]
Return type

bool

is_jref()[source]
Return type

bool

is_new_version()[source]

Indicate whether this row represents a new version.

Return type

bool

is_ok
is_on_hold()[source]
Return type

bool

is_oversize
is_rejected()[source]
Return type

bool

is_withdrawal()[source]
Return type

bool

is_withdrawn
is_working()[source]
Return type

bool

journal_ref
license
msc_class
must_process
package

Path (on disk) to the submission package (tarball, PDF).

primary_classification

Get the primary classification for this submission.

proxy
release_time
remote_addr
remote_host
report_num
rt_ticket_id
secondary_categories

Category names from this submission’s secondary classifications.

Return type

List[str]

source_flags
source_format

Submission content type (e.g. pdf, tex, pdftex).

source_size
stage
status
sticky_status

If the submission goes out of queue (e.g. submitter makes changes), this status should be applied when the submission is re-finalized (goes back into queue, comes out of working status).

submission_id
submit_time
submitter
submitter_email
submitter_id
submitter_name
sword
sword_id
title
type

Submission type (e.g. new, jref, cross).

update_cross(submission, categories, paper_id, version, created)[source]

Update cross-list request information in the database.

Return type

None

update_from_submission(submission)[source]

Update this database object from a domain.submission.Submission.

Return type

None

update_withdrawal(submission, reason, paper_id, version, created)[source]

Update withdrawal request information in the database.

Return type

None

updated
userinfo
version
viewed
class arxiv.submission.services.classic.models.SubmissionCategory(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Classification relation for submissions.

category
is_primary
is_published
submission
submission_id
class arxiv.submission.services.classic.models.Tracking(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Record of SWORD submissions.

paper_id
submission_errors
sword_id
timestamp
tracking_id
class arxiv.submission.services.classic.models.User(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Represents an arXiv user.

email
email_bouncing
first_name
flag_allow_tex_produced
flag_approved
flag_banned
flag_deleted
flag_edit_system
flag_edit_users
flag_email_verified
flag_html_email
flag_internal
flag_wants_email
joined_date
joined_ip_num
joined_remote_host
last_name
policy_class

class_id

name

1 2 3

Administrator Public user Legacy user

share_email
share_first_name
share_last_name
suffix_name
tapir_policy_class
to_user()[source]
Return type

User

user_id
class arxiv.submission.services.classic.models.Username(**kwargs)[source]

Bases: sqlalchemy.ext.declarative.api.Base

Users’ usernames (because why not have a separate table).

Field

Type

Null

Key

Default

Extra

nick_id nickname user_id user_seq flag_valid role policy flag_primary

int(10) unsigned varchar(20) int(4) unsigned int(1) unsigned int(1) unsigned int(10) unsigned int(10) unsigned int(1) unsigned

NO NO NO NO NO NO NO NO

PRI UNI MUL

MUL MUL MUL

NULL

0 0 0 0 0 0

autoincrement

flag_primary
flag_valid
nick_id
nickname
policy
role
user
user_id
user_seq