# polyants
> POLYHUB system helpers.
[](https://gitlab.com/ru-r5/polyants/-/commits/master)
[](https://badge.fury.io/py/polyants)

## Installation
OS X & Linux & Windows:
```sh
pip install polyants
```
## Usage example
```python
from polyants.polyhub.helpers.common import get_now
print(get_now())
```
## Development setup
- tool requirements:
- poetry
- activating environment
```sh
poetry shell
```
- preparing environment
```sh
poetry install --no-root
```
- generating grpc artifacts
```sh
rm -rf ./polyants/polyhub/grpc/*
touch ./polyants/polyhub/grpc/__init__.py
python -m grpc_tools.protoc -I ./protos --python_out=./ --pyi_out=./ --grpc_python_out=./ ./protos/polyants/polyhub/grpc/*.proto
```
- coverage
```sh
poetry run pytest --cov
```
- format
```sh
poetry run black polyants -S
```
- lint
```sh
poetry run ruff check
```
- type checking
```sh
poetry run pyre --sequential
```
## Release History
- 0.12a0
- catalog switched off errors list updated (#57)
- skipper's stream instantiation fix (#58)
- 0.11a0
- workflow object type support (#51)
- product object type support (#52)
- report generator timeout support (#53)
- internal token based API requests (#54)
- data quality API support (#55)
- platform aware path sanitizer (#56)
- 0.10a0
- temp file context manager (#38)
- telegram notification support (#45)
- rate limiter integration (#46)
- using lookup attribute dataType as default lookup key column type (#47)
- support for alert attachments as parameters (#48)
- support for adding and deleting historical records in datagrids with lookups (#49)
- support for SMB storage (#50)
- 0.9a0
- datagrid filters boolean values handling (#44)
- catalog timeout error handling (#43)
- `fix_base64_padding` function (#42)
- `to_plain_json` should not sort target json attributes (#40)
- `column` attribute should not be required for datagrid filter attributes (#39)
- Visiology v3 API support (#37)
- 0.8a0
- `SYNC_FILES` bucket token capability (#36)
- 0.7a0
- `REPOSITORY` object type and auxiliary functions (#35)
- 0.6a0
- float schema version number support (#34)
- new object type `SCRIPT` and it's types (#35)
- 0.5a0
- process_folder function without recursion (#29)
- object settings caching (#30)
- function to encode a string as urlsafe base64 (#31)
- semi-automatically generation of `calculated` attribute in datagrid definitions (#32)
- 0.4a0
- to_plain_json function to remove meta from json definitions (#28)
- 0.3a0
- polyhub helpers starter bundle (#21)
- 0.2a0
- configurable enum class (#3)
- 0.1a0
- mvp (#1)
## Meta
<pymancer@gmail.com> ([Polyanalitika LLC](https://polyanalitika.ru))
[https://gitlab.com/ru-r5/polyants](https://gitlab.com/ru-r5/polyants)
## License
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at <https://mozilla.org/MPL/2.0/>.
## Contributing
1. Fork it (<https://gitlab.com/ru-r5/polyants/fork>)
2. Create your feature branch (`git checkout -b feature/foo`)
3. Commit your changes (`git commit -am 'Add some foo'`)
4. Push to the branch (`git push origin feature/foo`)
5. Create a new Pull Request
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/ru-r5/polyants",
"name": "polyants",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.9",
"maintainer_email": null,
"keywords": "tools, helpers",
"author": "pymancer",
"author_email": "pymancer@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f3/f8/eb97ac1e1d597e3821b291fe26ffc0ad307ff44e884aad519eb2faa502ce/polyants-0.12a0.tar.gz",
"platform": null,
"description": "# polyants\n\n> POLYHUB system helpers.\n\n[](https://gitlab.com/ru-r5/polyants/-/commits/master)\n[](https://badge.fury.io/py/polyants)\n\n\n\n## Installation\n\nOS X & Linux & Windows:\n\n```sh\npip install polyants\n```\n\n## Usage example\n\n```python\nfrom polyants.polyhub.helpers.common import get_now\n\nprint(get_now())\n```\n\n## Development setup\n\n- tool requirements:\n - poetry\n\n- activating environment\n\n```sh\npoetry shell\n```\n\n- preparing environment\n\n```sh\npoetry install --no-root\n```\n\n- generating grpc artifacts\n\n```sh\nrm -rf ./polyants/polyhub/grpc/*\ntouch ./polyants/polyhub/grpc/__init__.py\npython -m grpc_tools.protoc -I ./protos --python_out=./ --pyi_out=./ --grpc_python_out=./ ./protos/polyants/polyhub/grpc/*.proto\n```\n\n- coverage\n\n```sh\npoetry run pytest --cov\n```\n\n- format\n\n```sh\npoetry run black polyants -S\n```\n\n- lint\n\n```sh\npoetry run ruff check\n```\n\n- type checking\n\n```sh\npoetry run pyre --sequential\n```\n\n## Release History\n\n- 0.12a0\n - catalog switched off errors list updated (#57)\n - skipper's stream instantiation fix (#58)\n- 0.11a0\n - workflow object type support (#51)\n - product object type support (#52)\n - report generator timeout support (#53)\n - internal token based API requests (#54)\n - data quality API support (#55)\n - platform aware path sanitizer (#56)\n- 0.10a0\n - temp file context manager (#38)\n - telegram notification support (#45)\n - rate limiter integration (#46)\n - using lookup attribute dataType as default lookup key column type (#47)\n - support for alert attachments as parameters (#48)\n - support for adding and deleting historical records in datagrids with lookups (#49)\n - support for SMB storage (#50)\n- 0.9a0\n - datagrid filters boolean values handling (#44)\n - catalog timeout error handling (#43)\n - `fix_base64_padding` function (#42)\n - `to_plain_json` should not sort target json attributes (#40)\n - `column` attribute should not be required for datagrid filter attributes (#39)\n - Visiology v3 API support (#37)\n- 0.8a0\n - `SYNC_FILES` bucket token capability (#36)\n- 0.7a0\n - `REPOSITORY` object type and auxiliary functions (#35)\n- 0.6a0\n - float schema version number support (#34)\n - new object type `SCRIPT` and it's types (#35)\n- 0.5a0\n - process_folder function without recursion (#29)\n - object settings caching (#30)\n - function to encode a string as urlsafe base64 (#31)\n - semi-automatically generation of `calculated` attribute in datagrid definitions (#32)\n- 0.4a0\n - to_plain_json function to remove meta from json definitions (#28)\n- 0.3a0\n - polyhub helpers starter bundle (#21)\n- 0.2a0\n - configurable enum class (#3)\n- 0.1a0\n - mvp (#1)\n\n## Meta\n\n<pymancer@gmail.com> ([Polyanalitika LLC](https://polyanalitika.ru)) \n[https://gitlab.com/ru-r5/polyants](https://gitlab.com/ru-r5/polyants)\n\n## License\n\nThis Source Code Form is subject to the terms of the Mozilla Public \nLicense, v. 2.0. If a copy of the MPL was not distributed with this \nfile, You can obtain one at <https://mozilla.org/MPL/2.0/>. \n\n## Contributing\n\n1. Fork it (<https://gitlab.com/ru-r5/polyants/fork>)\n2. Create your feature branch (`git checkout -b feature/foo`)\n3. Commit your changes (`git commit -am 'Add some foo'`)\n4. Push to the branch (`git push origin feature/foo`)\n5. Create a new Pull Request\n",
"bugtrack_url": null,
"license": "MPL-2.0",
"summary": "POLYHUB system helpers",
"version": "0.12a0",
"project_urls": {
"Documentation": "https://gitlab.com/ru-r5/polyants/-/wikis/home",
"Homepage": "https://gitlab.com/ru-r5/polyants",
"Repository": "https://gitlab.com/ru-r5/polyants"
},
"split_keywords": [
"tools",
" helpers"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f50ba76e333fe844f7c8fbc125e94a66cb6c56198e0045ee58df0eb3c69b3eac",
"md5": "706d60e54fadafd1c82a8ca5f7fb303c",
"sha256": "3a0f9e0125db344a2ad132101af1d602abd69e019fff9efce69be1bbf7afac31"
},
"downloads": -1,
"filename": "polyants-0.12a0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "706d60e54fadafd1c82a8ca5f7fb303c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.9",
"size": 60558,
"upload_time": "2025-08-28T14:34:05",
"upload_time_iso_8601": "2025-08-28T14:34:05.444892Z",
"url": "https://files.pythonhosted.org/packages/f5/0b/a76e333fe844f7c8fbc125e94a66cb6c56198e0045ee58df0eb3c69b3eac/polyants-0.12a0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f3f8eb97ac1e1d597e3821b291fe26ffc0ad307ff44e884aad519eb2faa502ce",
"md5": "ed3e2291065113985ed6640f77b58fec",
"sha256": "e1d9b62de230a73a0b3ff9ad00231bd0e2da633ca823c2c18c6c0ccd1db5c97f"
},
"downloads": -1,
"filename": "polyants-0.12a0.tar.gz",
"has_sig": false,
"md5_digest": "ed3e2291065113985ed6640f77b58fec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.9",
"size": 44868,
"upload_time": "2025-08-28T14:34:06",
"upload_time_iso_8601": "2025-08-28T14:34:06.419589Z",
"url": "https://files.pythonhosted.org/packages/f3/f8/eb97ac1e1d597e3821b291fe26ffc0ad307ff44e884aad519eb2faa502ce/polyants-0.12a0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-28 14:34:06",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "ru-r5",
"gitlab_project": "polyants",
"lcname": "polyants"
}