mr.bob


Namemr.bob JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/collective/mr.bob.git
SummaryBob renders directory structure templates
upload_time2024-02-29 08:47:23
maintainer
docs_urlNone
authorDomen Kozar, Tom Lazar
requires_python>=3.7
licenseBSD
keywords template skeleton
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            **Mister Bob the Builder** creates directory skeletons.

Documentation
=============

http://mrbob.readthedocs.org/

TODO
====

- [medium] refactor Python API
- [medium] gittip
- [medium] add +var+ folder in template_sample
- [medium] Check how one would implement multi-namespace python package with current mr.bob api
- [low] Ability to configure what to ignore when copying templates in bobconfig (as a hook?)
- [low] better format print questions output (keep order of questions -> use order information like for asking questions)
- [low] document we don't need local commands once answers are remembered (just issue another template on top of current)
- [low] ability to specify variables/defaults to questions from cli
- [maybe] ability to simulate rendering (dry-run)
- [maybe] ability to update/patch templates

Changelog
=========


1.0.1 (2024-02-29)
------------------

- Add support for Python 3.12
  [pbauer]


1.0.0 (2022-09-24)
------------------

- Support for Python 3.10, drop Python 2 support.
  [pbauer]


0.1.2 (2015-08-19)
------------------

- Add pre_ask and post_ask hooks.
  [Godefroid Chapelle]

- Upload tarball instead of zipfile to fix unicode errors
  during installation [Domen Kožar]


0.1.1 (2014-03-03)
------------------

- Claim Python 3.4 support
  [Domen Kožar]

- Fix encoding errors on Python 3 during installation
  [Domen Kožar]

- Use Jinja2 < 2.7 only for python 3.2
  [Domen Kožar]


0.1 (2014-03-02)
----------------

- move exceptions to bobexceptions
  [Jean-Philippe Camguilhem]

- Use jinja2 < 2.7, since 2.7+ doesn't support Python 3.2
  [Domen Kožar]

- Filename variable name substitution regex failed to compile on windows
  [Domen Kožar]

- Do not copy ``.DS_Store``.
  [Godefroid Chapelle]

- Configure patterns of files to ignore through
  ``ignored_files`` option of ``mr.bob`` section.
  [Godefroid Chapelle]

- Configure patterns of directories to ignore through
  ``ignored_directories`` option of ``mr.bob`` section.
  [Fotis Gimian]

- Added new post-question hook ``mrbob.hooks.to_integer``
  [Fotis Gimian]

- Added new post-question hook ``mrbob.hooks.to_decimal``
  [Fotis Gimian]

- Added new post-question hook ``mrbob.hooks.validate_choices``
  [Fotis Gimian]

- Added new post-question hook ``mrbob.hooks.validate_regex``
  [Fotis Gimian]

- Added new pre-question hook ``mrbob.hooks.set_current_datetime``
  [Fotis Gimian]

- Added new post-question hook ``mrbob.hooks.validate_datetime``
  [Fotis Gimian]


0.1a9 (2013-04-26)
------------------

- Regex to detect variable names when rendering file names was broken when
  directory path contains pluses.
  [Godefroid Chapelle]


0.1a8 (2013-03-11)
------------------

- Depend on six>=1.2.0
  [Domen Kožar]

- Moved all exceptions to `mrbob.exceptions` module
  [Domen Kožar]

- Fix loading of zip files
  [Domen Kožar]

- #28: Remote loading of config files
  [Nejc Zupan]

- #30: Keep newlines of rendered template
  [Domen Kožar]


0.1a7 (2013-01-23)
------------------

- Don't depend on argparse in python 2.7 and higher, since it's already
  in stdlib
  [Domen Kožar]

- #22: Prevent users from specifying target directory inside template dir
  [Domen Kožar]


0.1a6 (2013-01-02)
------------------

- Use ``StrictUndefined`` with jinja2 renderer so that any missing key is
  reported as an error
  [Domen Kožar]

- If a key in a namespace was missing while rendering, no error was raised
  [Domen Kožar]

- Added hook ``mrbob.hooks.show_message``
  [Domen Kožar]

- ``mrbob.validators.boolean`` renamed to ``mrbob.hooks.to_boolean``
  [Domen Kožar]

- Renamed ``validators.py`` to ``hooks.py``
  [Domen Kožar]

- Removed ``validators`` and ``action`` settings from ``[questions]`` as it is
  superseded by hooks
  [Domen Kožar]

- Added ``pre_ask_question`` and ``post_ask_question`` to ``[questions]`` section
  [Domen Kožar]

- Added ``pre_render``, ``post_render`` and  ``post_render_msg`` options
  [Domen Kožar]

