Zut
===
Reusable Python utilities.
## Installation
Zut package is published [on PyPI](https://pypi.org/project/zut/). It requires Python version >= 3.7.
Install without any dependency (no dependency is mandatory):
```sh
pip install zut
```
It is also possible to install with an _extra_ specifier to add optional dependencies, for example:
```sh
pip install zut[pg]
```
## Avalable _extra_ specifiers
Please note that no dependency is mandatory to use Zut, if you don't need any of the features below.
### File backends
For `zut.files` package:
- `pip install zut[smb]`: access to Samba/Windows shares (installs `smbprotocol`).
- `pip install zut[s3]`: access to S3 buckets (installs `boto3`).
- `pip install zut[zip]`: access to Zip archives (installs `zipp`, necessary only for Python < 3.10 to mitigate [a bug in the standard library](https://bugs.python.org/issue40564)).
### Database backends
For `zut.db` package:
- `pip install zut[pg]` (synonym: `zut[postgresql]`): access PostgreSQL databases (installs `psycopg` and `sqlparse`).
- `pip install zut[mysql]` (synonyms: `zut[mariadb]`): access MySQL and MariaDB databases (installs `mysqlclient` and `sqlparse`).
- `pip install zut[sqlserver]` (synonym: `zut[mssql]`): access Microsoft SQL Server databases (installs `pyodbc`, `sqlparams` and `sqlparse`).
- `pip install zut[sqlite]`: access SQLite databases (installs `sqlparse`).
The `tz` extra specifier (see below) is automatically included with all database extra specifiers.
### Miscellaneous features
- `pip install zut[tz]` : parse timezones from string, get local timezone name or convert between naive and aware datetimes in various timezones (installs `tzdata` and `tzlocal` on Windows). This extra specifier does not install anything on Linux (for Python >= 3.9) because this feature is natively available.
- `pip install zut[tabulate]` : display tabular data elegantly (installs `tabulate`). If this dependency is not included, the library provides a polyfill for the `tabulate` function to handle simple cases.
- `pip install zut[excel]` : manage Excel files with `zut.excel` module (installs `openpyxl` and `defusedxml`).
- `pip install zut[django]` : Django utilities available in `zut.django` package (installs `django`).
- `pip install zut[perf]` : track memory performance using `zut.perf` package (installs `psutil`).
## Features
See [full documentation](https://ipamo.net/zut) (including [API reference](https://ipamo.net/zut/latest/api-reference.html)).
## Contribute
Pull requests are welcome.
See [contributing guidelines](https://gitlab.com/ipamo/zut/-/blob/main/CONTRIBUTING.md).
## Credits
This project is licensed under the terms of the [MIT license](https://gitlab.com/ipamo/zut/-/raw/main/LICENSE.txt).
Logo by [Eric Watson - Dreamstime.com](https://www.dreamstime.com/dreamstime-template-image140091035) (_"Royalty-free vector"_).
Raw data
{
"_id": null,
"home_page": null,
"name": "zut",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "reusable, util, utils, common, commons, base, csv, excel, etl, db, database, load, bulk, insert, merge, upsert, sqlite, postgresql, pg, mysql, maria, mariadb, sqlserver, mssql",
"author": null,
"author_email": "S\u00e9bastien Hocquet <seb@ipamo.net>",
"download_url": null,
"platform": null,
"description": "Zut\n===\n\nReusable Python utilities.\n\n\n## Installation\n\nZut package is published [on PyPI](https://pypi.org/project/zut/). It requires Python version >= 3.7.\n\nInstall without any dependency (no dependency is mandatory):\n\n```sh\npip install zut\n```\n\nIt is also possible to install with an _extra_ specifier to add optional dependencies, for example:\n\n```sh\npip install zut[pg]\n```\n\n## Avalable _extra_ specifiers\n\nPlease note that no dependency is mandatory to use Zut, if you don't need any of the features below.\n\n### File backends\n\nFor `zut.files` package:\n\n- `pip install zut[smb]`: access to Samba/Windows shares (installs `smbprotocol`).\n- `pip install zut[s3]`: access to S3 buckets (installs `boto3`).\n- `pip install zut[zip]`: access to Zip archives (installs `zipp`, necessary only for Python < 3.10 to mitigate [a bug in the standard library](https://bugs.python.org/issue40564)).\n\n### Database backends\n\nFor `zut.db` package:\n\n- `pip install zut[pg]` (synonym: `zut[postgresql]`): access PostgreSQL databases (installs `psycopg` and `sqlparse`).\n- `pip install zut[mysql]` (synonyms: `zut[mariadb]`): access MySQL and MariaDB databases (installs `mysqlclient` and `sqlparse`).\n- `pip install zut[sqlserver]` (synonym: `zut[mssql]`): access Microsoft SQL Server databases (installs `pyodbc`, `sqlparams` and `sqlparse`).\n- `pip install zut[sqlite]`: access SQLite databases (installs `sqlparse`).\n\nThe `tz` extra specifier (see below) is automatically included with all database extra specifiers.\n\n### Miscellaneous features\n\n- `pip install zut[tz]` : parse timezones from string, get local timezone name or convert between naive and aware datetimes in various timezones (installs `tzdata` and `tzlocal` on Windows). This extra specifier does not install anything on Linux (for Python >= 3.9) because this feature is natively available.\n- `pip install zut[tabulate]` : display tabular data elegantly (installs `tabulate`). If this dependency is not included, the library provides a polyfill for the `tabulate` function to handle simple cases.\n- `pip install zut[excel]` : manage Excel files with `zut.excel` module (installs `openpyxl` and `defusedxml`).\n- `pip install zut[django]` : Django utilities available in `zut.django` package (installs `django`).\n- `pip install zut[perf]` : track memory performance using `zut.perf` package (installs `psutil`).\n\n\n## Features\n\nSee [full documentation](https://ipamo.net/zut) (including [API reference](https://ipamo.net/zut/latest/api-reference.html)).\n\n\n## Contribute\n\nPull requests are welcome.\n\nSee [contributing guidelines](https://gitlab.com/ipamo/zut/-/blob/main/CONTRIBUTING.md).\n\n\n## Credits\n\nThis project is licensed under the terms of the [MIT license](https://gitlab.com/ipamo/zut/-/raw/main/LICENSE.txt).\n\nLogo by [Eric Watson - Dreamstime.com](https://www.dreamstime.com/dreamstime-template-image140091035) (_\"Royalty-free vector\"_).\n",
"bugtrack_url": null,
"license": null,
"summary": "Reusable Python utilities.",
"version": "3.1.0",
"project_urls": {
"Bug Tracker": "https://gitlab.com/ipamo/zut/issues",
"Homepage": "https://gitlab.com/ipamo/zut"
},
"split_keywords": [
"reusable",
" util",
" utils",
" common",
" commons",
" base",
" csv",
" excel",
" etl",
" db",
" database",
" load",
" bulk",
" insert",
" merge",
" upsert",
" sqlite",
" postgresql",
" pg",
" mysql",
" maria",
" mariadb",
" sqlserver",
" mssql"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d3a0b10d5f866e93040453f73ee22120d0fd13fda3b4a4b3379fea5ee012ea7c",
"md5": "ac6ffb30cc22070903c2f685dddcef52",
"sha256": "bc428cc4adb170b0026d2a9cac28e5b8dd8db82d9e18006945b1543e0d26ebe9"
},
"downloads": -1,
"filename": "zut-3.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ac6ffb30cc22070903c2f685dddcef52",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 146849,
"upload_time": "2025-08-06T19:19:34",
"upload_time_iso_8601": "2025-08-06T19:19:34.535682Z",
"url": "https://files.pythonhosted.org/packages/d3/a0/b10d5f866e93040453f73ee22120d0fd13fda3b4a4b3379fea5ee012ea7c/zut-3.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-06 19:19:34",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "ipamo",
"gitlab_project": "zut",
"lcname": "zut"
}