Tool to automatically generate scripts that show usage of scientific code from scientific papers
Reason this release was yanked:
Dependency Problems
Project description
PaperProbe
Automatically analyze and generate usage examples for scientific code from research papers
Beautiful terminal user interface for analyzing scientific repositories
What is PaperProbe?
PaperProbe bridges the gap between scientific papers and their associated code repositories. It automatically:
- Scans research papers (arXiv URLs or local PDFs) for GitHub repository links
- Analyzes repositories to understand structure, dependencies, and usage patterns
- Generates usage examples using AI-powered code analysis
- Provides insights on repository statistics, code quality, and documentation
Perfect for researchers, developers, and students who want to quickly understand and utilize code from scientific publications.
Features
Interactive TUI
- Beautiful terminal interface built with Textual
- Real-time progress updates and visual feedback
- Keyboard shortcuts for efficient navigation
Multi-Source Support
- arXiv papers: Direct URL scanning
- Local PDFs: Parse papers from your filesystem
- GitHub URLs: Direct repository analysis
AI-Powered Analysis
- Intelligent code structure analysis
- Automated usage example generation
- Context-aware documentation extraction
Repository Insights
- GitHub statistics (stars, forks, contributors)
- Dependency analysis
- Code quality metrics
- File structure visualization
Installation
Using pipx (Recommended)
pipx install paperprobe
Using pip
pip install paperprobe
From Source
git clone https://github.com/Brook-B-Nigatu/PaperProbe.git
cd PaperProbe
pip install -e .
[!TIP] Package version may need to be specified in some cases.
Prerequisites
- Python: 3.12 or higher
- API Keys: AI API key for AI-powered analysis
- GitHub Token (optional): For enhanced GitHub API access
Configuration
Environment Variables
PaperProbe requires API keys to function.
Environment Variables (Recommended)
Add to your shell configuration file (~/.zshrc, ~/.bashrc, etc.):
export CONSTRUCTOR_KM_ID=""
export CONSTRUCTOR_API_KEY=""
export CONSTRUCTOR_API_URL=""
export GITHUB_TOKEN="" #optional
Then reload your shell:
source ~/.zshrc
Usage
Launch the TUI
paperprobe
Basic Workflow
-
Enter a source:
- arXiv URL:
https://arxiv.org/abs/2301.12345 - Local PDF:
/path/to/paper.pdf - GitHub URL:
https://github.com/username/repo
- arXiv URL:
-
Scan for repositories: PaperProbe extracts GitHub links from papers
-
Select a repository: Choose from the discovered repos
-
Choose analysis mode:
- Basic: Quick repository overview
- Deep: Comprehensive analysis with usage examples
-
View results: Interactive markdown display with insights
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+S |
Use sample URL |
Ctrl+Q |
Quit application |
Enter |
Submit input / Select item |
↑/↓ |
Navigate lists |
Sample Usage
Try the built-in sample by pressing Ctrl+S on the intro screen, or paste this URL:
https://github.com/Brook-B-Nigatu/PaperProbe
Project Structure
PaperProbe/
├── src/
│ ├── core/ # Core analysis logic
│ │ ├── llm_service.py # AI service integration
│ │ └── task_manager.py # Async task orchestration
│ ├── github_repo/ # GitHub repository handling
│ ├── preprocessing_utilities/
│ │ └── pdf_parser.py # PDF text extraction
│ ├── tool_providers/ # Analysis tool providers
│ └── ui/ # Terminal UI components
│ ├── app.py # Main TUI application
│ ├── controller.py # Business logic
│ └── style.tcss # TUI styling
├── pyproject.toml # Project configuration
└── README.md
Development
Setup Development Environment
# Clone the repository
git clone https://github.com/Brook-B-Nigatu/PaperProbe.git
cd PaperProbe
# Install in editable mode
pip install -e .
# Or use uv for faster installs
uv pip install -e .
Running Tests
# Run linter
ruff check .
# Format code
ruff format .
License
This project is licensed under the MIT License - see the LICENSE.txt file for details.
Acknowledgments
- Built with Textual for the beautiful TUI
- Powered by LangChain and OpenAI for intelligent analysis
- PDF parsing with pdfminer.six
Project details
Release history Release notifications | RSS feed
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 paperprobe-0.1.3.tar.gz.
File metadata
- Download URL: paperprobe-0.1.3.tar.gz
- Upload date:
- Size: 165.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
556d62b2cf24a35e96a0e82dc6d1270dc14463d2566f99ce61d5214d9a9de098
|
|
| MD5 |
e12b63ac3f6fb73b2089b8d2ef2067db
|
|
| BLAKE2b-256 |
2cac709b503db95eadceac7f13e1b729d630bcf612ad7a94bb9d3e5e5f8c32ca
|
File details
Details for the file paperprobe-0.1.3-py3-none-any.whl.
File metadata
- Download URL: paperprobe-0.1.3-py3-none-any.whl
- Upload date:
- Size: 29.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2be5b586f5c04f51361c027db27bedfc0e0b5ac9b53197413b75ecf4cc8e9e13
|
|
| MD5 |
12888623548f85bc2621ef17b9245f9d
|
|
| BLAKE2b-256 |
8e4a56787e7ae6724aff7896b07fefd7ff430d707987e654c372ca2f355dd472
|