Skip to main content

No project description provided

Project description

Cedar Python

CI (main)  PyPI version

cedarpy helps you use the (Rust) Cedar Policy library from Python. You can use cedarpy to:

  • check whether a request is authorized by the Cedar Policy engine
  • validate policies against a schema
  • format policies

cedarpy releases correspond to the following Cedar Policy engine versions:

Cedar Policy (engine) releasecedarpy releasecedarpy branch
v4.8.2v4.8.0main
v4.7.2v4.7.1release/4.7.x
v4.1.0v4.1.0release/4.1.x
v2.2.0v0.4.1release/2.2.x

Beginning with v4.1.0, cedarpy's version number indicates the Cedar Policy engine major and minor version that it is based on. cedarpy increases the patch number when releasing backwards-compatible changes and bug fixes. So the cedarpy and Cedar Engine patch versions can and will diverge. Select the cedarpy version that provides the Cedar Policy language and engine features you need.

cedarpy packages are available for the following platforms:

Operating SystemProcessor ArchitecturesPython
Linuxx86_64, aarch643.9 - 3.14
Macx86_64, aarch643.11 - 3.14
Windowsx86_643.9 - 3.14

Note: This project is not officially supported by AWS or the Cedar Policy team.

Using the library

Releases of cedarpy are available on PyPi. You can install the latest release with:

pip install cedarpy

