tracktolib


Nametracktolib JSON
Version 0.52.0 PyPI version JSON
download
home_pagehttps://github.com/tracktor/tracktolib
SummaryUtility library for python
upload_time2024-12-13 21:22:55
maintainerNone
docs_urlNone
authorJulien Brayere
requires_python<4.0,>=3.12
licenseMIT
keywords utility
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Tracktolib

[![Python versions](https://img.shields.io/pypi/pyversions/tracktolib)](https://pypi.python.org/pypi/tracktolib)
[![Latest PyPI version](https://img.shields.io/pypi/v/tracktolib?logo=pypi)](https://pypi.python.org/pypi/tracktolib)
[![CircleCI](https://circleci.com/gh/Tracktor/tracktolib/tree/master.svg?style=shield)](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/d1/74/029854c316cb23b80fb8e390b45e1363e634e019f91d160924ecf9a328e0/tracktolib-0.52.0.tar.gz",
    "platform": null,
    "description": "# Tracktolib\n\n[![Python versions](https://img.shields.io/pypi/pyversions/tracktolib)](https://pypi.python.org/pypi/tracktolib)\n[![Latest PyPI version](https://img.shields.io/pypi/v/tracktolib?logo=pypi)](https://pypi.python.org/pypi/tracktolib)\n[![CircleCI](https://circleci.com/gh/Tracktor/tracktolib/tree/master.svg?style=shield)](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.52.0",
    "project_urls": {
        "Homepage": "https://github.com/tracktor/tracktolib",
        "Repository": "https://github.com/tracktor/tracktolib"
    },
    "split_keywords": [
        "utility"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5a35b82c96f8dbc1f576785d3d5074f0adc9db9981ed67f2b7379e3fb82f441f",
                "md5": "b4fefda82488908c5632dc4ce67925f5",
                "sha256": "ace9e4132b0424e52f0a2ee6cbaa7c04cf77bdc3001b45e3178a6ad05e01c295"
            },
            "downloads": -1,
            "filename": "tracktolib-0.52.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b4fefda82488908c5632dc4ce67925f5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.12",
            "size": 22877,
            "upload_time": "2024-12-13T21:22:52",
            "upload_time_iso_8601": "2024-12-13T21:22:52.761608Z",
            "url": "https://files.pythonhosted.org/packages/5a/35/b82c96f8dbc1f576785d3d5074f0adc9db9981ed67f2b7379e3fb82f441f/tracktolib-0.52.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d174029854c316cb23b80fb8e390b45e1363e634e019f91d160924ecf9a328e0",
                "md5": "66f655a5a4c958fdeb3494b1b6fe19d6",
                "sha256": "18317a0bc74c708b11618ac538ca60a09178d67fbac2ae2258c977f60eca5cce"
            },
            "downloads": -1,
            "filename": "tracktolib-0.52.0.tar.gz",
            "has_sig": false,
            "md5_digest": "66f655a5a4c958fdeb3494b1b6fe19d6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 19310,
            "upload_time": "2024-12-13T21:22:55",
            "upload_time_iso_8601": "2024-12-13T21:22:55.179933Z",
            "url": "https://files.pythonhosted.org/packages/d1/74/029854c316cb23b80fb8e390b45e1363e634e019f91d160924ecf9a328e0/tracktolib-0.52.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-13 21:22:55",
    "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"
}
        
Elapsed time: 0.39662s