# Iotics gRPC Python Client
A Python library for interacting with Iotics API.
## Usage and Version Compatibility with Iotics host
| iotics-grpc-client-py | iotics-host |
|----------------------| ----------- |
| `pip install iotics-grpc-client~=7.0` | `>= 7` |
| `pip install iotics-grpc-client~=6.0` | `>= 7` |
| `pip install iotics-grpc-client~=5.0` | `>= 6` |
| `pip install iotics-grpc-client~=4.0` | `>= 6` |
| `pip install iotics-grpc-client~=3.0` | `>= 6` |
| `pip install iotics-grpc-client~=2.0` | `>= 5` |
| `pip install iotics-grpc-client~=0.10.0` | `>= 4` |
## Examples
### Configuring identity
To run examples, either set up required environment variables or create an `.env` file with the following values. For
more information on the meaning of these values and how to create them, consult [identity-api-and-credentials](https://docs.iotics.com/docs/identity-api-and-credentials)
* __Required__:
* `SPACE` - Domain name of the IOTICSpace with which to communicate. The scheme can be omitted, eg. examplecorp.
iotics.space
* `USER_DID` - Identity of the user
* `AGENT_DID` - Identity of the agent authorised to operate on the user's behalf
* `AGENT_KEY_NAME` - __secret__ value used to (re)create multiple key pairs
* `AGENT_NAME` - registered identity name that can be used to e.g. identify public keys
* `AGENT_SECRET` - __secret__ value, the agent's private key
* __Optional__:
* `DID_RESOLVER_URL` - Where the database of identity documents is accessible, defaults to the one used by the given
space.
* `TOKEN_TTL` - How long in seconds auth tokens will last if not specified in the method call, defaults to 30
### Running example scripts
Next, create and activate your virtual environment and run any of the scripts in the [examples](https://github.com/Iotic-Labs/iotics-grpc-client-py/tree/main/examples) directory,
e.g.:
```shell
make deps-py
. env/bin/activate
python examples/search_twin_models.py
```
## FAQs
### Installing on Raspberry PI get: Import error GLIBC_2.33 not found
If you see this error running the exmaples on a Rapberry PI, the current workaround is to install Ubuntu for RPi which has a later version of glibc.
```shell
ImportError: /lib/arm-linux-gnueabihf/libc.so.6: version 'GLIBC_2.33' not found (required by /home/pi/work/starting/iotics-grpc-client-py/env/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-arm-linux-gnueabihf.so)
```
## Contributing
### Installing dependencies and generating gRPC client
* To satisfy all dependencies, lint proto files and regenerate client files:
```shell
make build
```
* To generate gRPC Python files:
```shell
make generate
```
* To update the Iotics API version and regenerate client
(proto files are submoduled in [./iotics-api.git/](./iotics-api.git)
from [Iotics API](https://github.com/Iotic-Labs/api) repo):
```shell
_ver=vX.X.X
make GIT_TAG=$_ver deps-proto-update build
# Address usages of the new client in `src`, update "Unreleased" section in CHANGELOG.md, then:
git add CHANGELOG.md iotics-api.git src
git commit -m "Update Iotics API to $_ver"
# Push your branch and create a PR
```
* Other `make` commands:
* `clean` - remove artifacts created inside the project.
* `deps-*` - install specific requirements if missing.
* `deps-*-update` - update specific requirements when applicable.
### PRs
Should contain a summary of the changes in [CHANGELOG.md](https://github.com/Iotic-Labs/iotics-grpc-client-py/blob/main/CHANGELOG.md) under the "Unreleased" section.
### Versioning
This package adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
### Releasing
* Update package version in [setup.cfg](./setup.cfg) for the release:
* Update [CHANGELOG.md](./CHANGELOG.md) (move notes from unreleased section, ensure right tags are used, etc.)
and any other files as needed.
* Commit changes and create a [PR](https://github.com/Iotic-Labs/iotics-grpc-client-py/compare).
* Once PR is merged manually run the [Create Draft Release GitHub Action](https://github.com/Iotic-Labs/iotics-grpc-client-py/actions/workflows/draft_release.yml), this will create a tag with the version in setup.py and create a draft release in [releases](https://github.com/Iotic-Labs/iotics-grpc-client-py/releases).
* Update the release's information and press the publish button on the release to publish it.
* The [Publish GitHub Action](https://github.com/Iotic-Labs/iotics-grpc-client-ts/actions/workflows/publish.yml)
will create a package and will publish it to [PyPI](https://pypi.org/project/iotics-grpc-client).
## License
Copyright © 2024 IOTIC LABS LTD. info@iotics.com. All rights reserved. Licensed under the Apache License, Version 2.0. See [LICENSE](https://github.com/Iotic-Labs/iotics-grpc-client-py/tree/main/LICENSE) in the project root for license information.
Raw data
{
"_id": null,
"home_page": "https://github.com/Iotic-Labs/iotics-grpc-client-py",
"name": "iotics-grpc-client",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "iotics, grpc, digital twin",
"author": "Iotics",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/28/3f/41d54af9fb7e0314df6790892b52b1c7a2f0014a9f32a0068e8d5d209c25/iotics-grpc-client-7.2.0.tar.gz",
"platform": "any",
"description": "# Iotics gRPC Python Client\n\nA Python library for interacting with Iotics API.\n\n## Usage and Version Compatibility with Iotics host\n\n| iotics-grpc-client-py | iotics-host |\n|----------------------| ----------- |\n| `pip install iotics-grpc-client~=7.0` | `>= 7` |\n| `pip install iotics-grpc-client~=6.0` | `>= 7` |\n| `pip install iotics-grpc-client~=5.0` | `>= 6` |\n| `pip install iotics-grpc-client~=4.0` | `>= 6` |\n| `pip install iotics-grpc-client~=3.0` | `>= 6` |\n| `pip install iotics-grpc-client~=2.0` | `>= 5` |\n| `pip install iotics-grpc-client~=0.10.0` | `>= 4` |\n\n## Examples\n\n### Configuring identity\n\nTo run examples, either set up required environment variables or create an `.env` file with the following values. For\nmore information on the meaning of these values and how to create them, consult [identity-api-and-credentials](https://docs.iotics.com/docs/identity-api-and-credentials)\n\n* __Required__:\n * `SPACE` - Domain name of the IOTICSpace with which to communicate. The scheme can be omitted, eg. examplecorp.\n iotics.space\n * `USER_DID` - Identity of the user\n * `AGENT_DID` - Identity of the agent authorised to operate on the user's behalf\n * `AGENT_KEY_NAME` - __secret__ value used to (re)create multiple key pairs\n * `AGENT_NAME` - registered identity name that can be used to e.g. identify public keys\n * `AGENT_SECRET` - __secret__ value, the agent's private key\n\n* __Optional__:\n * `DID_RESOLVER_URL` - Where the database of identity documents is accessible, defaults to the one used by the given\n space.\n * `TOKEN_TTL` - How long in seconds auth tokens will last if not specified in the method call, defaults to 30\n\n### Running example scripts\n\nNext, create and activate your virtual environment and run any of the scripts in the [examples](https://github.com/Iotic-Labs/iotics-grpc-client-py/tree/main/examples) directory,\ne.g.:\n\n```shell\nmake deps-py\n. env/bin/activate\npython examples/search_twin_models.py\n```\n\n## FAQs\n\n### Installing on Raspberry PI get: Import error GLIBC_2.33 not found\n\nIf you see this error running the exmaples on a Rapberry PI, the current workaround is to install Ubuntu for RPi which has a later version of glibc.\n\n```shell\nImportError: /lib/arm-linux-gnueabihf/libc.so.6: version 'GLIBC_2.33' not found (required by /home/pi/work/starting/iotics-grpc-client-py/env/lib/python3.9/site-packages/grpc/_cython/cygrpc.cpython-39-arm-linux-gnueabihf.so)\n```\n\n## Contributing\n\n### Installing dependencies and generating gRPC client\n\n* To satisfy all dependencies, lint proto files and regenerate client files:\n\n ```shell\n make build\n ```\n\n* To generate gRPC Python files:\n\n ```shell\n make generate\n ```\n\n* To update the Iotics API version and regenerate client\n (proto files are submoduled in [./iotics-api.git/](./iotics-api.git)\n from [Iotics API](https://github.com/Iotic-Labs/api) repo):\n\n ```shell\n _ver=vX.X.X\n make GIT_TAG=$_ver deps-proto-update build\n # Address usages of the new client in `src`, update \"Unreleased\" section in CHANGELOG.md, then:\n git add CHANGELOG.md iotics-api.git src\n git commit -m \"Update Iotics API to $_ver\"\n # Push your branch and create a PR\n ```\n\n* Other `make` commands:\n * `clean` - remove artifacts created inside the project.\n * `deps-*` - install specific requirements if missing.\n * `deps-*-update` - update specific requirements when applicable.\n\n### PRs\n\nShould contain a summary of the changes in [CHANGELOG.md](https://github.com/Iotic-Labs/iotics-grpc-client-py/blob/main/CHANGELOG.md) under the \"Unreleased\" section.\n\n### Versioning\n\nThis package adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)\n\n### Releasing\n\n* Update package version in [setup.cfg](./setup.cfg) for the release:\n* Update [CHANGELOG.md](./CHANGELOG.md) (move notes from unreleased section, ensure right tags are used, etc.)\n and any other files as needed.\n* Commit changes and create a [PR](https://github.com/Iotic-Labs/iotics-grpc-client-py/compare).\n* Once PR is merged manually run the [Create Draft Release GitHub Action](https://github.com/Iotic-Labs/iotics-grpc-client-py/actions/workflows/draft_release.yml), this will create a tag with the version in setup.py and create a draft release in [releases](https://github.com/Iotic-Labs/iotics-grpc-client-py/releases).\n* Update the release's information and press the publish button on the release to publish it.\n* The [Publish GitHub Action](https://github.com/Iotic-Labs/iotics-grpc-client-ts/actions/workflows/publish.yml)\n will create a package and will publish it to [PyPI](https://pypi.org/project/iotics-grpc-client).\n\n## License\n\nCopyright \u00a9 2024 IOTIC LABS LTD. info@iotics.com. All rights reserved. Licensed under the Apache License, Version 2.0. See [LICENSE](https://github.com/Iotic-Labs/iotics-grpc-client-py/tree/main/LICENSE) in the project root for license information.\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Iotics gRPC client library",
"version": "7.2.0",
"project_urls": {
"Bug Tracker": "https://github.com/Iotic-Labs/iotics-grpc-client-py/issues",
"Changelog": "https://github.com/Iotic-Labs/iotics-grpc-client-py/releases",
"Homepage": "https://github.com/Iotic-Labs/iotics-grpc-client-py"
},
"split_keywords": [
"iotics",
" grpc",
" digital twin"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "14216a23ac25baadcae0467a285a9586842fe89ac895f1a7b13a768842851dd5",
"md5": "9a5b045e8292850c30ef630d0b4cc794",
"sha256": "f2b3da2b530e650acc71e64342c3eee88c828c76d1091ae9c9214119907f941b"
},
"downloads": -1,
"filename": "iotics_grpc_client-7.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9a5b045e8292850c30ef630d0b4cc794",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 93938,
"upload_time": "2024-10-30T11:32:18",
"upload_time_iso_8601": "2024-10-30T11:32:18.935869Z",
"url": "https://files.pythonhosted.org/packages/14/21/6a23ac25baadcae0467a285a9586842fe89ac895f1a7b13a768842851dd5/iotics_grpc_client-7.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "283f41d54af9fb7e0314df6790892b52b1c7a2f0014a9f32a0068e8d5d209c25",
"md5": "fc57fb4c9c3060457cb822cc4626b6d2",
"sha256": "8cac6ab98b1d11bf4df61b15fed182e847ea2c6bbce7851890fc98219c6fc786"
},
"downloads": -1,
"filename": "iotics-grpc-client-7.2.0.tar.gz",
"has_sig": false,
"md5_digest": "fc57fb4c9c3060457cb822cc4626b6d2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 69293,
"upload_time": "2024-10-30T11:32:20",
"upload_time_iso_8601": "2024-10-30T11:32:20.359486Z",
"url": "https://files.pythonhosted.org/packages/28/3f/41d54af9fb7e0314df6790892b52b1c7a2f0014a9f32a0068e8d5d209c25/iotics-grpc-client-7.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-30 11:32:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Iotic-Labs",
"github_project": "iotics-grpc-client-py",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "iotics-grpc-client"
}