noteparser


Namenoteparser JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/yourusername/noteparser
SummaryA comprehensive document parser for converting academic materials to Markdown and LaTeX
upload_time2025-08-06 08:20:40
maintainerNone
docs_urlNone
authorYour Name
requires_python>=3.8
licenseMIT
keywords markdown latex document parser converter pdf docx pptx
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # NoteParser 📚

**A comprehensive document parser for converting academic materials to Markdown and LaTeX**

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

NoteParser is a powerful academic document processing system built on top of Microsoft's [MarkItDown](https://github.com/microsoft/markitdown) library. It's designed specifically for university students and educators who need to convert various document formats into structured, searchable, and cross-referenced academic notes.

## ✨ Key Features

### 🔄 **Multi-Format Support**
- **Documents**: PDF, DOCX, PPTX, XLSX, HTML, EPUB
- **Media**: Images with OCR, Audio/Video with transcription
- **Output**: Markdown, LaTeX, HTML

### 🎓 **Academic-Focused Processing**
- **Mathematical equations** preservation and enhancement
- **Code blocks** with syntax highlighting and language detection
- **Bibliography** and citation extraction
- **Chemical formulas** with proper subscript formatting
- **Academic keyword highlighting** (theorem, proof, definition, etc.)

### 🔌 **Extensible Plugin System**
- **Course-specific processors** (Math, Computer Science, Chemistry)
- **Custom parser plugins** for specialized content
- **Easy plugin development** with base classes

### 🌐 **Organization Integration**
- **Multi-repository synchronization** for course organization
- **Cross-reference detection** between related documents
- **Automated GitHub Actions** for continuous processing
- **Searchable indexing** across all notes

### 🖥️ **Multiple Interfaces**
- **Command-line interface** for batch processing
- **Web dashboard** for browsing and managing notes
- **Python API** for programmatic access
- **REST API** endpoints for integration

## 🚀 Quick Start

### Installation

#### Option 1: Using pip (Recommended)

```bash
# Install from PyPI (when available)
pip install noteparser

# Or install from source with pip
git clone https://github.com/yourusername/noteparser.git
cd noteparser
pip install -e .

# For development (includes testing and linting tools)
pip install -e .[dev]

# For all features including development tools
pip install -e .[all]
```

#### Option 2: Using requirements.txt

```bash
# Clone the repository
git clone https://github.com/yourusername/noteparser.git
cd noteparser

# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# For development
pip install -r requirements-dev.txt

# Install the package
pip install -e .
```

#### System Dependencies

Some features require system packages:

```bash
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y \
    tesseract-ocr \
    tesseract-ocr-eng \
    ffmpeg \
    poppler-utils

# macOS
brew install tesseract ffmpeg poppler

# Windows (using Chocolatey)
choco install tesseract ffmpeg poppler
```

### Basic Usage

```bash
# Initialize in your project directory
noteparser init

# Parse a single document
noteparser parse lecture.pdf --format markdown

# Batch process a directory
noteparser batch input/ --recursive --format latex

# Start the web dashboard
noteparser web --host 0.0.0.0 --port 5000

# Sync to organization repository
noteparser sync output/*.md --target-repo study-notes --course CS101
```

### Python API

```python
from noteparser import NoteParser
from noteparser.integration import OrganizationSync

# Initialize parser
parser = NoteParser(llm_client=your_llm_client)  # Optional: for image descriptions

# Parse single document
result = parser.parse_to_markdown("lecture.pdf")
print(result['content'])

# Batch processing
results = parser.parse_batch("notes/", output_format="markdown")

# Organization sync
org_sync = OrganizationSync()
sync_result = org_sync.sync_parsed_notes(
    source_files=["note1.md", "note2.md"],
    target_repo="study-notes",
    course="CS101"
)
```

## 📁 Project Structure

```
your-study-organization/
├── noteparser/              # This repository - parsing engine
├── study-notes/            # Main notes repository
│   ├── courses/
│   │   ├── CS101/
│   │   ├── MATH201/
│   │   └── PHYS301/
│   └── .noteparser.yml     # Organization configuration
├── note-templates/         # Shared LaTeX/Markdown templates
├── note-extensions/        # Custom plugins
└── note-dashboard/         # Optional: separate web interface
```

