niamoto


Nameniamoto JSON
Version 0.6.1 PyPI version JSON
download
home_pageNone
SummaryNone
upload_time2025-07-09 13:37:11
maintainerNone
docs_urlNone
authorNone
requires_python<4,>=3.10
licenseGPL-3.0-or-later
keywords niamoto
VCS
bugtrack_url
requirements affine alembic annotated-types attrs blinker certifi charset-normalizer click click-plugins cligj fiona flask geoalchemy2 geopandas idna itsdangerous jinja2 loguru mako markdown-it-py markupsafe mdurl mypy mypy-extensions narwhals numpy packaging pandas plotly prompt-toolkit psutil pyarrow pydantic pydantic-core pygments pyogrio pyparsing pyproj python-dateutil pytz pyyaml rasterio requests rich rjsmin rtree shapely six sqlalchemy tabulate topojson typing-extensions tzdata urllib3 wcwidth werkzeug
Travis-CI No Travis.
coveralls test coverage
            <div align="center">
  <img src="https://raw.githubusercontent.com/niamoto/niamoto/main/assets/niamoto_logo.png" alt="Niamoto Logo" width="200"/>

  <h1>Niamoto</h1>

  <p>
    <strong>A powerful CLI tool for ecological data management and visualization</strong>
  </p>

  <p>
    Transform your ecological data into interactive websites with taxonomic analysis,
    statistical insights, and beautiful visualizations.
  </p>

  [![PyPI - Version](https://img.shields.io/pypi/v/niamoto?color=blue&style=for-the-badge)](https://pypi.org/project/niamoto)
  [![Python Versions](https://img.shields.io/pypi/pyversions/niamoto?style=for-the-badge)](https://pypi.org/project/niamoto)
  [![License](https://img.shields.io/github/license/niamoto/niamoto?style=for-the-badge)](LICENSE)
  [![Codecov (with branch)](https://img.shields.io/codecov/c/github/niamoto/niamoto/main?style=for-the-badge)](https://codecov.io/gh/niamoto/niamoto)
  [![Read the Docs (version)](https://img.shields.io/readthedocs/niamoto/latest?style=for-the-badge)](https://niamoto.readthedocs.io/)

  [πŸ”— **View Live Demo**](https://niamoto.github.io/niamoto-static-site/) | [πŸ“– **Browse Documentation**](https://niamoto.readthedocs.io/)
</div>

## πŸš€ Quick Start

```bash
# Install Niamoto
pip install niamoto

# Initialize your project
niamoto init

# Import your data
niamoto import

# Generate statistics
niamoto transform

# Create your website
niamoto export
```

**✨ That's it!** Your ecological data website is ready at `exports/web/`.

## πŸ–ΌοΈ Screenshots

### Taxonomic Index Page
![Taxonomic Index](https://raw.githubusercontent.com/niamoto/niamoto/main/assets/screenshots/taxon-index.png)
*Browse and search through your taxonomic data with interactive filters*

### Taxon Detail Page
![Taxon Detail](https://raw.githubusercontent.com/niamoto/niamoto/main/assets/screenshots/taxon-detail.png)
*Detailed view with statistics, distributions, and interactive visualizations*

## ✨ Features

- 🌿 **Ecological Data Management** - Import and manage taxonomic, occurrence, and plot data
- πŸ“Š **Statistical Analysis** - Built-in plugins for distributions, rankings, and summaries
- πŸ—ΊοΈ **Geospatial Analysis** - Interactive maps and spatial statistics
- πŸ“ˆ **Data Visualization** - Charts, maps, and dashboards with Plotly
- πŸ—οΈ **Plugin System** - Extensible architecture for custom transformations and generations
- 🌐 **Static Site Generation** - Generate fast, SEO-friendly websites
- ⚑ **CLI Interface** - Simple commands for the entire workflow
- πŸ”§ **Configuration-Driven** - YAML-based configuration for reproducibility

## 🎯 Use Cases

Niamoto is perfect for:

- **Research Institutions** - Manage biodiversity databases and generate research websites
- **Conservation Organizations** - Track species distributions and create public dashboards
- **Botanical Gardens** - Document collections and share taxonomic information
- **Environmental Consultants** - Analyze ecological data and create client reports
- **Government Agencies** - Monitor biodiversity and publish open data portals

---

## πŸ“– Table of Contents

- [πŸš€ Quick Start](#-quick-start)
- [πŸ–ΌοΈ Screenshots](#️-screenshots)
  - [Taxonomic Index Page](#taxonomic-index-page)
  - [Taxon Detail Page](#taxon-detail-page)
- [✨ Features](#-features)
- [🎯 Use Cases](#-use-cases)
- [πŸ“– Table of Contents](#-table-of-contents)
- [πŸ“¦ Installation](#-installation)
  - [For Users](#for-users)
  - [For Developers](#for-developers)
- [πŸƒβ€β™‚οΈ Usage](#️-usage)
  - [Initial Setup](#initial-setup)
  - [Data Import](#data-import)
  - [Generate Statistics and Website](#generate-statistics-and-website)
- [πŸ“‚ Project Structure](#-project-structure)
- [πŸ”§ Configuration](#-configuration)
- [🧩 Plugin System](#-plugin-system)
- [πŸ‘©β€πŸ’» Development](#-development)
- [πŸ“š Documentation](#-documentation)
- [🀝 Contributing](#-contributing)
- [πŸ“„ License](#-license)
- [❓ FAQ](#-faq)
- [🀝 Community \& Support](#-community--support)
- [πŸ“… Changelog](#-changelog)

## πŸ“¦ Installation

### For Users
```bash
pip install niamoto
```

### For Developers
```bash
# Clone and setup development environment
git clone https://github.com/niamoto/niamoto.git
cd niamoto
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
```

πŸ“‹ **[Detailed Installation Guide](docs/getting-started/installation.md)**

## πŸƒβ€β™‚οΈ Usage

### Initial Setup

```bash
# Initialize your project
niamoto init

# This creates the default configuration files:
# - config/config.yml     (global settings)
# - config/import.yml     (data sources)
# - config/transform.yml  (data processing)
# - config/export.yml     (website generation)
```

### Data Import

```bash
# Import all data sources from import.yml
niamoto import

# Or import specific data types
niamoto import taxonomy <file>
niamoto import occurrences <file>
niamoto import plots <file>
```

### Generate Statistics and Website

```bash
# Process data transformations
niamoto transform

# Generate static website
niamoto export

# Your website is ready at exports/web/
```

πŸ“– **[Complete CLI Reference](docs/references/cli-commands.md)** | **[Data Import Guide](docs/guides/data-import.md)**

## πŸ“‚ Project Structure

```bash
config/          - YAML configuration files for data pipeline:
  config.yml     - Global configuration options
  import.yml     - Data import configuration
  transform.yml  - Data transformation configuration
  export.yml     - Widget and chart configurations

db/              - Database files and schemas
exports/         - Generated widget data and statistics
imports/         - Raw data files (CSV, shapefiles, rasters)
logs/            - Application logs and debug information
plugins/         - Custom plugin directory for extending functionality
templates/       - Custom Jinja2 templates for website generation
```

## πŸ”§ Configuration

Niamoto uses YAML configuration files to define your data pipeline:

- `config/import.yml` - Data sources (CSV, GIS files)
- `config/transform.yml` - Data processing and statistics
- `config/export.yml` - Website generation and visualizations

πŸ“– **[Complete Configuration Guide](docs/guides/configuration.md)** | **[Data Import Guide](docs/guides/data-import.md)**

## 🧩 Plugin System

Niamoto includes built-in plugins for data transformation and visualization, with support for custom plugins.

πŸ“– **[Plugin Development Guide](docs/guides/custom_plugin.md)** | **[Plugin Reference](docs/guides/plugin-reference.md)**

## πŸ‘©β€πŸ’» Development

For development setup, testing, and contribution guidelines:

πŸ“– **[Development Setup Guide](docs/development/setup.md)** | **[Contributing Guidelines](docs/development/contributing.md)**

## πŸ“š Documentation

The complete documentation is available in the `docs/` directory and online:

- πŸ“– **[Online Documentation](https://niamoto.readthedocs.io/)**
- πŸš€ **[Getting Started Guide](docs/getting-started/quickstart.md)**
- πŸ“‹ **[Configuration Guide](docs/guides/configuration.md)**
- 🧩 **[Plugin Development](docs/guides/custom_plugin.md)**
- πŸ“– **[API Reference](docs/api/)**

To build the documentation locally:

```bash
cd docs
sphinx-apidoc -o . ../src/niamoto
make html
```

## 🀝 Contributing

We welcome contributions to Niamoto! Here's how you can help:

1. Check for open issues or open a new issue to start a discussion
2. Fork the repository and create your feature branch
3. Write tests for new features and ensure existing tests pass
4. Follow our coding standards (Black formatting, type hints, docstrings)
5. Submit a pull request

πŸ“– **[Contributing Guide](docs/development/contributing.md)**

## πŸ“„ License

`niamoto` is distributed under the terms of the [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) license.

## ❓ FAQ

<details>
<summary><strong>What data formats does Niamoto support?</strong></summary>

Niamoto supports CSV files for taxonomic and occurrence data, and common GIS formats (Shapefile, GeoPackage, GeoTIFF) for spatial data.
</details>

<details>
<summary><strong>Can I customize the generated website?</strong></summary>

Yes! Niamoto uses Jinja2 templates and supports custom CSS. You can completely customize the look and feel of your website.
</details>

<details>
<summary><strong>How do I add custom data transformations?</strong></summary>

You can create custom plugins by extending the base plugin classes. See our [Plugin Development Guide](docs/guides/custom_plugin.md).
</details>

<details>
<summary><strong>Is Niamoto suitable for large datasets?</strong></summary>

Yes! Niamoto uses SQLite with spatial extensions and is optimized for performance. It can handle datasets with millions of records efficiently.
</details>

## 🀝 Community & Support

- πŸ’¬ **Discussions** - [GitHub Discussions](https://github.com/niamoto/niamoto/discussions)
- πŸ› **Bug Reports** - [GitHub Issues](https://github.com/niamoto/niamoto/issues)
- πŸ“– **Documentation** - [niamoto.readthedocs.io](https://niamoto.readthedocs.io/)
- πŸ”— **Live Demo** - [niamoto.github.io/niamoto-static-site](https://niamoto.github.io/niamoto-static-site/)

## πŸ“… Changelog

See [CHANGELOG.md](CHANGELOG.md) for a list of changes in each release.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "niamoto",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.10",
    "maintainer_email": null,
    "keywords": "niamoto",
    "author": null,
    "author_email": "Julien Barbe <julien.barbe@me.com>",
    "download_url": "https://files.pythonhosted.org/packages/c7/56/6a0b133283d9beb40aaa5d66be4277b7f321b490af761c4f77b37c28b4cd/niamoto-0.6.1.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/niamoto/niamoto/main/assets/niamoto_logo.png\" alt=\"Niamoto Logo\" width=\"200\"/>\n\n  <h1>Niamoto</h1>\n\n  <p>\n    <strong>A powerful CLI tool for ecological data management and visualization</strong>\n  </p>\n\n  <p>\n    Transform your ecological data into interactive websites with taxonomic analysis,\n    statistical insights, and beautiful visualizations.\n  </p>\n\n  [![PyPI - Version](https://img.shields.io/pypi/v/niamoto?color=blue&style=for-the-badge)](https://pypi.org/project/niamoto)\n  [![Python Versions](https://img.shields.io/pypi/pyversions/niamoto?style=for-the-badge)](https://pypi.org/project/niamoto)\n  [![License](https://img.shields.io/github/license/niamoto/niamoto?style=for-the-badge)](LICENSE)\n  [![Codecov (with branch)](https://img.shields.io/codecov/c/github/niamoto/niamoto/main?style=for-the-badge)](https://codecov.io/gh/niamoto/niamoto)\n  [![Read the Docs (version)](https://img.shields.io/readthedocs/niamoto/latest?style=for-the-badge)](https://niamoto.readthedocs.io/)\n\n  [\ud83d\udd17 **View Live Demo**](https://niamoto.github.io/niamoto-static-site/) | [\ud83d\udcd6 **Browse Documentation**](https://niamoto.readthedocs.io/)\n</div>\n\n## \ud83d\ude80 Quick Start\n\n```bash\n# Install Niamoto\npip install niamoto\n\n# Initialize your project\nniamoto init\n\n# Import your data\nniamoto import\n\n# Generate statistics\nniamoto transform\n\n# Create your website\nniamoto export\n```\n\n**\u2728 That's it!** Your ecological data website is ready at `exports/web/`.\n\n## \ud83d\uddbc\ufe0f Screenshots\n\n### Taxonomic Index Page\n![Taxonomic Index](https://raw.githubusercontent.com/niamoto/niamoto/main/assets/screenshots/taxon-index.png)\n*Browse and search through your taxonomic data with interactive filters*\n\n### Taxon Detail Page\n![Taxon Detail](https://raw.githubusercontent.com/niamoto/niamoto/main/assets/screenshots/taxon-detail.png)\n*Detailed view with statistics, distributions, and interactive visualizations*\n\n## \u2728 Features\n\n- \ud83c\udf3f **Ecological Data Management** - Import and manage taxonomic, occurrence, and plot data\n- \ud83d\udcca **Statistical Analysis** - Built-in plugins for distributions, rankings, and summaries\n- \ud83d\uddfa\ufe0f **Geospatial Analysis** - Interactive maps and spatial statistics\n- \ud83d\udcc8 **Data Visualization** - Charts, maps, and dashboards with Plotly\n- \ud83c\udfd7\ufe0f **Plugin System** - Extensible architecture for custom transformations and generations\n- \ud83c\udf10 **Static Site Generation** - Generate fast, SEO-friendly websites\n- \u26a1 **CLI Interface** - Simple commands for the entire workflow\n- \ud83d\udd27 **Configuration-Driven** - YAML-based configuration for reproducibility\n\n## \ud83c\udfaf Use Cases\n\nNiamoto is perfect for:\n\n- **Research Institutions** - Manage biodiversity databases and generate research websites\n- **Conservation Organizations** - Track species distributions and create public dashboards\n- **Botanical Gardens** - Document collections and share taxonomic information\n- **Environmental Consultants** - Analyze ecological data and create client reports\n- **Government Agencies** - Monitor biodiversity and publish open data portals\n\n---\n\n## \ud83d\udcd6 Table of Contents\n\n- [\ud83d\ude80 Quick Start](#-quick-start)\n- [\ud83d\uddbc\ufe0f Screenshots](#\ufe0f-screenshots)\n  - [Taxonomic Index Page](#taxonomic-index-page)\n  - [Taxon Detail Page](#taxon-detail-page)\n- [\u2728 Features](#-features)\n- [\ud83c\udfaf Use Cases](#-use-cases)\n- [\ud83d\udcd6 Table of Contents](#-table-of-contents)\n- [\ud83d\udce6 Installation](#-installation)\n  - [For Users](#for-users)\n  - [For Developers](#for-developers)\n- [\ud83c\udfc3\u200d\u2642\ufe0f Usage](#\ufe0f-usage)\n  - [Initial Setup](#initial-setup)\n  - [Data Import](#data-import)\n  - [Generate Statistics and Website](#generate-statistics-and-website)\n- [\ud83d\udcc2 Project Structure](#-project-structure)\n- [\ud83d\udd27 Configuration](#-configuration)\n- [\ud83e\udde9 Plugin System](#-plugin-system)\n- [\ud83d\udc69\u200d\ud83d\udcbb Development](#-development)\n- [\ud83d\udcda Documentation](#-documentation)\n- [\ud83e\udd1d Contributing](#-contributing)\n- [\ud83d\udcc4 License](#-license)\n- [\u2753 FAQ](#-faq)\n- [\ud83e\udd1d Community \\& Support](#-community--support)\n- [\ud83d\udcc5 Changelog](#-changelog)\n\n## \ud83d\udce6 Installation\n\n### For Users\n```bash\npip install niamoto\n```\n\n### For Developers\n```bash\n# Clone and setup development environment\ngit clone https://github.com/niamoto/niamoto.git\ncd niamoto\nuv venv && source .venv/bin/activate\nuv pip install -e \".[dev]\"\n```\n\n\ud83d\udccb **[Detailed Installation Guide](docs/getting-started/installation.md)**\n\n## \ud83c\udfc3\u200d\u2642\ufe0f Usage\n\n### Initial Setup\n\n```bash\n# Initialize your project\nniamoto init\n\n# This creates the default configuration files:\n# - config/config.yml     (global settings)\n# - config/import.yml     (data sources)\n# - config/transform.yml  (data processing)\n# - config/export.yml     (website generation)\n```\n\n### Data Import\n\n```bash\n# Import all data sources from import.yml\nniamoto import\n\n# Or import specific data types\nniamoto import taxonomy <file>\nniamoto import occurrences <file>\nniamoto import plots <file>\n```\n\n### Generate Statistics and Website\n\n```bash\n# Process data transformations\nniamoto transform\n\n# Generate static website\nniamoto export\n\n# Your website is ready at exports/web/\n```\n\n\ud83d\udcd6 **[Complete CLI Reference](docs/references/cli-commands.md)** | **[Data Import Guide](docs/guides/data-import.md)**\n\n## \ud83d\udcc2 Project Structure\n\n```bash\nconfig/          - YAML configuration files for data pipeline:\n  config.yml     - Global configuration options\n  import.yml     - Data import configuration\n  transform.yml  - Data transformation configuration\n  export.yml     - Widget and chart configurations\n\ndb/              - Database files and schemas\nexports/         - Generated widget data and statistics\nimports/         - Raw data files (CSV, shapefiles, rasters)\nlogs/            - Application logs and debug information\nplugins/         - Custom plugin directory for extending functionality\ntemplates/       - Custom Jinja2 templates for website generation\n```\n\n## \ud83d\udd27 Configuration\n\nNiamoto uses YAML configuration files to define your data pipeline:\n\n- `config/import.yml` - Data sources (CSV, GIS files)\n- `config/transform.yml` - Data processing and statistics\n- `config/export.yml` - Website generation and visualizations\n\n\ud83d\udcd6 **[Complete Configuration Guide](docs/guides/configuration.md)** | **[Data Import Guide](docs/guides/data-import.md)**\n\n## \ud83e\udde9 Plugin System\n\nNiamoto includes built-in plugins for data transformation and visualization, with support for custom plugins.\n\n\ud83d\udcd6 **[Plugin Development Guide](docs/guides/custom_plugin.md)** | **[Plugin Reference](docs/guides/plugin-reference.md)**\n\n## \ud83d\udc69\u200d\ud83d\udcbb Development\n\nFor development setup, testing, and contribution guidelines:\n\n\ud83d\udcd6 **[Development Setup Guide](docs/development/setup.md)** | **[Contributing Guidelines](docs/development/contributing.md)**\n\n## \ud83d\udcda Documentation\n\nThe complete documentation is available in the `docs/` directory and online:\n\n- \ud83d\udcd6 **[Online Documentation](https://niamoto.readthedocs.io/)**\n- \ud83d\ude80 **[Getting Started Guide](docs/getting-started/quickstart.md)**\n- \ud83d\udccb **[Configuration Guide](docs/guides/configuration.md)**\n- \ud83e\udde9 **[Plugin Development](docs/guides/custom_plugin.md)**\n- \ud83d\udcd6 **[API Reference](docs/api/)**\n\nTo build the documentation locally:\n\n```bash\ncd docs\nsphinx-apidoc -o . ../src/niamoto\nmake html\n```\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions to Niamoto! Here's how you can help:\n\n1. Check for open issues or open a new issue to start a discussion\n2. Fork the repository and create your feature branch\n3. Write tests for new features and ensure existing tests pass\n4. Follow our coding standards (Black formatting, type hints, docstrings)\n5. Submit a pull request\n\n\ud83d\udcd6 **[Contributing Guide](docs/development/contributing.md)**\n\n## \ud83d\udcc4 License\n\n`niamoto` is distributed under the terms of the [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) license.\n\n## \u2753 FAQ\n\n<details>\n<summary><strong>What data formats does Niamoto support?</strong></summary>\n\nNiamoto supports CSV files for taxonomic and occurrence data, and common GIS formats (Shapefile, GeoPackage, GeoTIFF) for spatial data.\n</details>\n\n<details>\n<summary><strong>Can I customize the generated website?</strong></summary>\n\nYes! Niamoto uses Jinja2 templates and supports custom CSS. You can completely customize the look and feel of your website.\n</details>\n\n<details>\n<summary><strong>How do I add custom data transformations?</strong></summary>\n\nYou can create custom plugins by extending the base plugin classes. See our [Plugin Development Guide](docs/guides/custom_plugin.md).\n</details>\n\n<details>\n<summary><strong>Is Niamoto suitable for large datasets?</strong></summary>\n\nYes! Niamoto uses SQLite with spatial extensions and is optimized for performance. It can handle datasets with millions of records efficiently.\n</details>\n\n## \ud83e\udd1d Community & Support\n\n- \ud83d\udcac **Discussions** - [GitHub Discussions](https://github.com/niamoto/niamoto/discussions)\n- \ud83d\udc1b **Bug Reports** - [GitHub Issues](https://github.com/niamoto/niamoto/issues)\n- \ud83d\udcd6 **Documentation** - [niamoto.readthedocs.io](https://niamoto.readthedocs.io/)\n- \ud83d\udd17 **Live Demo** - [niamoto.github.io/niamoto-static-site](https://niamoto.github.io/niamoto-static-site/)\n\n## \ud83d\udcc5 Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a list of changes in each release.\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": null,
    "version": "0.6.1",
    "project_urls": {
        "Documentation": "https://github.com/niamoto/niamoto#readme",
        "Homepage": "https://github.com/niamoto/niamoto",
        "Repository": "https://github.com/niamoto/niamoto"
    },
    "split_keywords": [
        "niamoto"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "32d73aee2f2be520d0da44cd5c2114ae7992af55b1987a6e6b5dfd92331e9a8c",
                "md5": "ae34dd55a7d1acf729692ce8b9a30e2c",
                "sha256": "734c8fcded86a4b1430ef116e922deafc008528e20788a66f23575ae62e32c5d"
            },
            "downloads": -1,
            "filename": "niamoto-0.6.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ae34dd55a7d1acf729692ce8b9a30e2c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.10",
            "size": 4611318,
            "upload_time": "2025-07-09T13:37:07",
            "upload_time_iso_8601": "2025-07-09T13:37:07.890209Z",
            "url": "https://files.pythonhosted.org/packages/32/d7/3aee2f2be520d0da44cd5c2114ae7992af55b1987a6e6b5dfd92331e9a8c/niamoto-0.6.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c7566a0b133283d9beb40aaa5d66be4277b7f321b490af761c4f77b37c28b4cd",
                "md5": "48c6476acb28e286fd1c90e3d1cdd8fa",
                "sha256": "396f4ca83bc7a4a271fd4d68d63abb3644d6aa71516140e6fbe66be766a1aa14"
            },
            "downloads": -1,
            "filename": "niamoto-0.6.1.tar.gz",
            "has_sig": false,
            "md5_digest": "48c6476acb28e286fd1c90e3d1cdd8fa",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.10",
            "size": 4988879,
            "upload_time": "2025-07-09T13:37:11",
            "upload_time_iso_8601": "2025-07-09T13:37:11.277731Z",
            "url": "https://files.pythonhosted.org/packages/c7/56/6a0b133283d9beb40aaa5d66be4277b7f321b490af761c4f77b37c28b4cd/niamoto-0.6.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-09 13:37:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "niamoto",
    "github_project": "niamoto#readme",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "affine",
            "specs": [
                [
                    "==",
                    "3.0b1"
                ]
            ]
        },
        {
            "name": "alembic",
            "specs": [
                [
                    "==",
                    "1.14.1"
                ]
            ]
        },
        {
            "name": "annotated-types",
            "specs": [
                [
                    "==",
                    "0.7.0"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "25.1.0"
                ]
            ]
        },
        {
            "name": "blinker",
            "specs": [
                [
                    "==",
                    "1.9.0"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2025.1.31"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "3.4.1"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    "==",
                    "8.1.8"
                ]
            ]
        },
        {
            "name": "click-plugins",
            "specs": [
                [
                    "==",
                    "1.1.1"
                ]
            ]
        },
        {
            "name": "cligj",
            "specs": [
                [
                    "==",
                    "0.7.2"
                ]
            ]
        },
        {
            "name": "fiona",
            "specs": [
                [
                    "==",
                    "1.10.1"
                ]
            ]
        },
        {
            "name": "flask",
            "specs": [
                [
                    "==",
                    "3.1.0"
                ]
            ]
        },
        {
            "name": "geoalchemy2",
            "specs": [
                [
                    "==",
                    "0.17.0"
                ]
            ]
        },
        {
            "name": "geopandas",
            "specs": [
                [
                    "==",
                    "1.0.1"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.10"
                ]
            ]
        },
        {
            "name": "itsdangerous",
            "specs": [
                [
                    "==",
                    "2.2.0"
                ]
            ]
        },
        {
            "name": "jinja2",
            "specs": [
                [
                    "==",
                    "3.1.5"
                ]
            ]
        },
        {
            "name": "loguru",
            "specs": [
                [
                    "==",
                    "0.7.2"
                ]
            ]
        },
        {
            "name": "mako",
            "specs": [
                [
                    "==",
                    "1.3.9"
                ]
            ]
        },
        {
            "name": "markdown-it-py",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "markupsafe",
            "specs": [
                [
                    "==",
                    "3.0.2"
                ]
            ]
        },
        {
            "name": "mdurl",
            "specs": [
                [
                    "==",
                    "0.1.2"
                ]
            ]
        },
        {
            "name": "mypy",
            "specs": [
                [
                    "==",
                    "1.15.0"
                ]
            ]
        },
        {
            "name": "mypy-extensions",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "narwhals",
            "specs": [
                [
                    "==",
                    "1.37.1"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "2.2.3"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "24.2"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "2.2.3"
                ]
            ]
        },
        {
            "name": "plotly",
            "specs": [
                [
                    "==",
                    "6.0.1"
                ]
            ]
        },
        {
            "name": "prompt-toolkit",
            "specs": [
                [
                    "==",
                    "3.0.50"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    "==",
                    "7.0.0"
                ]
            ]
        },
        {
            "name": "pyarrow",
            "specs": [
                [
                    "==",
                    "19.0.1"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    "==",
                    "2.11.0a2"
                ]
            ]
        },
        {
            "name": "pydantic-core",
            "specs": [
                [
                    "==",
                    "2.29.0"
                ]
            ]
        },
        {
            "name": "pygments",
            "specs": [
                [
                    "==",
                    "2.19.1"
                ]
            ]
        },
        {
            "name": "pyogrio",
            "specs": [
                [
                    "==",
                    "0.10.0"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "3.2.1"
                ]
            ]
        },
        {
            "name": "pyproj",
            "specs": [
                [
                    "==",
                    "3.7.0"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.9.0.post0"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    "==",
                    "2025.1"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": [
                [
                    "==",
                    "6.0.2"
                ]
            ]
        },
        {
            "name": "rasterio",
            "specs": [
                [
                    "==",
                    "1.4.3"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    "==",
                    "13.9.4"
                ]
            ]
        },
        {
            "name": "rjsmin",
            "specs": [
                [
                    "==",
                    "1.2.3"
                ]
            ]
        },
        {
            "name": "rtree",
            "specs": [
                [
                    "==",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "shapely",
            "specs": [
                [
                    "==",
                    "2.0.7"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.17.0"
                ]
            ]
        },
        {
            "name": "sqlalchemy",
            "specs": [
                [
                    "==",
                    "2.0.38"
                ]
            ]
        },
        {
            "name": "tabulate",
            "specs": [
                [
                    "==",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "topojson",
            "specs": [
                [
                    "==",
                    "1.9"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    "==",
                    "4.12.2"
                ]
            ]
        },
        {
            "name": "tzdata",
            "specs": [
                [
                    "==",
                    "2025.1"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "2.3.0"
                ]
            ]
        },
        {
            "name": "wcwidth",
            "specs": [
                [
                    "==",
                    "0.2.13"
                ]
            ]
        },
        {
            "name": "werkzeug",
            "specs": [
                [
                    "==",
                    "3.1.3"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "niamoto"
}
        
Elapsed time: 2.08546s