tmdsclient


Nametmdsclient JSON
Version 0.5.4 PyPI version JSON
download
home_pageNone
SummaryFully typed, async client library for Technical Master Data Service (TMDS)
upload_time2024-10-29 06:42:33
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
keywords technical master data tmds
VCS
bugtrack_url
requirements aioauth-client aiohappyeyeballs aiohttp aiosignal annotated-types anyio attrs bo4e brotli certifi frozenlist h11 httpcore httpx idna iso3166 jsonpatch jsonpointer more-itertools multidict propcache pydantic pydantic-core pyhumps pyjwt sniffio typing-extensions yarl
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # tmdsclient.py
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
![Python Versions (officially) supported](https://img.shields.io/pypi/pyversions/tmdsclient.svg)
![Pypi status badge](https://img.shields.io/pypi/v/tmdsclient)
![Unittests status badge](https://github.com/Hochfrequenz/tmdsclient.py/workflows/Unittests/badge.svg)
![Coverage status badge](https://github.com/Hochfrequenz/tmdsclient.py/workflows/Coverage/badge.svg)
![Linting status badge](https://github.com/Hochfrequenz/tmdsclient.py/workflows/Linting/badge.svg)
![Black status badge](https://github.com/Hochfrequenz/tmdsclient.py/workflows/Formatting/badge.svg)

This repository contains the package `tmdsclient`.
It is an async, fully typed Python client for the Technical Master Data Service (TMDS).

Its features are handwritten and extended as we need them.
So it is _not_ autogenerated from the TMDS OpenAPI.

## Installation
Install it [from PyPI](https://pypi.org/project/tmdsclient/):
```bash
pip install tmdsclient
```

## Usage
```python
from yarl import URL
from tmdsclient import BasicAuthTmdsClient, BasicAuthTmdsConfig

tmds_config = BasicAuthTmdsConfig(
    server_url=URL("https://my-tmds.xtk-test.org/"),
    usr="my-usr",
    pwd="my-pwd",
)
client = BasicAuthTmdsClient(tmds_config)
netzvertrage = await client.get_netzvertraege_for_melo("DE1234567890123456789012345678901")
```

Even though we did not fully replicate the TMDS data model (mainly [BO4E.net](https://github.com/Hochfrequenz/BO4E-dotnet/) + some wrapper classes),
we tried to make the client as flexible as possible.
You can use any unmapped field returned by TMDS by using the [`model_extra` property of pydantic](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).

## Development
For development of this library, follow the instructions in our [Python Template Repository](https://github.com/Hochfrequenz/python_template_repository).
tl;dr: `tox -e dev` will set up a development environment for you.

### Release (CI/CD)

To release a new version of this library, [create a new release](https://github.com/Hochfrequenz/tmdsclient.py/releases/new) in GitHub.
Make sure its tag starts with `v` and the version number, e.g. `v1.2.3`.
Releases are not restricted to the main branch, but we prefer them to happen there.

## Contribute
You are very welcome to contribute to this template repository by opening a pull request against the main branch.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "tmdsclient",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "technical master data, tmds",
    "author": null,
    "author_email": "Hochfreuqenz Unternehmensberatung GmbH <info+github@hochfrequenz.de>",
    "download_url": "https://files.pythonhosted.org/packages/c7/2a/4706dd13bfb31282b6ee3474aea2c31fa8906a19220c3831544ae4b83ef1/tmdsclient-0.5.4.tar.gz",
    "platform": null,
    "description": "# tmdsclient.py\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n![Python Versions (officially) supported](https://img.shields.io/pypi/pyversions/tmdsclient.svg)\n![Pypi status badge](https://img.shields.io/pypi/v/tmdsclient)\n![Unittests status badge](https://github.com/Hochfrequenz/tmdsclient.py/workflows/Unittests/badge.svg)\n![Coverage status badge](https://github.com/Hochfrequenz/tmdsclient.py/workflows/Coverage/badge.svg)\n![Linting status badge](https://github.com/Hochfrequenz/tmdsclient.py/workflows/Linting/badge.svg)\n![Black status badge](https://github.com/Hochfrequenz/tmdsclient.py/workflows/Formatting/badge.svg)\n\nThis repository contains the package `tmdsclient`.\nIt is an async, fully typed Python client for the Technical Master Data Service (TMDS).\n\nIts features are handwritten and extended as we need them.\nSo it is _not_ autogenerated from the TMDS OpenAPI.\n\n## Installation\nInstall it [from PyPI](https://pypi.org/project/tmdsclient/):\n```bash\npip install tmdsclient\n```\n\n## Usage\n```python\nfrom yarl import URL\nfrom tmdsclient import BasicAuthTmdsClient, BasicAuthTmdsConfig\n\ntmds_config = BasicAuthTmdsConfig(\n    server_url=URL(\"https://my-tmds.xtk-test.org/\"),\n    usr=\"my-usr\",\n    pwd=\"my-pwd\",\n)\nclient = BasicAuthTmdsClient(tmds_config)\nnetzvertrage = await client.get_netzvertraege_for_melo(\"DE1234567890123456789012345678901\")\n```\n\nEven though we did not fully replicate the TMDS data model (mainly [BO4E.net](https://github.com/Hochfrequenz/BO4E-dotnet/) + some wrapper classes),\nwe tried to make the client as flexible as possible.\nYou can use any unmapped field returned by TMDS by using the [`model_extra` property of pydantic](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).\n\n## Development\nFor development of this library, follow the instructions in our [Python Template Repository](https://github.com/Hochfrequenz/python_template_repository).\ntl;dr: `tox -e dev` will set up a development environment for you.\n\n### Release (CI/CD)\n\nTo release a new version of this library, [create a new release](https://github.com/Hochfrequenz/tmdsclient.py/releases/new) in GitHub.\nMake sure its tag starts with `v` and the version number, e.g. `v1.2.3`.\nReleases are not restricted to the main branch, but we prefer them to happen there.\n\n## Contribute\nYou are very welcome to contribute to this template repository by opening a pull request against the main branch.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Fully typed, async client library for Technical Master Data Service (TMDS)",
    "version": "0.5.4",
    "project_urls": {
        "Changelog": "https://github.com/Hochfrequenz/tmdsclient.py/releases",
        "Homepage": "https://github.com/Hochfrequenz/tmdsclient.py"
    },
    "split_keywords": [
        "technical master data",
        " tmds"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "639b9f6cb3145c34d8bc969d6d0f22f5d99637f855815b2ef6686f90c6741279",
                "md5": "8d290e7506018810825f03eb10ad7973",
                "sha256": "49c856a66cb3e2ce822e9c5919b869f5bbcac34e12d0f700e954b7c0c83d86b6"
            },
            "downloads": -1,
            "filename": "tmdsclient-0.5.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8d290e7506018810825f03eb10ad7973",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 25780,
            "upload_time": "2024-10-29T06:42:31",
            "upload_time_iso_8601": "2024-10-29T06:42:31.546453Z",
            "url": "https://files.pythonhosted.org/packages/63/9b/9f6cb3145c34d8bc969d6d0f22f5d99637f855815b2ef6686f90c6741279/tmdsclient-0.5.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c72a4706dd13bfb31282b6ee3474aea2c31fa8906a19220c3831544ae4b83ef1",
                "md5": "390696ed8a48f94a2d15ea23b0272730",
                "sha256": "6c1f2f44dedd2583b5636e00f01d8cd6bc0dd7914fd3981d55bb786927525ad9"
            },
            "downloads": -1,
            "filename": "tmdsclient-0.5.4.tar.gz",
            "has_sig": false,
            "md5_digest": "390696ed8a48f94a2d15ea23b0272730",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 24455,
            "upload_time": "2024-10-29T06:42:33",
            "upload_time_iso_8601": "2024-10-29T06:42:33.567621Z",
            "url": "https://files.pythonhosted.org/packages/c7/2a/4706dd13bfb31282b6ee3474aea2c31fa8906a19220c3831544ae4b83ef1/tmdsclient-0.5.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-29 06:42:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Hochfrequenz",
    "github_project": "tmdsclient.py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "aioauth-client",
            "specs": [
                [
                    "==",
                    "0.28.1"
                ]
            ]
        },
        {
            "name": "aiohappyeyeballs",
            "specs": [
                [
                    "==",
                    "2.4.3"
                ]
            ]
        },
        {
            "name": "aiohttp",
            "specs": [
                [
                    "==",
                    "3.10.10"
                ]
            ]
        },
        {
            "name": "aiosignal",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "annotated-types",
            "specs": [
                [
                    "==",
                    "0.7.0"
                ]
            ]
        },
        {
            "name": "anyio",
            "specs": [
                [
                    "==",
                    "4.6.2.post1"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "24.2.0"
                ]
            ]
        },
        {
            "name": "bo4e",
            "specs": [
                [
                    "==",
                    "202401.2.1"
                ]
            ]
        },
        {
            "name": "brotli",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2024.8.30"
                ]
            ]
        },
        {
            "name": "frozenlist",
            "specs": [
                [
                    "==",
                    "1.4.1"
                ]
            ]
        },
        {
            "name": "h11",
            "specs": [
                [
                    "==",
                    "0.14.0"
                ]
            ]
        },
        {
            "name": "httpcore",
            "specs": [
                [
                    "==",
                    "1.0.6"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": [
                [
                    "==",
                    "0.27.2"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.10"
                ]
            ]
        },
        {
            "name": "iso3166",
            "specs": [
                [
                    "==",
                    "2.1.1"
                ]
            ]
        },
        {
            "name": "jsonpatch",
            "specs": [
                [
                    "==",
                    "1.33"
                ]
            ]
        },
        {
            "name": "jsonpointer",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "more-itertools",
            "specs": [
                [
                    "==",
                    "10.5.0"
                ]
            ]
        },
        {
            "name": "multidict",
            "specs": [
                [
                    "==",
                    "6.0.5"
                ]
            ]
        },
        {
            "name": "propcache",
            "specs": [
                [
                    "==",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    "==",
                    "2.7.1"
                ]
            ]
        },
        {
            "name": "pydantic-core",
            "specs": [
                [
                    "==",
                    "2.18.2"
                ]
            ]
        },
        {
            "name": "pyhumps",
            "specs": [
                [
                    "==",
                    "3.8.0"
                ]
            ]
        },
        {
            "name": "pyjwt",
            "specs": [
                [
                    "==",
                    "2.9.0"
                ]
            ]
        },
        {
            "name": "sniffio",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    "==",
                    "4.12.2"
                ]
            ]
        },
        {
            "name": "yarl",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "tmdsclient"
}
        
Elapsed time: 0.37649s