Metadata-Version: 2.4
Name: pueblo
Version: 0.0.17
Summary: Pueblo - a Python toolbox library.
Author-email: Andreas Motl <andreas.motl@panodata.org>
Project-URL: changelog, https://github.com/pyveci/pueblo/blob/main/CHANGES.md
Project-URL: documentation, https://github.com/pyveci/pueblo
Project-URL: homepage, https://github.com/pyveci/pueblo
Project-URL: repository, https://github.com/pyveci/pueblo
Keywords: general purpose,library,mixed,pueblo
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Customer Service
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Telecommunications Industry
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Free Threading :: 1 - Unstable
Classifier: Topic :: Communications
Classifier: Topic :: Education
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Text Processing
Classifier: Topic :: Utilities
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: attrs
Requires-Dist: contextlib-chdir; python_version < "3.11"
Requires-Dist: importlib-metadata; python_version < "3.8"
Requires-Dist: platformdirs<5
Requires-Dist: tomli<3
Provides-Extra: all
Requires-Dist: pueblo[cli,dataframe,fileio,ngr,nlp,notebook,proc,sfa-full,testing]; extra == "all"
Provides-Extra: cli
Requires-Dist: click<9; extra == "cli"
Requires-Dist: click-aliases<2,>=1.0.4; extra == "cli"
Requires-Dist: colorlog<7; extra == "cli"
Requires-Dist: python-dotenv<2; extra == "cli"
Provides-Extra: dataframe
Requires-Dist: dask; extra == "dataframe"
Requires-Dist: numpy; extra == "dataframe"
Requires-Dist: pandas; extra == "dataframe"
Requires-Dist: pyarrow; extra == "dataframe"
Provides-Extra: develop
Requires-Dist: black[jupyter]<27; extra == "develop"
Requires-Dist: poethepoet<1; extra == "develop"
Requires-Dist: pyproject-fmt<3; extra == "develop"
Requires-Dist: ruff<0.16; extra == "develop"
Requires-Dist: ty<0.0.25; python_version >= "3.8" and extra == "develop"
Requires-Dist: validate-pyproject<1; extra == "develop"
Provides-Extra: fileio
Requires-Dist: fsspec[abfs,dask,gcs,git,github,http,s3,smb]<2026.3; extra == "fileio"
Requires-Dist: pathlibfs<0.6; extra == "fileio"
Requires-Dist: python-magic<0.5; extra == "fileio"
Requires-Dist: s3fs>=2021; extra == "fileio"
Requires-Dist: yarl<1.24; extra == "fileio"
Provides-Extra: mcp
Requires-Dist: mcp<2,>=1.0; extra == "mcp"
Requires-Dist: pyyaml<7; extra == "mcp"
Provides-Extra: ngr
Requires-Dist: pip; extra == "ngr"
Requires-Dist: pueblo[cli]; extra == "ngr"
Provides-Extra: nlp
Requires-Dist: aiohttp<3.14; extra == "nlp"
Requires-Dist: langchain-community<0.5; extra == "nlp"
Requires-Dist: langchain-core<1.3,>=0.2; extra == "nlp"
Requires-Dist: langchain-text-splitters<1.2; extra == "nlp"
Requires-Dist: requests-cache<2; extra == "nlp"
Requires-Dist: spacy<3.9; extra == "nlp"
Requires-Dist: unstructured<0.21.6; extra == "nlp"
Provides-Extra: notebook
Requires-Dist: nbclient<0.11; extra == "notebook"
Requires-Dist: nbdime<5; extra == "notebook"
Requires-Dist: notebook<8; extra == "notebook"
Requires-Dist: testbook<0.5; extra == "notebook"
Provides-Extra: proc
Requires-Dist: psutil<8; extra == "proc"
Provides-Extra: release
Requires-Dist: build<2; extra == "release"
Requires-Dist: twine<7; extra == "release"
Provides-Extra: sfa
Requires-Dist: pueblo[cli]; extra == "sfa"
Provides-Extra: sfa-full
Requires-Dist: fsspec[github,http,libarchive,s3]<2026.3; extra == "sfa-full"
Requires-Dist: instld<0.1; extra == "sfa-full"
Requires-Dist: pueblo[sfa]; extra == "sfa-full"
Provides-Extra: test
Requires-Dist: psycopg2-binary<3; extra == "test"
Requires-Dist: pueblo[testing]; extra == "test"
Provides-Extra: testing
Requires-Dist: coverage<7.14; extra == "testing"
Requires-Dist: pytest<10; extra == "testing"
Requires-Dist: pytest-cov<8; extra == "testing"
Requires-Dist: pytest-env<2; extra == "testing"
Requires-Dist: pytest-mock<4; extra == "testing"
Provides-Extra: testing-pytest7
Requires-Dist: pytest<9; extra == "testing-pytest7"
Requires-Dist: pytest-notebook<0.11,>=0.10; extra == "testing-pytest7"
Dynamic: license-file

