Name | substrait-validator JSON |
Version |
0.1.3
JSON |
| download |
home_page | None |
Summary | Validator for Substrait query plans |
upload_time | 2025-01-10 10:22:18 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | Apache-2.0 |
keywords |
substrait
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Python bindings for validator
This directory contains a Rust/PyO3 project to generate Python bindings for the
validator library.
## Installation
The easiest way to install the validator is to get it from PyPI:
```console
user@host:~$ pip install substrait-validator
```
If you want to build manually, running something along the lines of
`pip install .` should work. You should only need to have a
[rust](https://www.rust-lang.org/tools/install) compiler installed.
If you want to create wheels or sdists of your own, you can do so using
maturin (note the manual prepare_build.py invocation, see hints):
```console
user@host:~$ pip install "maturin>=0.14,<0.15"
...
user@host:~$ ./prepare_build.py populate
user@host:~$ maturin build
...
📦 Built wheel for CPython 3.x to /path/to/substrait-validator/target/wheels/substrait_validator-x.y.z-cp3xx-cp3xx-linux_x86_64.whl
user@host:~$ maturin sdist
...
📦 Built source distribution to /path/to/substrait-validator/target/wheels/substrait_validator-x.y.z.tar.gz
```
Some hints if you run into issues:
- This project relies on submodules, so you need to check those out first.
- Out-of-tree builds are not supported, so you may need to beat pip into
submission if you're using an old version or it otherwise insists on
building from a temp directory.
- If you get weird errors, try running `./prepare_build.py populate` manually
first. The protobuf generation logic has to be run very early in the build
process, and while this is done automatically for most build methods, not
all methods provide a hook for this.
## Building wheels and source distributions
You can build wheels and source distributions using
[maturin](https://github.com/PyO3/maturin), specifically using the `build` and
`sdist` commands. However, before you can do this, you must run
`./prepare_build.py populate`. This makes local copies of some files in the
repository that live outside of this subdirectory, such as the protobuf
description files. When you use `pip` or some other tool based on
`pyproject.toml`, this will be done automatically via build system hooks, but
unfortunately maturin doesn't itself provide hooks with which this can be
automated.
## Running tests
You can test the module using `pytest` after you install it.
## Command-line usage
The module exposes a command-line program named `substrait-validator` for
running the validator manually. You can also use the tool to convert between
various serialization formats of the `substrait.Plan` message. Run
`substrait-validator --help` for more information.
## Library usage
The library essentially provides a bunch of type conversion functions at
module scope to convert between the various representations of a Substrait
plan, including the result of the validator. The most important functions are
arguably `check_plan_valid(plan, config=None)` and
`check_plan_not_invalid(plan, config=None)`, which run validation on the given
plan and throw a Python exception corresponding to the first diagnostic
returned by the validator of the highest severity encountered if the plan is
not strictly or loosely valid respectively. That is, `check_plan_valid` will
throw an exception if the plan could not be proven to be valid, while
`check_plan_not_invalid` will only throw if it could be proven to be invalid.
The `plan` argument can be a number of things:
- `bytes`: treated as a binary serialization of `substrait.Plan`.
- `str`: treated as a protobuf JSON serialization of `substrait.Plan`.
- `dict`: treated as the above using Python's data model (JSON objects map
to `dict`s, JSON arrays map to `list`s).
- `substrait_validator.substrait.Plan`: a previously deserialized plan.
- `substrait_validator.ResultHandle`: a previously validated plan.
`config` can be `None`/unspecified, or can be set to a
`substrait_validator.Config` object to configure the validator with.
For more information, use Python's `help()` function.
Raw data
{
"_id": null,
"home_page": null,
"name": "substrait-validator",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "substrait",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/a9/c5/f3ea278cfe62f45ef0b9768d1e5eb68ea55127f01f877bf3b4ffd1651dfb/substrait_validator-0.1.3.tar.gz",
"platform": null,
"description": "# Python bindings for validator\n\nThis directory contains a Rust/PyO3 project to generate Python bindings for the\nvalidator library.\n\n## Installation\n\nThe easiest way to install the validator is to get it from PyPI:\n\n```console\nuser@host:~$ pip install substrait-validator\n```\n\nIf you want to build manually, running something along the lines of\n`pip install .` should work. You should only need to have a\n[rust](https://www.rust-lang.org/tools/install) compiler installed.\n\nIf you want to create wheels or sdists of your own, you can do so using\nmaturin (note the manual prepare_build.py invocation, see hints):\n\n```console\nuser@host:~$ pip install \"maturin>=0.14,<0.15\"\n...\nuser@host:~$ ./prepare_build.py populate\nuser@host:~$ maturin build\n...\n\ud83d\udce6 Built wheel for CPython 3.x to /path/to/substrait-validator/target/wheels/substrait_validator-x.y.z-cp3xx-cp3xx-linux_x86_64.whl\nuser@host:~$ maturin sdist\n...\n\ud83d\udce6 Built source distribution to /path/to/substrait-validator/target/wheels/substrait_validator-x.y.z.tar.gz\n```\n\nSome hints if you run into issues:\n\n - This project relies on submodules, so you need to check those out first.\n - Out-of-tree builds are not supported, so you may need to beat pip into\n submission if you're using an old version or it otherwise insists on\n building from a temp directory.\n - If you get weird errors, try running `./prepare_build.py populate` manually\n first. The protobuf generation logic has to be run very early in the build\n process, and while this is done automatically for most build methods, not\n all methods provide a hook for this.\n\n## Building wheels and source distributions\n\nYou can build wheels and source distributions using\n[maturin](https://github.com/PyO3/maturin), specifically using the `build` and\n`sdist` commands. However, before you can do this, you must run\n`./prepare_build.py populate`. This makes local copies of some files in the\nrepository that live outside of this subdirectory, such as the protobuf\ndescription files. When you use `pip` or some other tool based on\n`pyproject.toml`, this will be done automatically via build system hooks, but\nunfortunately maturin doesn't itself provide hooks with which this can be\nautomated.\n\n## Running tests\n\nYou can test the module using `pytest` after you install it.\n\n## Command-line usage\n\nThe module exposes a command-line program named `substrait-validator` for\nrunning the validator manually. You can also use the tool to convert between\nvarious serialization formats of the `substrait.Plan` message. Run\n`substrait-validator --help` for more information.\n\n## Library usage\n\nThe library essentially provides a bunch of type conversion functions at\nmodule scope to convert between the various representations of a Substrait\nplan, including the result of the validator. The most important functions are\narguably `check_plan_valid(plan, config=None)` and\n`check_plan_not_invalid(plan, config=None)`, which run validation on the given\nplan and throw a Python exception corresponding to the first diagnostic\nreturned by the validator of the highest severity encountered if the plan is\nnot strictly or loosely valid respectively. That is, `check_plan_valid` will\nthrow an exception if the plan could not be proven to be valid, while\n`check_plan_not_invalid` will only throw if it could be proven to be invalid.\n\nThe `plan` argument can be a number of things:\n\n - `bytes`: treated as a binary serialization of `substrait.Plan`.\n - `str`: treated as a protobuf JSON serialization of `substrait.Plan`.\n - `dict`: treated as the above using Python's data model (JSON objects map\n to `dict`s, JSON arrays map to `list`s).\n - `substrait_validator.substrait.Plan`: a previously deserialized plan.\n - `substrait_validator.ResultHandle`: a previously validated plan.\n\n`config` can be `None`/unspecified, or can be set to a\n`substrait_validator.Config` object to configure the validator with.\n\nFor more information, use Python's `help()` function.\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Validator for Substrait query plans",
"version": "0.1.3",
"project_urls": {
"homepage": "https://substrait.io/",
"repository": "https://github.com/substrait-io/substrait-validator"
},
"split_keywords": [
"substrait"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6dec2946f011e1df3daeba94c2403a9b448fa34bbe6121f0328c4531966a8023",
"md5": "cf360a7c2c1d4b30b76310765fcf1d58",
"sha256": "21edeed6f6b3f7071c557b99ef0b8604c07f759a75766abc7f40f6e264dd4579"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"has_sig": false,
"md5_digest": "cf360a7c2c1d4b30b76310765fcf1d58",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 5857569,
"upload_time": "2025-01-10T10:21:33",
"upload_time_iso_8601": "2025-01-10T10:21:33.378556Z",
"url": "https://files.pythonhosted.org/packages/6d/ec/2946f011e1df3daeba94c2403a9b448fa34bbe6121f0328c4531966a8023/substrait_validator-0.1.3-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a78903867d63b8f00ae520df688227a3def030ce7ecc169ffc8f1671ed18aef7",
"md5": "bc088d155e9a557705f9fa57eff9ce31",
"sha256": "2a15383cdfcf1afdd4f60e3b330c84b79465da05df1e71fa22e20f60914d8814"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "bc088d155e9a557705f9fa57eff9ce31",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 3341738,
"upload_time": "2025-01-10T10:21:37",
"upload_time_iso_8601": "2025-01-10T10:21:37.241275Z",
"url": "https://files.pythonhosted.org/packages/a7/89/03867d63b8f00ae520df688227a3def030ce7ecc169ffc8f1671ed18aef7/substrait_validator-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "84d7e788a75bb8bb9cec9bf7e36331ea69cbcbe1ba125141d1df3e6524b9e2f5",
"md5": "f1fde1069f61461b500e49a65b2fc568",
"sha256": "dc8a6469333681c261107b2357863ca55378a7e5e73b6d0d8d6a2eba9d34affb"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp310-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "f1fde1069f61461b500e49a65b2fc568",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 2821493,
"upload_time": "2025-01-10T10:21:40",
"upload_time_iso_8601": "2025-01-10T10:21:40.328355Z",
"url": "https://files.pythonhosted.org/packages/84/d7/e788a75bb8bb9cec9bf7e36331ea69cbcbe1ba125141d1df3e6524b9e2f5/substrait_validator-0.1.3-cp310-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4b44a10beb519520649338fb838a0aab730adea524262f56eb7b0453369c5f0a",
"md5": "ada5f5fdbd40a2704b1cfeca8cab8bc6",
"sha256": "eaaea7ffa23adff6c3b538f738cc92617b9ef1e9f2d5f99e4d16a39ced57116c"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"has_sig": false,
"md5_digest": "ada5f5fdbd40a2704b1cfeca8cab8bc6",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 5858821,
"upload_time": "2025-01-10T10:21:43",
"upload_time_iso_8601": "2025-01-10T10:21:43.291219Z",
"url": "https://files.pythonhosted.org/packages/4b/44/a10beb519520649338fb838a0aab730adea524262f56eb7b0453369c5f0a/substrait_validator-0.1.3-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c92c72fefe30bcec63d5c6f17cec024428f1550f2bff9587a75f23bbd1e4a12c",
"md5": "9e68de34324e155397cfb0c218892f92",
"sha256": "006260ea8d302fd8071837e76380815c0ab9a7de256cbda72caef74ca3a25905"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "9e68de34324e155397cfb0c218892f92",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 3340984,
"upload_time": "2025-01-10T10:21:48",
"upload_time_iso_8601": "2025-01-10T10:21:48.896112Z",
"url": "https://files.pythonhosted.org/packages/c9/2c/72fefe30bcec63d5c6f17cec024428f1550f2bff9587a75f23bbd1e4a12c/substrait_validator-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d2d6458b2a769efb6ffc987d8979d2f7a88489696b02e2a735f7ff574f5e58ec",
"md5": "f8305b87816192a58c37fadc94a2e6b6",
"sha256": "cb40ecbfb2465809408dcbd8080ddc19a1896ec61e81fadf15e0e771a13fc6bd"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp311-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "f8305b87816192a58c37fadc94a2e6b6",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 2820116,
"upload_time": "2025-01-10T10:21:51",
"upload_time_iso_8601": "2025-01-10T10:21:51.312537Z",
"url": "https://files.pythonhosted.org/packages/d2/d6/458b2a769efb6ffc987d8979d2f7a88489696b02e2a735f7ff574f5e58ec/substrait_validator-0.1.3-cp311-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "31781f269ad7a6abdec8d490c7792d385a9d058b8490bb2bfaee2bff180b174d",
"md5": "3d4cbba4deb8454bdb105fadf58a8853",
"sha256": "96ea3bbdcb0a2b19accf941d6b0122d972d60b7588b2b30ce3b8d29c222848a6"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"has_sig": false,
"md5_digest": "3d4cbba4deb8454bdb105fadf58a8853",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 5858652,
"upload_time": "2025-01-10T10:21:55",
"upload_time_iso_8601": "2025-01-10T10:21:55.990407Z",
"url": "https://files.pythonhosted.org/packages/31/78/1f269ad7a6abdec8d490c7792d385a9d058b8490bb2bfaee2bff180b174d/substrait_validator-0.1.3-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6c3d4f3f4e468fe7992005bb3fba368385063cb678ce874a4a4dc65ab1cdac01",
"md5": "c2abedc7ed1c5b2a47953b274c3677e3",
"sha256": "860cb9c6503b1e14f53d28b44e3cdd5544c6e5b0b325942f5e5472c416116a6e"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c2abedc7ed1c5b2a47953b274c3677e3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 3338683,
"upload_time": "2025-01-10T10:21:58",
"upload_time_iso_8601": "2025-01-10T10:21:58.363001Z",
"url": "https://files.pythonhosted.org/packages/6c/3d/4f3f4e468fe7992005bb3fba368385063cb678ce874a4a4dc65ab1cdac01/substrait_validator-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "28fe5cb3cecd29ebe825c00debf69e4d3620b2e1ef389b98abde0470ac42b067",
"md5": "8124677b827589e2f0dc22d3f1236c58",
"sha256": "71503ed4eeaa087ab6a02de6109ff4b57aa39c37e5aff2203ccbdfc3e841b4cc"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp312-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "8124677b827589e2f0dc22d3f1236c58",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 2821298,
"upload_time": "2025-01-10T10:22:00",
"upload_time_iso_8601": "2025-01-10T10:22:00.367078Z",
"url": "https://files.pythonhosted.org/packages/28/fe/5cb3cecd29ebe825c00debf69e4d3620b2e1ef389b98abde0470ac42b067/substrait_validator-0.1.3-cp312-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2a02b308132942fe3eb41611026fb7315aad3a0af5d067087814e2c0216cb335",
"md5": "e332a585f1ae59221f35b99c96b0eb8a",
"sha256": "7b61720140086f14a31c9e7f2656c7800237d1d3aa6e2d6caba7dc64191bcdb6"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"has_sig": false,
"md5_digest": "e332a585f1ae59221f35b99c96b0eb8a",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 5861186,
"upload_time": "2025-01-10T10:22:02",
"upload_time_iso_8601": "2025-01-10T10:22:02.576043Z",
"url": "https://files.pythonhosted.org/packages/2a/02/b308132942fe3eb41611026fb7315aad3a0af5d067087814e2c0216cb335/substrait_validator-0.1.3-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "49cda1238049c0a69513964a51056dde99b998dd933b9446cbf562dfb196d010",
"md5": "4d9f8b59b26c35f66e301ab161b2126d",
"sha256": "ed74a73bb72d99ab39d4df5091a27e2b96cefb20b36b5d773116ed20f36e3165"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "4d9f8b59b26c35f66e301ab161b2126d",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 3342907,
"upload_time": "2025-01-10T10:22:06",
"upload_time_iso_8601": "2025-01-10T10:22:06.120812Z",
"url": "https://files.pythonhosted.org/packages/49/cd/a1238049c0a69513964a51056dde99b998dd933b9446cbf562dfb196d010/substrait_validator-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9c2e0b1d357730969fb255f48d1d8e37a54753bb57a6007a3e7f27ee7418fa90",
"md5": "9a2a85c7544de96ba392560b8459bb05",
"sha256": "6e76ad5b32d29a0eb03d35fc822a2bbbda43e46381dfb50b5b3e93fe6e63d3ec"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp38-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "9a2a85c7544de96ba392560b8459bb05",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 2821544,
"upload_time": "2025-01-10T10:22:08",
"upload_time_iso_8601": "2025-01-10T10:22:08.219856Z",
"url": "https://files.pythonhosted.org/packages/9c/2e/0b1d357730969fb255f48d1d8e37a54753bb57a6007a3e7f27ee7418fa90/substrait_validator-0.1.3-cp38-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cc9ea1b812eb424eb94b54c63ac119f662bc9a1d959712a695eac24ce1e0b65d",
"md5": "2cd8979168a1708e857cb32c81a7efed",
"sha256": "dffd015f14c2a9f7529415811e66c3d859973570e490a58ac27e120fa60dd56f"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"has_sig": false,
"md5_digest": "2cd8979168a1708e857cb32c81a7efed",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 5858678,
"upload_time": "2025-01-10T10:22:10",
"upload_time_iso_8601": "2025-01-10T10:22:10.586432Z",
"url": "https://files.pythonhosted.org/packages/cc/9e/a1b812eb424eb94b54c63ac119f662bc9a1d959712a695eac24ce1e0b65d/substrait_validator-0.1.3-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d06393287a54d024e617223033d00bc140d4c5fc0bbce98e0240ffd2d13344b1",
"md5": "f2b2e3f860bbbfb306c513c39f04b62c",
"sha256": "bfe0d7aa62089b0496fea42f18b82e80550e890568d3dc916fc5fd09f8337957"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "f2b2e3f860bbbfb306c513c39f04b62c",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 3341805,
"upload_time": "2025-01-10T10:22:13",
"upload_time_iso_8601": "2025-01-10T10:22:13.220828Z",
"url": "https://files.pythonhosted.org/packages/d0/63/93287a54d024e617223033d00bc140d4c5fc0bbce98e0240ffd2d13344b1/substrait_validator-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d1c6f4b80e06177ab29443c935d0470bc373a2da72feaa9904e003bab41578bf",
"md5": "c953f6a04c4a2beccac47262790551e2",
"sha256": "ca621fb5dfc2b0e9ae93c0537470cc0f2a0d1f24a90cbf361026d41b93357b98"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3-cp39-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "c953f6a04c4a2beccac47262790551e2",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 2821785,
"upload_time": "2025-01-10T10:22:15",
"upload_time_iso_8601": "2025-01-10T10:22:15.393669Z",
"url": "https://files.pythonhosted.org/packages/d1/c6/f4b80e06177ab29443c935d0470bc373a2da72feaa9904e003bab41578bf/substrait_validator-0.1.3-cp39-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a9c5f3ea278cfe62f45ef0b9768d1e5eb68ea55127f01f877bf3b4ffd1651dfb",
"md5": "bcf88affbd0653802b8ddd7c1c7cd4aa",
"sha256": "04bc053bfa4e6add72ed12f8d4ddd6db8154556e3520d950574946bcfd946394"
},
"downloads": -1,
"filename": "substrait_validator-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "bcf88affbd0653802b8ddd7c1c7cd4aa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 462181,
"upload_time": "2025-01-10T10:22:18",
"upload_time_iso_8601": "2025-01-10T10:22:18.290697Z",
"url": "https://files.pythonhosted.org/packages/a9/c5/f3ea278cfe62f45ef0b9768d1e5eb68ea55127f01f877bf3b4ffd1651dfb/substrait_validator-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-10 10:22:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "substrait-io",
"github_project": "substrait-validator",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "substrait-validator"
}