Skip to main content

Universal citation management and academic reference toolkit

Project description

OmniCite

Universal Citation Management & Academic Reference Toolkit

PyPI version Python License Status

Transform messy references into standardized citations

✨ Features🚀 Quick Start📖 Documentation🤝 Contributing


✨ Features

  • 🔍 Smart Recognition - Fuzzy matching with CrossRef & Google Scholar APIs
  • 📚 Multi-format Support - TXT, BibTeX input → BibTeX, APA, MLA output
  • 🎯 High Accuracy - 4-stage refinement pipeline ensures quality
  • 🤖 Auto-completion - Intelligently fills missing bibliographic data
  • 🎛️ Interactive Mode - User choice for ambiguous matches
  • ⚙️ Template System - Flexible output field configuration
  • 🎓 Conference Paper Support - Recognizes papers from NIPS, CVPR, ICML, etc.
  • 📄 arXiv Integration - Automatically fetches metadata for arXiv papers
  • 🌟 Famous Paper Database - Built-in recognition for landmark papers

🚀 Quick Start

Installation

Option 1: Install from PyPI (Recommended)

pip install omnicite

Option 2: Install from Source

git clone https://github.com/HzaCode/OmniCite.git
cd omnicite
pip install -r requirements.txt
pip install -e .

Basic Usage

Input (references.txt):

10.1038/nature14539

Attention is all you need
Vaswani et al.
NIPS 2017

Command:

omnicite process references.txt --output results.bib --quiet

Output:

✅ Results saved to: results.bib

📊 Processing Report:
   Total entries: 2
   Successfully processed: 2
   Failed entries: 0

Generated (results.bib):

@article{LeCun2015Deep,
  doi = "10.1038/nature14539",
  title = "Deep learning",
  author = "LeCun, Yann and Bengio, Yoshua and Hinton, Geoffrey",
  journal = "Nature",
  year = 2015,
  volume = 521,
  number = 7553,
  pages = "436-444",
  publisher = "Springer Science and Business Media LLC",
  url = "https://doi.org/10.1038/nature14539",
}

@inproceedings{Vaswani2017Attention,
  arxiv = "1706.03762",
  title = "Attention Is All You Need",
  author = "Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N. and Kaiser, Lukasz and Polosukhin, Illia",
  booktitle = "Advances in Neural Information Processing Systems",
  year = 2017,
  url = "https://arxiv.org/abs/1706.03762",
}

💡 Advanced Usage

🎨 Multiple Output Formats
# APA format
omnicite process refs.txt --output-format apa
# → LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.
# → Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). 
#   Attention is all you need. In Advances in Neural Information Processing Systems (pp. 5998-6008).

# BibTeX format (default)
omnicite process refs.txt --output-format bibtex

# MLA format  
omnicite process refs.txt --output-format mla
# → LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep Learning." Nature 521.7553 (2015): 436-444.
# → Vaswani, Ashish, et al. "Attention Is All You Need." Advances in Neural Information Processing Systems. 2017.
🤖 Interactive Mode
omnicite process ambiguous.txt --interactive

Example interaction:

Found multiple possible matches for "Deep learning Hinton":
1. Deep learning
   Authors: LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey
   Journal: Nature
   Year: 2015
   Match Score: 92.5
   DOI: 10.1038/nature14539

2. Deep belief networks
   Authors: Hinton, Geoffrey E.
   Journal: Scholarpedia
   Year: 2009
   Match Score: 78.3
   DOI: 10.4249/scholarpedia.5947

Please select (1-2, 0=skip): 1
✅ Selected: Deep learning
🐍 Python API
from omnicite import process_references

def callback(candidates):
    return 0  # Select first candidate

result = process_references(
    input_content="Deep learning review\nLeCun, Bengio, Hinton\nNature 2015",
    input_type="txt",
    template_name="journal_article_full", 
    output_format="bibtex",
    interactive_callback=callback
)

print(f"Processed: {result['report']['succeeded']} entries")
📑 Supported Paper Types

OmniCite now supports various types of academic papers:

Journal Articles with DOI:

10.1038/nature14539

→ Automatically fetches complete metadata from CrossRef

Conference Papers:

Attention is all you need
Vaswani et al.
NIPS 2017

→ Recognizes conference venues (NIPS/NeurIPS, CVPR, ICML, etc.) → Generates @inproceedings BibTeX entries

arXiv Papers:

1706.03762

→ Fetches metadata from arXiv API → Includes abstract and all authors

Papers with URLs:

https://arxiv.org/abs/1706.03762

→ Extracts identifiers from URLs → Supports arXiv, DOI, and conference paper URLs

⚙️ Configuration

📋 Command Line Options
Option Description Default
--input-type Input format (txt, bib) txt
--output-format Output format (bibtex, apa, mla) bibtex
--template Template to use journal_article_full
--interactive Enable interactive mode False
--quiet Suppress verbose logging False
--output, -o Output file path stdout

Examples:

# Basic processing
omnicite process input.txt

# With custom options  
omnicite process input.bib --input-type bib --template conference_paper --output results.bib

# Interactive mode with APA output
omnicite process mixed.txt --interactive --output-format apa
🎨 Template System

Create custom template my_template.yaml:

name: my_template
entry_type: "@article"
fields:
  - name: author
    required: true
  - name: title  
    required: true
  - name: journal
    required: true
  - name: year
    required: true
  - name: doi
    required: false
    source_priority: [crossref_api]

Usage:

omnicite process refs.txt --template my_template

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

📄 License

This project is licensed under the MIT License.


OmniCite - Making citation management simple and accurate ✨

⭐ Star📖 Docs🐛 Issues💬 Discussions

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onecite-0.0.3.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onecite-0.0.3-py3-none-any.whl (35.8 kB view details)

Uploaded Python 3

File details

Details for the file onecite-0.0.3.tar.gz.

File metadata

  • Download URL: onecite-0.0.3.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.1

File hashes

Hashes for onecite-0.0.3.tar.gz
Algorithm Hash digest
SHA256 d738f2461216046a6387ff1e25310b76e0e2384ff8573b28275b4f858ce11db2
MD5 13395c2bce707313f01a8708eca17947
BLAKE2b-256 0f004e660ccbc87222ebb4d00370a824894133f3a3e5fa31c18b08caf3e15db7

See more details on using hashes here.

File details

Details for the file onecite-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: onecite-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 35.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.1

File hashes

Hashes for onecite-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c4406e48bbea0a649e533a408ad0cc90d6d2677204c78486901a80e779e790c4
MD5 06cdf44898b34c00640ed2a9b234daa9
BLAKE2b-256 b6c16cc5f7963b20ee8f1cef2c0b58da8d249263bccb1480a00de523cf93cd8e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page