A python package for handling path aliases.
Project description
pathaliases
A python package for handling path aliases.
Path aliases can be loaded directly from YAML files:
dir/:
subdir/:
alias: SUBDIR
some/other/dir/:
alias: SUBDIR_2
file.txt: { alias: [FILE, ALTERNATE_ALIAS] }
dir2/:
extra_keys: are ignored
alias: 2ndDir
some/very/long/path/:
into/a/deep/file/hierarchy/:
can/be/addressed/with: { alias: A_PATH_INDEPENDANT_ALIAS }
Resolving this with pathaliases.resolve_yaml_to_path_strings("aliases.yml") returns a dictionary:
{
"SUBDIR": "dir/subdir/",
"SUBDIR_2": "dir/subdir/some/other/dir/"
"FILE": "file.txt",
"ALTERNATE_ALIAS": "file.txt",
"2ndDir": "dir2/",
"A_PATH_INDEPENDENT_ALIAS": "some/very/long/path/into/a/deep/file/hierarchy/can/be/addressed/with"
}
Which can be used to make codebases independent from paths:
# Before
subdir = "dir/subdir/"
subdir_2 = os.path.join(subdir, subdir_2)
# After: *where* the dirs are is configurable
aliases = pathaliases.resolve_yaml_to_path_strings("aliases.yml")
subdir = aliases["SUBDIR"]
subdir_2 = aliases["SUBDIR_2"]
pathaliases is designed to be:
Simple - It just concatenates all the keys that lead up to an alias.
Readable - Developers and admins should be able to edit paths easily.
Standard - It uses standard file formats and conventions, making it easy to port to other languages.
Installation
Clone the repo:
$ git clone https://github.com/adamkewley/pathaliases.git $ python setup.py install
Usage
Resolve aliases directly from a YAML file:
import pathaliases
aliases = pathaliases.resolve_yaml_to_path_strings("aliases.yml")
print(aliases["SUBDIR"]) # echoes: "dir/subdir/"
Resolve aliases from a dict:
import pathaliases
aliases_dict = {
"dir/": {
"subdir/": {"alias": "SUBDIR"}
}
}
aliases = pathaliases.resolve_path_strings(aliases_dict)
print(aliases["SUBDIR"]) # echoes: "dir/subdir/"
Substituting Variables
Alias files can also contain variables, templated with ${VARNAME}:
foo/:
${var}/:
alias: ${key}
pathaliases allows you to pass in an environment when evaluating paths:
env = {
"var": "bar",
"key": "some_alias"
}
aliases = pathaliases.resolve_yaml_to_path_strings("aliases.yml", env=env)
aliases == {
"some_alias": "foo/bar/",
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pathaliases-0.0.3.tar.gz.
File metadata
- Download URL: pathaliases-0.0.3.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed924d233018302f0f224bda4a53f4ac26e7a13d0e860713bac3937506919606
|
|
| MD5 |
288838e7ed13a30a22e5e3609dfe8a5a
|
|
| BLAKE2b-256 |
7007553634467bbcfadb3cb01e30b3a9549a7d2d0e818a677f769bf349aeee2d
|
File details
Details for the file pathaliases-0.0.3-py3-none-any.whl.
File metadata
- Download URL: pathaliases-0.0.3-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15bae1e4711bd730612dc82f6f12b15878370280e5a25b6de3f0e7ce03ece29b
|
|
| MD5 |
1deca180ef5a0366d892a35f98e82d5f
|
|
| BLAKE2b-256 |
3cceb20abacdf69d87560cc0150f2a9e1f76c5577909fbb6d952e63ae000b4c4
|