{ "info": { "author": "Ethan Chan", "author_email": "metakirby5@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "==============\n zenbu (\u5168\u90e8)\n==============\n\n|Sample Usage|\n\nA setup-agnostic cascading theme engine. Uses Jinja2 for templates and YAML\nfor variable definition.\n\nThe above gif was brought to you by `wzb-utils`_.\n\nInstallation\n------------\n\n::\n\n pip install zenbu\n\nor just move ``zenbu.py`` to somewhere in your ``$PATH``.\nIf you do the latter, you must install the dependencies in the\nfollowing section manually.\n\nDependencies\n------------\n\n- Python (2 or 3)\n\nThe below are Python libraries that should be installed via ``pip``.\nAlternatively, if you did ``pip install zenbu``, these should have been\nautomatically installed.\n\n- argcomplete\n- colorlog\n- Jinja2\n- PyYAML\n- termcolor\n- watchdog\n\n\nTab completion\n--------------\n\n::\n\n sudo activate-global-python-argcomplete\n\nIf you installed via pip, you may need to run the following before autocompletion works:\n\n::\n\n grep 'PYTHON_ARGCOMPLETE_OK' \"$(which zenbu)\" &>/dev/null || sudo sed -i \"1a # PYTHON_ARGCOMPLETE_OK\" \"$(which zenbu)\"\n\nUsage\n-----\n\nCheck the `example`_ folder for some sample usage!\n\nFor a more detailed explanation, check out the `wiki homepage`_.\n\nFor common issues, check the `common gotchas wiki page`_.\n\nFor some neat tools (including automatic desktop reloads), check the\n`tools wiki page`_.\n\n::\n\n usage: zenbu [-h] [-l] [-t TEMPLATE_DIR] [-d DEST_DIR] [-s VAR_SET_DIR]\n [-f FILTERS_FILE] [-i IGNORES_FILE] [-e] [-w]\n [--watch-command WATCH_COMMAND] [--watch-dirs WATCH_DIRS]\n [--diff] [--dry]\n [variable_files [variable_files ...]]\n\n A Jinja2 + YAML based config templater.\n\n Searches for an optional yaml file with a variable mapping in\n ~/.config/zenbu/defaults.yaml,\n\n an optional python file with filters in (by default)\n ~/.config/zenbu/filters.py,\n\n an optional yaml file with an ignore scalar of regexes in (by default)\n ~/.config/zenbu/ignores.yaml,\n\n and uses the Jinja2 templates in (by default)\n ~/.config/zenbu/templates/\n\n to render into your home directory (by default).\n\n Additional variable files can be applied\n by supplying them as arguments, in order of application.\n\n They can either be paths or, if located in (by default)\n ~/.config/zenbu/variable_sets/,\n extension-less filenames.\n\n Environment variable support is available;\n simply run with the `-e` flag and\n put the name of the variable in Jinja2 brackets.\n\n The default Jinja2 globals and filters are available.\n\n Order of precedence is:\n last YAML variable defined >\n first YAML variable defined >\n environment variables.\n\n Variables are shallowly resolved once. Thus, for example you may have the\n following in your defaults.yaml for convenience:\n\n n_primary: \"{{ colors[colors.primary].normal }}\"\n\n Autocomplete support available, but only for the default\n variable set directory.\n\n A file watcher is available via the -w flag.\n Whenever a variable file in use, the filters file, the ignores file,\n or a template file changes, the templates are rendered\n if there are any differences. This can be overridden with a custom list of\n directories via the --watch-dirs flag.\n\n Diffs between the current destination files and\n template renderings are available via the --diff flag.\n\n For help on designing templates, refer to\n http://jinja.pocoo.org/docs/dev/templates/\n\n For help on creating filters, refer to\n http://jinja.pocoo.org/docs/dev/api/#custom-filters\n\n positional arguments:\n variable_files additional variable files\n\n optional arguments:\n -h, --help show this help message and exit\n -l list variable sets.\n -t TEMPLATE_DIR template directory. Default:\n /Users/echan/.config/zenbu/templates\n -d DEST_DIR destination directory. Default: /Users/echan\n -s VAR_SET_DIR variable set directory. Default:\n /Users/echan/.config/zenbu/variable_sets\n -f FILTERS_FILE filters file. Default:\n /Users/echan/.config/zenbu/filters.py\n -i IGNORES_FILE ignores file. Default:\n /Users/echan/.config/zenbu/ignores.yaml\n -e whether or not to use environment variables. Default:\n don't use environment variables\n -w start file watcher.\n --watch-command WATCH_COMMAND\n what to execute when a change occurs. Default: Nothing\n --watch-dirs WATCH_DIRS\n override what directories to watch, colon-separated.\n Default: Nothing\n --diff show diff between template renderings and current\n destination files\n --dry do a dry run\n\nZenbu in the wild\n-----------------\n\n|enju|\n\nWhat happened to whizkers?\n--------------------------\n\nThis project may seem awfully similar to `whizkers`_; in fact, this is a fork\nof whizkers which swaps the Mustache backend out with Jinja2. I'm keeping\nwhizkers around for compatibility reasons. So what are the reasons for\nswitching?\n\n- Comprehensive documentation: See the\n `Jinja2 Template Designer Documentation`_.\n- Better logic: Everything from if/else to macros. I originally praised\n Mustache for its logic-less philosophy, but then I realized that there would\n be no place to put logic other than the variable sets, which is a nightmare.\n- Expressions: You can now do ``{{ ':bold' if use_bold else '' }}``. You can\n even do ``{{ colors[colors.primary]['normal'] }}``, which has led to the\n deprecation of the ``{` ... `}`` eval syntax.\n- Filters: You can now do ``{{ colors.black.bold | to_rgb }}``. A lot better\n than Mustache's syntax.\n- Better whitespace control: This means increased readability.\n\nTo help ease the transition to zenbu, there are some tips under the\n`migration wiki page`_.\n\nThanks to\n---------\n\n- https://gist.github.com/coleifer/33484bff21c34644dae1\n- http://jinja.pocoo.org/\n- http://pyyaml.org/\n- `fullsalvo`_ for ideas, opinions, the readme gif, contributing to documentation,\n shilling, and overall being a good guy\n\n.. |Sample Usage| image:: http://i.imgur.com/auBfvx0.gif\n :target: https://u.teknik.io/FUkHM.webm\n :alt: zenbu with fullsalvo's wzb-utils.\n.. |enju| image:: http://i.imgur.com/EkT9OY5.gif\n :target: http://asator.xyz/img/dad9.webm\n :alt: enju on 2bwm.\n.. _wzb-utils: https://github.com/fullsalvo/wzb-utils\n.. _whizkers: https://github.com/metakirby5/whizkers\n.. _Jinja2: http://jinja.pocoo.org/\n.. _Jinja2 Template Designer Documentation:\n http://jinja.pocoo.org/docs/dev/templates/\n.. _YAML: http://yaml.org/\n.. _wiki homepage: https://github.com/metakirby5/zenbu/wiki\n.. _migration wiki page: https://github.com/metakirby5/zenbu/wiki/Migration\n.. _common gotchas wiki page:\n https://github.com/metakirby5/zenbu/wiki/Common-gotchas\n.. _tools wiki page:\n https://github.com/metakirby5/zenbu/wiki/Tools\n.. _example: example\n.. _fullsalvo: https://github.com/fullsalvo\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/metakirby5/zenbu", "keywords": "zenbu config templater jinja2 yaml", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "zenbu", "package_url": "https://pypi.org/project/zenbu/", "platform": "", "project_url": "https://pypi.org/project/zenbu/", "project_urls": { "Homepage": "https://github.com/metakirby5/zenbu" }, "release_url": "https://pypi.org/project/zenbu/1.0.5/", "requires_dist": null, "requires_python": "", "summary": "Jinja2 + YAML based config templater.", "version": "1.0.5" }, "last_serial": 3108050, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "049e2e5d7469031a63f51ca627d18172", "sha256": "76b17f600972f515ade97b5e8f143d3514de288ca7653bc1efb3ead503ffba4b" }, "downloads": -1, "filename": "zenbu-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "049e2e5d7469031a63f51ca627d18172", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14270, "upload_time": "2016-09-04T20:25:31", "url": "https://files.pythonhosted.org/packages/43/05/4ca4c98d123ee03254b7da6ccbd68f6dd0a96d92b26822c207f84623e4ec/zenbu-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f518fac348fdf1fc0ef8bc7e30f49f7", "sha256": "7b001503e3881a32db37217c02afda5c4bfec85a5e29bf71305fe6d55aa07343" }, "downloads": -1, "filename": "zenbu-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2f518fac348fdf1fc0ef8bc7e30f49f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10214, "upload_time": "2016-09-04T20:25:25", "url": "https://files.pythonhosted.org/packages/b8/7f/3d59a659226521495050c7056af3d98c34b8e96cb723c95209b27a46fcd0/zenbu-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "995c5e684d6b3f757a2c0f32c6b96ce1", "sha256": "0d07cf81bb05d1bd478a9869825f4743e02aa9e6dd49e2033f084a39dbb6a0be" }, "downloads": -1, "filename": "zenbu-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "995c5e684d6b3f757a2c0f32c6b96ce1", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14402, "upload_time": "2016-12-03T04:11:31", "url": "https://files.pythonhosted.org/packages/66/de/5e33966f39b91a76b73556a991153cbf06caa21ee5f9a078ec8d4e2bf0cb/zenbu-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebc8cf791b8cc67c4ffe1628fbb3b84a", "sha256": "5453f33d03b357a599fcb40d3273586b13e8947cff97c64876cf5988409ccfa0" }, "downloads": -1, "filename": "zenbu-1.0.1.tar.gz", "has_sig": false, "md5_digest": "ebc8cf791b8cc67c4ffe1628fbb3b84a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10287, "upload_time": "2016-12-03T04:11:28", "url": "https://files.pythonhosted.org/packages/0a/ab/1e285566b26d42a86b8c060e613df34e0b7de3c8906135c3f9fb69522c50/zenbu-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "944b9dff33e847d577b6dbc12e0a672c", "sha256": "8d63eab55c59332b251a1227a9dd530efb03087c2ef589d20d3a8680f6f26f12" }, "downloads": -1, "filename": "zenbu-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "944b9dff33e847d577b6dbc12e0a672c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14420, "upload_time": "2016-12-30T08:40:25", "url": "https://files.pythonhosted.org/packages/66/32/2f4f772f246de5798fec38448e9b2977f442aabebf689014b4337d8c0c60/zenbu-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "622732aeda85f04a38a3af1709d9cf44", "sha256": "35d18b0db0f68e419b75bea9bc0430aae0f7c628d788402e393ca03ba830e6f9" }, "downloads": -1, "filename": "zenbu-1.0.2.tar.gz", "has_sig": false, "md5_digest": "622732aeda85f04a38a3af1709d9cf44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10296, "upload_time": "2016-12-30T08:40:23", "url": "https://files.pythonhosted.org/packages/8c/95/f8fe5b47b491765ffec76e1ea148516e462663d48c1a4cfe486ff554e3c5/zenbu-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "5f02e1ee25906245f167ef1d58648159", "sha256": "4bccc7d1b472b6cb6296285785d99a79c59dc70baede901548bc04f675afed7e" }, "downloads": -1, "filename": "zenbu-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5f02e1ee25906245f167ef1d58648159", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14428, "upload_time": "2017-02-21T20:21:27", "url": "https://files.pythonhosted.org/packages/40/c4/6edb3bb8f4268d5ef847d1705680419560eea91454b968930ababb6a9907/zenbu-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3ff824096660fbac50931ad6630c46e1", "sha256": "0e7d3f35331a40d542b72b8b0411987bddcab65a6204f786488f466642d0403c" }, "downloads": -1, "filename": "zenbu-1.0.3.tar.gz", "has_sig": false, "md5_digest": "3ff824096660fbac50931ad6630c46e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10301, "upload_time": "2017-02-21T20:21:25", "url": "https://files.pythonhosted.org/packages/2c/6e/84e5b70fef37a436d929a7c175cdf2bc43655171bd8b2298b16b97e6d14f/zenbu-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "4057210c5f8a2be86fe7487b3816547d", "sha256": "4d9b136c398f2462a8e8df373b927d26c106be413ccffe2069c38c3ded277a7e" }, "downloads": -1, "filename": "zenbu-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4057210c5f8a2be86fe7487b3816547d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14442, "upload_time": "2017-04-04T01:08:45", "url": "https://files.pythonhosted.org/packages/ff/e0/070ef7d7c2e02c3b4b2c7b0ebdaee1fb2b00ff61295834fcc958e7337d7f/zenbu-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b050a45d9794500c9b8dc256c3b30874", "sha256": "5918f74bf3ee0d6f0dd2a4cff121e1951b14ec69b7f1caa5ebbb6a04bd54005f" }, "downloads": -1, "filename": "zenbu-1.0.4.tar.gz", "has_sig": false, "md5_digest": "b050a45d9794500c9b8dc256c3b30874", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10308, "upload_time": "2017-04-04T01:08:43", "url": "https://files.pythonhosted.org/packages/08/ff/a01c5b66f73edd8b20df38b6d45f9e0ce9dfb8e940cf6560041c71588fbd/zenbu-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "8bccb153f0dd18d2505d88031f9be0ab", "sha256": "ecb75547b5dec3c7941081d5bfa12d8e98fcf1117c51378547f90d96b478e2de" }, "downloads": -1, "filename": "zenbu-1.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8bccb153f0dd18d2505d88031f9be0ab", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14445, "upload_time": "2017-08-19T10:41:13", "url": "https://files.pythonhosted.org/packages/d0/65/8ba173b0dfc8a75c9c3297600aca716d60467d0851fdfc2632a28d0052eb/zenbu-1.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "51b1af4e713dc767a82c53fa5a711935", "sha256": "1248d68f184d12f26bf4636ff10684131db47d0e98c10b2d641a303170dea1ef" }, "downloads": -1, "filename": "zenbu-1.0.5.tar.gz", "has_sig": false, "md5_digest": "51b1af4e713dc767a82c53fa5a711935", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10307, "upload_time": "2017-08-19T10:41:11", "url": "https://files.pythonhosted.org/packages/b8/b1/e81e8f0c6087912049a351e12c067dbe25ef74511c45083815514ce4661b/zenbu-1.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8bccb153f0dd18d2505d88031f9be0ab", "sha256": "ecb75547b5dec3c7941081d5bfa12d8e98fcf1117c51378547f90d96b478e2de" }, "downloads": -1, "filename": "zenbu-1.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8bccb153f0dd18d2505d88031f9be0ab", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14445, "upload_time": "2017-08-19T10:41:13", "url": "https://files.pythonhosted.org/packages/d0/65/8ba173b0dfc8a75c9c3297600aca716d60467d0851fdfc2632a28d0052eb/zenbu-1.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "51b1af4e713dc767a82c53fa5a711935", "sha256": "1248d68f184d12f26bf4636ff10684131db47d0e98c10b2d641a303170dea1ef" }, "downloads": -1, "filename": "zenbu-1.0.5.tar.gz", "has_sig": false, "md5_digest": "51b1af4e713dc767a82c53fa5a711935", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10307, "upload_time": "2017-08-19T10:41:11", "url": "https://files.pythonhosted.org/packages/b8/b1/e81e8f0c6087912049a351e12c067dbe25ef74511c45083815514ce4661b/zenbu-1.0.5.tar.gz" } ] }