# Pueblo - a Python toolbox library

[![Tests (main)](https://github.com/pyveci/pueblo/actions/workflows/main.yml/badge.svg)](https://github.com/pyveci/pueblo/actions/workflows/main.yml)
[![Tests (mcp)](https://github.com/pyveci/pueblo/actions/workflows/mcp.yml/badge.svg)](https://github.com/pyveci/pueblo/actions/workflows/mcp.yml)
[![Tests (ngr)](https://github.com/pyveci/pueblo/actions/workflows/ngr.yml/badge.svg)](https://github.com/pyveci/pueblo/actions/workflows/ngr.yml)
[![Tests (nlp)](https://github.com/pyveci/pueblo/actions/workflows/nlp.yml/badge.svg)](https://github.com/pyveci/pueblo/actions/workflows/nlp.yml)
[![Tests (sfa)](https://github.com/pyveci/pueblo/actions/workflows/sfa.yml/badge.svg)](https://github.com/pyveci/pueblo/actions/workflows/sfa.yml)
[![Tests (testing)](https://github.com/pyveci/pueblo/actions/workflows/testing.yml/badge.svg)](https://github.com/pyveci/pueblo/actions/workflows/testing.yml)
[![Test coverage](https://img.shields.io/codecov/c/gh/pyveci/pueblo.svg)](https://codecov.io/gh/pyveci/pueblo/)

[![Downloads](https://pepy.tech/badge/pueblo/month)](https://pypi.org/project/pueblo/)
[![Status](https://img.shields.io/pypi/status/pueblo.svg)](https://pypi.org/project/pueblo/)
[![PyPI](https://img.shields.io/pypi/v/pueblo.svg)](https://pypi.org/project/pueblo/)
[![License](https://img.shields.io/github/license/pyveci/pueblo.svg)](https://github.com/pyveci/pueblo/blob/main/LICENSE)
[![Python versions](https://img.shields.io/pypi/pyversions/pueblo.svg)](https://pypi.org/project/pueblo/)


<!-- » [Documentation] -->

» [Changelog]
| [PyPI]
| [Issues]
| [Source code]
| [License]

[Changelog]: https://github.com/pyveci/pueblo/blob/main/CHANGES.md
[Documentation]: https://pueblo.readthedocs.io/
[Issues]: https://github.com/pyveci/pueblo/issues
[License]: https://github.com/pyveci/pueblo/blob/main/LICENSE
[PyPI]: https://pypi.org/project/pueblo/
[Source code]: https://github.com/pyveci/pueblo


## About

- A Python toolbox library.
- Contains Python code duplicated too often elsewhere.
- Finally, it is in one place.
- Here be dragons and gems.


## Setup

```shell
uv pip install --upgrade pueblo
```

After installation, you can verify if it was successful.
```shell
pueblo --version
```


## Usage

Read the source.


## Prior Art

- https://pypi.org/project/boltons/


### Supported by

[![JetBrains logo.](https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg)](https://jb.gg/OpenSourceSupport)

Special thanks to the people at JetBrains s.r.o. for supporting us with
excellent development tooling.
