magpub

Django-agnostic publications library.

This package provides tools for importing and deduplicating academic publications from external sources (Scopus, Semantic Scholar, OpenAlex, ScienceDirect). It operates on plain PublicationData dataclasses so that callers can integrate with any storage backend (Django ORM, SQLAlchemy, filesystem, etc.).

Usage:

from magpub.models import PublicationData from magpub.sources.scopus import ScopusClient

client = ScopusClient(api_key=”…”, institution_token=”…”) for pub in client.search(“TITLE(chameleon)”):

print(pub.title)

Modules

cli

magpub CLI entry point.

config

Load, validate, and scaffold magpub TOML config.

csv_reader

Read PublicationData from CSV.

csv_writer

Write PublicationData to CSV.

deduplicate

Django-agnostic deduplication logic for publications.

importer

Source-specific import runners.

models

Django-agnostic publication data models for the publications library.

sources

Source clients for the publications library.

types

Type constants for the publications library.

utils

Django-agnostic publication utilities.