CiteMaster is a smart Python package that helps you automatically generate formatted citations from research paper titles or files of titles. No more manual DOI searching or formatting—CiteMaster does it all for you!
- Extracts DOI from paper titles using the CrossRef API
- Fetches corresponding BibTeX data
- Formats citations in APA, MLA, or IEEE
- Supports batch citation generation from
.txtor.csvfiles - Saves formatted citations and BibTeX entries to text files
- NEW: Comprehensive test suite with 39+ unit tests
- NEW: Configurable settings via JSON config file
- NEW: Advanced error handling with automatic retries
- NEW: Custom exceptions with helpful error messages
- NEW: Color-coded output and progress statistics
- Progress tracking for batch processing of large lists of papers
- Detailed logging with configurable verbosity
Clone and install CiteMaster locally:
git clone https://github.com/mehmoodulhaq570/CiteMaster.git
cd CiteMaster
pip install requirements.txtOR you can use the:
pip install cite_masterNote: Make sure you’re using Python 3.7 or higher.
CiteMaster provides an interactive interface.
from cite_master import main
main()You'll be prompted to input:
- A paper title or a file path (
.txtor.csv) - A citation format:
apa,mla, orieee - Whether to include BibTeX citations along with formatted ones.
- Whether to save the formatted citations and/or BibTeX entries to output files.
Input:
Enter a paper title or provide a file path (txt/csv): Deep Learning for Solar Energy Forecasting: A Review
Enter citation format (apa, mla, ieee): apa
Do you want the BibTeX citation as well? (yes/no): yes
Do you want to save formatted citations to outputs/citations_output.txt? (yes/no): yes
Do you want to save BibTeX entries to outputs/bibtex_output.txt? (yes/no): yes
Output:
DOI: 10.1016/j.rser.2020.109984
BibTeX:
@article{DeepLearning2020,
title={Deep Learning for Solar Energy Forecasting: A Review},
author={John Smith and Alice Johnson},
journal={Renewable and Sustainable Energy Reviews},
volume={132},
pages={109984},
year={2020},
publisher={Elsevier}
}
Formatted Citation (APA):
Smith, J., & Johnson, A. (2020). Deep Learning for Solar Energy Forecasting: A Review. *Renewable and Sustainable Energy Reviews*, 132, 109984. https://doi.org/10.1016/j.rser.2020.109984
The formatted citation and BibTeX entry will be saved to outputs/citations_output.txt and outputs/bibtex_output.txt.
Input:
Enter a paper title or provide a file path (txt/csv): C:\path\to\your\file\paper_titles.txt
Enter citation format (apa, mla, ieee): mla
Do you want the BibTeX citation as well? (yes/no): no
Do you want to save formatted citations to outputs/citations_output.txt? (yes/no): yes
In this case, BibTeX entries will not be fetched, and the formatted citations will be saved to outputs/citations_output.txt.
- .txt file: One paper title per line
- .csv file: First column should contain the titles
Example paper_titles.txt:
Artificial Intelligence for Smart Grids
Machine Learning in Climate Forecasting
Machine Learning in Solar Forecasting
- Formatted Citations: All formatted citations will be saved to
outputs/citations_output.txt. - BibTeX Entries: BibTeX entries will be saved to
outputs/bibtex_output.txtif requested. - Error Logs: Any errors during processing will be logged in
errors.log.
CiteMaster now supports custom configuration! Create a config.json file:
python -c "from cite_master.config import Config; Config.create_default_config_file()"Customize settings like:
- API timeouts and retry attempts
- Output directories
- Log file locations
- Color output preferences
- And more!
CiteMaster includes a comprehensive test suite:
# Install test dependencies
pip install -r tests/requirements-test.txt
# Run tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=cite_master --cov-report=html🎉 Major improvements:
- Comprehensive Testing - 39+ unit tests with mocking
- Configuration System - Flexible JSON-based configuration
- Advanced Error Handling - Retry logic, custom exceptions, helpful messages
- UI Improvements - Color-coded output, processing statistics
- Better Logging - Structured logging with configurable verbosity
See CHANGELOG.md for complete details.
pip uninstall cite-masterThis project is licensed under the MIT License. See the LICENSE file for details.
Feel free to open issues or submit pull requests. Suggestions and improvements are welcome!
- CrossRef API
- BibTeX Format
- Citation styles follow official formatting guidelines.
If you have any suggestion or want to contribute to the project you can reach me out at [email protected]
Made ❤️ by [Mehmood Ul Haq]