taxdumpy


Nametaxdumpy JSON
Version 1.1.5 PyPI version JSON
download
home_pageNone
SummaryPython package for efficiently parsing NCBI's taxdump database
upload_time2025-08-18 09:59:00
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License Copyright (c) 2025 Omega HH Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords ncbi metagenomics taxonomy tree-of-life
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Taxdumpy 🧬

_A high-performance Python toolkit for parsing NCBI Taxonomy databases with lineage resolution and fuzzy search_

[![CI](https://github.com/omegahh/taxdumpy/workflows/CI/badge.svg)](https://github.com/omegahh/taxdumpy/actions/workflows/ci.yml)
[![PyPI version](https://img.shields.io/pypi/v/taxdumpy?color=green)](https://pypi.org/project/taxdumpy/)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![Development Status](https://img.shields.io/badge/Development%20Status-5%20Production/Stable-brightgreen)](https://pypi.org/project/taxdumpy/)
[![codecov](https://codecov.io/gh/omegahh/taxdumpy/branch/main/graph/badge.svg)](https://codecov.io/gh/omegahh/taxdumpy)

## Features

- **🚀 Blazing Fast Parsing**
  Optimized loading of NCBI taxdump files (`nodes.dmp`, `names.dmp`, etc.) with pickle caching for 3x speedup

- **🔬 Comprehensive Taxon Operations**
  - TaxID validation and complete lineage tracing
  - Scientific name resolution and rank-based filtering
  - Handle merged/deleted nodes and legacy taxonomies
  - Access to division information and metadata

- **🔍 Fuzzy Search**
  Rapid approximate name matching using `rapidfuzz` - find organisms even with typos

- **⚡ High Performance**
  - Memory-efficient data structures for large taxonomies
  - Dual backend support: in-memory (TaxDb) and SQLite (TaxSQLite)
  - Lazy loading and optimized caching strategies

- **🖥️ Command Line Interface**
  Ready-to-use CLI for caching, searching, and lineage resolution

## Installation

```bash
pip install taxdumpy
```

**Development Installation:**

```bash
git clone https://github.com/omegahh/taxdumpy.git
cd taxdumpy
pip install -e .
```

**With Development Dependencies:**

```bash
pip install -e .[dev]
```

## Quick Start

### Basic Usage

```python
from taxdumpy import TaxDb, Taxon

# Initialize database
taxdb = TaxDb("/path/to/taxdump")

# Create taxon objects
human = Taxon(9606, taxdb)  # Homo sapiens
ecoli = Taxon(511145, taxdb)  # E. coli K-12

# Access lineage information
print(human.name_lineage)
# ['Homo sapiens', 'Homo', 'Hominidae', 'Primates', ..., 'cellular organisms']

print(human.rank_lineage)
# ['species', 'genus', 'family', 'order', ..., 'superkingdom']

# Check taxonomic properties
print(f"Rank: {human.rank}")           # species
print(f"Division: {human.division}")   # Mammals
print(f"Is legacy: {human.is_legacy}") # False
```

### Fuzzy Search

```python
# Search with typos and partial matches
results = taxdb._rapid_fuzz("Escherichia coli", limit=5)
for match in results:
    print(f"{match['name']} (TaxID: {match['taxid']}, Score: {match['score']})")

# Search influenza strains
flu_results = taxdb._rapid_fuzz("Influenza A", limit=10)
```

## Command Line Interface

### Check Version

```bash
# Display current version
taxdumpy --version
# Output: taxdumpy 0.1.1
```

### Cache Database

```bash
# Cache full NCBI taxonomy database
taxdumpy cache -d /path/to/taxdump

# Create fast cache with specific organisms
taxdumpy cache -d /path/to/taxdump -f important_taxids.txt
```

### Search Operations

```bash
# Search for organisms (with fuzzy matching)
taxdumpy search --fast "Escherichia coli"
taxdumpy search "Homo sapiens"

# Limit search results
taxdumpy search --limit 5 "Influenza A"

# Search with custom database path
taxdumpy search -d /custom/path "Influenza A"
```

### Lineage Tracing

```bash
# Get complete lineage for TaxID
taxdumpy lineage --fast 511145  # E. coli K-12 MG1655
taxdumpy lineage 9606           # Homo sapiens

# With custom database path
taxdumpy lineage -d /custom/path 9606
```

## Database Setup

### 1. Download NCBI Taxonomy Data

```bash
# Create directory for taxonomy data
mkdir -p ~/.taxonkit

# Download latest taxdump
wget ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gz -P ~/.taxonkit

# Extract files
tar -xzf ~/.taxonkit/taxdump.tar.gz -C ~/.taxonkit
```

### 2. Initialize Database

```bash
# Create full cache (recommended for regular use)
taxdumpy cache -d ~/.taxonkit

# Or create fast cache with specific organisms
echo -e "9606\n511145\n7227" > important_species.txt
taxdumpy cache -d ~/.taxonkit -f important_species.txt
```

### 3. Set Environment Variable (Optional)

```bash
export TAXDB_PATH=~/.taxonkit
```

## Advanced Usage

### SQLite Backend

```python
from taxdumpy import TaxSQLite

# Use SQLite for memory-efficient storage
db = TaxSQLite("/path/to/database.sqlite")
db.build_database("/path/to/taxdump")

# Same API as TaxDb
taxon = Taxon(9606, db)
print(taxon.name_lineage)
```

### Batch Processing

```python
from taxdumpy import TaxDb, Taxon

# Reuse database instance for efficiency
taxdb = TaxDb("/path/to/taxdump", fast=True)

taxids = [9606, 511145, 7227, 4932]  # Human, E.coli, Fly, Yeast
for taxid in taxids:
    taxon = Taxon(taxid, taxdb)
    print(f"{taxon.name}: {' > '.join(taxon.name_lineage[:3])}")
```

### Custom Utilities

```python
from taxdumpy import upper_rank_id

# Find parent at specific taxonomic rank
kingdom_id = upper_rank_id(9606, "kingdom", taxdb)
print(f"Human kingdom TaxID: {kingdom_id}")  # 33208 (Metazoa)
```

## API Reference

### Core Classes

**TaxDb**: In-memory dictionary-based database

```python
TaxDb(taxdump_dir: str, fast: bool = False)
```

**TaxSQLite**: SQLite-based persistent database

```python
TaxSQLite(db_path: str)
```

**Taxon**: Taxonomic unit with lineage resolution

```python
Taxon(taxid: int, taxdb: TaxDb | TaxSQLite)

# Properties
.name: str              # Scientific name
.rank: str              # Taxonomic rank
.division: str          # NCBI division
.lineage: List[Node]    # Complete lineage
.name_lineage: List[str] # Names only
.rank_lineage: List[str] # Ranks only
.is_legacy: bool        # Legacy/merged node
```

## Performance Tips

- **Use Fast Mode**: `TaxDb(path, fast=True)` provides ~3x speedup with pre-cached data
- **Reuse Instances**: Create one `TaxDb` instance and reuse for multiple operations
- **Environment Variables**: Set `TAXDB_PATH` to avoid repeating database paths
- **Choose Backend**: Use `TaxSQLite` for large datasets with limited memory
- **Batch Operations**: Process multiple TaxIDs in batches rather than individual calls

## Use Cases

- **🧬 Metagenomics**: Classify and annotate environmental sequences
- **🔬 Phylogenetics**: Build taxonomic trees and study evolutionary relationships
- **📊 Bioinformatics**: Pipeline integration for taxonomy-aware analysis
- **🔍 Data Validation**: Verify and standardize organism names in datasets
- **📈 Research**: Large-scale taxonomic studies and biodiversity analysis

## Requirements

- **Python**: 3.10+
- **Dependencies**: `rapidfuzz`, `tqdm`
- **Data**: NCBI taxdump files (~300MB compressed, ~2GB extracted)
- **Memory**: ~500MB RAM for full database (less with SQLite backend)

## Development & Contributing

### Development Setup

```bash
# Clone repository
git clone https://github.com/omegahh/taxdumpy.git
cd taxdumpy

# Install in development mode
pip install -e .[dev]

# Run tests
pytest

# Format code
black src/ tests/

# Check types and linting
make lint
```

### CI/CD Pipeline

The project uses GitHub Actions for automated testing and deployment:

- **CI Workflow**: Tests across Python 3.10-3.13, code formatting, and coverage
- **PyPI Publishing**: Automatic releases on version tags (`v*`)
- **Test PyPI**: Pre-release testing with tags like `v1.2.3-beta.1`

### Release Process

```bash
# Automated release (recommended)
python scripts/release.py --version 1.2.3 --upload

# Manual tagging triggers GitHub Actions
git tag v1.2.3
git push origin v1.2.3
```

### Contributing Guidelines

1. **Code Style**: Use `black` for formatting
2. **Type Hints**: Include comprehensive type annotations
3. **Testing**: Maintain >80% test coverage
4. **Documentation**: Update README and docstrings
5. **Commits**: Use conventional commit messages

## License

MIT © 2025 [Omega HH](https://github.com/omegahh)

---

**Related Projects**: [TaxonKit](https://github.com/shenwei356/taxonkit) (Go), [ete3](https://github.com/etetoolkit/ete) (Python), [taxizedb](https://github.com/ropensci/taxizedb) (R)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "taxdumpy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "NCBI, metagenomics, taxonomy, tree-of-life",
    "author": null,
    "author_email": "Omega HH <omeganju@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/db/ae/3d7bc2f86e738e20100d7caeb1ae1440124bed7747ded58baf0a839a6b87/taxdumpy-1.1.5.tar.gz",
    "platform": null,
    "description": "# Taxdumpy \ud83e\uddec\n\n_A high-performance Python toolkit for parsing NCBI Taxonomy databases with lineage resolution and fuzzy search_\n\n[![CI](https://github.com/omegahh/taxdumpy/workflows/CI/badge.svg)](https://github.com/omegahh/taxdumpy/actions/workflows/ci.yml)\n[![PyPI version](https://img.shields.io/pypi/v/taxdumpy?color=green)](https://pypi.org/project/taxdumpy/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![Development Status](https://img.shields.io/badge/Development%20Status-5%20Production/Stable-brightgreen)](https://pypi.org/project/taxdumpy/)\n[![codecov](https://codecov.io/gh/omegahh/taxdumpy/branch/main/graph/badge.svg)](https://codecov.io/gh/omegahh/taxdumpy)\n\n## Features\n\n- **\ud83d\ude80 Blazing Fast Parsing**\n  Optimized loading of NCBI taxdump files (`nodes.dmp`, `names.dmp`, etc.) with pickle caching for 3x speedup\n\n- **\ud83d\udd2c Comprehensive Taxon Operations**\n  - TaxID validation and complete lineage tracing\n  - Scientific name resolution and rank-based filtering\n  - Handle merged/deleted nodes and legacy taxonomies\n  - Access to division information and metadata\n\n- **\ud83d\udd0d Fuzzy Search**\n  Rapid approximate name matching using `rapidfuzz` - find organisms even with typos\n\n- **\u26a1 High Performance**\n  - Memory-efficient data structures for large taxonomies\n  - Dual backend support: in-memory (TaxDb) and SQLite (TaxSQLite)\n  - Lazy loading and optimized caching strategies\n\n- **\ud83d\udda5\ufe0f Command Line Interface**\n  Ready-to-use CLI for caching, searching, and lineage resolution\n\n## Installation\n\n```bash\npip install taxdumpy\n```\n\n**Development Installation:**\n\n```bash\ngit clone https://github.com/omegahh/taxdumpy.git\ncd taxdumpy\npip install -e .\n```\n\n**With Development Dependencies:**\n\n```bash\npip install -e .[dev]\n```\n\n## Quick Start\n\n### Basic Usage\n\n```python\nfrom taxdumpy import TaxDb, Taxon\n\n# Initialize database\ntaxdb = TaxDb(\"/path/to/taxdump\")\n\n# Create taxon objects\nhuman = Taxon(9606, taxdb)  # Homo sapiens\necoli = Taxon(511145, taxdb)  # E. coli K-12\n\n# Access lineage information\nprint(human.name_lineage)\n# ['Homo sapiens', 'Homo', 'Hominidae', 'Primates', ..., 'cellular organisms']\n\nprint(human.rank_lineage)\n# ['species', 'genus', 'family', 'order', ..., 'superkingdom']\n\n# Check taxonomic properties\nprint(f\"Rank: {human.rank}\")           # species\nprint(f\"Division: {human.division}\")   # Mammals\nprint(f\"Is legacy: {human.is_legacy}\") # False\n```\n\n### Fuzzy Search\n\n```python\n# Search with typos and partial matches\nresults = taxdb._rapid_fuzz(\"Escherichia coli\", limit=5)\nfor match in results:\n    print(f\"{match['name']} (TaxID: {match['taxid']}, Score: {match['score']})\")\n\n# Search influenza strains\nflu_results = taxdb._rapid_fuzz(\"Influenza A\", limit=10)\n```\n\n## Command Line Interface\n\n### Check Version\n\n```bash\n# Display current version\ntaxdumpy --version\n# Output: taxdumpy 0.1.1\n```\n\n### Cache Database\n\n```bash\n# Cache full NCBI taxonomy database\ntaxdumpy cache -d /path/to/taxdump\n\n# Create fast cache with specific organisms\ntaxdumpy cache -d /path/to/taxdump -f important_taxids.txt\n```\n\n### Search Operations\n\n```bash\n# Search for organisms (with fuzzy matching)\ntaxdumpy search --fast \"Escherichia coli\"\ntaxdumpy search \"Homo sapiens\"\n\n# Limit search results\ntaxdumpy search --limit 5 \"Influenza A\"\n\n# Search with custom database path\ntaxdumpy search -d /custom/path \"Influenza A\"\n```\n\n### Lineage Tracing\n\n```bash\n# Get complete lineage for TaxID\ntaxdumpy lineage --fast 511145  # E. coli K-12 MG1655\ntaxdumpy lineage 9606           # Homo sapiens\n\n# With custom database path\ntaxdumpy lineage -d /custom/path 9606\n```\n\n## Database Setup\n\n### 1. Download NCBI Taxonomy Data\n\n```bash\n# Create directory for taxonomy data\nmkdir -p ~/.taxonkit\n\n# Download latest taxdump\nwget ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gz -P ~/.taxonkit\n\n# Extract files\ntar -xzf ~/.taxonkit/taxdump.tar.gz -C ~/.taxonkit\n```\n\n### 2. Initialize Database\n\n```bash\n# Create full cache (recommended for regular use)\ntaxdumpy cache -d ~/.taxonkit\n\n# Or create fast cache with specific organisms\necho -e \"9606\\n511145\\n7227\" > important_species.txt\ntaxdumpy cache -d ~/.taxonkit -f important_species.txt\n```\n\n### 3. Set Environment Variable (Optional)\n\n```bash\nexport TAXDB_PATH=~/.taxonkit\n```\n\n## Advanced Usage\n\n### SQLite Backend\n\n```python\nfrom taxdumpy import TaxSQLite\n\n# Use SQLite for memory-efficient storage\ndb = TaxSQLite(\"/path/to/database.sqlite\")\ndb.build_database(\"/path/to/taxdump\")\n\n# Same API as TaxDb\ntaxon = Taxon(9606, db)\nprint(taxon.name_lineage)\n```\n\n### Batch Processing\n\n```python\nfrom taxdumpy import TaxDb, Taxon\n\n# Reuse database instance for efficiency\ntaxdb = TaxDb(\"/path/to/taxdump\", fast=True)\n\ntaxids = [9606, 511145, 7227, 4932]  # Human, E.coli, Fly, Yeast\nfor taxid in taxids:\n    taxon = Taxon(taxid, taxdb)\n    print(f\"{taxon.name}: {' > '.join(taxon.name_lineage[:3])}\")\n```\n\n### Custom Utilities\n\n```python\nfrom taxdumpy import upper_rank_id\n\n# Find parent at specific taxonomic rank\nkingdom_id = upper_rank_id(9606, \"kingdom\", taxdb)\nprint(f\"Human kingdom TaxID: {kingdom_id}\")  # 33208 (Metazoa)\n```\n\n## API Reference\n\n### Core Classes\n\n**TaxDb**: In-memory dictionary-based database\n\n```python\nTaxDb(taxdump_dir: str, fast: bool = False)\n```\n\n**TaxSQLite**: SQLite-based persistent database\n\n```python\nTaxSQLite(db_path: str)\n```\n\n**Taxon**: Taxonomic unit with lineage resolution\n\n```python\nTaxon(taxid: int, taxdb: TaxDb | TaxSQLite)\n\n# Properties\n.name: str              # Scientific name\n.rank: str              # Taxonomic rank\n.division: str          # NCBI division\n.lineage: List[Node]    # Complete lineage\n.name_lineage: List[str] # Names only\n.rank_lineage: List[str] # Ranks only\n.is_legacy: bool        # Legacy/merged node\n```\n\n## Performance Tips\n\n- **Use Fast Mode**: `TaxDb(path, fast=True)` provides ~3x speedup with pre-cached data\n- **Reuse Instances**: Create one `TaxDb` instance and reuse for multiple operations\n- **Environment Variables**: Set `TAXDB_PATH` to avoid repeating database paths\n- **Choose Backend**: Use `TaxSQLite` for large datasets with limited memory\n- **Batch Operations**: Process multiple TaxIDs in batches rather than individual calls\n\n## Use Cases\n\n- **\ud83e\uddec Metagenomics**: Classify and annotate environmental sequences\n- **\ud83d\udd2c Phylogenetics**: Build taxonomic trees and study evolutionary relationships\n- **\ud83d\udcca Bioinformatics**: Pipeline integration for taxonomy-aware analysis\n- **\ud83d\udd0d Data Validation**: Verify and standardize organism names in datasets\n- **\ud83d\udcc8 Research**: Large-scale taxonomic studies and biodiversity analysis\n\n## Requirements\n\n- **Python**: 3.10+\n- **Dependencies**: `rapidfuzz`, `tqdm`\n- **Data**: NCBI taxdump files (~300MB compressed, ~2GB extracted)\n- **Memory**: ~500MB RAM for full database (less with SQLite backend)\n\n## Development & Contributing\n\n### Development Setup\n\n```bash\n# Clone repository\ngit clone https://github.com/omegahh/taxdumpy.git\ncd taxdumpy\n\n# Install in development mode\npip install -e .[dev]\n\n# Run tests\npytest\n\n# Format code\nblack src/ tests/\n\n# Check types and linting\nmake lint\n```\n\n### CI/CD Pipeline\n\nThe project uses GitHub Actions for automated testing and deployment:\n\n- **CI Workflow**: Tests across Python 3.10-3.13, code formatting, and coverage\n- **PyPI Publishing**: Automatic releases on version tags (`v*`)\n- **Test PyPI**: Pre-release testing with tags like `v1.2.3-beta.1`\n\n### Release Process\n\n```bash\n# Automated release (recommended)\npython scripts/release.py --version 1.2.3 --upload\n\n# Manual tagging triggers GitHub Actions\ngit tag v1.2.3\ngit push origin v1.2.3\n```\n\n### Contributing Guidelines\n\n1. **Code Style**: Use `black` for formatting\n2. **Type Hints**: Include comprehensive type annotations\n3. **Testing**: Maintain >80% test coverage\n4. **Documentation**: Update README and docstrings\n5. **Commits**: Use conventional commit messages\n\n## License\n\nMIT \u00a9 2025 [Omega HH](https://github.com/omegahh)\n\n---\n\n**Related Projects**: [TaxonKit](https://github.com/shenwei356/taxonkit) (Go), [ete3](https://github.com/etetoolkit/ete) (Python), [taxizedb](https://github.com/ropensci/taxizedb) (R)\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2025 Omega HH\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.",
    "summary": "Python package for efficiently parsing NCBI's taxdump database",
    "version": "1.1.5",
    "project_urls": {
        "Documentation": "https://github.com/omegahh/taxdumpy",
        "Issues": "https://github.com/omegahh/taxdumpy/issues",
        "Source": "https://github.com/omegahh/taxdumpy"
    },
    "split_keywords": [
        "ncbi",
        " metagenomics",
        " taxonomy",
        " tree-of-life"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "acbbc5d8237d5440954387792b009a7926794ef38997b751343a951053587b1c",
                "md5": "12419350a2b70383fae3cf27d2355ec8",
                "sha256": "62eb0fa907996baffc8712993d5b8220253a88ee351a176e3bff379837a30240"
            },
            "downloads": -1,
            "filename": "taxdumpy-1.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "12419350a2b70383fae3cf27d2355ec8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 25534,
            "upload_time": "2025-08-18T09:58:59",
            "upload_time_iso_8601": "2025-08-18T09:58:59.158821Z",
            "url": "https://files.pythonhosted.org/packages/ac/bb/c5d8237d5440954387792b009a7926794ef38997b751343a951053587b1c/taxdumpy-1.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dbae3d7bc2f86e738e20100d7caeb1ae1440124bed7747ded58baf0a839a6b87",
                "md5": "499ced9d045781e4ac09ee0dd65c9fe3",
                "sha256": "319f6a568c35353f4fcc19effc83b06d8e0dbc58f7833eafaec7356fe494b441"
            },
            "downloads": -1,
            "filename": "taxdumpy-1.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "499ced9d045781e4ac09ee0dd65c9fe3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 42876,
            "upload_time": "2025-08-18T09:59:00",
            "upload_time_iso_8601": "2025-08-18T09:59:00.450724Z",
            "url": "https://files.pythonhosted.org/packages/db/ae/3d7bc2f86e738e20100d7caeb1ae1440124bed7747ded58baf0a839a6b87/taxdumpy-1.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-18 09:59:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "omegahh",
    "github_project": "taxdumpy",
    "github_not_found": true,
    "lcname": "taxdumpy"
}
        
Elapsed time: 1.71676s