Paper Operations

Paper operations.

async shared.database.operations.paper.create_arxiv_paper(data)[source]

Create an ArXiv paper.

Parameters:

data (dict[str, Any]) – Paper data

Return type:

ArxivPaper

Returns:

ArxivPaper instance

async shared.database.operations.paper.create_paper_analysis(*, paper_id, topic_id, relevance, summary, status='analyzed', key_fragments=None, contextual_reasoning=None)[source]

Create a paper analysis.

Parameters:
  • paper_id (int) – Paper ID

  • topic_id (int) – Topic ID

  • relevance (float) – Relevance score

  • summary (Optional[str]) – Analysis summary

  • status (str) – Analysis status

  • key_fragments (Optional[str]) – Key fragments

  • contextual_reasoning (Optional[str]) – Contextual reasoning

Return type:

PaperAnalysis

Returns:

PaperAnalysis instance

async shared.database.operations.paper.get_analysis_with_entities(analysis_id)[source]

Get analysis with related entities.

Parameters:

analysis_id (int) – Analysis ID

Return type:

Optional[Tuple[PaperAnalysis, ArxivPaper, ResearchTopic]]

Returns:

Tuple of (PaperAnalysis, ArxivPaper, ResearchTopic) or None

async shared.database.operations.paper.get_arxiv_paper_by_arxiv_id(arxiv_id)[source]

Get ArXiv paper by ArXiv ID.

Parameters:

arxiv_id (str) – ArXiv ID

Return type:

Optional[ArxivPaper]

Returns:

ArxivPaper instance or None

async shared.database.operations.paper.has_paper_analysis(paper_id, topic_id)[source]

Check if paper analysis exists.

Parameters:
  • paper_id (int) – Paper ID

  • topic_id (int) – Topic ID

Return type:

bool

Returns:

True if analysis exists

async shared.database.operations.paper.list_new_analyses_since(last_id, min_overall)[source]

List new analyses since last ID.

Parameters:
  • last_id (int) – Last analysis ID

  • min_overall (float) – Minimum relevance score

Return type:

List[PaperAnalysis]

Returns:

List of PaperAnalysis instances

async shared.database.operations.paper.mark_analysis_notified(analysis_id)[source]

Mark analysis as notified.

Parameters:

analysis_id (int) – Analysis ID

Return type:

None

async shared.database.operations.paper.mark_analysis_queued(analysis_id)[source]

Mark analysis as queued.

Parameters:

analysis_id (int) – Analysis ID

Return type:

None