Skip to main content

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

Python Version License Code style: ruff

PaperProbe TUI Screenshot

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

  1. Enter a source:

    • arXiv URL: https://arxiv.org/abs/2301.12345
    • Local PDF: /path/to/paper.pdf
    • GitHub URL: https://github.com/username/repo
  2. Scan for repositories: PaperProbe extracts GitHub links from papers

  3. Select a repository: Choose from the discovered repos

  4. Choose analysis mode:

    • Basic: Quick repository overview
    • Deep: Comprehensive analysis with usage examples
  5. 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


Made with ❤️ for the research community

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

paperprobe-0.1.3.tar.gz (165.3 kB view details)

Uploaded Source

Built Distribution

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

paperprobe-0.1.3-py3-none-any.whl (29.5 kB view details)

Uploaded Python 3

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

Hashes for paperprobe-0.1.3.tar.gz
Algorithm Hash digest
SHA256 556d62b2cf24a35e96a0e82dc6d1270dc14463d2566f99ce61d5214d9a9de098
MD5 e12b63ac3f6fb73b2089b8d2ef2067db
BLAKE2b-256 2cac709b503db95eadceac7f13e1b729d630bcf612ad7a94bb9d3e5e5f8c32ca

See more details on using hashes here.

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

Hashes for paperprobe-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2be5b586f5c04f51361c027db27bedfc0e0b5ac9b53197413b75ecf4cc8e9e13
MD5 12888623548f85bc2621ef17b9245f9d
BLAKE2b-256 8e4a56787e7ae6724aff7896b07fefd7ff430d707987e654c372ca2f355dd472

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