Skip to main content

A simple path resolver framework

Project description

Open Path Resolver Framework

Overview

This project is designed to answer two questions. How to build a project or workspace folder structure and how to query for where to write to/where to find paths.

Features

  • A Rust and Python 3 API
  • Support for building out a filesystem for a given context.
  • Support for querying for paths and extracting information from paths.

Requirements

  • Rust: 1.92 or later (This is not the guaranteed minimum supported Rust version)

Design

Workspace

The workspace resolver is designed to not directly build a workspace. Instead it will provide information to an IO function that is responsible for creating the workspace. It is always assumed that the resolver cannot understand what the "root user" or "read and write permissions" means for a given organization. Instead, it'll provide context to a developer so they can decide where to create a file or directory, what are the permissions, owner, etc.

Path

The path resolver is designed to take some fields and a key, then return the path. There are sibling functions that can extract the information from the path based on what information is provided. For example, get_key will get the key from a path and fields, while get_fields will get the fields from the path and key. The find_paths is slightly different in that it will find all of the paths for a key, while the fields will control the filtering. For example, if there's a path path/to/{entity}/{version}, and the fields {"entity": "foo"} are supplied, then this will find all of the "foo" version paths such as ["path/to/foo/001", "path/to/foo/002"].

Install

Rust

cd /to/your/project
cargo add openpathresolver

Python

For development

cd /path/to/openpathresolver/bindings/python

python -m pip install ".[build]"
python -m maturin develop

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

openpathresolver-0.1.2.tar.gz (48.6 kB view details)

Uploaded Source

Built Distributions

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

openpathresolver-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

openpathresolver-0.1.2-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

openpathresolver-0.1.2-cp39-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.9+Windows x86-64

openpathresolver-0.1.2-cp39-abi3-win32.whl (970.5 kB view details)

Uploaded CPython 3.9+Windows x86

openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_i686.whl (1.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_armv7l.whl (1.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ s390x

openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.6 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ppc64le

openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ i686

openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

openpathresolver-0.1.2-cp39-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file openpathresolver-0.1.2.tar.gz.

File metadata

  • Download URL: openpathresolver-0.1.2.tar.gz
  • Upload date:
  • Size: 48.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.12.2

File hashes

Hashes for openpathresolver-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d25f7819696bca3e4763105fea527505121731f4ae83b43de6e653dc7472d1b7
MD5 7a61aaed89895c6293f8088ed21233ab
BLAKE2b-256 19a9c7769310a6aa9493e50df2fe8a3ed9df16088b78483d4ae06855b121f681

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7415d8e113288aea2f1cf04d3c05304e92bcf4c9193d896ec08733ad82f48968
MD5 94193962dc3bddd649c418152a35b7ed
BLAKE2b-256 3289d0a1427bee0c0e85d777f79a711c9bd5cc02fc9919be37e209e2b23df779

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 367d6744b1e24effc43914ccd3d8d9c01bb495677c29fa70a62cc3effad96101
MD5 ef41811f0872a682a74b0f7ceb19cc9c
BLAKE2b-256 2eccfd2e6863589a9c98252772a82bfb047bc94fd2742554657c550a49a16fec

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0766945dfc51d3c876ffaf67ee1ee7699e63332f1faa61eb83a282d266d31055
MD5 edede191ee24db932d6ac59614d649ef
BLAKE2b-256 127d9f98e2ff1bf225c0a32358ba69dd9eaea560c48e0a66936af818e2de9d6e

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-win32.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 dbdf43c3705143448dffc8c3614e50a8026b612945cb5a9bc5cba52a403983a5
MD5 a9b8c21af19505c41c2bdb3be718ec70
BLAKE2b-256 92c36bb80d016dca365ffb5aa3eded014674b5251e12dfc58054081ca78328b7

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 17e7247b1cb4f5a6a604049ef38bb99be8d92101ba71de1a01bbd6358dd4c5d8
MD5 a6e48b824b3b30a72fa6f7408c7ef775
BLAKE2b-256 93e398b0329b48cb6e9ffdcfac044a0d24bb443fd2ae426555de7cdaef44e090

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 621464d1265ecb6a0c1943d69f6657178e527154bdc75fb620e709eb6b7dcf79
MD5 cb8e21820741a3819878be2c97d6a097
BLAKE2b-256 7f4f03c9c32526ccf05c12ed40514f84dfb841b017a843e0208dafe0e91210df

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 a98fc3dcf8b59f933276cc68f79a99faaaf53b65c0fe2b4c825034cec2a5da80
MD5 022f548b67afbf6818fd1222c47de7da
BLAKE2b-256 8b12daf371ceb5dfc8887873d35140c15ac650e09221490c24077d0484d1b526

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f791fe9f3d2cce60737f8dd66450427ddf354a5891aad0ec5e0a5f38b7d6d226
MD5 15f8e19fcbe43ec79f50b58340df5bce
BLAKE2b-256 363113ef76f252dd7a51dd0664c95b9300b4310c0e50410a5c1734d8203ca091

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03ac1b6d9ade6905496a8cc5b7ff388879fab167791e5348c9a012fff86a7af7
MD5 58c2274abaae180cfcfba506f7e7fd2e
BLAKE2b-256 bc1493c5609def70165ba7f568919149e4a055b2e3ef81755f9f0f19d4e39063

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 19855b5a89a45fe66b4ab457f5e3b4347cd04e4f91848fdc274cd91f67f78057
MD5 07284c7de4dea0125c5c608be272f305
BLAKE2b-256 c3ed4a7a10072b58a219dec4a784f49517da83aa84e820c4b58ef7dfe599c3da

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 552fb9cef3a4438b7def1fe08b4ba6f1ce3272e1288a59920669ed7377c1aba5
MD5 d0284cc7eeaedef0d45e4bf854c7f81e
BLAKE2b-256 495d902608a6df7419a5ba899392e9d35a0dfc446c102782a3392fab1561ccfd

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 68faa292019004b6401f08c49c3d83bf340b99a33af76f0e99eeb21267bd770e
MD5 f85b79b76175ec356c4240fa1585180d
BLAKE2b-256 5457cd5a75f283ece7d29aaa3fde03a3b937a8e848329ad224cde1df50a2316b

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 bbaaa1c3ecc1bab6678807e880f1de843e867474949602607f85aa16c2ca280c
MD5 ac3b8ab1a156819f4471b56f296a85be
BLAKE2b-256 082e04cc17fbe3b213d35ff1a62356dc7be19e35997200a33aac99de1b1ce84d

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2e8e8f193e9dcd223beac0a197d778c124373572a1d6a49a6862620ad6663c19
MD5 8fefab9979f4d9c15cd41877cea8f3b7
BLAKE2b-256 b3fb692b6f148561b6770a3e0f1b26f3196c49e7c332d0d84c68f0f071c857d3

See more details on using hashes here.

File details

Details for the file openpathresolver-0.1.2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openpathresolver-0.1.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e745d6336c8953889c0c553df92a843d0849c60fce8a6ba39e865c9c67feba7e
MD5 0c8e4c5d0115d1c8f37f4c57e1bbff55
BLAKE2b-256 6a4eb1b564b2294839213c07b36b0d9fdb4de244c7ddef26d364211516cbcb76

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