{ "info": { "author": "Domen Kozar, Tom Lazar", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "**Mister Bob the Builder** creates directory skeletons.\n\nDocumentation\n=============\n\nhttp://mrbob.readthedocs.org/\n\nTODO\n====\n\n- [medium] refactor Python API\n- [medium] gittip\n- [medium] add +var+ folder in template_sample\n- [medium] Check how one would implement multi-namespace python package with current mr.bob api\n- [low] Ability to configure what to ignore when copying templates in bobconfig (as a hook?)\n- [low] better format print questions output (keep order of questions -> use order information like for asking questions)\n- [low] document we don't need local commands once answers are remembered (just issue another template on top of current)\n- [low] ability to specify variables/defaults to questions from cli\n- [maybe] ability to simulate rendering (dry-run)\n- [maybe] ability to update/patch templates\n\nChangelog\n=========\n\n\n0.1.2 (2015-08-19)\n------------------\n\n- Add pre_ask and post_ask hooks.\n [Godefroid Chapelle]\n\n- Upload tarball instead of zipfile to fix unicode errors\n during installation [Domen Ko\u017ear]\n\n\n0.1.1 (2014-03-03)\n------------------\n\n- Claim Python 3.4 support\n [Domen Ko\u017ear]\n\n- Fix encoding errors on Python 3 during installation\n [Domen Ko\u017ear]\n\n- Use Jinja2 < 2.7 only for python 3.2\n [Domen Ko\u017ear]\n\n\n0.1 (2014-03-02)\n----------------\n\n- move exceptions to bobexceptions\n [Jean-Philippe Camguilhem]\n\n- Use jinja2 < 2.7, since 2.7+ doesn't support Python 3.2\n [Domen Ko\u017ear]\n\n- Filename variable name substitution regex failed to compile on windows\n [Domen Ko\u017ear]\n\n- Do not copy ``.DS_Store``.\n [Godefroid Chapelle]\n\n- Configure patterns of files to ignore through\n ``ignored_files`` option of ``mr.bob`` section.\n [Godefroid Chapelle]\n\n- Configure patterns of directories to ignore through\n ``ignored_directories`` option of ``mr.bob`` section.\n [Fotis Gimian]\n\n- Added new post-question hook ``mrbob.hooks.to_integer``\n [Fotis Gimian]\n\n- Added new post-question hook ``mrbob.hooks.to_decimal``\n [Fotis Gimian]\n\n- Added new post-question hook ``mrbob.hooks.validate_choices``\n [Fotis Gimian]\n\n- Added new post-question hook ``mrbob.hooks.validate_regex``\n [Fotis Gimian]\n\n- Added new pre-question hook ``mrbob.hooks.set_current_datetime``\n [Fotis Gimian]\n\n- Added new post-question hook ``mrbob.hooks.validate_datetime``\n [Fotis Gimian]\n\n\n0.1a9 (2013-04-26)\n------------------\n\n- Regex to detect variable names when rendering file names was broken when \n directory path contains pluses.\n [Godefroid Chapelle]\n\n\n0.1a8 (2013-03-11)\n------------------\n\n- Depend on six>=1.2.0\n [Domen Ko\u017ear]\n\n- Moved all exceptions to `mrbob.exceptions` module\n [Domen Ko\u017ear]\n\n- Fix loading of zip files\n [Domen Ko\u017ear]\n\n- #28: Remote loading of config files\n [Nejc Zupan]\n\n- #30: Keep newlines of rendered template\n [Domen Ko\u017ear]\n\n\n0.1a7 (2013-01-23)\n------------------\n\n- Don't depend on argparse in python 2.7 and higher, since it's already\n in stdlib\n [Domen Ko\u017ear]\n\n- #22: Prevent users from specifying target directory inside template dir\n [Domen Ko\u017ear]\n\n\n0.1a6 (2013-01-02)\n------------------\n\n- Use ``StrictUndefined`` with jinja2 renderer so that any missing key is\n reported as an error\n [Domen Ko\u017ear]\n\n- If a key in a namespace was missing while rendering, no error was raised\n [Domen Ko\u017ear]\n\n- Added hook ``mrbob.hooks.show_message``\n [Domen Ko\u017ear]\n\n- ``mrbob.validators.boolean`` renamed to ``mrbob.hooks.to_boolean``\n [Domen Ko\u017ear]\n\n- Renamed ``validators.py`` to ``hooks.py``\n [Domen Ko\u017ear]\n\n- Removed ``validators`` and ``action`` settings from ``[questions]`` as it is\n superseded by hooks\n [Domen Ko\u017ear]\n\n- Added ``pre_ask_question`` and ``post_ask_question`` to ``[questions]`` section\n [Domen Ko\u017ear]\n \n- Added ``pre_render``, ``post_render`` and ``post_render_msg`` options\n [Domen Ko\u017ear]\n\n- Added ``[defaults]`` section that will override template defaults. The only\n difference to ``[variables]`` is that variables provide default answers\n [Domen Ko\u017ear]\n\n- Moved ``renderer`` parameter to ``[template]`` section\n [Domen Ko\u017ear]\n\n- Added ``[template]`` section that is parsed only from ``.mrbob.ini`` inside a\n template directory.\n [Domen Ko\u017ear]\n\n- Correctly evaluate boolean of ``quiet`` and ``verbose`` settings\n [Domen Ko\u017ear]\n\n- Added ``non_interactive`` setting that will not prompt for any input and fail\n if any of required questions are not answered\n [Domen Ko\u017ear]\n\n- Added ``remember_answers`` setting that will create ``.mrbob.ini`` file inside\n rendered directory with all the answers written to ``[variables]`` section\n [Domen Ko\u017ear]\n\n- Include changelog in documentation\n [Domen Ko\u017ear]\n\n- ``Question`` does no longer raise error if unknown parameter is passed from a\n config file. Instead those parameters are saved to ``question.extra`` that can\n be later inspected and validated. This is first step to have advanced question\n types such as question with a set of predefined answers\n [Domen Ko\u017ear]\n\n- Rewrite all py.test stuff to nosetests, so we have unified testing now. This\n also fixes flake8 segfaults on pypy\n [Domen Ko\u017ear]\n\n\n0.1a5 (2012-12-12)\n------------------\n\n- #26: Variables were not correctly parsed from config files\n [Domen Ko\u017ear]\n\n\n0.1a4 (2012-12-11)\n------------------\n\n- Fix MANIFEST.in so that template examples are also included with distribution\n [Domen Ko\u017ear]\n\n- Add -q/--quiet option to suppress output which isn't strictly necessary\n [Sasha Hart]\n\n- Suppress the interactive-mode welcome banner if there are no questions to ask\n [Sasha Hart]\n\n- Don't raise KeyError: 'questions_order' if [questions] is missing in an ini\n [Sasha Hart]\n\n\n0.1a3 (2012-11-30)\n------------------\n\n- #13: Read user config from ~/.mrbob (as stated in docs and inline comments).\n [Andreas Kaiser]\n\n\n0.1a2 (2012-11-29)\n------------------\n\n- #12: Fix unicode errors when using non-ASCII in questions or defaults\n [Domen Ko\u017ear]\n\n- Ask questions in same order they were\n defined in template configuration file\n [Domen Ko\u017ear]\n\n\n0.1a1 (2012-10-19)\n------------------\n\n- Initial release.\n [Domen Ko\u017ear, Tom Lazar]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/iElectric/mr.bob.git", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "mr.bob", "package_url": "https://pypi.org/project/mr.bob/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/mr.bob/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/iElectric/mr.bob.git" }, "release_url": "https://pypi.org/project/mr.bob/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Bob renders directory structure templates", "version": "0.1.2" }, "last_serial": 1683853, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7848a23c88d4b91af9b4fcda6c522c90", "sha256": "1052deaf9eb51230afcbae0ca7881fb3c923de7bb1929f40387a09eccb2215dc" }, "downloads": -1, "filename": "mr.bob-0.1.zip", "has_sig": false, "md5_digest": "7848a23c88d4b91af9b4fcda6c522c90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43149, "upload_time": "2014-03-02T15:04:08", "url": "https://files.pythonhosted.org/packages/d3/ea/1fc032b57dcdd6f0fe989948fb2a330ab2de3cf16f29f7cde40fbac0cf89/mr.bob-0.1.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "84a117c9a75b86842b0fa5f5c9c767f3", "sha256": "ab689b4e8c4fda1f49e6b41297287c14faa8d4afc2aa9cf6d3238fbc8efeaaa9" }, "downloads": -1, "filename": "mr.bob-0.1.1.zip", "has_sig": false, "md5_digest": "84a117c9a75b86842b0fa5f5c9c767f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43706, "upload_time": "2014-03-03T13:58:09", "url": "https://files.pythonhosted.org/packages/e3/8b/74e37dce3bbc47b212341317974708ce4ef8bb4bccac898c3b5e2a2b8121/mr.bob-0.1.1.zip" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "4856a2c9677894931a9f5bd1bf388dab", "sha256": "6737eaf98aaeae85e07ebef844ee5156df2f06a8b28d7c3dcb056f811c588121" }, "downloads": -1, "filename": "mr.bob-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4856a2c9677894931a9f5bd1bf388dab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27139, "upload_time": "2015-08-19T11:48:58", "url": "https://files.pythonhosted.org/packages/23/fe/25d78b8e9c84ac177fc3edae0186b842d0a788f19710c250b08a23fdb528/mr.bob-0.1.2.tar.gz" } ], "0.1a1": [ { "comment_text": "", "digests": { "md5": "998cfda8fd0b8efe7dc37e90f5c8df8c", "sha256": "57fbaaa3676828d0eb95e9ef4f4b1c37e3dd27942813608c328d7df45099743d" }, "downloads": -1, "filename": "mr.bob-0.1a1.zip", "has_sig": false, "md5_digest": "998cfda8fd0b8efe7dc37e90f5c8df8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22351, "upload_time": "2012-10-19T11:31:56", "url": "https://files.pythonhosted.org/packages/62/3c/a3b55d59dbdc9393b45dd51fbd664c688093cda525f160ae1393ae52b531/mr.bob-0.1a1.zip" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "0ed655cfdca1c224a409738fed5b8220", "sha256": "c707116b17fc589de925638dd9f5f5e71f2ea21ee3abf59f3b9b0a0cf36c525f" }, "downloads": -1, "filename": "mr.bob-0.1a2.zip", "has_sig": false, "md5_digest": "0ed655cfdca1c224a409738fed5b8220", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22308, "upload_time": "2012-11-29T21:55:25", "url": "https://files.pythonhosted.org/packages/82/83/81dc44f573abc6089fbc73e381d1e7374043c73d1faa62a42fcd93cf56d1/mr.bob-0.1a2.zip" } ], "0.1a3": [ { "comment_text": "", "digests": { "md5": "bf3156556ec6fd9815997510aec087d0", "sha256": "7c71e3cb0c7c78f04b3a3daa126d65551553a92e8722088470cefd8a30dafd18" }, "downloads": -1, "filename": "mr.bob-0.1a3.zip", "has_sig": false, "md5_digest": "bf3156556ec6fd9815997510aec087d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22512, "upload_time": "2012-11-30T15:56:22", "url": "https://files.pythonhosted.org/packages/13/dc/88cc6538e83873f50c169b752b97f1fd3e8475f3c4c741154c436a0c0d8a/mr.bob-0.1a3.zip" } ], "0.1a4": [ { "comment_text": "", "digests": { "md5": "8e9f02cf9ea7759e4672108816342d0b", "sha256": "f0a89caf246894e04ea13e9e330002edc78cea4785b55a07869ee298a7cab32b" }, "downloads": -1, "filename": "mr.bob-0.1a4.zip", "has_sig": false, "md5_digest": "8e9f02cf9ea7759e4672108816342d0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30514, "upload_time": "2012-12-11T11:24:06", "url": "https://files.pythonhosted.org/packages/99/f5/d8c7abfc9574d2371b774776f7bf1e6510fbc6cd7a60a64604974c2a6c8b/mr.bob-0.1a4.zip" } ], "0.1a5": [ { "comment_text": "", "digests": { "md5": "311cc42151ebd1e25920c1687cb82673", "sha256": "1ae4400b732da98a9fe96634fa5b3b13021f4a7c7426d5e0afb25562f8a49807" }, "downloads": -1, "filename": "mr.bob-0.1a5.zip", "has_sig": false, "md5_digest": "311cc42151ebd1e25920c1687cb82673", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30726, "upload_time": "2012-12-12T16:33:02", "url": "https://files.pythonhosted.org/packages/37/f5/023c30a7f8d09be7f04d1fb09db96a204c7c01559f49820dc6081bb12f49/mr.bob-0.1a5.zip" } ], "0.1a6": [ { "comment_text": "", "digests": { "md5": "361c8ac7a31953ab94a95cf34d9a0b2b", "sha256": "25e78f8505ed6730f800297b2ee9663de6ad74790a26184c936b65b03fd821b4" }, "downloads": -1, "filename": "mr.bob-0.1a6.zip", "has_sig": false, "md5_digest": "361c8ac7a31953ab94a95cf34d9a0b2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81618, "upload_time": "2013-01-02T19:45:51", "url": "https://files.pythonhosted.org/packages/96/dc/bdbf6f23a31eae90dc1137bb74d887dc3d267faf35239aa2199b58931139/mr.bob-0.1a6.zip" } ], "0.1a7": [ { "comment_text": "", "digests": { "md5": "abb021d800b821d71cbdd7935a222bb8", "sha256": "55f2ccf09ad9a3d327a8a79be1d631c4df0c431056da8505283c3d6719d4dc3e" }, "downloads": -1, "filename": "mr.bob-0.1a7.zip", "has_sig": false, "md5_digest": "abb021d800b821d71cbdd7935a222bb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36129, "upload_time": "2013-01-23T13:20:50", "url": "https://files.pythonhosted.org/packages/58/47/cb1a5d57f8223a5a6b48cfcce6e994f180bac41fe406f1fa04bbea8d5e7f/mr.bob-0.1a7.zip" } ], "0.1a8": [ { "comment_text": "", "digests": { "md5": "55d1199e7b961c5702afb5c1fb3277f8", "sha256": "f20c04a4276b48b9a512a3532719c302214e7aedcb6807e00898832d1f492677" }, "downloads": -1, "filename": "mr.bob-0.1a8.zip", "has_sig": false, "md5_digest": "55d1199e7b961c5702afb5c1fb3277f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37254, "upload_time": "2013-03-11T18:32:28", "url": "https://files.pythonhosted.org/packages/37/59/ede9b8b2c573892e92093657f420ca5933f8c722c7ca2f3e4f26b2dbda6f/mr.bob-0.1a8.zip" } ], "0.1a9": [ { "comment_text": "", "digests": { "md5": "2d27d9bd1fc6269a3ecfd1a1ae47cd8a", "sha256": "fb88788ae77ced4025b2e737e227e63fec625a36b6265f37516efe904630fcb6" }, "downloads": -1, "filename": "mr.bob-0.1a9.zip", "has_sig": false, "md5_digest": "2d27d9bd1fc6269a3ecfd1a1ae47cd8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37517, "upload_time": "2013-04-26T11:19:14", "url": "https://files.pythonhosted.org/packages/05/43/7910606984c7a0259b383ec770da801de74da1f71612558b0aca2a311d02/mr.bob-0.1a9.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4856a2c9677894931a9f5bd1bf388dab", "sha256": "6737eaf98aaeae85e07ebef844ee5156df2f06a8b28d7c3dcb056f811c588121" }, "downloads": -1, "filename": "mr.bob-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4856a2c9677894931a9f5bd1bf388dab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27139, "upload_time": "2015-08-19T11:48:58", "url": "https://files.pythonhosted.org/packages/23/fe/25d78b8e9c84ac177fc3edae0186b842d0a788f19710c250b08a23fdb528/mr.bob-0.1.2.tar.gz" } ] }