## ⚙️ Configuration

### Organization Configuration (`.noteparser-org.yml`)

```yaml
organization:
  name: "my-study-notes"
  base_path: "."
  auto_discovery: true

repositories:
  study-notes:
    type: "notes"
    auto_sync: true
    formats: ["markdown", "latex"]
  noteparser:
    type: "parser"
    auto_sync: false

sync_settings:
  auto_commit: true
  commit_message_template: "Auto-sync: {timestamp} - {file_count} files updated"
  branch: "main"
  push_on_sync: false

cross_references:
  enabled: true
  similarity_threshold: 0.7
  max_suggestions: 5
```

### Plugin Configuration

```yaml
plugins:
  math_processor:
    enabled: true
    config:
      equation_numbering: true
      symbol_standardization: true
  
  cs_processor:
    enabled: true
    config:
      code_line_numbers: true
      auto_language_detection: true
```

## 🔌 Plugin Development

Create custom plugins for specialized course content:

```python
from noteparser.plugins import BasePlugin

class ChemistryPlugin(BasePlugin):
    name = "chemistry_processor"
    version = "1.0.0"
    description = "Enhanced processing for chemistry courses"
    course_types = ['chemistry', 'organic', 'biochemistry']
    
    def process_content(self, content: str, metadata: Dict[str, Any]) -> Dict[str, Any]:
        # Your custom processing logic here
        processed_content = self.enhance_chemical_formulas(content)
        
        return {
            'content': processed_content,
            'metadata': {**metadata, 'chemical_formulas_found': count}
        }
```

## 🌊 GitHub Actions Integration

Automatic processing when you push new documents:

```yaml
# .github/workflows/parse-notes.yml
name: Parse and Sync Notes
on:
  push:
    paths: ['input/**', 'raw-notes/**']

jobs:
  parse-notes:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.11'
      - name: Install dependencies
        run: pip install noteparser[all]
      - name: Parse documents
        run: noteparser batch input/ --format markdown
      - name: Sync to study-notes
        run: noteparser sync output/*.md --target-repo study-notes
```

## 🖥️ Web Dashboard

Access the web interface at `http://localhost:5000` after running:

```bash
noteparser web
```

Features:
- **Browse** all repositories and courses
- **Search** across all notes
- **View** documents with syntax highlighting
- **Parse** new documents through the web interface
- **Manage** plugins and configuration
- **Monitor** sync status and cross-references

## 📊 Use Cases

### 📖 **Individual Student**
```bash
# Daily workflow
noteparser parse "Today's Lecture.pdf" 
noteparser sync output/todays-lecture.md --course CS101
```

### 🏫 **Course Organization**
```bash
# Semester setup
noteparser init
noteparser batch course-materials/ --recursive
noteparser index --format json > course-index.json
```

### 👥 **Study Group**
```bash
# Collaborative notes
noteparser parse shared-notes.docx --format markdown
git add . && git commit -m "Add processed notes"
git push origin main  # Triggers auto-sync via GitHub Actions
```

### 🔬 **Research Lab**
```bash
# Research paper processing
noteparser parse "Research Paper.pdf" --format latex
noteparser web  # Browse and cross-reference with existing notes
```

## 📚 Advanced Features

### 🔍 **Smart Content Detection**
- **Mathematical equations**: Automatic LaTeX formatting preservation
- **Code blocks**: Language detection and syntax highlighting
- **Citations**: APA, MLA, IEEE format recognition
- **Figures and tables**: Structured conversion with captions

### 🏷️ **Metadata Extraction**
- **Course identification** from file names and paths
- **Topic extraction** and categorization
- **Author and date** detection
- **Academic keywords** and tagging

### 🔗 **Cross-References**
- **Similar content detection** across documents
- **Prerequisite tracking** between topics
- **Citation network** visualization
- **Knowledge graph** construction

## 🛠️ Development

### Setup Development Environment

