# 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/09/6f/2e4b221ef26c619c3b1fe75effb2512a9aba8b2fdf089bde6fdd612622fa/trent-0.2.10.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": "Apache Software License",
"summary": null,
"version": "0.2.10",
"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": "4a09790460ea40d8c16502f15a8b952a42a641ac6882d8a5b606e867200cae11",
"md5": "1f94eba278ba4bba7e0d16b1cd4bc177",
"sha256": "a63d6f3b9431915d457a064b17ac474ed7c43bada229d364102a8dd985ef50af"
},
"downloads": -1,
"filename": "trent-0.2.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1f94eba278ba4bba7e0d16b1cd4bc177",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10.12",
"size": 13860,
"upload_time": "2025-02-05T14:11:19",
"upload_time_iso_8601": "2025-02-05T14:11:19.534621Z",
"url": "https://files.pythonhosted.org/packages/4a/09/790460ea40d8c16502f15a8b952a42a641ac6882d8a5b606e867200cae11/trent-0.2.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "096f2e4b221ef26c619c3b1fe75effb2512a9aba8b2fdf089bde6fdd612622fa",
"md5": "f30ab24f39da785c7e7f6fcd96dbde74",
"sha256": "d78aba101e2c40d6ca4d8e3ff8cdcbb56ab0741fab99a9c7058f621716353586"
},
"downloads": -1,
"filename": "trent-0.2.10.tar.gz",
"has_sig": false,
"md5_digest": "f30ab24f39da785c7e7f6fcd96dbde74",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10.12",
"size": 13132,
"upload_time": "2025-02-05T14:11:20",
"upload_time_iso_8601": "2025-02-05T14:11:20.602903Z",
"url": "https://files.pythonhosted.org/packages/09/6f/2e4b221ef26c619c3b1fe75effb2512a9aba8b2fdf089bde6fdd612622fa/trent-0.2.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-05 14:11:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "VasilevsVV",
"github_project": "trent",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "trent"
}