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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

cedarpy-4.8.2-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.2-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.2-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.2-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.2.tar.gz.

File metadata

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

File hashes

Hashes for cedarpy-4.8.2.tar.gz
Algorithm Hash digest
SHA256 a85e153a7cb464c9efd382bc5fe6d0fc7e322e9b5c887cbbd61ac0f2127e2858
MD5 7596bb742d841cbd7d3b31c3247175fe
BLAKE2b-256 c3bb09dd4b161a21998144a7e287bbbf915dd63d7da1199d11d4fb98f4159b75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7718e07b6ee63937108cd4268e0b8a080014b73992fe53ecf5e70c11802005b4
MD5 49744dc9a478c1f67b603f44f0400a1d
BLAKE2b-256 9eaf53bc5826d8a79c24f0bdef3bfc5296dbd362e0b3aae77aac4aa52c62cd9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d9aaac7fd5e8540558ac839cf2b9e3f55dc51a6a82b3499f7121d20ba257a8e
MD5 fe8f99f84e7c1807d6c6cb59054737a8
BLAKE2b-256 96fc6698352c86b39b56f922a4dcc189fb8f5f6f3a69c0ef86b26e0d84626478

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 faa350889db905b7626c3a875e1f4ba2e3701c365111f9e8d1b2f6399b6f2e97
MD5 043e7acc2100ab01f2f2d247f194b75c
BLAKE2b-256 8dd7edb18241c90927e1bb9eac1e050ea88ee4bb16bac9838bb8c882f977d592

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cedarpy-4.8.2-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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b2c972aa709364309dd316b13aade75ebd244d08f4cccd682d24a70500b4e79b
MD5 4c0e67e518d6ebd42da4d614597cb646
BLAKE2b-256 2a0f976c0e25b4e2e33729e5dbe67e66ec0eadf9a92e46cfa5a32ea16efcef0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bccc061c0c3e78e654169289e7eb23c149e5bc496066194f4d7b688c5010119d
MD5 6bd2ba1b32643e246bd610f8127857d3
BLAKE2b-256 98beca19bbf9360b18e4ee7523776fda01a18b750159eb13c89c8dd8df2ea57c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c7dbf493e9170be4fa713bb9d6ff19cdb3774e87b1c264b105b2aac3ff5be98f
MD5 4ac64df18941f7c5cfe244098813bbbb
BLAKE2b-256 692ec3f9696d71568c344963b96488fc7e54e5ed960c392b7ff31e28d8f33213

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 963c3a4dfd3b1a40ea3d0a03dc2ee39b7a3abb10761d1eac88b1391f821d6bb7
MD5 40bf5abf73e384177e44abb4d0b24fb2
BLAKE2b-256 c94d0be537303e372719b70133bbe63eb3883d60a7a4b401a8f8d8c104fc9869

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 392997dec5e7644168cdd8b99be1925fe099554d09914453979b2901a7e94b07
MD5 77bf9326001c35f796196778bf18ab0d
BLAKE2b-256 9229a3dd25fea1160d7073f64c1c6356bb8f0c44f49a96a16d8162cf36f12ea0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b06467a6d45c990837ed39e2510b51ed13d147ea66d8a38969397dca2e9411db
MD5 a142c6357f57575e64b513a48e3409e1
BLAKE2b-256 b72c57b9d670f0448677bec1aa98eb27b510400e47df40f43915aa9508e4b279

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cedarpy-4.8.2-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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 893ebe73898933acc2ccd3ffa24ab4e2dd2cfb232f7531dc63df8d0a9cb4e87b
MD5 aa849cfe111a8885a3295922c189e3cf
BLAKE2b-256 1cad067b49d4e4e6879c8f421f17ff2f755a44f411231661e0c5db372d31b57c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 23571bc9f1ba2febd4ae5222bbba80b96663c619d7a09f926037310f307c27e3
MD5 a1fb066dd168d114f28bc6b157af7e4e
BLAKE2b-256 5118ac230e38600b1ece7bbc531a290d9123900c1e25a23a3cf9d7feccce9642

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 79605516d8d754271c720181ee01476f50a4a1b3ae424b2fed30c6e3255ee362
MD5 6479230bc46bb6004e47e0d13eed29a6
BLAKE2b-256 72ddc80b5a7b4b6a44ddaded3bcd18d5ba7369a8a322476832c710c49dc321f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5d436c44bbbb58688f3d715109040afb242d600df0a743a9f4fc1f33d1d4de0
MD5 53c4c45b980d92a2886db3ae2d3bca9c
BLAKE2b-256 d2867b9381ed0e5abd60f782061b916ee2441ec2d9f853b8befdd7d5302c59c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b6c10d686346f08829c586e9c2aacecf1790c26fcdc004f79c42c1c5d91428b1
MD5 d5534dc0c827563ee73df0009e279898
BLAKE2b-256 18aea06bf2d265ba6d342909a890026c79c30aab2dc934f12d362efb6d624e3f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cedarpy-4.8.2-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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c9fc6ebe3d862dcc3d7b8390be828101325f652a6a44f31c27891018c71556a3
MD5 9d2ee1f6ca77eaae0c6e1fc6a18e898c
BLAKE2b-256 1df323695f721c3522e71fc8a4261e889e59fb9167555d63b967df728cae0f2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6f8ad56b8b72139bd0d02f54f8ddd154922714a5b473f9f8cdc6b7945c3a581
MD5 97ecd9ce3cb3472d4e894ff4462ceef2
BLAKE2b-256 4e929cd5d547665d94ca835a98835467c6d58600365c59df2118d35941859a0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d5257b38c0fc357f3c1fd57b188d21b20eb45ec7ed9b83c5c0d5f2c0e93208ff
MD5 e99ec8fec32bbea337dfea4422217f8d
BLAKE2b-256 da4649d3ddb19cff23504e0912a4fc836dce570a5743e2a8df354f78aca463d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca3a1c5fad42bc391dcd4b22bdb5746b21e8405ce9db59e91a2f2e540bca283a
MD5 d196977c9e2075c4e61d745cd8923053
BLAKE2b-256 eb2e308a6976252b71a4d5c3c4cd79c400990050856f6d5e6f3102e7e031c0cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 87f34f2c3c9e40792655758d93fc432fbd2e7c2b445d0adcbf0a39c777e8a991
MD5 b21dada43c791092aea697df3edb5462
BLAKE2b-256 31d799ca982c492f97937bb047be5f1ade610827e22f5d619e85957060ad70a6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cedarpy-4.8.2-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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dfe04444142267d323886212b92be3dd3afa4ac4455fe4ff14c70587bf276934
MD5 1b791bb997e34b8ea5ab920138223f84
BLAKE2b-256 ff24c017b964a493dd93cef21e6a2aa88c66a5c7ba4a40ce8001066bf6b85a2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d820a2322224d83bc47206acaeac0b9e64c1133e5976fac4c9b019901b987442
MD5 b8215541c0f1c91ba4588ff5e98ae768
BLAKE2b-256 fe6c11e712ef2c8ec41c151e44e8dcce630fc1517634b3cb454196410cfa777a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0af9b641502f7fd55afb9b1c7a4234f0d2aa9108c34ffc1e5582f36f623b0fd0
MD5 8167cd93bad081f3a9d1883bd43e9713
BLAKE2b-256 2ed7cc9e7c7a2762aca46f7d7bfc33127b1910fe2e97dad4cb31397cf8af7761

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec0d4592d9f52a6a95268aea86d6035ea37b5daf8a381e5a85b8b5ebfe6b95a4
MD5 51e84b571adaf03615dc99519411bcc4
BLAKE2b-256 fe6ae2f9dfb27f64067b0947665d0b57deae2066785d4731d03da0fd23b34a72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ff66f314c21f1f7a8b66f01b91f54e6439a1000c01d47213bac9c3901b76ce69
MD5 36a5c9abf48119e318e98276dba7204f
BLAKE2b-256 5f387de280f9dfff9cc8d5d7c42e957ac82f76114636c15d108a0022d91dd68a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cedarpy-4.8.2-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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b9de1e7f6754d583553ac319e2ba9848be25c0806f65f11a3558ae7f9998dd66
MD5 9f6ae39b024dd3fbbe3c2b49e56b34d3
BLAKE2b-256 d173ad934adac5a40c8260ddddafcc42bac9311fde51a3340280c124b75210b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3bfc4666c446f32022f221f8b913a846ec57a73a807c19ac609607fc35c370a7
MD5 021f211a6617ea74bb34b3275a14cddd
BLAKE2b-256 233beaaeac73abb5cd6a0501b495c1d2f11596e35efcbd8c657beda11018502e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 aa4ca7e383118b9840898faca1f90cbb1fae1c363be0c03d2f063bad023d5013
MD5 1072f890ba1fcd6f75c0221e104821cb
BLAKE2b-256 62e2cfafe330abeff74e27f575e6e6006937ab725ca8370d21f9f72522704020

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c55d9121cc09c7ea6f423a17b70713dde27b6682ac38a478e44c7a0b8a7d05e9
MD5 1e7fb8a5d1605dfa1e7dd554618c337a
BLAKE2b-256 28bb56ea0ce41b4b9b1b92def7939c50e0c790f1949d2abf95f39e1cf8b698a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cedarpy-4.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0f54c247a73d50ad9af8e757dc8b8b01b8f6cad0d602bf3efe2e3aea9745df6a
MD5 bc8c28ab0958c71062b10e285898e610
BLAKE2b-256 3e9963d0c535786c7675502db8f3986bd5ff7e08da27a35efa2352012da35a51

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