{ "info": { "author": "Adam Kewley", "author_email": "contact@adamkewley.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.4" ], "description": "pathaliases\n===========\n\n|Build Status|\n\nA python package for handling path aliases.\n\nPath aliases can be loaded directly from YAML files:\n\n.. code:: yaml\n\n dir/:\n subdir/:\n alias: SUBDIR\n some/other/dir/:\n alias: SUBDIR_2\n\n file.txt: { alias: [FILE, ALTERNATE_ALIAS] }\n\n dir2/:\n extra_keys: are ignored\n alias: 2ndDir\n\n some/very/long/path/:\n into/a/deep/file/hierarchy/:\n can/be/addressed/with: { alias: A_PATH_INDEPENDANT_ALIAS }\n\nResolving this with\n``pathaliases.resolve_yaml_to_path_strings(\"aliases.yml\")`` returns a\ndictionary:\n\n.. code:: python\n\n {\n \"SUBDIR\": \"dir/subdir/\",\n \"SUBDIR_2\": \"dir/subdir/some/other/dir/\"\n \"FILE\": \"file.txt\",\n \"ALTERNATE_ALIAS\": \"file.txt\",\n \"2ndDir\": \"dir2/\",\n \"A_PATH_INDEPENDENT_ALIAS\": \"some/very/long/path/into/a/deep/file/hierarchy/can/be/addressed/with\"\n }\n\nWhich can be used to make codebases independent from paths:\n\n.. code:: python\n\n # Before\n subdir = \"dir/subdir/\"\n subdir_2 = os.path.join(subdir, subdir_2)\n\n # After: *where* the dirs are is configurable\n aliases = pathaliases.resolve_yaml_to_path_strings(\"aliases.yml\")\n subdir = aliases[\"SUBDIR\"]\n subdir_2 = aliases[\"SUBDIR_2\"]\n\n`pathaliases` is designed to be:\n\n- **Simple** - It just concatenates all the keys that lead up to an alias.\n- **Readable** - Developers and admins should be able to edit paths easily.\n- **Standard** - It uses standard file formats and conventions, making it\n easy to port to other languages.\n\nInstallation\n============\n\nClone the repo:\n\n::\n\n $ git clone https://github.com/adamkewley/pathaliases.git\n $ python setup.py install\n\nUsage\n=====\n\nResolve aliases directly from a YAML file:\n\n.. code:: python\n\n import pathaliases\n\n aliases = pathaliases.resolve_yaml_to_path_strings(\"aliases.yml\")\n\n print(aliases[\"SUBDIR\"]) # echoes: \"dir/subdir/\"\n\nResolve aliases from a dict:\n\n.. code:: python\n\n import pathaliases\n\n aliases_dict = {\n \"dir/\": {\n \"subdir/\": {\"alias\": \"SUBDIR\"}\n }\n }\n\n aliases = pathaliases.resolve_path_strings(aliases_dict)\n print(aliases[\"SUBDIR\"]) # echoes: \"dir/subdir/\"\n\nSubstituting Variables\n======================\n\nAlias files can also contain variables, templated with ``${VARNAME}``:\n\n.. code:: yaml\n\n foo/:\n ${var}/:\n alias: ${key}\n\n``pathaliases`` allows you to pass in an environment when evaluating\npaths:\n\n.. code:: python\n\n env = {\n \"var\": \"bar\",\n \"key\": \"some_alias\"\n }\n\n aliases = pathaliases.resolve_yaml_to_path_strings(\"aliases.yml\", env=env)\n\n aliases == {\n \"some_alias\": \"foo/bar/\",\n }\n\n.. |Build Status| image:: https://travis-ci.org/adamkewley/pathaliases.svg?branch=master\n :target: https://travis-ci.org/adamkewley/pathaliases", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/adamkewley/pathaliases/tarball/0.0.3", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/adamkewley/pathaliases", "keywords": "path aliasing", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "pathaliases", "package_url": "https://pypi.org/project/pathaliases/", "platform": "", "project_url": "https://pypi.org/project/pathaliases/", "project_urls": { "Download": "https://github.com/adamkewley/pathaliases/tarball/0.0.3", "Homepage": "https://github.com/adamkewley/pathaliases" }, "release_url": "https://pypi.org/project/pathaliases/0.0.3/", "requires_dist": null, "requires_python": ">=3", "summary": "A python package for handling path aliases.", "version": "0.0.3" }, "last_serial": 4033220, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "50320c36f9a47f4387f54aae70a5a91c", "sha256": "0a3f1b0085356afb761f450fa9e13ebe970aced8fbea04ffea255d4fafcf8286" }, "downloads": -1, "filename": "pathaliases-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "50320c36f9a47f4387f54aae70a5a91c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5374, "upload_time": "2017-12-11T13:34:51", "url": "https://files.pythonhosted.org/packages/94/fd/bd1db8cfa667a5db801173b9d5fdc5c0cbd4079704c6597e3fa9021eb8ab/pathaliases-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9628472651c6c395f498a31bc2db663", "sha256": "799112d16b893d1905a9a2ed900ca3d1e2da94dde9872687d734cd167436600f" }, "downloads": -1, "filename": "pathaliases-0.0.1.tar.gz", "has_sig": false, "md5_digest": "d9628472651c6c395f498a31bc2db663", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3614, "upload_time": "2017-12-11T13:34:52", "url": "https://files.pythonhosted.org/packages/60/c8/357cb6a1e0d96b7afb36b10cd242fbc497a626b08814b36c0398ae76187d/pathaliases-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "0b4662551ddd84842a45309971965c4f", "sha256": "f0ef3e2fd66738974f6594e0ec9d8f8e36b7b8b3b6f53a07c16800fe9e759eb9" }, "downloads": -1, "filename": "pathaliases-0.0.2.tar.gz", "has_sig": false, "md5_digest": "0b4662551ddd84842a45309971965c4f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3601, "upload_time": "2018-07-05T12:31:02", "url": "https://files.pythonhosted.org/packages/b8/7f/b484c35848accb0eec7af768ff2aee474dae76c28b41a12364a8ef39ba2f/pathaliases-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1deca180ef5a0366d892a35f98e82d5f", "sha256": "15bae1e4711bd730612dc82f6f12b15878370280e5a25b6de3f0e7ce03ece29b" }, "downloads": -1, "filename": "pathaliases-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1deca180ef5a0366d892a35f98e82d5f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5334, "upload_time": "2018-07-05T13:14:38", "url": "https://files.pythonhosted.org/packages/3c/ce/b20abacdf69d87560cc0150f2a9e1f76c5577909fbb6d952e63ae000b4c4/pathaliases-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "288838e7ed13a30a22e5e3609dfe8a5a", "sha256": "ed924d233018302f0f224bda4a53f4ac26e7a13d0e860713bac3937506919606" }, "downloads": -1, "filename": "pathaliases-0.0.3.tar.gz", "has_sig": false, "md5_digest": "288838e7ed13a30a22e5e3609dfe8a5a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3689, "upload_time": "2018-07-05T13:01:31", "url": "https://files.pythonhosted.org/packages/70/07/553634467bbcfadb3cb01e30b3a9549a7d2d0e818a677f769bf349aeee2d/pathaliases-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1deca180ef5a0366d892a35f98e82d5f", "sha256": "15bae1e4711bd730612dc82f6f12b15878370280e5a25b6de3f0e7ce03ece29b" }, "downloads": -1, "filename": "pathaliases-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1deca180ef5a0366d892a35f98e82d5f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5334, "upload_time": "2018-07-05T13:14:38", "url": "https://files.pythonhosted.org/packages/3c/ce/b20abacdf69d87560cc0150f2a9e1f76c5577909fbb6d952e63ae000b4c4/pathaliases-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "288838e7ed13a30a22e5e3609dfe8a5a", "sha256": "ed924d233018302f0f224bda4a53f4ac26e7a13d0e860713bac3937506919606" }, "downloads": -1, "filename": "pathaliases-0.0.3.tar.gz", "has_sig": false, "md5_digest": "288838e7ed13a30a22e5e3609dfe8a5a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3689, "upload_time": "2018-07-05T13:01:31", "url": "https://files.pythonhosted.org/packages/70/07/553634467bbcfadb3cb01e30b3a9549a7d2d0e818a677f769bf349aeee2d/pathaliases-0.0.3.tar.gz" } ] }