adsfolio.pdf.identify_settings

Canonical settings shared by PDF Identify interfaces.

class adsfolio.pdf.identify_settings.DoiProvider(*values)

Bases: str, enum.Enum

Supported metadata providers for DOI lookup.

ADS = 'ads'
CROSSREF = 'crossref'
DATACITE = 'datacite'
class adsfolio.pdf.identify_settings.IdentifySettings(strategies=(IdentifyStrategy.FIRST_PAGE_ARXIV, IdentifyStrategy.FILENAME_BIBCODE, IdentifyStrategy.FILENAME_DOI, IdentifyStrategy.PDF_METADATA_BIBCODE, IdentifyStrategy.PDF_METADATA_DOI, IdentifyStrategy.FIRST_PAGE_BIBCODE, IdentifyStrategy.FIRST_PAGE_DOI, IdentifyStrategy.STRUCTURED_FILENAME, IdentifyStrategy.PDF_METADATA_TITLE, IdentifyStrategy.FIRST_PAGE_TITLE), providers=(DoiProvider.ADS, DoiProvider.CROSSREF, DoiProvider.DATACITE), recursive=False, output_unresolved=None, skip_unresolved_directory=False, verbose=False, allow_ads=False)[source]

Bases: object

Reusable PDF Identify behavior, separate from the user’s identity.

Notes

recursive and verbose configure foreground/bulk Identify runs. Watch processing handles one typed arrival at a time and reports its outcome via GUI notices, so those two fields do not alter single-file watch behavior. allow_ads permits fallback in foreground Identify runs. Watching keeps its separate permission for automatic processing.

Parameters:
allow_ads: bool = False
classmethod from_mapping(payload, *, fallback=None)[source]

Normalize persisted values independently.

Parameters:
Returns:

Normalized settings.

Return type:

IdentifySettings

output_unresolved: str | None = None
providers: tuple[adsfolio.pdf.doi_providers.DoiProvider, ...] = (DoiProvider.ADS, DoiProvider.CROSSREF, DoiProvider.DATACITE)
recursive: bool = False
skip_unresolved_directory: bool = False
strategies: tuple[adsfolio.pdf.identify_settings.IdentifyStrategy, ...] = (IdentifyStrategy.FIRST_PAGE_ARXIV, IdentifyStrategy.FILENAME_BIBCODE, IdentifyStrategy.FILENAME_DOI, IdentifyStrategy.PDF_METADATA_BIBCODE, IdentifyStrategy.PDF_METADATA_DOI, IdentifyStrategy.FIRST_PAGE_BIBCODE, IdentifyStrategy.FIRST_PAGE_DOI, IdentifyStrategy.STRUCTURED_FILENAME, IdentifyStrategy.PDF_METADATA_TITLE, IdentifyStrategy.FIRST_PAGE_TITLE)
to_mapping()[source]

Return the canonical JSON-compatible representation.

Return type:

dict[str, object]

verbose: bool = False
with_overrides(*, strategies=<object object>, providers=<object object>, recursive=<object object>, output_unresolved=<object object>, skip_unresolved_directory=<object object>, verbose=<object object>, allow_ads=<object object>)[source]

Return a copy with supplied fields, including explicit clears.

Parameters:
Return type:

adsfolio.pdf.identify_settings.IdentifySettings

class adsfolio.pdf.identify_settings.IdentifyStrategy(*values)[source]

Bases: str, enum.Enum

Supported evidence extraction strategies for PDF identification.

FILENAME_BIBCODE = 'filename_bibcode'
FILENAME_DOI = 'filename_doi'
FIRST_PAGE_ARXIV = 'first_page_arxiv'
FIRST_PAGE_BIBCODE = 'first_page_bibcode'
FIRST_PAGE_DOI = 'first_page_doi'
FIRST_PAGE_TITLE = 'first_page_title'
PDF_METADATA_BIBCODE = 'pdf_metadata_bibcode'
PDF_METADATA_DOI = 'pdf_metadata_doi'
PDF_METADATA_TITLE = 'pdf_metadata_title'
STRUCTURED_FILENAME = 'structured_filename'