{ "info": { "author": "Jeff Rimko", "author_email": "jeffrimko@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "A no-frills build script framework.\n\nIntroduction\n============\n\nThis project provides a Python 3.3+ library/utility for creating build\nscripts. The main features of Ubuild are:\n\n- Streamlines the discoverability of build steps/tasks.\n\n- Build step/task details are captured in Python functions.\n\n- Provides a CLI menu to show available build steps/tasks.\n\n- Provides a CLI utility ``ubuild`` to locate and run build scripts.\n\nStatus\n======\n\nCurrently, this project is in the **development release** stage. While\nthis project is suitable for use, please note that there may be\nincompatibilities in new releases.\n\nRelease notes are maintained in the project\n`changelog `__.\n\nRequirements\n============\n\nUbuild should run on any Python 3.3+ interpreter with some additional\nthird-party libraries (installed automatically).\n\nInstallation\n============\n\nUbuild is `available on PyPI\nhere `__ and can be installed with\npip using the following command: ``pip install ubuild``\n\nAdditionally, Ubuild can be installed from source by running:\n``python setup.py install``\n\nUsage\n=====\n\nCreate a ``_Build.py`` file. Import ``ubuild`` and use the ``menu``\ndecorator to add functions to the build menu. Use the ``main`` function\nto show the menu. For example:\n\n.. code:: python\n\n from ubuild import menu, main\n\n @menu\n def build():\n ...\n\n @menu\n def clean():\n ...\n\n main()\n\nRunning this script will show the following menu:\n\n::\n\n -- MENU --\n (b) Build\n (c) Clean\n (q) Quit\n [!] Menu loops until quit.\n [?] Enter menu selection:\n\nBy default, the menu entry names are based off the function name. For\nexample:\n\n- ``something()`` = ``(s) Something``\n\n- ``do_something()`` = ``(ds) Do Something``\n\n- ``do_something_else()`` = ``(dse) Do Something Else``\n\nHowever the names will attempt to use the shortest available name, e.g.\n``(ds) Do Something`` will be ``(d) Do Something`` if there is no\nexisting ``(d)`` entry.\n\nBecause Ubuild is meant to be lightweight and capture build step\ndetails, often it might be useful to use\n`Auxly `__ to call other utilities.\nFor example:\n\n.. code:: python\n\n @menu\n def build():\n return auxly.shell.call(\"make\")\n\nNote the ``return`` on the call. This allows the exit code from the\n``make`` call to propagate up through to Ubuild, i.e. if the menu is\nquit after the call, the exit code for Ubuild will be the ``make`` exit\ncode.\n\nThe ``ubuild`` command line utility can be used in two different ways:\n\n1. Calling ``ubuild`` without arguments in a directory with\n ``_Build.py`` or any of the child directories will show the Ubuild\n menu.\n\n2. Calling ``ubuild`` with arguments in a directory with ``_Build.py``\n or any of the child directories will run that menu entry, e.g.\n ``ubuild b``.\n\nA few additional notes about the ``menu`` decorator:\n\n.. code:: python\n\n @menu(\"x\") # (x) Build\n def build():\n ...\n\n @menu(name=\"x\") # (x) Build\n def build():\n ...\n\n @menu(desc=\"Something\") # (s) Something\n def build():\n ...\n\n @menu(\"x\", desc=\"Something\") # (x) Something\n def build():\n ...\n\n @menu(desc=\"Flag Set\", args=[True]) # (fs) Flag Set\n @menu(desc=\"Flag Clear\", args=[False]) # (fc) Flag Clear\n def build(flag):\n ...\n\n @menu(desc=\"Flag Clear\", kwargs={'flag':False}) # (fc) Flag Clear\n def build(flag=True):\n ...\n\nHere are some real-world examples of Ubuild in action:\n\n- `Doctrine2 `__\n\n- `QuickWin `__\n\nAlternative Script Names\n------------------------\n\nThe default Ubuild script name is ``_Build.py`` but occasionally it\nmight make sense to have an alternative name. The script must match the\nfollowing regex:\n\n::\n\n _[A-Z][A-z0-9_-]*\\.py$\n\nThe script must also contain the following line exactly without any\nchanges or trailing whitespace:\n\n::\n\n # -*- ubuild -*-\n\nSimilar\n=======\n\nThe following projects are similar and may be worth checking out:\n\n- `Invoke `__\n\nFAQ\n---\n\nWhy ``_Build.py`` for script names?\n\n- This project follows the naming guidelines provided by `the Unified\n Style Guide for naming user\n scripts `__.\n The name is meant to distinguish this script as being intended for\n direct user interaction. For example, a name like ``build.py`` is not\n clear whether it is mean for a user or if it is called by something\n else.\n\nIs Ubuild intended to replace other build tools?\n\n- No, not at all! In fact, Ubuild is intended to supplement other build\n tools by providing a simple abstraction layer for performing build\n tasks. For example, a project may start using ``make`` to organize\n builds but later move to ``scons``. By using Ubuild to capture the\n build step details, a user need never be aware of the change. They\n just see the build entry in the Ubuild menu.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jeffrimko/Ubuild", "keywords": "cli menu", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ubuild", "package_url": "https://pypi.org/project/ubuild/", "platform": "", "project_url": "https://pypi.org/project/ubuild/", "project_urls": { "Homepage": "https://github.com/jeffrimko/Ubuild" }, "release_url": "https://pypi.org/project/ubuild/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "A no-frills build script framework.", "version": "0.2.0" }, "last_serial": 4531904, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "470acacdd9e0ebc7f803992f7cf55e2e", "sha256": "9f0c4792456cc9e2c856fe15e961be839151658ef230ff5688d8fc739c009516" }, "downloads": -1, "filename": "ubuild-0.1.0.tar.gz", "has_sig": false, "md5_digest": "470acacdd9e0ebc7f803992f7cf55e2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2861, "upload_time": "2018-08-09T02:12:07", "url": "https://files.pythonhosted.org/packages/78/2e/5ce8d1343042e2be2b3e96b999abf7a48c533e0b95b9fd470973213f4fe2/ubuild-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c1341607f0c8ed07a27903725eca7388", "sha256": "218fc7470884321e4614a87da72c7adbd06f0ec3956d9bb0972a6adf033bb2ba" }, "downloads": -1, "filename": "ubuild-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c1341607f0c8ed07a27903725eca7388", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4125, "upload_time": "2018-08-09T22:29:43", "url": "https://files.pythonhosted.org/packages/9f/e8/6ffec533857f9288cb85c54351947a04014c82660e92ef585a2c6e8a5f8b/ubuild-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "0ae1ad74a7e505b977060536763a01b6", "sha256": "02ff8c6e03c6ad610d83e0d05d1057f783382b847edd4df8460b2cef2340c968" }, "downloads": -1, "filename": "ubuild-0.1.2.tar.gz", "has_sig": false, "md5_digest": "0ae1ad74a7e505b977060536763a01b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4664, "upload_time": "2018-08-10T01:31:20", "url": "https://files.pythonhosted.org/packages/fb/df/f06453f1af7b1956e136330be9e0868289b0f5513a1b604a312daafe3a00/ubuild-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "af1a3a2dae54bb2fd594f611e2f4d86c", "sha256": "be80b4098ca5a103ebfe5f0c7057d7efb1a51f38f7dc60cf96f6a2f07af2b7ef" }, "downloads": -1, "filename": "ubuild-0.1.3.tar.gz", "has_sig": false, "md5_digest": "af1a3a2dae54bb2fd594f611e2f4d86c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4646, "upload_time": "2018-08-13T22:34:40", "url": "https://files.pythonhosted.org/packages/da/20/7c8447bc1b1425dd385691019a90b90861baff71111a341aea9c2005a693/ubuild-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "d887fbd556388fac459bfe609f0c5fba", "sha256": "de805df52b848851411196d7e5573266e8552ccb273cfd9c0ba78fe7a0f69511" }, "downloads": -1, "filename": "ubuild-0.1.4.tar.gz", "has_sig": false, "md5_digest": "d887fbd556388fac459bfe609f0c5fba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4655, "upload_time": "2018-08-14T00:45:23", "url": "https://files.pythonhosted.org/packages/05/2a/f2e98bbe2cac6e65065ad2cecf3e6e46e3a52bd145dd90373c371bd8ffff/ubuild-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "925522e0f0614c50326d5e3d7a6ee29b", "sha256": "62b47f3a4441f2c44fc6a71ce877eb144a75279b807c654414af289db3992b8c" }, "downloads": -1, "filename": "ubuild-0.1.5.tar.gz", "has_sig": false, "md5_digest": "925522e0f0614c50326d5e3d7a6ee29b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4638, "upload_time": "2018-08-14T00:59:29", "url": "https://files.pythonhosted.org/packages/6f/6d/8d7a06f2768cb68f21cd23183df5adbb6bbf05e392b71cb69fd9c7431068/ubuild-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "b1cdbd1d7e7fe7e729ce2a3992c34019", "sha256": "eb07999e28ee012c79b7b807d8181358a5454382a8d920790e3e250aee957563" }, "downloads": -1, "filename": "ubuild-0.1.6.tar.gz", "has_sig": false, "md5_digest": "b1cdbd1d7e7fe7e729ce2a3992c34019", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4969, "upload_time": "2018-08-22T03:36:16", "url": "https://files.pythonhosted.org/packages/f6/95/5e751b6fac59e7477cff5797ec8d6d30d676e4a169583410877cdf098dfa/ubuild-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "478e433e32116e223df9f264b0511a8b", "sha256": "83a18a39eee1f9b399b736045d2ed460140343355f188c76e6e92787c2233716" }, "downloads": -1, "filename": "ubuild-0.2.0.tar.gz", "has_sig": false, "md5_digest": "478e433e32116e223df9f264b0511a8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5385, "upload_time": "2018-11-27T00:24:57", "url": "https://files.pythonhosted.org/packages/ac/bc/e5daa25a8435fadf2d63b34d89589a3badd0602116959747474cdc955612/ubuild-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "478e433e32116e223df9f264b0511a8b", "sha256": "83a18a39eee1f9b399b736045d2ed460140343355f188c76e6e92787c2233716" }, "downloads": -1, "filename": "ubuild-0.2.0.tar.gz", "has_sig": false, "md5_digest": "478e433e32116e223df9f264b0511a8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5385, "upload_time": "2018-11-27T00:24:57", "url": "https://files.pythonhosted.org/packages/ac/bc/e5daa25a8435fadf2d63b34d89589a3badd0602116959747474cdc955612/ubuild-0.2.0.tar.gz" } ] }