# Copious
A handy tool that make your day to day programming much easier.
The name comes from the latin word cornucopia.
## Development
Install dev deps:
```bash
pip install -r requirements.txt
```
### Minimal dependency set (lowest supported versions)
To compute and validate the lowest compatible versions of runtime dependencies:
```bash
# Generate constraints/requirements-min.txt using uv (preferred)
bash scripts/generate_min_requirements.sh
# Install runtime deps with the minimal constraints and run tests
pip install -r requirements.runtime.in -c constraints/requirements-min.txt
pip install -e .
pytest -q
```
Notes:
- Floors for Python 3.10 are in `constraints/floors-py310.txt` to avoid ancient, incompatible packages. Adjust per Python version if needed.
- CI runs tests against latest and the minimal set to ensure ongoing compatibility.
Raw data
{
"_id": null,
"home_page": "https://github.com/brianlan/copious",
"name": "copious",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "brianlan",
"author_email": "brianlanbo@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/4d/6a/8b3a0217225d8d1ff54a3711e1cdd39b8b90522568eece299bb21b4b31dd/copious-0.1.32.tar.gz",
"platform": null,
"description": "# Copious\n\nA handy tool that make your day to day programming much easier. \n\nThe name comes from the latin word cornucopia.\n\n## Development\n\nInstall dev deps:\n\n```bash\npip install -r requirements.txt\n```\n\n### Minimal dependency set (lowest supported versions)\n\nTo compute and validate the lowest compatible versions of runtime dependencies:\n\n```bash\n# Generate constraints/requirements-min.txt using uv (preferred)\nbash scripts/generate_min_requirements.sh\n\n# Install runtime deps with the minimal constraints and run tests\npip install -r requirements.runtime.in -c constraints/requirements-min.txt\npip install -e .\npytest -q\n```\n\nNotes:\n- Floors for Python 3.10 are in `constraints/floors-py310.txt` to avoid ancient, incompatible packages. Adjust per Python version if needed.\n- CI runs tests against latest and the minimal set to ensure ongoing compatibility.\n",
"bugtrack_url": null,
"license": null,
"summary": "A handy tool that make your day to day programming much easier. ",
"version": "0.1.32",
"project_urls": {
"Homepage": "https://github.com/brianlan/copious"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "faf58e7bc4e101be0f59f9aa1543a82e6ee161f9877c3ab3cdd0ee29303be473",
"md5": "cf90c614be06ec01678e6435e7f60551",
"sha256": "948975955d481915865febade1d5ba1cb71bc05b801777ecb592d0c7919b78d4"
},
"downloads": -1,
"filename": "copious-0.1.32-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cf90c614be06ec01678e6435e7f60551",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 14907,
"upload_time": "2025-08-20T06:45:28",
"upload_time_iso_8601": "2025-08-20T06:45:28.117548Z",
"url": "https://files.pythonhosted.org/packages/fa/f5/8e7bc4e101be0f59f9aa1543a82e6ee161f9877c3ab3cdd0ee29303be473/copious-0.1.32-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4d6a8b3a0217225d8d1ff54a3711e1cdd39b8b90522568eece299bb21b4b31dd",
"md5": "3dc704c6facc942689212eb1fe72b909",
"sha256": "f0fe2cdfb8fd5330bc8e33b8078051b5cdc68fa399d3f6a9c77e66cd65471e7f"
},
"downloads": -1,
"filename": "copious-0.1.32.tar.gz",
"has_sig": false,
"md5_digest": "3dc704c6facc942689212eb1fe72b909",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25797,
"upload_time": "2025-08-20T06:45:29",
"upload_time_iso_8601": "2025-08-20T06:45:29.374193Z",
"url": "https://files.pythonhosted.org/packages/4d/6a/8b3a0217225d8d1ff54a3711e1cdd39b8b90522568eece299bb21b4b31dd/copious-0.1.32.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-20 06:45:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "brianlan",
"github_project": "copious",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "annotated-types",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "backports-tarfile",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2025.8.3"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.3"
]
]
},
{
"name": "contourpy",
"specs": [
[
"==",
"1.3.2"
]
]
},
{
"name": "cycler",
"specs": [
[
"==",
"0.12.1"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.22"
]
]
},
{
"name": "exceptiongroup",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "fonttools",
"specs": [
[
"==",
"4.59.1"
]
]
},
{
"name": "id",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "importlib-metadata",
"specs": [
[
"==",
"8.7.0"
]
]
},
{
"name": "iniconfig",
"specs": [
[
"==",
"2.1.0"
]
]
},
{
"name": "jaraco-classes",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "jaraco-context",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "jaraco-functools",
"specs": [
[
"==",
"4.3.0"
]
]
},
{
"name": "keyring",
"specs": [
[
"==",
"25.6.0"
]
]
},
{
"name": "kiwisolver",
"specs": [
[
"==",
"1.4.9"
]
]
},
{
"name": "markdown-it-py",
"specs": [
[
"==",
"4.0.0"
]
]
},
{
"name": "matplotlib",
"specs": [
[
"==",
"3.10.5"
]
]
},
{
"name": "mdurl",
"specs": [
[
"==",
"0.1.2"
]
]
},
{
"name": "more-itertools",
"specs": [
[
"==",
"10.7.0"
]
]
},
{
"name": "nh3",
"specs": [
[
"==",
"0.3.0"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"2.2.6"
]
]
},
{
"name": "opencv-python",
"specs": [
[
"==",
"4.12.0.88"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"25.0"
]
]
},
{
"name": "pillow",
"specs": [
[
"==",
"11.3.0"
]
]
},
{
"name": "pluggy",
"specs": [
[
"==",
"1.6.0"
]
]
},
{
"name": "polars",
"specs": [
[
"==",
"1.32.3"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.11.7"
]
]
},
{
"name": "pydantic-core",
"specs": [
[
"==",
"2.33.2"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.19.2"
]
]
},
{
"name": "pyparsing",
"specs": [
[
"==",
"3.2.3"
]
]
},
{
"name": "pypcd4",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "pytest",
"specs": [
[
"==",
"8.4.1"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.9.0.post0"
]
]
},
{
"name": "python-lzf",
"specs": [
[
"==",
"0.2.6"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "readme-renderer",
"specs": [
[
"==",
"44.0"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.5"
]
]
},
{
"name": "requests-toolbelt",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "rfc3986",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"14.1.0"
]
]
},
{
"name": "scipy",
"specs": [
[
"==",
"1.15.3"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.17.0"
]
]
},
{
"name": "tomli",
"specs": [
[
"==",
"2.2.1"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.67.1"
]
]
},
{
"name": "twine",
"specs": [
[
"==",
"6.1.0"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.14.1"
]
]
},
{
"name": "typing-inspection",
"specs": [
[
"==",
"0.4.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.5.0"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.23.0"
]
]
}
],
"tox": true,
"lcname": "copious"
}