# Tracktolib
[](https://pypi.python.org/pypi/tracktolib)
[](https://pypi.python.org/pypi/tracktolib)
[](https://app.circleci.com/pipelines/github/Tracktor/tracktolib?branch=master)
Utility library for python
# Installation
You can choose to not install all the dependencies by specifying
the [extra](https://python-poetry.org/docs/cli/#options-4) parameter such as:
```bash
poetry add tracktolib@latest -E pg-sync -E tests --group dev
```
Here we only install the utilities using `psycopg` (pg-sync) and `deepdiff` (tests) for the dev environment.
# Utilities
- **log**
Utility functions for logging.
```python
import logging
from tracktolib.logs import init_logging
logger = logging.getLogger()
formatter, stream_handler = init_logging(logger, 'json', version='0.0.1')
```
- **pg**
Utility functions for [asyncpg](https://github.com/MagicStack/asyncpg)
- **pg-sync**
Utility functions based on psycopg such as `fetch_one`, `insert_many`, `fetch_count` ...
To use the functions, create a `Connection` using psycopg: `conn = psycopg2.connect()`
*fetch_one*
```python
from tracktolib.pg.pg_sync import (
insert_many, fetch_one, fetch_count, fetch_all
)
data = [
{'foo': 'bar', 'value': 1},
{'foo': 'baz', 'value': 2}
]
insert_many(conn, 'public.test', data) # Will insert the 2 dict
query = 'SELECT foo from public.test order by value asc'
value = fetch_one(conn, query, required=True) # Will return {'foo': 'bar'}, raise an error is not found
assert fetch_count(conn, 'public.test') == 2
query = 'SELECT * from public.test order by value asc'
assert fetch_all(conn, query) == data
```
- **tests**
Utility functions for testing
- **s3-minio**
Utility functions for [minio](https://min.io/docs/minio/linux/developers/python/API.html)
- **s3**
Utility functions for [aiobotocore](https://github.com/aio-libs/aiobotocore)
- **logs**
Utility functions to initialize the logging formatting and streams
- **http**
Utility functions using [httpx](https://www.python-httpx.org/)
- **api**
Utility functions using [fastapi](https://fastapi.tiangolo.com/)
Raw data
{
"_id": null,
"home_page": "https://github.com/tracktor/tracktolib",
"name": "tracktolib",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.12",
"maintainer_email": null,
"keywords": "utility",
"author": "Julien Brayere",
"author_email": "julien.brayere@tracktor.fr",
"download_url": "https://files.pythonhosted.org/packages/78/a7/10f43243125b51ccab3627cac82357b2fe5c59ca1963d32d2fc8af7bb4ec/tracktolib-0.54.0.tar.gz",
"platform": null,
"description": "# Tracktolib\n\n[](https://pypi.python.org/pypi/tracktolib)\n[](https://pypi.python.org/pypi/tracktolib)\n[](https://app.circleci.com/pipelines/github/Tracktor/tracktolib?branch=master)\n\nUtility library for python\n\n# Installation\n\nYou can choose to not install all the dependencies by specifying\nthe [extra](https://python-poetry.org/docs/cli/#options-4) parameter such as:\n\n```bash\npoetry add tracktolib@latest -E pg-sync -E tests --group dev \n```\n\nHere we only install the utilities using `psycopg` (pg-sync) and `deepdiff` (tests) for the dev environment.\n\n# Utilities\n\n- **log**\n\nUtility functions for logging.\n\n```python\nimport logging\nfrom tracktolib.logs import init_logging\n\nlogger = logging.getLogger()\nformatter, stream_handler = init_logging(logger, 'json', version='0.0.1')\n```\n\n- **pg**\n\nUtility functions for [asyncpg](https://github.com/MagicStack/asyncpg)\n\n- **pg-sync**\n\nUtility functions based on psycopg such as `fetch_one`, `insert_many`, `fetch_count` ...\n\nTo use the functions, create a `Connection` using psycopg: `conn = psycopg2.connect()`\n\n*fetch_one*\n\n```python\nfrom tracktolib.pg.pg_sync import (\n insert_many, fetch_one, fetch_count, fetch_all\n)\n\ndata = [\n {'foo': 'bar', 'value': 1},\n {'foo': 'baz', 'value': 2}\n]\ninsert_many(conn, 'public.test', data) # Will insert the 2 dict\nquery = 'SELECT foo from public.test order by value asc'\nvalue = fetch_one(conn, query, required=True) # Will return {'foo': 'bar'}, raise an error is not found\nassert fetch_count(conn, 'public.test') == 2\nquery = 'SELECT * from public.test order by value asc'\nassert fetch_all(conn, query) == data\n\n```\n\n- **tests**\n\nUtility functions for testing\n\n- **s3-minio**\n\nUtility functions for [minio](https://min.io/docs/minio/linux/developers/python/API.html)\n\n- **s3**\n\nUtility functions for [aiobotocore](https://github.com/aio-libs/aiobotocore)\n\n- **logs**\n\nUtility functions to initialize the logging formatting and streams\n\n- **http**\n\nUtility functions using [httpx](https://www.python-httpx.org/)\n\n- **api**\n\nUtility functions using [fastapi](https://fastapi.tiangolo.com/)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Utility library for python",
"version": "0.54.0",
"project_urls": {
"Homepage": "https://github.com/tracktor/tracktolib",
"Repository": "https://github.com/tracktor/tracktolib"
},
"split_keywords": [
"utility"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ce7718412c5036dabaf4f25b48cb4fbead4d5b00b3824b92533529d99768d69e",
"md5": "15a4ce4656446a13c974778276c8ebac",
"sha256": "6518edba85b4adea5754aebbb49b40cc859ea9d0e45067155ac367c333a17c0c"
},
"downloads": -1,
"filename": "tracktolib-0.54.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "15a4ce4656446a13c974778276c8ebac",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.12",
"size": 22352,
"upload_time": "2025-02-19T10:12:45",
"upload_time_iso_8601": "2025-02-19T10:12:45.590579Z",
"url": "https://files.pythonhosted.org/packages/ce/77/18412c5036dabaf4f25b48cb4fbead4d5b00b3824b92533529d99768d69e/tracktolib-0.54.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "78a710f43243125b51ccab3627cac82357b2fe5c59ca1963d32d2fc8af7bb4ec",
"md5": "4d215dbdf091b4312adc1b6192afe919",
"sha256": "f32767d8240fef5d85bfff4f09cbb7591e8df426bdf8e54467452250796f749e"
},
"downloads": -1,
"filename": "tracktolib-0.54.0.tar.gz",
"has_sig": false,
"md5_digest": "4d215dbdf091b4312adc1b6192afe919",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.12",
"size": 19100,
"upload_time": "2025-02-19T10:12:47",
"upload_time_iso_8601": "2025-02-19T10:12:47.715857Z",
"url": "https://files.pythonhosted.org/packages/78/a7/10f43243125b51ccab3627cac82357b2fe5c59ca1963d32d2fc8af7bb4ec/tracktolib-0.54.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-19 10:12:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tracktor",
"github_project": "tracktolib",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"circle": true,
"lcname": "tracktolib"
}