trent


Nametrent JSON
Version 0.4.1 PyPI version JSON
download
home_pageNone
SummaryConvenient Sequence/Iterable/Collection processing for python. Inspired by Clojure mapping and threading macros.
upload_time2025-07-24 15:20:17
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10.12
licenseNone
keywords sequence collection mapping stream functional iteration concurrency group by
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # trent
Convenient Collection/Sequence/Iterable processing for python.

Inspired by Clojure mapping and threading macros.

Supprot full python12 (and later vesrsion) typing, unlike default `map` and `filter` functions.
Which allows for production-grade development. 
Provides some work-around for python typing issues (like inability to filter out types from aggregate type).
Provides some auxiliary side funtions, like `first`, `second`, `nth`, `getter` etc.
Also, provide some additional usefull functionality, like `group_by` and `partition_by` (see more examples below)


#### What is it for
Writing **functional**, fully **typehinted** code in a style of Common Lisp / Clojure **mappings**, with convenience of Clojure funcall **threading** (->, ->>, as-> macroses), but with python native syntax (without trying to force-fit any other syntax in)

And more:
- Processing *Iterables* in a **functional** manner, with **lazy** evaluation (in most cases)
- Iterating, concating, grouping and collecting elements of given sequences quickly.
- **Prototyping** code in quick, readable and maintanable manner.
- Writing **fully typehinted** code (unlike default map/filter)
- Built-in **assyncronous** calls (mapping, filtering etc.)
- **Reducing** resulting iterables.


#### What is it NOT for
**trent** - is keps simple for a reason. Don't try to use it for more than it designed for.
- Not for high load / high performance Sequences processing (although - it supports parallel-map)
- Not for processing table-like data. Just use pandas/polars/pyspark for that. `trent` is more suitable for processing each element individually

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "trent",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10.12",
    "maintainer_email": "Vasyl Tsiura <morfey.rulit@gmail.com>",
    "keywords": "Sequence, Collection, mapping, stream, functional, iteration, concurrency, group, by",
    "author": null,
    "author_email": "Vasyl Tsiura <morfey.rulit@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/71/d8/a9c1624e3ae3ee070ad3bb7b423d6899dedc42811311b07bbc5728ec9b87/trent-0.4.1.tar.gz",
    "platform": null,
    "description": "# trent\nConvenient Collection/Sequence/Iterable processing for python.\n\nInspired by Clojure mapping and threading macros.\n\nSupprot full python12 (and later vesrsion) typing, unlike default `map` and `filter` functions.\nWhich allows for production-grade development. \nProvides some work-around for python typing issues (like inability to filter out types from aggregate type).\nProvides some auxiliary side funtions, like `first`, `second`, `nth`, `getter` etc.\nAlso, provide some additional usefull functionality, like `group_by` and `partition_by` (see more examples below)\n\n\n#### What is it for\nWriting **functional**, fully **typehinted** code in a style of Common Lisp / Clojure **mappings**, with convenience of Clojure funcall **threading** (->, ->>, as-> macroses), but with python native syntax (without trying to force-fit any other syntax in)\n\nAnd more:\n- Processing *Iterables* in a **functional** manner, with **lazy** evaluation (in most cases)\n- Iterating, concating, grouping and collecting elements of given sequences quickly.\n- **Prototyping** code in quick, readable and maintanable manner.\n- Writing **fully typehinted** code (unlike default map/filter)\n- Built-in **assyncronous** calls (mapping, filtering etc.)\n- **Reducing** resulting iterables.\n\n\n#### What is it NOT for\n**trent** - is keps simple for a reason. Don't try to use it for more than it designed for.\n- Not for high load / high performance Sequences processing (although - it supports parallel-map)\n- Not for processing table-like data. Just use pandas/polars/pyspark for that. `trent` is more suitable for processing each element individually\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Convenient Sequence/Iterable/Collection processing for python. Inspired by Clojure mapping and threading macros.",
    "version": "0.4.1",
    "project_urls": {
        "Homepage": "https://github.com/VasilevsVV/trent",
        "Issues": "https://github.com/VasilevsVV/trent/issues"
    },
    "split_keywords": [
        "sequence",
        " collection",
        " mapping",
        " stream",
        " functional",
        " iteration",
        " concurrency",
        " group",
        " by"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2639baa84dc6cd808c7205c2f99af93acb51949ee45fa89d76fd82e120d6a2dd",
                "md5": "bc9662c39f2fb6fbeacf8a4db0cb3bf3",
                "sha256": "2409b395619f1f7696d9df350fb13e5a53fa5b15365e6ccf4606d7b6a41a088b"
            },
            "downloads": -1,
            "filename": "trent-0.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bc9662c39f2fb6fbeacf8a4db0cb3bf3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10.12",
            "size": 14504,
            "upload_time": "2025-07-24T15:20:16",
            "upload_time_iso_8601": "2025-07-24T15:20:16.633696Z",
            "url": "https://files.pythonhosted.org/packages/26/39/baa84dc6cd808c7205c2f99af93acb51949ee45fa89d76fd82e120d6a2dd/trent-0.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "71d8a9c1624e3ae3ee070ad3bb7b423d6899dedc42811311b07bbc5728ec9b87",
                "md5": "b9ba95f9480482b3f9336a424a969c7a",
                "sha256": "5d378455e9ceb73c52fad810b0dfbd9324da0792039cc3b7856f8bf3f3049cf9"
            },
            "downloads": -1,
            "filename": "trent-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "b9ba95f9480482b3f9336a424a969c7a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10.12",
            "size": 13737,
            "upload_time": "2025-07-24T15:20:17",
            "upload_time_iso_8601": "2025-07-24T15:20:17.849619Z",
            "url": "https://files.pythonhosted.org/packages/71/d8/a9c1624e3ae3ee070ad3bb7b423d6899dedc42811311b07bbc5728ec9b87/trent-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-24 15:20:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "VasilevsVV",
    "github_project": "trent",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "trent"
}
        
Elapsed time: 1.70841s