- Added ``[defaults]`` section that will override template defaults. The only
  difference to ``[variables]`` is that variables provide default answers
  [Domen Kožar]

- Moved ``renderer`` parameter to ``[template]`` section
  [Domen Kožar]

- Added ``[template]`` section that is parsed only from ``.mrbob.ini`` inside a
  template directory.
  [Domen Kožar]

- Correctly evaluate boolean of ``quiet`` and ``verbose`` settings
  [Domen Kožar]

- Added ``non_interactive`` setting that will not prompt for any input and fail
  if any of required questions are not answered
  [Domen Kožar]

- Added ``remember_answers`` setting that will create ``.mrbob.ini`` file inside
  rendered directory with all the answers written to ``[variables]`` section
  [Domen Kožar]

- Include changelog in documentation
  [Domen Kožar]

- ``Question`` does no longer raise error if unknown parameter is passed from a
  config file. Instead those parameters are saved to ``question.extra`` that can
  be later inspected and validated. This is first step to have advanced question
  types such as question with a set of predefined answers
  [Domen Kožar]

- Rewrite all py.test stuff to nosetests, so we have unified testing now. This
  also fixes flake8 segfaults on pypy
  [Domen Kožar]


0.1a5 (2012-12-12)
------------------

- #26: Variables were not correctly parsed from config files
  [Domen Kožar]


0.1a4 (2012-12-11)
------------------

- Fix MANIFEST.in so that template examples are also included with distribution
  [Domen Kožar]

- Add -q/--quiet option to suppress output which isn't strictly necessary
  [Sasha Hart]

- Suppress the interactive-mode welcome banner if there are no questions to ask
  [Sasha Hart]

- Don't raise KeyError: 'questions_order' if [questions] is missing in an ini
  [Sasha Hart]


0.1a3 (2012-11-30)
------------------

- #13: Read user config from ~/.mrbob (as stated in docs and inline comments).
  [Andreas Kaiser]


0.1a2 (2012-11-29)
------------------

- #12: Fix unicode errors when using non-ASCII in questions or defaults
  [Domen Kožar]

- Ask questions in same order they were
  defined in template configuration file
  [Domen Kožar]


0.1a1 (2012-10-19)
------------------

- Initial release.
  [Domen Kožar, Tom Lazar]

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/collective/mr.bob.git",
    "name": "mr.bob",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "template skeleton",
    "author": "Domen Kozar, Tom Lazar",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/31/91/5eab5bc12631eed2a20006f014a91ca52b58971223428af0648cc6c0f189/mr.bob-1.0.1.tar.gz",
    "platform": null,
    "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\n1.0.1 (2024-02-29)\n------------------\n\n- Add support for Python 3.12\n  [pbauer]\n\n\n1.0.0 (2022-09-24)\n------------------\n\n- Support for Python 3.10, drop Python 2 support.\n  [pbauer]\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]\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Bob renders directory structure templates",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "https://github.com/collective/mr.bob.git"
    },
    "split_keywords": [
        "template",
        "skeleton"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1d9461cfa3edc5a14f3591025871091233f48ce2e3febd1f25d0d13cd8e4f7c6",
                "md5": "43a743ffc79ccaafaed1da31f5fa0683",
                "sha256": "49af102bf3a7f247ab3be6031878997b9d6a425ee11f4592a73d0b397b41d654"
            },
            "downloads": -1,
            "filename": "mr.bob-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "43a743ffc79ccaafaed1da31f5fa0683",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 37482,
            "upload_time": "2024-02-29T08:47:21",
            "upload_time_iso_8601": "2024-02-29T08:47:21.947197Z",
            "url": "https://files.pythonhosted.org/packages/1d/94/61cfa3edc5a14f3591025871091233f48ce2e3febd1f25d0d13cd8e4f7c6/mr.bob-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "31915eab5bc12631eed2a20006f014a91ca52b58971223428af0648cc6c0f189",
                "md5": "a8b14444642ccf4d3b5996f7f34f34fe",
                "sha256": "ab70b17c2b79e3321d0c2530a951395bb0f62f2b7c5ecb6fa00e04231b12d2d5"
            },
            "downloads": -1,
            "filename": "mr.bob-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a8b14444642ccf4d3b5996f7f34f34fe",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 65130,
            "upload_time": "2024-02-29T08:47:23",
            "upload_time_iso_8601": "2024-02-29T08:47:23.915458Z",
            "url": "https://files.pythonhosted.org/packages/31/91/5eab5bc12631eed2a20006f014a91ca52b58971223428af0648cc6c0f189/mr.bob-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-29 08:47:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "collective",
    "github_project": "mr.bob",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "lcname": "mr.bob"
}
        
Elapsed time: 0.19217s