shapes-rs


Nameshapes-rs JSON
Version 0.0.13 PyPI version JSON
download
home_pagehttps://www.weso.es/shapes-rs/
SummaryRDF Data shapes implementation in Rust
upload_time2024-07-01 17:46:33
maintainerNone
docs_urlNone
authorJose Emilio Labra Gayo <labra@uniovi.es>, Ángel Iglesias Préstamo <angel.iglesias.prestamo@gmail.com>, Marc-Antoine Arnaud <marc-antoine.arnaud@luminvent.com>
requires_pythonNone
licenseMIT OR Apache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Shapes-rs](https://github.com/weso/shapes-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/weso/shapes-rs/actions/workflows/ci.yml)
[![dependency status](https://deps.rs/repo/github/weso/shapes-rs/status.svg)](https://deps.rs/repo/github/weso/shapes-rs)

# SHAPES-rs

This repo contains an RDF data shapes library implemented in Rust.
The implementation supports both [ShEx](http://shex.io/) and [SHACL](https://www.w3.org/TR/shacl/).

We provide binaries for Linux, Windows, Mac and Docker (see [releases](https://github.com/weso/shapes-rs/releases)).

- [List of issues](https://github.com/weso/shapes-rs)
- [Discussion](https://github.com/weso/shapes-rs/discussions/landing)
- [FAQ](https://github.com/weso/shapes-rs/wiki/FAQ)
- [How to guides](https://github.com/weso/shapes-rs/wiki/Howto-guides)
- [Roadmap](https://github.com/weso/shapes-rs/issues/1)

### Installation

#### Official releases

You can download a binary from the [latest release](https://github.com/weso/shapes-rs/releases/latest) page. There you will also find the compiled packages for the installation on your system using a package manager.

##### Ubuntu

Download the binary from [https://github.com/weso/shapes-rs/releases] and install the `.deb` package running the following commands after replacing X.X.X by the latest version:

```
wget https://github.com/weso/shapes-rs/releases/download/X.X.X/rdfsx_vX.X.X_amd64.deb
sudo dpkg -i rdfsx_vX.X.X_amd64.deb
```

##### Windows

The binary can be downloaded from [https://github.com/weso/shapes-rs/releases]

##### Mac

The binary is available at: [https://github.com/weso/shapes-rs/releases]

<details markdown="block">
<summary>Compiling from source</summary>

#### Compiling from source

`shapes-rs` has been implemented in Rust and is compiled using [cargo](https://doc.rust-lang.org/cargo/). The command `cargo run` can be used to compile and run locally the code.

For example:

```
cargo run -- validate --data examples/user.ttl --schema examples/user.shex --shapemap examples/user.sm 
```

#### Compiling from source and installing the binary (Debian)

Install `cargo deb` (only the first time)

```
cargo install cargo-deb
```

Create the `.deb` package by:

```
cargo deb
```

And run:

```
sudo dpkg -i target/debian/shapes-rs_0.0.11-1_amd64.deb
```

#### Docker

TBD

</details>

### Usage

#### Some examples

The folder `examples` contains several example files with ShEx schemas and RDF data.

##### Validate a simple RDF file with a ShEx schema using a ShapeMap

```
rdfsx validate --data examples/user.ttl --schema examples/user.shex --shapemap examples/user.sm
```

We maintain a Wiki page with some common [Usage scenarios and How-to guides](https://github.com/weso/shapes-rs/wiki/Howto-guides).

#### Debugging information

It is possible to change the debug level information with:

```
export RUST_LOG=value
```

where `value` can be `debug` to show more verbose information or `info` to show basic information.

## Command line usage

```sh
$ rdfsx --help
Usage: sx [OPTIONS] [COMMAND]
Commands:
  schema
  validate
  data
  node
  help
          Print this message or the help of the given subcommand(s)
```

### Obtaining information about a schema

```sh
Usage: rdfsx schema [OPTIONS] --schema <Schema file name>

Options:
  -s, --schema <Schema file name>
          
  -f, --schema-format <Schema format>
          [default: shexj] [possible values: internal, shexc, shexj]
  -r, --result-schema-format <Result schema format>
          [default: shexj] [possible values: internal, shexc, shexj]
  -h, --help
          Print help
```

### Obtaining information about RDF data

```sh
Usage: rdfsx data [OPTIONS] --data <RDF data path>

Options:
  -d, --data <RDF data path>           
  -t, --data-format <RDF Data format>  [default: turtle] [possible values: turtle]
  -h, --help                           Print help
```

### Obtaining information about a node in RDF data

This command can be useful to obtain the neighbourhood of a node.

```sh
Usage: rdfsx node [OPTIONS] --node <NODE>

Options:
  -n, --node <NODE>
          
  -d, --data <RDF data path>
          
  -t, --data-format <RDF Data format>
          [default: turtle] [possible values: turtle]
  -e, --endpoint <Endpoint with RDF data>
          
  -m, --show-node-mode <Show Node Mode>
          [default: outgoing] [possible values: outgoing, incoming, both]
  -h, --help
          Print help  
```

For example, the following command shows the neighbourhood of node `wd:Q80` in the Wikidata endpoint.

```sh
rdfsx node -e wikidata -n wd:Q80
```

### Validating an RDF node against some data

Example: Assuming there a ShEx file in `examples/user.shex` and an RDF turtle file in `examples/user.ttl` we can ask to validate node `:a` with shape label `:User` using:

```sh
rdfsx validate -s examples/user.shex -d examples/user.ttl -n :a -l :User
```

If there is a shapemap in `examples/user.sm`, we can validate using:

```sh
rdfsx validate -s examples/user.shex -d examples/user.ttl -m examples/user.sm
```

The full help for the `validate` subcommand is:

```sh
Usage: rdfsx validate [OPTIONS] --schema <Schema file name> --data <RDF data path>

Options:
  -s, --schema <Schema file name>
          
  -f, --schema-format <Schema format>
          [default: shexc] [possible values: internal, shexc, shexj]
  -m, --shapemap <ShapeMap file name>
          
      --shapemap-format <ShapeMap format>
          [default: compact] [possible values: compact, internal]
      --result-shapemap-format <Result shapemap format>
          [default: compact] [possible values: compact, internal]
  -n, --node <NODE>
          
  -l, --shape-label <shape label (default = START)>
          
  -d, --data <RDF data path>
          
  -t, --data-format <RDF Data format>
          [default: turtle] [possible values: turtle]
      --max-steps <max steps to run>
          [default: 100]
  -h, --help
          Print help
```

## Main modules

The repo is divided in the following modules:

- [iri_s](https://github.com/weso/shapes-rs/tree/master/iri_s) defines simple IRIs.
- [srdf](https://github.com/weso/shapes-rs/tree/master/srdf) simple RDF model which will be used for validation.
- [prefixmap](https://github.com/weso/shapes-rs/tree/master/prefixmap) Prefix maps implementation.
- [shapemap](https://github.com/weso/shapes-rs/tree/master/shapemap) ShapeMap implementation.
- [shex_ast](https://github.com/weso/shapes-rs/tree/master/shex_ast) defines the ShEx Abstract syntax
- [shex_compact](https://github.com/weso/shapes-rs/tree/master/shex_compact) contains the code required to handle ShEx compact syntax.
- [shex_validation](https://github.com/weso/shapes-rs/tree/master/shex_validation) contains the code required to validate RDF using ShEx.
- [shex_testsuite](https://github.com/weso/shapes-rs/tree/master/shex_testsuite) contains the code required to run the ShEx testsuite.
- [shacl_ast](https://github.com/weso/shapes-rs/tree/master/shacl_ast) defines the SHACL core Abstract syntax.

## Publishing the crates

```sh
cargo workspaces publish 
```

## Worskpaces

The project is using cargo workspaces wihch can be installed with:

```
cargo install cargo-workspaces
```

## Unit-testing

In order to test all the sub-projects

```
cargo test --all
```

Testing one specific subproject:

```
cargo test -p shex_validation
```

## Using the ShEx test-suite

The ShEx testsuite is included in a git submodule. In order to obtain it, it is necessary to do:

```sh
git submodule update --init --recursive
cargo run -p shex_testsuite
```

```sh
Usage: shex_testsuite [OPTIONS]

Options:
  -m, --manifest <Manifest FILE (.jsonld)>
          Name of Manifest file [default: shex_testsuite/shexTest/validation/manifest.jsonld]
  -c, --config <Config file>
          [default: shex_testsuite/config.yml]
  -x, --run_mode <MANIFEST_RUN_MODE>
          [default: collect-errors] [possible values: collect-errors, fail-first-error]
  -f, --manifest_mode <MANIFEST_MODE>
          [possible values: schemas, validation, negative-syntax, negative-structure]
  -p, --print_result_mode <PRINT_RESULT_MODE>
          [default: basic] [possible values: basic, failed, passed, not-implemented, all]
  -e, --entry <Entry names>
          
  -t, --trait <Trait names>
          
  -h, --help
          Print help
  -V, --version
          Print version
```

### Validation tests

```
cargo run -p shex_testsuite -- -m shex_testsuite/shexTest/validation/manifest.jsonld validation 
```

### Schemas tests

```sh
cargo run -p shex_testsuite -- -m shex_testsuite/shexTest/schemas/manifest.jsonld -f schemas -p failed
```

## License

Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)

at your option.

## Contributors

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->

<!-- ALL-CONTRIBUTORS-LIST:END -->

### Contribution

Unless you explicitly state otherwise,
any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.


            

Raw data

            {
    "_id": null,
    "home_page": "https://www.weso.es/shapes-rs/",
    "name": "shapes-rs",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Jose Emilio Labra Gayo <labra@uniovi.es>, \u00c1ngel Iglesias Pr\u00e9stamo <angel.iglesias.prestamo@gmail.com>, Marc-Antoine Arnaud <marc-antoine.arnaud@luminvent.com>",
    "author_email": "Jose Emilio Labra Gayo <labra@uniovi.es>, \u00c1ngel Iglesias Pr\u00e9stamo <angel.iglesias.prestamo@gmail.com>, Marc-Antoine Arnaud <marc-antoine.arnaud@luminvent.com>",
    "download_url": null,
    "platform": null,
    "description": "[![Shapes-rs](https://github.com/weso/shapes-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/weso/shapes-rs/actions/workflows/ci.yml)\n[![dependency status](https://deps.rs/repo/github/weso/shapes-rs/status.svg)](https://deps.rs/repo/github/weso/shapes-rs)\n\n# SHAPES-rs\n\nThis repo contains an RDF data shapes library implemented in Rust.\nThe implementation supports both [ShEx](http://shex.io/) and [SHACL](https://www.w3.org/TR/shacl/).\n\nWe provide binaries for Linux, Windows, Mac and Docker (see [releases](https://github.com/weso/shapes-rs/releases)).\n\n- [List of issues](https://github.com/weso/shapes-rs)\n- [Discussion](https://github.com/weso/shapes-rs/discussions/landing)\n- [FAQ](https://github.com/weso/shapes-rs/wiki/FAQ)\n- [How to guides](https://github.com/weso/shapes-rs/wiki/Howto-guides)\n- [Roadmap](https://github.com/weso/shapes-rs/issues/1)\n\n### Installation\n\n#### Official releases\n\nYou can download a binary from the [latest release](https://github.com/weso/shapes-rs/releases/latest) page. There you will also find the compiled packages for the installation on your system using a package manager.\n\n##### Ubuntu\n\nDownload the binary from [https://github.com/weso/shapes-rs/releases] and install the `.deb` package running the following commands after replacing X.X.X by the latest version:\n\n```\nwget https://github.com/weso/shapes-rs/releases/download/X.X.X/rdfsx_vX.X.X_amd64.deb\nsudo dpkg -i rdfsx_vX.X.X_amd64.deb\n```\n\n##### Windows\n\nThe binary can be downloaded from [https://github.com/weso/shapes-rs/releases]\n\n##### Mac\n\nThe binary is available at: [https://github.com/weso/shapes-rs/releases]\n\n<details markdown=\"block\">\n<summary>Compiling from source</summary>\n\n#### Compiling from source\n\n`shapes-rs` has been implemented in Rust and is compiled using [cargo](https://doc.rust-lang.org/cargo/). The command `cargo run` can be used to compile and run locally the code.\n\nFor example:\n\n```\ncargo run -- validate --data examples/user.ttl --schema examples/user.shex --shapemap examples/user.sm \n```\n\n#### Compiling from source and installing the binary (Debian)\n\nInstall `cargo deb` (only the first time)\n\n```\ncargo install cargo-deb\n```\n\nCreate the `.deb` package by:\n\n```\ncargo deb\n```\n\nAnd run:\n\n```\nsudo dpkg -i target/debian/shapes-rs_0.0.11-1_amd64.deb\n```\n\n#### Docker\n\nTBD\n\n</details>\n\n### Usage\n\n#### Some examples\n\nThe folder `examples` contains several example files with ShEx schemas and RDF data.\n\n##### Validate a simple RDF file with a ShEx schema using a ShapeMap\n\n```\nrdfsx validate --data examples/user.ttl --schema examples/user.shex --shapemap examples/user.sm\n```\n\nWe maintain a Wiki page with some common [Usage scenarios and How-to guides](https://github.com/weso/shapes-rs/wiki/Howto-guides).\n\n#### Debugging information\n\nIt is possible to change the debug level information with:\n\n```\nexport RUST_LOG=value\n```\n\nwhere `value` can be `debug` to show more verbose information or `info` to show basic information.\n\n## Command line usage\n\n```sh\n$ rdfsx --help\nUsage: sx [OPTIONS] [COMMAND]\nCommands:\n  schema\n  validate\n  data\n  node\n  help\n          Print this message or the help of the given subcommand(s)\n```\n\n### Obtaining information about a schema\n\n```sh\nUsage: rdfsx schema [OPTIONS] --schema <Schema file name>\n\nOptions:\n  -s, --schema <Schema file name>\n          \n  -f, --schema-format <Schema format>\n          [default: shexj] [possible values: internal, shexc, shexj]\n  -r, --result-schema-format <Result schema format>\n          [default: shexj] [possible values: internal, shexc, shexj]\n  -h, --help\n          Print help\n```\n\n### Obtaining information about RDF data\n\n```sh\nUsage: rdfsx data [OPTIONS] --data <RDF data path>\n\nOptions:\n  -d, --data <RDF data path>           \n  -t, --data-format <RDF Data format>  [default: turtle] [possible values: turtle]\n  -h, --help                           Print help\n```\n\n### Obtaining information about a node in RDF data\n\nThis command can be useful to obtain the neighbourhood of a node.\n\n```sh\nUsage: rdfsx node [OPTIONS] --node <NODE>\n\nOptions:\n  -n, --node <NODE>\n          \n  -d, --data <RDF data path>\n          \n  -t, --data-format <RDF Data format>\n          [default: turtle] [possible values: turtle]\n  -e, --endpoint <Endpoint with RDF data>\n          \n  -m, --show-node-mode <Show Node Mode>\n          [default: outgoing] [possible values: outgoing, incoming, both]\n  -h, --help\n          Print help  \n```\n\nFor example, the following command shows the neighbourhood of node `wd:Q80` in the Wikidata endpoint.\n\n```sh\nrdfsx node -e wikidata -n wd:Q80\n```\n\n### Validating an RDF node against some data\n\nExample: Assuming there a ShEx file in `examples/user.shex` and an RDF turtle file in `examples/user.ttl` we can ask to validate node `:a` with shape label `:User` using:\n\n```sh\nrdfsx validate -s examples/user.shex -d examples/user.ttl -n :a -l :User\n```\n\nIf there is a shapemap in `examples/user.sm`, we can validate using:\n\n```sh\nrdfsx validate -s examples/user.shex -d examples/user.ttl -m examples/user.sm\n```\n\nThe full help for the `validate` subcommand is:\n\n```sh\nUsage: rdfsx validate [OPTIONS] --schema <Schema file name> --data <RDF data path>\n\nOptions:\n  -s, --schema <Schema file name>\n          \n  -f, --schema-format <Schema format>\n          [default: shexc] [possible values: internal, shexc, shexj]\n  -m, --shapemap <ShapeMap file name>\n          \n      --shapemap-format <ShapeMap format>\n          [default: compact] [possible values: compact, internal]\n      --result-shapemap-format <Result shapemap format>\n          [default: compact] [possible values: compact, internal]\n  -n, --node <NODE>\n          \n  -l, --shape-label <shape label (default = START)>\n          \n  -d, --data <RDF data path>\n          \n  -t, --data-format <RDF Data format>\n          [default: turtle] [possible values: turtle]\n      --max-steps <max steps to run>\n          [default: 100]\n  -h, --help\n          Print help\n```\n\n## Main modules\n\nThe repo is divided in the following modules:\n\n- [iri_s](https://github.com/weso/shapes-rs/tree/master/iri_s) defines simple IRIs.\n- [srdf](https://github.com/weso/shapes-rs/tree/master/srdf) simple RDF model which will be used for validation.\n- [prefixmap](https://github.com/weso/shapes-rs/tree/master/prefixmap) Prefix maps implementation.\n- [shapemap](https://github.com/weso/shapes-rs/tree/master/shapemap) ShapeMap implementation.\n- [shex_ast](https://github.com/weso/shapes-rs/tree/master/shex_ast) defines the ShEx Abstract syntax\n- [shex_compact](https://github.com/weso/shapes-rs/tree/master/shex_compact) contains the code required to handle ShEx compact syntax.\n- [shex_validation](https://github.com/weso/shapes-rs/tree/master/shex_validation) contains the code required to validate RDF using ShEx.\n- [shex_testsuite](https://github.com/weso/shapes-rs/tree/master/shex_testsuite) contains the code required to run the ShEx testsuite.\n- [shacl_ast](https://github.com/weso/shapes-rs/tree/master/shacl_ast) defines the SHACL core Abstract syntax.\n\n## Publishing the crates\n\n```sh\ncargo workspaces publish \n```\n\n## Worskpaces\n\nThe project is using cargo workspaces wihch can be installed with:\n\n```\ncargo install cargo-workspaces\n```\n\n## Unit-testing\n\nIn order to test all the sub-projects\n\n```\ncargo test --all\n```\n\nTesting one specific subproject:\n\n```\ncargo test -p shex_validation\n```\n\n## Using the ShEx test-suite\n\nThe ShEx testsuite is included in a git submodule. In order to obtain it, it is necessary to do:\n\n```sh\ngit submodule update --init --recursive\ncargo run -p shex_testsuite\n```\n\n```sh\nUsage: shex_testsuite [OPTIONS]\n\nOptions:\n  -m, --manifest <Manifest FILE (.jsonld)>\n          Name of Manifest file [default: shex_testsuite/shexTest/validation/manifest.jsonld]\n  -c, --config <Config file>\n          [default: shex_testsuite/config.yml]\n  -x, --run_mode <MANIFEST_RUN_MODE>\n          [default: collect-errors] [possible values: collect-errors, fail-first-error]\n  -f, --manifest_mode <MANIFEST_MODE>\n          [possible values: schemas, validation, negative-syntax, negative-structure]\n  -p, --print_result_mode <PRINT_RESULT_MODE>\n          [default: basic] [possible values: basic, failed, passed, not-implemented, all]\n  -e, --entry <Entry names>\n          \n  -t, --trait <Trait names>\n          \n  -h, --help\n          Print help\n  -V, --version\n          Print version\n```\n\n### Validation tests\n\n```\ncargo run -p shex_testsuite -- -m shex_testsuite/shexTest/validation/manifest.jsonld validation \n```\n\n### Schemas tests\n\n```sh\ncargo run -p shex_testsuite -- -m shex_testsuite/shexTest/schemas/manifest.jsonld -f schemas -p failed\n```\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)\n\nat your option.\n\n## Contributors\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\n### Contribution\n\nUnless you explicitly state otherwise,\nany contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any\nadditional terms or conditions.\n\n",
    "bugtrack_url": null,
    "license": "MIT OR Apache-2.0",
    "summary": "RDF Data shapes implementation in Rust",
    "version": "0.0.13",
    "project_urls": {
        "Homepage": "https://www.weso.es/shapes-rs/",
        "Source Code": "https://github.com/weso/shapes-rs"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "198dbcb90d8f10d76c5b04b7c2d243d86770250be8b252f102617ece43dc6bd6",
                "md5": "f08ff0c51cb825de4cdaa9296c8298d0",
                "sha256": "e4c50894456ff46303a685fa2ed16fe4c13937a4c107417be5f1501da96ccfbc"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp310-cp310-macosx_10_14_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f08ff0c51cb825de4cdaa9296c8298d0",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 4348694,
            "upload_time": "2024-07-01T17:46:33",
            "upload_time_iso_8601": "2024-07-01T17:46:33.236578Z",
            "url": "https://files.pythonhosted.org/packages/19/8d/bcb90d8f10d76c5b04b7c2d243d86770250be8b252f102617ece43dc6bd6/shapes_rs-0.0.13-cp310-cp310-macosx_10_14_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "646b0c640d6d35e54963b84231fcb58da77c25a4558db75f7c07d34acd3dd3d3",
                "md5": "e3d7521a1a1be7a42f7f36291d68316b",
                "sha256": "2276b9027d15aa591bbc6228e5ab5938f259df0a69195a0d21a77fdad2be2282"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e3d7521a1a1be7a42f7f36291d68316b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 4224601,
            "upload_time": "2024-07-01T17:46:35",
            "upload_time_iso_8601": "2024-07-01T17:46:35.973278Z",
            "url": "https://files.pythonhosted.org/packages/64/6b/0c640d6d35e54963b84231fcb58da77c25a4558db75f7c07d34acd3dd3d3/shapes_rs-0.0.13-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2e061fbae82cf3fafc04fd90298457215fbd892d1818be8c49ce644aa7da84eb",
                "md5": "75cfc09431629b642fa8104f43205823",
                "sha256": "fa1f93c759cf7ded88c352dd5f17edf5dba68d1b755169a924442104ba025033"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp310-cp310-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "75cfc09431629b642fa8104f43205823",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 6822795,
            "upload_time": "2024-07-01T17:46:38",
            "upload_time_iso_8601": "2024-07-01T17:46:38.548396Z",
            "url": "https://files.pythonhosted.org/packages/2e/06/1fbae82cf3fafc04fd90298457215fbd892d1818be8c49ce644aa7da84eb/shapes_rs-0.0.13-cp310-cp310-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "44132a2aa04cfc897a9f2a73e59a5fb2afe5b2e145bf99c3717d690f9623ca1c",
                "md5": "6723a91840004d9cd7df61eac36bce74",
                "sha256": "8e26421535e2de7a10387ebeca13373c3a02098a0f229960bf30e8242809f793"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp310-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6723a91840004d9cd7df61eac36bce74",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 3787748,
            "upload_time": "2024-07-01T17:46:41",
            "upload_time_iso_8601": "2024-07-01T17:46:41.051495Z",
            "url": "https://files.pythonhosted.org/packages/44/13/2a2aa04cfc897a9f2a73e59a5fb2afe5b2e145bf99c3717d690f9623ca1c/shapes_rs-0.0.13-cp310-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f144d004a7c3e6928aba9cb680265b986bb450dbea61555cac99bb2122a7b1c6",
                "md5": "4de8bea8c1962887486f5db719d792a9",
                "sha256": "338f4dab3f5334bfcc659cd37bdb78febabcb7d59698653f2a23d5e783bd3ed1"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp311-cp311-macosx_10_14_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4de8bea8c1962887486f5db719d792a9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 4348696,
            "upload_time": "2024-07-01T17:46:43",
            "upload_time_iso_8601": "2024-07-01T17:46:43.760141Z",
            "url": "https://files.pythonhosted.org/packages/f1/44/d004a7c3e6928aba9cb680265b986bb450dbea61555cac99bb2122a7b1c6/shapes_rs-0.0.13-cp311-cp311-macosx_10_14_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1b08eada68c1bfaa5e72aa10d67b47eaf75e77736834110d9884413c4ad292a1",
                "md5": "636666648c2a52caadbf7353d30f6d9f",
                "sha256": "f6f8388d2aa4d8c007af814100ccb13bf40fd34f0a4b4a2352dd638b6a6759ca"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "636666648c2a52caadbf7353d30f6d9f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 4224602,
            "upload_time": "2024-07-01T17:46:45",
            "upload_time_iso_8601": "2024-07-01T17:46:45.710355Z",
            "url": "https://files.pythonhosted.org/packages/1b/08/eada68c1bfaa5e72aa10d67b47eaf75e77736834110d9884413c4ad292a1/shapes_rs-0.0.13-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5adc07bc2d73a8dee15d2a4006b765f00842caa28167052956178bf6cc5ae930",
                "md5": "3e5ac7a5eeae23f431e81ef5f248ce79",
                "sha256": "dc6982c5c535d7c1d8f60769019f7d84253640658fc6d2bd1d3d8e25cfa5aeed"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp311-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "3e5ac7a5eeae23f431e81ef5f248ce79",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 3787748,
            "upload_time": "2024-07-01T17:46:47",
            "upload_time_iso_8601": "2024-07-01T17:46:47.794706Z",
            "url": "https://files.pythonhosted.org/packages/5a/dc/07bc2d73a8dee15d2a4006b765f00842caa28167052956178bf6cc5ae930/shapes_rs-0.0.13-cp311-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "64aac6ee23321273d1e29a85b640d3f35aea4335ae27d2937f1f6a0d5024f478",
                "md5": "b572d2cb62f1fdcfb40f1ccbbc82fc9a",
                "sha256": "a183bd64fbc9a80ac6b1ce596ded0db913daf44dbd51a88593b28cca3ea1a30a"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp312-cp312-macosx_10_14_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b572d2cb62f1fdcfb40f1ccbbc82fc9a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 4348698,
            "upload_time": "2024-07-01T17:46:50",
            "upload_time_iso_8601": "2024-07-01T17:46:50.142231Z",
            "url": "https://files.pythonhosted.org/packages/64/aa/c6ee23321273d1e29a85b640d3f35aea4335ae27d2937f1f6a0d5024f478/shapes_rs-0.0.13-cp312-cp312-macosx_10_14_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "91e763fe1397ee17c96df6dbcaec31a90682448dbbec25bfee81ac12ab819d3d",
                "md5": "e9c3a15ffd9dfd2bf0aaa92c0823c3c0",
                "sha256": "7085e7c9402c0baea0c16bae6454d168b495d6a5dea25d1f13a36846e507c04c"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e9c3a15ffd9dfd2bf0aaa92c0823c3c0",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 4224603,
            "upload_time": "2024-07-01T17:46:53",
            "upload_time_iso_8601": "2024-07-01T17:46:53.369483Z",
            "url": "https://files.pythonhosted.org/packages/91/e7/63fe1397ee17c96df6dbcaec31a90682448dbbec25bfee81ac12ab819d3d/shapes_rs-0.0.13-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "52892c31250ee7a036475016af979fce5f6508cce33895565c3041be6d679d71",
                "md5": "94134e96421de85e926fdf80d26cd85d",
                "sha256": "c88e7eb64658c01a79ca4be266611fcf241323895cf2aaa40bba26acb1121926"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp312-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "94134e96421de85e926fdf80d26cd85d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 3787748,
            "upload_time": "2024-07-01T17:46:56",
            "upload_time_iso_8601": "2024-07-01T17:46:56.071581Z",
            "url": "https://files.pythonhosted.org/packages/52/89/2c31250ee7a036475016af979fce5f6508cce33895565c3041be6d679d71/shapes_rs-0.0.13-cp312-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8467b59cfa237efdaf613bda7c901bff88082baa98113d71f2775d65164e4443",
                "md5": "b4ddff7c6e3a2862bccd80a90aa313e4",
                "sha256": "f16414c90414b989f322a12653525a31d94e76fafbe1dcf9947741aa8095c193"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp37-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b4ddff7c6e3a2862bccd80a90aa313e4",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 3787748,
            "upload_time": "2024-07-01T17:46:58",
            "upload_time_iso_8601": "2024-07-01T17:46:58.437653Z",
            "url": "https://files.pythonhosted.org/packages/84/67/b59cfa237efdaf613bda7c901bff88082baa98113d71f2775d65164e4443/shapes_rs-0.0.13-cp37-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "89707f3a457bee1774136b53078b92297e0f49ca6baa03191303ac63ea54e4c7",
                "md5": "fd75c0e943325428438064ead449296b",
                "sha256": "abb61ff193b98e1b0e24cdf38528709957caf0666150c4000efa4aa18e14d264"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp38-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "fd75c0e943325428438064ead449296b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 3787747,
            "upload_time": "2024-07-01T17:47:00",
            "upload_time_iso_8601": "2024-07-01T17:47:00.929082Z",
            "url": "https://files.pythonhosted.org/packages/89/70/7f3a457bee1774136b53078b92297e0f49ca6baa03191303ac63ea54e4c7/shapes_rs-0.0.13-cp38-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4ef9845e2fd761c6521242a2192a4376bef801690a4c1c947009320388be182d",
                "md5": "b4551e2b178370381c13adf31a9476be",
                "sha256": "ff6de59ce3c6ab16172191c7a6612bfa1e9ee364ad13b2ece3cb2046f3d174ad"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp39-cp39-macosx_10_14_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b4551e2b178370381c13adf31a9476be",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 4348695,
            "upload_time": "2024-07-01T17:47:03",
            "upload_time_iso_8601": "2024-07-01T17:47:03.605677Z",
            "url": "https://files.pythonhosted.org/packages/4e/f9/845e2fd761c6521242a2192a4376bef801690a4c1c947009320388be182d/shapes_rs-0.0.13-cp39-cp39-macosx_10_14_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "522d3beca3694333eb6d2da2478316a01962f1b0bf86edbd6c2878d55d5915c0",
                "md5": "c1c2fc73c3d738a6fbfb5bb8d02b0303",
                "sha256": "ab7c7864b095b21925d89906ac81968cf20caa083f105ccb20d0ce465ecb965b"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c1c2fc73c3d738a6fbfb5bb8d02b0303",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 4224601,
            "upload_time": "2024-07-01T17:47:05",
            "upload_time_iso_8601": "2024-07-01T17:47:05.621163Z",
            "url": "https://files.pythonhosted.org/packages/52/2d/3beca3694333eb6d2da2478316a01962f1b0bf86edbd6c2878d55d5915c0/shapes_rs-0.0.13-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "212f4a1bb589be7219c03233ac7869e1260ce97c9b6137b5c00a8f2ae1e3f013",
                "md5": "5187afd795bfced74733936a4dbdb309",
                "sha256": "f58cbc68d44b100a7f13289fbcc706ab013c04eb79a222d3395d9209abb99ae1"
            },
            "downloads": -1,
            "filename": "shapes_rs-0.0.13-cp39-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5187afd795bfced74733936a4dbdb309",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 3787749,
            "upload_time": "2024-07-01T17:47:07",
            "upload_time_iso_8601": "2024-07-01T17:47:07.636442Z",
            "url": "https://files.pythonhosted.org/packages/21/2f/4a1bb589be7219c03233ac7869e1260ce97c9b6137b5c00a8f2ae1e3f013/shapes_rs-0.0.13-cp39-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-01 17:46:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "weso",
    "github_project": "shapes-rs",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "shapes-rs"
}
        
Elapsed time: 4.79196s