```bash
git clone https://github.com/yourusername/noteparser.git
cd noteparser
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install all dependencies including dev tools
pip install -r requirements-dev.txt

# Or using pip extras
pip install -e .[dev]

# Install pre-commit hooks
pre-commit install
```

### Run Tests

```bash
pytest tests/ -v --cov=noteparser
```

### Code Quality

```bash
# Formatting
black src/
ruff check src/

# Type checking
mypy src/noteparser/
```

## 🤝 Contributing

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Add tests for new functionality
5. Run the test suite
6. Commit your changes (`git commit -m 'Add amazing feature'`)
7. Push to the branch (`git push origin feature/amazing-feature`)
8. Open a Pull Request

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 📦 Dependencies

### Core Dependencies
- **markitdown** - Microsoft's document parsing engine
- **Flask** - Web framework for dashboard
- **Click** - CLI interface
- **PyYAML** - Configuration management
- **Pillow** - Image processing
- **OpenCV** - Advanced image operations
- **pytesseract** - OCR capabilities
- **SpeechRecognition** - Audio transcription
- **moviepy** - Video processing

### Optional Dependencies
- **pdfplumber** - Enhanced PDF processing
- **python-docx/pptx** - Office document handling
- **BeautifulSoup4** - HTML parsing
- **pandas** - Table processing

See `requirements.txt` for the complete list with version specifications.

## 🙏 Acknowledgments

- **Microsoft MarkItDown** - The core parsing engine that powers format conversion
- **Academic Community** - For inspiration and requirements gathering
- **Open Source Libraries** - All the amazing Python packages that make this possible

## 📞 Support