(See the Developing section for how to use artifacts you've built locally.)

Authorizing access with Cedar policies in Python

Now you can use the library to authorize access with Cedar from your Python project using the is_authorized function. Here's an example of basic use:

from cedarpy import is_authorized, AuthzResult, Decision

policies: str = "//a string containing cedar policies"
entities: list = [  # a list of Cedar entities; can also be a json-formatted string of Cedar entities
    {"uid": {"__entity": { "type" : "User", "id" : "alice" }}, "attrs": {}, "parents": []}
    # ...
]
request = {
    "principal": 'User::"bob"',
    "action": 'Action::"view"',
    "resource": 'Photo::"1234-abcd"',
    "context": {}
}

authz_result: AuthzResult = is_authorized(request, policies, entities)

# so you can assert on the decision like:
assert Decision.Allow == authz_result.decision

# or use the 'allowed' convenience method 
assert authz_result.allowed

# or even via AuthzResult's attribute subscripting support 
assert authz_result['allowed']

The AuthzResult class also provides diagnostics and metrics for the access evaluation request.

See the unit tests for more examples of use and expected behavior.

Authorize a batch of requests

You can also authorize a batch of requests with the is_authorized_batch function. is_authorized_batch accepts a list of requests to evaluate against shared policies, entities, and schema.

Batch authorization is often much more efficient (+10x) than processing authorization requests one by one with is_authorized. This is because the most expensive part of the authorization process is transforming the policies, entities, and schema into objects that Cedar can evaluate. See RFC: support batch authorization requests for details.

Here's an example of how to use is_authorized_batch and the optional request-result correlation_id:

batch_id:str = randomstr()
requests: List[dict] = []
for action_name in action_names:
    requests.append({
        "principal": f'User::"{user_id}"',
        "action": f'Action::"{action_name}"',
        "resource": f'Resource::"{resource_id}"',
        "context": context_keys,
        "correlation_id": f"authz_req::{batch_id}-{action_name}"
    })

# ... resolve get policies, entities, schema ...

# process authorizations in batch
authz_results: List[AuthzResult] = is_authorized_batch(requests=requests, policies=policies, entities=entities, schema=schema)

# ... verify results came back in correct order via correlation_id ...
for request, result, in zip(requests, authz_results):
    assert request.get('correlation_id') == result.correlation_id

cedar-py returns the list of AuthzResult objects in the same order as the list of requests provided in the batch.

The above example also supplies an optional correlation_id in the request so that you can verify results are returned in the correct order or otherwise map a request to a result.

Validating policies against a schema

You can use validate_policies to validate Cedar policies against a schema before deploying them. Validation catches common mistakes like typos in entity types, invalid actions, type mismatches, and unsafe access to optional attributes—errors that would otherwise cause policies to silently fail at runtime.

This is particularly useful in CI/CD pipelines to catch policy errors before they reach production. See the Cedar validation documentation for details on what the validator checks.

Here's an example of basic use:

from cedarpy import validate_policies, ValidationResult

policies: str = "// a string containing Cedar policies"
schema: str = "// a Cedar schema as JSON string, Cedar schema string, or Python dict"

result: ValidationResult = validate_policies(policies, schema)

# so you can check validation passed like:
assert result.validation_passed

# or use ValidationResult in a boolean context
assert result  # True if validation passed

# and if validation fails, iterate over errors:
for error in result.errors:
    print(f"error: {error}")

The ValidationResult class provides the validation outcome and a list of ValidationError objects when validation fails.

See the unit tests for more examples of use and expected behavior.

Formatting Cedar policies

You can use format_policies to pretty-print Cedar policies according to convention.

from cedarpy import format_policies

policies: str = """
    permit(
        principal,
        action == Action::"edit",
        resource
    )
    when {
        resource.owner == principal
    };
"""

print(format_policies(policies))
# permit (
#   principal,
#   action == Action::"edit",
#   resource
# )
# when { resource.owner == principal };

Developing

You'll need a few things to get started:

  • Python +3.9
  • Rust and cargo

This project is built on the PyO3 and maturin projects. These projects are designed to enable Python to use Rust code and vice versa.

The most common development commands are in the Makefile

Create virtual env

First create a Python virtual environment for this project with: make venv-dev

In addition to creating a dedicated virtual environment, this will install cedar-py's dependencies.

If this works you should be able to run the following command:

maturin --help

Build and run cedar-py tests

Ensure the cedar-py virtual environment is active by sourcing it in your shell:

source venv-dev/bin/activate

Now run:

make quick

The make quick command will build the Rust source code with maturin and run the project's tests with pytest.

If all goes well, you should see output like:

(venv-dev) swedish-chef:cedar-py skuenzli$ make quick
Performing quick build
set -e ;\
	maturin develop ;\
	pytest
📦 Including license file "/path/to/cedar-py/LICENSE"
🔗 Found pyo3 bindings
🐍 Found CPython 3.9 at /path/to/cedar-py/venv-dev/bin/python
📡 Using build options features from pyproject.toml
Ignoring maturin: markers 'extra == "dev"' don't match your environment
Ignoring pip-tools: markers 'extra == "dev"' don't match your environment
Ignoring pytest: markers 'extra == "dev"' don't match your environment
💻 Using `MACOSX_DEPLOYMENT_TARGET=11.0` for aarch64-apple-darwin by default
   Compiling cedarpy v0.1.0 (/path/to/cedar-py)
    Finished dev [unoptimized + debuginfo] target(s) in 3.06s
📦 Built wheel for CPython 3.9 to /var/folders/k2/tnw8n1c54tv8nt4557pfx3440000gp/T/.tmpO6aj6c/cedarpy-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
🛠 Installed cedarpy-0.1.0
================================================================================================ test session starts ================================================================================================
platform darwin -- Python 3.9.12, pytest-7.4.0, pluggy-1.2.0
rootdir: /path/to/cedar-py
configfile: pyproject.toml
testpaths: tests/unit
collected 10 items

tests/unit/test_authorize.py::AuthorizeTestCase::test_authorize_basic_ALLOW PASSED                                                                                                                            [ 10%]
tests/unit/test_authorize.py::AuthorizeTestCase::test_authorize_basic_DENY PASSED                                                                                                                             [ 20%]

... snip ... # a bunch of tests passing - please write more!
tests/unit/test_import_module.py::InvokeModuleTestFunctionTestCase::test_invoke_parse_test_policy PASSED                                                                                                      [100%]

================================================================================================ 10 passed in 0.51s =================================================================================================

Integration tests

This project supports validating correctness with official Cedar integration tests. To run those tests you'll need to retrieve the cedar-integration-tests data with:

make submodules

Then you can run:

make integration-tests

cedar-py currently passes 69 of the 74 tests defined in the example_use_cases, multi, ip, and decimal suites. The integration tests also validate policies against schemas when shouldValidate is set in the test definition. See test_cedar_integration_tests.py for details.

Using locally-built artifacts

If you used make quick above, then a development build of the cedarpy module will already be installed in the virtual environment.

If you want to use your local cedarpy changes in another Python environment, you'll need to build a release with:

make release

The release process will build a wheel and output it into target/wheels/

Now you can install that file with pip, e.g.:

pip install --force-reinstall /path/to/cedar-py/target/wheels/ccedarpy-*.whl

Contributing

This project is in its early stages and contributions are welcome. Please check the project's GitHub issues for work we've already identified.

Some ways to contribute are:

  • Use the project and report experience and issues
  • Document usage and limitations
  • Enhance the library with additional functionality you need
  • Add test cases, particularly those from cedar-integration-tests

You can reach people interested in this project in the #cedar-py channel of the Cedar Policy Slack workspace.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cedarpy-4.8.0.tar.gz (197.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cedarpy-4.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

cedarpy-4.8.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

cedarpy-4.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

cedarpy-4.8.0-cp314-cp314-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.14Windows x86-64

cedarpy-4.8.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

cedarpy-4.8.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

cedarpy-4.8.0-cp314-cp314-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cedarpy-4.8.0-cp314-cp314-macosx_10_12_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

cedarpy-4.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

cedarpy-4.8.0-cp313-cp313-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.13Windows x86-64

cedarpy-4.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

cedarpy-4.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

cedarpy-4.8.0-cp313-cp313-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cedarpy-4.8.0-cp313-cp313-macosx_10_12_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

cedarpy-4.8.0-cp312-cp312-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.12Windows x86-64

cedarpy-4.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cedarpy-4.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

cedarpy-4.8.0-cp312-cp312-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cedarpy-4.8.0-cp312-cp312-macosx_10_12_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

cedarpy-4.8.0-cp311-cp311-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.11Windows x86-64

cedarpy-4.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

cedarpy-4.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

cedarpy-4.8.0-cp311-cp311-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cedarpy-4.8.0-cp311-cp311-macosx_10_12_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

cedarpy-4.8.0-cp310-cp310-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.10Windows x86-64

cedarpy-4.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cedarpy-4.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

cedarpy-4.8.0-cp39-cp39-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.9Windows x86-64

cedarpy-4.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

cedarpy-4.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

File details

Details for the file cedarpy-4.8.0.tar.gz.

File metadata

  • Download URL: cedarpy-4.8.0.tar.gz
  • Upload date:
  • Size: 197.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for cedarpy-4.8.0.tar.gz
Algorithm Hash digest
SHA256 5ee4b743e8559e8483f3945b1bc24011a66f1216895d56eed4193c4e82c39612
MD5 a4e1b810fb225e7b3aeede2877cac054
BLAKE2b-256 8b60bab3dcc838a7b214bfbf97ed7b4b52b496407d8f10f5831c60fbb1cf07ae

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0873181bc36cf26127d8dcb39d34a800b6ce4998c543ce0e6ee1008585940a16
MD5 29a99b19b0efc0d97c8bd8662b83e216
BLAKE2b-256 4d59e7051fca447ee20afce50cd2a43e9ff8b04d586082f2ae5ba865470db9b2

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 58880168a71c760024ad273959de9a77b7b4573236c4621544356c6afdf36d1e
MD5 ad7a68ef61d836793a3f833a40e5f928
BLAKE2b-256 2ee8c57737a1d8d1a518e7a23e7047ff23bccfcc1e61779a41a2a243279a950e

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4f8195276bc8db6dd5d2d84b22722c1fa4e4cacb662b4026ef59a653e10e2f17
MD5 64c7f45aced799a352879413acb07c90
BLAKE2b-256 0dde217397e7830a17dc40cabad56396b56c9f990dfa6218602c161aa9bfc12f

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: cedarpy-4.8.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for cedarpy-4.8.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3c41717161c6ca035bbdb396d8db58547cd805cdb00b8c0181cae9d505df9137
MD5 e7ecf59c4ea78386d498d9b2c9887bf4
BLAKE2b-256 3a6c29f66ac1c6c7db1021b7aa9843abd5a10fb9eef2fb66713aa32330c0eb2b

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17227fc51724fa778db0379bab66a88f9571d3d31af257aaa512375fbc828606
MD5 4b19973281e17f74d15bd75dfe8fe877
BLAKE2b-256 e14791e0f8f873904984833189a7a3a8841f5815b1211f413f0e593df03077c8

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d6bb5b61e7548e245c9468b9e48aab2845dd9cf2aaf37712b0da5a97e4f4716
MD5 279717042eae4ed071af18f49756643a
BLAKE2b-256 a0bd762be74a9d8de7e6a575bac93c5afd71ce648a1853f85ee93888a2fe9a1c

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c49982888562bf92d5c4282fb669fab3bb71b5d3fc6414fa995ad40aa2a9e24d
MD5 ff5e4bf773ebfcb720a4aaf4192ed891
BLAKE2b-256 d2167785f2c013c73474e30895b60cf6491ca2d367a41bfdde3f52735a405b5e

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bdbfd1551dde8d4538ec00b3ee33083b823cc405b984b56c8478a50e7ce09593
MD5 33e2bd17c031c2b4a58cc288133b3c4e
BLAKE2b-256 039e39085b3b346c940adc5654586ef4252726f087ff2b23df474148473f2f36

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ed4f5fb785eaaa599e519e0bf05bb4d12b0eed55fe2cac4d9b8cc88bf87c7e54
MD5 0eabef03aced9d3fed769e6e15cfc066
BLAKE2b-256 b0477fbc65ea257b199e4720849314354ebd34e68ac3f30d5a2d2271810ffca2

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cedarpy-4.8.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for cedarpy-4.8.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3e457cd9a038763967baaa0dc496a696998b6741822c9a72c449cc5eb3d0eaf6
MD5 25b63c3f0f564789675dd67ff5087ee1
BLAKE2b-256 abf78a65d186db58479687c53c77c5440db85e163bf5c59eb49ed2171a8f8bd1

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 38585b66ef5f95ff0a20e87c6274b8ce1761802f135d537edabf5908027347c0
MD5 ddff6e7dbf525d0d30c9155b3e18633c
BLAKE2b-256 29671a481d251c34e3a4d5a69ba5dcdf7fa9bd276d2029a41b426eb79e1e2588

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e1e7cc2f4b965a5c6bfa0c736d4df141213a5bec7dee3a051569c447178c31a3
MD5 d27d11394e7f347d3a91425cafde8423
BLAKE2b-256 de76f002be0235352796fa6ed9ef640662ca80b94b08d9b1470322a63018529c

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cfbeb0b13d5b4d7a2508f228d5f731683e29340ec635ca770e656c19aa45984d
MD5 085d1120fd430ba012364c4ee17d2041
BLAKE2b-256 944f70d4a3b1e86d60c55e314deaf67b811ab6b4b913d4de60047773137968b8

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5c1b27a04399e1889035cc5bc9c86ab06aa8d936dfbfc88c6e63f3a46785c956
MD5 a6775fccf7d5c39d1963e6229af72669
BLAKE2b-256 fc1be710bf73aab96085db38cfc68f2c1aacc44ce3a24f8c8aa4a386b7146287

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cedarpy-4.8.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for cedarpy-4.8.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0e883f6b7ff395f595ec76b891db1cfa8852d2a451da787c69f1be86ff3cec83
MD5 25c04a531b985b6df57e0b2855a6b0b9
BLAKE2b-256 d8d5b06f4a186ba5d3ef05629ffc09e20285c7e517cefd92a705b915daf25f6b

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 74394dd413182245bc9b7ffb7aa38ed73ad82e16f828005ea4e3076de395b756
MD5 0bafb393e563dad9df2af9056b9b8ac2
BLAKE2b-256 27a370a682d1353ca78f89374b786601b3ba74ad604568f34591009bd50e2d67

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0f3db2502c757077308f7a362833da1ffe1f38d8374abc3a2e5871de1cd7744a
MD5 e765d3cc5c0831395417409f82509b92
BLAKE2b-256 53559c48c1508fb21892bf7872d351f894fb28eda7219d4e9017571017e95999

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a9b9b06d24ebb29d874fd968cabbb507570ec1cd606400758537afcdfedf560
MD5 e4ebbe4b68293dc97059dc4d7791eb05
BLAKE2b-256 a1d8202937962727813802076722b2ca03967de4657821db6af0cbf5e48ac8f3

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 049b5342ff77c52f2e5f35226655f941b880562657d4a5b0bb4d1715be12eeff
MD5 67177f58d1fb3483eb0ffb5162adce2e
BLAKE2b-256 e67593393398435532f28b47cfe23b6d98a65c51fbe280318ae0b6414d9ec7f9

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cedarpy-4.8.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for cedarpy-4.8.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 523cadc2dac6f66553635f73dd7b6a1b565cb56f95b8bb84253933f6f16f7a3a
MD5 22ceadcd4555b7e0badfe406f53f9fbf
BLAKE2b-256 6d3d2c1405210aaab81eff46b4845867e174151d113a7ec0b82ba2031dabcc94

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7c4fbfa3c58582335c027fff4157da986525cb16fd43077749f802a3d3c547f
MD5 ea095f4e9306e85e46414ec47e3bd548
BLAKE2b-256 95c19fd6ed5877773b02101a89fdac4a1514c108273ca9e222214c46681713a6

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d04a4f7ba2e01cb4d95d7ab57b253815133964627087f43674dded850b904cd8
MD5 91d9af9b754b3711f16e77c84466f317
BLAKE2b-256 212d0f91f413d131d4429361de667f56f0a2abfa12a7cb79e14e1f0f9316faa1

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d3fe5b89baabe5a183e2c258903dd36c6dd25a050f4d50f8ad3ecce8d04ad549
MD5 8eb9fcd6fa4193d95cbd65472c9b5069
BLAKE2b-256 be5cd5421a0c003a764bf91a5536da596950ef41eb72075025c904778938fef8

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 85d53be2fb384c617b6efb6e11839060bab0ddc3df08567afad9196505f151c0
MD5 ce6b42b3c1b45bfb72b4293eb12415fd
BLAKE2b-256 e6703b973810d842927139d316c772c29dc4e3df60a3298b697cc0fe095e913b

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cedarpy-4.8.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for cedarpy-4.8.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8d58aaea5e66beeb59b7433a26f10cfbb16ae17fbbc00d4836de1dd61d88f08c
MD5 45b3bd348105603207d83b6f2c26a3ad
BLAKE2b-256 496b40b1a9d68ebc630343ef1ef0c856c92948d109c75630659ddafe180b3138

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aa85c125894f46a639ecdb808b55e63aa9210086aa91de619f19eb2e5240feb5
MD5 3ae4ff9a8c25ec1c3dac1e47941f941a
BLAKE2b-256 59789cae0e8a059fc02254d0f2771cae6814326ee9a379099a6bf23dba8a766e

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1445ea7e4463dab7e3acea3dfd7614d3fb498239af9f65091c41c5e200ee8cbd
MD5 6b1a94ddb06b8ad6dd3c2d84447d6679
BLAKE2b-256 1fc17882c0550ae0857ba16b565d9f6bdbab8f123affc05aec614e8cb5510f5d

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: cedarpy-4.8.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for cedarpy-4.8.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2cc1c1713f9dcbb650c2722b066ddf22cdbdbb3e1edbb1e43d7320bfb82975fc
MD5 318fb296a3abf36adb8a675b2a8a799f
BLAKE2b-256 c47ed9d8ba039791ada425df5e820da188c78d47e2a168be1e581c38f547576f

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4b3206652ae0693cac2f64a7174efac24bf3f31011be5a6ea8c9097990e00ea7
MD5 ea6ccb2aa898c86dcde318e1afeec207
BLAKE2b-256 e5bbc617cb6950290cda38cabbfeda7f0ceb4820592b96b224d4800d28b9c7f1

See more details on using hashes here.

File details

Details for the file cedarpy-4.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cedarpy-4.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0d5ce81f81f20cf3f10a0eba0a7199a3cc2833a78b71c5de7c5c955d5f08db8b
MD5 faf1ce8d09e30cc7bc0a3ae5784d8c62
BLAKE2b-256 8b0d870d53fddc69eeec16fedace7f410b2b23a261841ef472779d1ac5f26f90

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page