paper-scoring-connectors
Optional data-source, document, related-work, and assessment-provider adapters for
paper-scoring-core. The package contains no credentials, reads no .env files, and performs no
work at import time. Applications inject configuration when they create an adapter.
Installation
Install only the integrations that an application needs:
python -m pip install "paper-scoring-connectors[arxiv,pdf,openalex]"
python -m pip install "paper-scoring-connectors[openai]"
python -m pip install "paper-scoring-connectors[ollama]"
openalex intentionally adds no third-party dependency; it uses the Python standard library.
all installs every optional SDK. Dependencies between paper-scoring distributions use normal
PyPI version constraints and never Git or local filesystem references.
Examples
Search arXiv without exposing SDK objects to the rest of the application:
from datetime import date
from paper_scoring_connectors.arxiv import ArxivSource
documents = ArxivSource().search("cs.AI", date(2026, 1, 15), max_results=10)
Lower-level ArxivClient, QueryBuilder, and download_pdf APIs are available when an
application needs control over individual steps. Batch pipelines should call
ArxivSource.search_with_failures(...): it isolates each download/extraction failure and returns
ArxivBatchResult(successes=..., failures=...). Failures contain only the paper ID, title, and
exception type; provider messages are never retained.
Extract a local PDF into the core document contract:
from paper_scoring_connectors.pdf import PdfDocumentLoader
document = PdfDocumentLoader().load("paper.pdf", title="A paper")
Create an assessment adapter with an arbitrary model identifier (there is no model enum):
from paper_scoring_connectors.providers import create_assessment_model
model = create_assessment_model("openai", "your-model-id", api_key="injected-at-runtime")
For Ollama, pass host= and any client options explicitly. SDK defaults may consume process
environment variables that the caller injects at runtime; this package never parses .env files.
Supported contract
Version 0.1 targets these paper-scoring-core imports:
from paper_scoring.models import AssessmentRequest, AssessmentResponse, PaperDocument, PageText
from paper_scoring.ports import AssessmentModel, RelatedWorkRetriever
from paper_scoring.rubric import render_assessment_prompt
The core contract is the only mandatory runtime dependency. Each connector is independently importable, and provider SDK imports remain lazy.
Development
python -m pip install -e ".[all,test,security]"
pytest
ruff check .
mypy
bandit -c pyproject.toml -r src
python -m build
All functional tests are offline and use injected fake transports or clients. See
docs/report-templates/ for the release evidence templates populated by the release workflow.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paper_scoring_connectors-0.1.0.tar.gz.
File metadata
- Download URL: paper_scoring_connectors-0.1.0.tar.gz
- Upload date:
- Size: 130.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb338f5145e01e5e7108be5e02596f454f8832aef0bd348d6a9b7d97fd5db866
|
|
| MD5 |
18416355c9d3a1a6e3a937fe164447c0
|
|
| BLAKE2b-256 |
e25b00722a2ea777b1d612e44d4981b0c41c36d7ff3b84bf411d5c345f114d41
|
File details
Details for the file paper_scoring_connectors-0.1.0-py3-none-any.whl.
File metadata
- Download URL: paper_scoring_connectors-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f6ea8d6096da5040c677df77698931a1f7a2f6dde1441b949f27c8b320f41de
|
|
| MD5 |
cf0feca90b9f0af38fb442b4b0e8959d
|
|
| BLAKE2b-256 |
2ae36af70f3e3954f39589caf7fb6b8007c6372c7200f67eda269ca825dda078
|