- **Documentation**: [Full Documentation](docs/)
- **Issues**: [GitHub Issues](https://github.com/yourusername/noteparser/issues)
- **Discussions**: [GitHub Discussions](https://github.com/yourusername/noteparser/discussions)

---

**Made with ❤️ for students, by students**

*Transform your study materials into a searchable, interconnected knowledge base*

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yourusername/noteparser",
    "name": "noteparser",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "markdown, latex, document, parser, converter, pdf, docx, pptx",
    "author": "Your Name",
    "author_email": "Your Name <your.email@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/93/ab/066b6ea3aa5c2ed9924136e2e51afa3548b0002c68e0e039638a832c812d/noteparser-1.0.0.tar.gz",
    "platform": null,
    "description": "# NoteParser \ud83d\udcda\n\n**A comprehensive document parser for converting academic materials to Markdown and LaTeX**\n\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nNoteParser is a powerful academic document processing system built on top of Microsoft's [MarkItDown](https://github.com/microsoft/markitdown) library. It's designed specifically for university students and educators who need to convert various document formats into structured, searchable, and cross-referenced academic notes.\n\n## \u2728 Key Features\n\n### \ud83d\udd04 **Multi-Format Support**\n- **Documents**: PDF, DOCX, PPTX, XLSX, HTML, EPUB\n- **Media**: Images with OCR, Audio/Video with transcription\n- **Output**: Markdown, LaTeX, HTML\n\n### \ud83c\udf93 **Academic-Focused Processing**\n- **Mathematical equations** preservation and enhancement\n- **Code blocks** with syntax highlighting and language detection\n- **Bibliography** and citation extraction\n- **Chemical formulas** with proper subscript formatting\n- **Academic keyword highlighting** (theorem, proof, definition, etc.)\n\n### \ud83d\udd0c **Extensible Plugin System**\n- **Course-specific processors** (Math, Computer Science, Chemistry)\n- **Custom parser plugins** for specialized content\n- **Easy plugin development** with base classes\n\n### \ud83c\udf10 **Organization Integration**\n- **Multi-repository synchronization** for course organization\n- **Cross-reference detection** between related documents\n- **Automated GitHub Actions** for continuous processing\n- **Searchable indexing** across all notes\n\n### \ud83d\udda5\ufe0f **Multiple Interfaces**\n- **Command-line interface** for batch processing\n- **Web dashboard** for browsing and managing notes\n- **Python API** for programmatic access\n- **REST API** endpoints for integration\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n#### Option 1: Using pip (Recommended)\n\n```bash\n# Install from PyPI (when available)\npip install noteparser\n\n# Or install from source with pip\ngit clone https://github.com/yourusername/noteparser.git\ncd noteparser\npip install -e .\n\n# For development (includes testing and linting tools)\npip install -e .[dev]\n\n# For all features including development tools\npip install -e .[all]\n```\n\n#### Option 2: Using requirements.txt\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/noteparser.git\ncd noteparser\n\n# Create a virtual environment (recommended)\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\n# Install dependencies\npip install -r requirements.txt\n\n# For development\npip install -r requirements-dev.txt\n\n# Install the package\npip install -e .\n```\n\n#### System Dependencies\n\nSome features require system packages:\n\n```bash\n# Ubuntu/Debian\nsudo apt-get update\nsudo apt-get install -y \\\n    tesseract-ocr \\\n    tesseract-ocr-eng \\\n    ffmpeg \\\n    poppler-utils\n\n# macOS\nbrew install tesseract ffmpeg poppler\n\n# Windows (using Chocolatey)\nchoco install tesseract ffmpeg poppler\n```\n\n### Basic Usage\n\n```bash\n# Initialize in your project directory\nnoteparser init\n\n# Parse a single document\nnoteparser parse lecture.pdf --format markdown\n\n# Batch process a directory\nnoteparser batch input/ --recursive --format latex\n\n# Start the web dashboard\nnoteparser web --host 0.0.0.0 --port 5000\n\n# Sync to organization repository\nnoteparser sync output/*.md --target-repo study-notes --course CS101\n```\n\n### Python API\n\n```python\nfrom noteparser import NoteParser\nfrom noteparser.integration import OrganizationSync\n\n# Initialize parser\nparser = NoteParser(llm_client=your_llm_client)  # Optional: for image descriptions\n\n# Parse single document\nresult = parser.parse_to_markdown(\"lecture.pdf\")\nprint(result['content'])\n\n# Batch processing\nresults = parser.parse_batch(\"notes/\", output_format=\"markdown\")\n\n# Organization sync\norg_sync = OrganizationSync()\nsync_result = org_sync.sync_parsed_notes(\n    source_files=[\"note1.md\", \"note2.md\"],\n    target_repo=\"study-notes\",\n    course=\"CS101\"\n)\n```\n\n## \ud83d\udcc1 Project Structure\n\n```\nyour-study-organization/\n\u251c\u2500\u2500 noteparser/              # This repository - parsing engine\n\u251c\u2500\u2500 study-notes/            # Main notes repository\n\u2502   \u251c\u2500\u2500 courses/\n\u2502   \u2502   \u251c\u2500\u2500 CS101/\n\u2502   \u2502   \u251c\u2500\u2500 MATH201/\n\u2502   \u2502   \u2514\u2500\u2500 PHYS301/\n\u2502   \u2514\u2500\u2500 .noteparser.yml     # Organization configuration\n\u251c\u2500\u2500 note-templates/         # Shared LaTeX/Markdown templates\n\u251c\u2500\u2500 note-extensions/        # Custom plugins\n\u2514\u2500\u2500 note-dashboard/         # Optional: separate web interface\n```\n\n## \u2699\ufe0f Configuration\n\n### Organization Configuration (`.noteparser-org.yml`)\n\n```yaml\norganization:\n  name: \"my-study-notes\"\n  base_path: \".\"\n  auto_discovery: true\n\nrepositories:\n  study-notes:\n    type: \"notes\"\n    auto_sync: true\n    formats: [\"markdown\", \"latex\"]\n  noteparser:\n    type: \"parser\"\n    auto_sync: false\n\nsync_settings:\n  auto_commit: true\n  commit_message_template: \"Auto-sync: {timestamp} - {file_count} files updated\"\n  branch: \"main\"\n  push_on_sync: false\n\ncross_references:\n  enabled: true\n  similarity_threshold: 0.7\n  max_suggestions: 5\n```\n\n### Plugin Configuration\n\n```yaml\nplugins:\n  math_processor:\n    enabled: true\n    config:\n      equation_numbering: true\n      symbol_standardization: true\n  \n  cs_processor:\n    enabled: true\n    config:\n      code_line_numbers: true\n      auto_language_detection: true\n```\n\n## \ud83d\udd0c Plugin Development\n\nCreate custom plugins for specialized course content:\n\n```python\nfrom noteparser.plugins import BasePlugin\n\nclass ChemistryPlugin(BasePlugin):\n    name = \"chemistry_processor\"\n    version = \"1.0.0\"\n    description = \"Enhanced processing for chemistry courses\"\n    course_types = ['chemistry', 'organic', 'biochemistry']\n    \n    def process_content(self, content: str, metadata: Dict[str, Any]) -> Dict[str, Any]:\n        # Your custom processing logic here\n        processed_content = self.enhance_chemical_formulas(content)\n        \n        return {\n            'content': processed_content,\n            'metadata': {**metadata, 'chemical_formulas_found': count}\n        }\n```\n\n## \ud83c\udf0a GitHub Actions Integration\n\nAutomatic processing when you push new documents:\n\n```yaml\n# .github/workflows/parse-notes.yml\nname: Parse and Sync Notes\non:\n  push:\n    paths: ['input/**', 'raw-notes/**']\n\njobs:\n  parse-notes:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - name: Set up Python\n        uses: actions/setup-python@v4\n        with:\n          python-version: '3.11'\n      - name: Install dependencies\n        run: pip install noteparser[all]\n      - name: Parse documents\n        run: noteparser batch input/ --format markdown\n      - name: Sync to study-notes\n        run: noteparser sync output/*.md --target-repo study-notes\n```\n\n## \ud83d\udda5\ufe0f Web Dashboard\n\nAccess the web interface at `http://localhost:5000` after running:\n\n```bash\nnoteparser web\n```\n\nFeatures:\n- **Browse** all repositories and courses\n- **Search** across all notes\n- **View** documents with syntax highlighting\n- **Parse** new documents through the web interface\n- **Manage** plugins and configuration\n- **Monitor** sync status and cross-references\n\n## \ud83d\udcca Use Cases\n\n### \ud83d\udcd6 **Individual Student**\n```bash\n# Daily workflow\nnoteparser parse \"Today's Lecture.pdf\" \nnoteparser sync output/todays-lecture.md --course CS101\n```\n\n### \ud83c\udfeb **Course Organization**\n```bash\n# Semester setup\nnoteparser init\nnoteparser batch course-materials/ --recursive\nnoteparser index --format json > course-index.json\n```\n\n### \ud83d\udc65 **Study Group**\n```bash\n# Collaborative notes\nnoteparser parse shared-notes.docx --format markdown\ngit add . && git commit -m \"Add processed notes\"\ngit push origin main  # Triggers auto-sync via GitHub Actions\n```\n\n### \ud83d\udd2c **Research Lab**\n```bash\n# Research paper processing\nnoteparser parse \"Research Paper.pdf\" --format latex\nnoteparser web  # Browse and cross-reference with existing notes\n```\n\n## \ud83d\udcda Advanced Features\n\n### \ud83d\udd0d **Smart Content Detection**\n- **Mathematical equations**: Automatic LaTeX formatting preservation\n- **Code blocks**: Language detection and syntax highlighting\n- **Citations**: APA, MLA, IEEE format recognition\n- **Figures and tables**: Structured conversion with captions\n\n### \ud83c\udff7\ufe0f **Metadata Extraction**\n- **Course identification** from file names and paths\n- **Topic extraction** and categorization\n- **Author and date** detection\n- **Academic keywords** and tagging\n\n### \ud83d\udd17 **Cross-References**\n- **Similar content detection** across documents\n- **Prerequisite tracking** between topics\n- **Citation network** visualization\n- **Knowledge graph** construction\n\n## \ud83d\udee0\ufe0f Development\n\n### Setup Development Environment\n\n```bash\ngit clone https://github.com/yourusername/noteparser.git\ncd noteparser\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\n# Install all dependencies including dev tools\npip install -r requirements-dev.txt\n\n# Or using pip extras\npip install -e .[dev]\n\n# Install pre-commit hooks\npre-commit install\n```\n\n### Run Tests\n\n```bash\npytest tests/ -v --cov=noteparser\n```\n\n### Code Quality\n\n```bash\n# Formatting\nblack src/\nruff check src/\n\n# Type checking\nmypy src/noteparser/\n```\n\n## \ud83e\udd1d Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Add tests for new functionality\n5. Run the test suite\n6. Commit your changes (`git commit -m 'Add amazing feature'`)\n7. Push to the branch (`git push origin feature/amazing-feature`)\n8. Open a Pull Request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\udce6 Dependencies\n\n### Core Dependencies\n- **markitdown** - Microsoft's document parsing engine\n- **Flask** - Web framework for dashboard\n- **Click** - CLI interface\n- **PyYAML** - Configuration management\n- **Pillow** - Image processing\n- **OpenCV** - Advanced image operations\n- **pytesseract** - OCR capabilities\n- **SpeechRecognition** - Audio transcription\n- **moviepy** - Video processing\n\n### Optional Dependencies\n- **pdfplumber** - Enhanced PDF processing\n- **python-docx/pptx** - Office document handling\n- **BeautifulSoup4** - HTML parsing\n- **pandas** - Table processing\n\nSee `requirements.txt` for the complete list with version specifications.\n\n## \ud83d\ude4f Acknowledgments\n\n- **Microsoft MarkItDown** - The core parsing engine that powers format conversion\n- **Academic Community** - For inspiration and requirements gathering\n- **Open Source Libraries** - All the amazing Python packages that make this possible\n\n## \ud83d\udcde Support\n\n- **Documentation**: [Full Documentation](docs/)\n- **Issues**: [GitHub Issues](https://github.com/yourusername/noteparser/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/yourusername/noteparser/discussions)\n\n---\n\n**Made with \u2764\ufe0f for students, by students**\n\n*Transform your study materials into a searchable, interconnected knowledge base*\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A comprehensive document parser for converting academic materials to Markdown and LaTeX",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/yourusername/noteparser",
        "Issues": "https://github.com/yourusername/noteparser/issues"
    },
    "split_keywords": [
        "markdown",
        " latex",
        " document",
        " parser",
        " converter",
        " pdf",
        " docx",
        " pptx"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "14ad53cef3ffd6bd549f3b7e9cbabf71c814f41752dcb24a186bd9e883178f24",
                "md5": "aae35c88b497268987a333b4261f50e9",
                "sha256": "9f30a02afa8b67f19a2c5c3a9fa45ac50fc35c59e45e08d26ef5e324941e368e"
            },
            "downloads": -1,
            "filename": "noteparser-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "aae35c88b497268987a333b4261f50e9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 57947,
            "upload_time": "2025-08-06T08:20:39",
            "upload_time_iso_8601": "2025-08-06T08:20:39.111003Z",
            "url": "https://files.pythonhosted.org/packages/14/ad/53cef3ffd6bd549f3b7e9cbabf71c814f41752dcb24a186bd9e883178f24/noteparser-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "93ab066b6ea3aa5c2ed9924136e2e51afa3548b0002c68e0e039638a832c812d",
                "md5": "efe9559498b7ff3fb9af7ad1ec05e43f",
                "sha256": "1d26f2524674ff512a3b8745199e075db4d5efd08b80e235782cf0a5a2b5ee9b"
            },
            "downloads": -1,
            "filename": "noteparser-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "efe9559498b7ff3fb9af7ad1ec05e43f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 70956,
            "upload_time": "2025-08-06T08:20:40",
            "upload_time_iso_8601": "2025-08-06T08:20:40.585035Z",
            "url": "https://files.pythonhosted.org/packages/93/ab/066b6ea3aa5c2ed9924136e2e51afa3548b0002c68e0e039638a832c812d/noteparser-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-06 08:20:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "noteparser",
    "github_not_found": true,
    "lcname": "noteparser"
}
        
Elapsed time: 0.69865s