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.5.tar.gz (122.4 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.5-cp39-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.9+Windows x86-64

openpathresolver-0.1.5-cp39-abi3-win32.whl (982.7 kB view details)

Uploaded CPython 3.9+Windows x86

openpathresolver-0.1.5-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.5-cp39-abi3-musllinux_1_2_i686.whl (1.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

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

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

openpathresolver-0.1.5-cp39-abi3-musllinux_1_2_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

openpathresolver-0.1.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5.tar.gz.

File metadata

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

File hashes

Hashes for openpathresolver-0.1.5.tar.gz
Algorithm Hash digest
SHA256 8e9c9cf4f0e2cc081661cb279eef157cb22f4f74ee8d16864db862eac53f9441
MD5 df7d2e43119d17bad69cad0f7cc986ab
BLAKE2b-256 cae24158afffee9b6bdbe602bf8b85566f75a92e12652dedb3bce1f15c47a387

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4e10de598615660f32eab15414b1ebaa1cc1096b94b1ee599599e32b8ecee8a3
MD5 7b41df15875648fb5301d539f6228d0e
BLAKE2b-256 710abd75e92590e0a7d741d50bb1a3a66f6d5193c4af0a2f0f88a8dd09b8d6ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 c940ca5c83391029d4afb04232aa67b0da350771c72941991e22d86853b57a10
MD5 3278f8d9b53fc79a40525ee423b66533
BLAKE2b-256 0286c0133a6edac48ed899fd4cc1ef54f565277dc20f70a0cde317bc50e74edc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 860cd27cfddf20b7f2e9a4e1049b97ae5f3292f999e2af3c5045af845f545135
MD5 815eb69ed49e00a93d105eca1125e7a8
BLAKE2b-256 cf7bfca141f631ab495e7d5715509b558819fc48272d9503005e9d33782ebc06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f388ed79d191f7441c0322c254e9011e4ed045fddde97666c0215c52fe7f0ead
MD5 b017faca8ff667d7017fb28c979f5164
BLAKE2b-256 8fef9c08ed4aeb7b5079888e637b0e1f46b97077bf8db19e45be15db7f29e7e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 352b1e63e394afcf809f99926b00add108352b17d6bd18c765458f3bf5e1a3be
MD5 9575eda11aaa069c945dc3079708df33
BLAKE2b-256 361516ec9e45b4724e366165e529c9346e5b860635e10918e1e0fe6bc0e5a1b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c205cbd733fafbfb5e94f63d01b89085d6c7cd80a4d5e8c706662c575d3ba8e3
MD5 6164308a3ee266b38742b75ebe846f76
BLAKE2b-256 576503aa448907be5963512aee0fe69d78bdc21becd0967db30db0e04157e04a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7b3d055775843f710dc3ac7fa2daa90474a3c81234c290e037e5b07b7b401a4d
MD5 c275d62ad3b37e324925e3e69bccf8d8
BLAKE2b-256 82cf596927f3d800c1ad2190a3555aab89539cfa1bca388952a7dc6a4c209a35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 8c605fae4bd951258910eb9cab342c342f3bf096c1e1abe0ffe7517cfdab51b7
MD5 ba8cb026f213e154fd3ea097b03bb392
BLAKE2b-256 3535e08cd5ca53a47cf1fa319691a9a6a2a5af81048b5abc540068796c5b5728

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 67eedf0e3d20db7b8da88ff6db491ccfc69d67be98c6a02bdcf882aa53b70637
MD5 07fec61d57a2793bda283c2cca230f36
BLAKE2b-256 c30331bd54f35aee2df339ef56c5743a6066b07051285f87ff05bf461029a5a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bd1076fb8a34952faa9a050233c719216410e6b3c96f0657e54141d04d443eed
MD5 457b0763e3ed5e4b3efef1ee28e42940
BLAKE2b-256 c1a608351ea57b20b587e1f15ec68f5b349ef953787437f1f3e0951ec0870843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 cac2ca4c99527ebe0ab31143c233a52be5160500d53c9fe1bc30ad47a4f79ca4
MD5 fcad101799bc2ba7f0344205d8c3cbb5
BLAKE2b-256 f5853e3b609f6ecb900f0bf818b984a2a9060c2b0694d9f74df79a4bb611b12f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 525bbfdc3bc6b908724e7127649b53ae1b03988fd8fd523c11568ceb38649861
MD5 b27c6d5985fe2bf60f66f42ab8f6345a
BLAKE2b-256 d6eb62310e4400db48f469b25ae974aa10bfb70042ece026f2e7c4f38f63a52d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openpathresolver-0.1.5-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e2454fd565825640f788a688fe3eccf23938470e232923a136c18ae1eced800
MD5 1e71d4e07195275c7881a789a265da3a
BLAKE2b-256 2e31deeca1b50def5ff1b75b13c8ad7a3713c2533147e626477bf245d4f10e88

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