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.3main
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.3.tar.gz (347.8 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.3-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.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

cedarpy-4.8.3-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.3-cp314-cp314-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.14Windows x86-64

cedarpy-4.8.3-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.3-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.3-cp314-cp314-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

cedarpy-4.8.3-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.3-cp313-cp313-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.13Windows x86-64

cedarpy-4.8.3-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.3-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.3-cp313-cp313-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

cedarpy-4.8.3-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.3-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.3-cp312-cp312-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

cedarpy-4.8.3-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.3-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.3-cp311-cp311-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

cedarpy-4.8.3-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.3-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.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: cedarpy-4.8.3.tar.gz
  • Upload date:
  • Size: 347.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.13.3

File hashes

Hashes for cedarpy-4.8.3.tar.gz
Algorithm Hash digest
SHA256 472774410c9562b14191faf7665bb821404340a0f952624c2ffe261b6d3d5f5e
MD5 8bd9611c9728d24865f94ef00449608d
BLAKE2b-256 ccd21ac7061bdc8845e36a7817506bd46c9f1acf96682a31e1dc3d7cf037a2c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7119f4d7693aa4ed2aecb6996a63a1e1a6753df158d9be50441240e1e92cf2d5
MD5 116a617e2afc60030ae06b3073836d61
BLAKE2b-256 f6e4e629ec914085c04f99947dcf88ce644ecfea504c51c6e34e44778893a601

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 adf3c55f7029ed4f35f873f10322f31adcd154a4ebdb8c43a1fbd85aa6bece13
MD5 7bf169a23c2c6655960f0a59c97358b1
BLAKE2b-256 7332c4d5304134b8986ee79d53356a4bd4d67b7e05e738d847b2dbfeab28965a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c3095be8ce3eeff6660f324ea5ee0d7c71807e12525bb0c64b664c38622e5568
MD5 f6b38cab311a1ba848a79606424f76e3
BLAKE2b-256 40beb5efc674940a6d0491727ff2ae2349f23368634b24d9765f2c934a172d8a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for cedarpy-4.8.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8ee6f12d5e318044a5ca4b575aabe86a8dd6e90855cfeb3b99c9ec133aca1cfd
MD5 edc5ed89884b64b136f7be232caa5d59
BLAKE2b-256 0f8905ccad87679d75ca7b1f0cc1c77950f9b32673d7e776d45052eb2a02df3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ecbb8e90eea8a6b98b67a4742c2af73c7a9269c361324f11d90b5e2748d2f0d
MD5 9399027e25db8dff362b5967200e83b7
BLAKE2b-256 1b5db4e34df02258393e69b1234afcaf8d538b41367e71b7542d082326036014

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b97ed98ab7c7685abc944530a2c7614ae19be67f6a911bad4936bfa7757ed833
MD5 94f40b22a51ad740488ac2125ed1acc0
BLAKE2b-256 62509fcf7dcc14d94c75f2698a8772160762e8261a518a30e2bd2f484ad55e4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50f732d92daa5ea4b3f07835f79f957db26d2a0b5680249d0f3151d04a4893a3
MD5 9c13cb442fa8e2f0d4cc45d1fb6ae2e8
BLAKE2b-256 0906f45d45523ada1b523430484963c574ab7a14223d7c1a108bd6dc80f6efc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7bb55e365d0790ca20fafaee2f23615318ba56c4132b75fdfd4cd074345488dd
MD5 889cdf1b037387a20153dfe993b59f4b
BLAKE2b-256 fe65d0f73800a5aa2eb080afcc58d1449da1271927ddb9697116bb2dfaa8ca36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7a2c7308a0babc51f633d685eff30b7606d8e08651c5c86393af48864ad718ab
MD5 722408b03fb3dcddda42c1e699c44b26
BLAKE2b-256 b703b3dd59db66eae9e5d2b5b043135aeef1583ebfe733e384d2cb05df09fce4

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for cedarpy-4.8.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b6a97a03391b887884dfc85231de09daac973fa3722b620b6c2bf5c228f9d0d6
MD5 635ba15c6e8555184cc61cc946535008
BLAKE2b-256 11ab08a634864bf3b39efe3db63479013efa83d99aad095b9220cf5433554f37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97e7680009fd8e9ef3ca66f6f453dff03374bda608bcb174b7f3efc5e3287e61
MD5 100f51d9971295be366218da42f967de
BLAKE2b-256 0219cfc4368a61fa7a79f69979cbb8b0c76be6e0273ccda5d81ab17e794cc8f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b6d692c500f9cde008580f3541803d1531975b833f1b02cfb05d9658c0f00ff6
MD5 a4def3d8818c25f81604ba779395f5d3
BLAKE2b-256 96407e91f37bc3b252a094d58c19d7b1344bd3b4310a469bdc17e3a8eb230038

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6569565784f90648b4e532354a5069ffa26d065a137721864be6c554d1ef54c
MD5 67aa51beecd30aad899072af55ccd38f
BLAKE2b-256 fa9e2b6753a8fd5b3b84d021dd17e4a2c4395aea3c0e69e1808a99a2a32b2e5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a8a263c21f5fe883b29ae297a42631e16a557c10c5654fab549d2e67677f0d53
MD5 b38367286bc7af52a419805c1c7fb92c
BLAKE2b-256 3728ec566b12fd898e2fa89895f754e71c59bd4bf781976b26094ab278b1cefc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for cedarpy-4.8.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8feea70544a1730ab07f060612fb91073f49ba8fdc618a9cef31acd86390f7c4
MD5 fc565f08417c13e0884719ab3db744aa
BLAKE2b-256 281d4495258ee047a6d4bbc91405bb5c2dbeda7d59a85047aea4a1a2a2caf843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1919ed21a6089374a27d1a4001becb60bf070f11ebf8a2de3697f186fb05cc20
MD5 bd543985491bc2543a3751398ef5d6ef
BLAKE2b-256 d5e8f4c4c8de3ee8878e4837c893d898c6e3604cce495a606d86d3288a2f3dcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9e7051fd4f51311f20163a95bd31829edc022fe022d780b30074e632ef2a27ed
MD5 97460550e8c910f8a9394ebf4ff49bd7
BLAKE2b-256 fa98c5b427af5a0964188043365d1ce590899ca4f509acf50364fb52f31ba2c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa06450e2188eeb347aca306018c17fa93d25fd2e7758887586686571d349279
MD5 c8f5823ac9adbc8aa9e2d97b0f09662a
BLAKE2b-256 e3fbfb9d5e6388cc7590dec4d3516b5b7bac2b6850a20379a8f5bf48c1e85320

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3dc596dee40134b726301b0b64f67a33c35a3c036cf099a25ba509e08d6681c0
MD5 980bffc79eece7c7b9aaf55b4d9aaee9
BLAKE2b-256 58ffe76e3c0a4e850b172db49dc7b0ba354c82fd141d9775996d2c1019374a6b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for cedarpy-4.8.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0be493fdd2aea76f66a0e5935832b6780bd3e16835b189c9d5620de043d3a29e
MD5 671559628fb7f3a4e4d29a571edc5d06
BLAKE2b-256 23992b832d249ec8f7b1f5f8e9ab980a82b63c0e5b293e5dd7ed14b9fcc40ff6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3193aa3e756ac8f47f8b4aee2ad63783a3693d7f61d136cd4a4e8e508cc99341
MD5 c5de2acb8e0609ef5298e906a3234c2f
BLAKE2b-256 101ede4c0fe0e984e8d723ff5a212a27c32697357325c51f842be34238147126

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 510f612dbf6065243ab29c9d77714a45be433eb3402484216d8e2a3818d9d92b
MD5 69917520ac803fdf55e27f7883d68e25
BLAKE2b-256 98ec856d56215e792f29353f20d642a2d53ddab667f461ea5b0be1cbb5b144cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ebbe3a0b0d26439eb917b5b23749369c10f28cd3e6a7e6e8f78a8f27f52e0ba6
MD5 da34dfaafb5e6c5389be0ce1920c4d02
BLAKE2b-256 a8e66f3a8c3ea585d8b4bd91df091acb1ff7cf6bc4dc3136cfa4c55666d0c031

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9ede3e3202af285ff611227e73bbf9244307579d09ed146c43a2df32cb745b5d
MD5 e1bd5e75cbee9d0a61653eb8b8fc0d9d
BLAKE2b-256 460e23ef79f5ae4f45717bff66141e1c1769449ff7c4801333a670feb35746a0

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for cedarpy-4.8.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bba71d204a1a216de401947528a2b37c8c7668a0eefed3df71a1248bb4dfa163
MD5 73bf2423b67c10a56cfcb5b7ae130748
BLAKE2b-256 ece9f8417b9fe52b89f1c384ca5f4a2902d43a7cd8a576047b40f8f164136400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b35444f830bada84f535c7cef6cd220e6c08dd9dd818c51a05aac4211f33a2db
MD5 11a1f7a17c81abd974f768f97ce86431
BLAKE2b-256 10e9cfaf4b46655320ec6b99376c611aadf076398849e8a873a79c662d014dd4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 22be097b46b75841165bd377de46438326569b9abb9df99feb8da5eed4734875
MD5 9df64e38c0b5bab39ccccd6f585e6af8
BLAKE2b-256 176d3bcf006ec4aecc3a483b7453a10af59112444947ec0b3ade9cf1258d9ea3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9d703de8e5824a73b024de22bbf05c77a03e7706c7b39bbcd191478481b329eb
MD5 ba82cbaf9b5c770ee3e6ccb640c69d7f
BLAKE2b-256 5177be2ee12e51a8a6fac7a93e12fef542eaf0fb078f134c38c5b410e2641174

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 976abbde2acd9e1098c51864359a17ede089f6757415d69a975f52f94a8a1aff
MD5 bbcd4d9e63efadd58f079627185015a3
BLAKE2b-256 45b5d4a524ce8d05b02d3f79afacc11e764de099e0a8b9bb5a522b6d81470cdc

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