{ "info": { "author": "Maris Fogels", "author_email": "mfogels@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 7 - Inactive", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Topic :: Software Development :: Build Tools" ], "description": "mkcode\r\n======\r\n\r\nmkcode is a system for performing make-style development tasks. It provides execution of dependencies, a console script for calling tasks, and automatic discovery of the distutils commands found in setup.py. It does not provide tools for compiled languages or complex nested builds (look to SCons or zc.buildout for those).\r\n\r\nTasks are defined as plain python functions, decorated with a special ``@task`` decorator. The name of the function becomes the name of the task, and that task may be called from the command-line via the ``mk`` script.\r\n\r\nA file in the project's root directory named ``mkfile.py`` contains all of the task definitions. The ``mk`` script, when invoked, imports the tasks.\r\n\r\nHere is an example ``mkfile.py``::\r\n\r\n from mkcode import *\r\n\r\n @task\r\n def clean():\r\n \"\"\" Clean out all .pyc files in sub-directories \"\"\"\r\n # This is *great* for getting rid of those stale .pyc files\r\n # that cause mysterious test failures.\r\n for pyc in path().relpath().walkfiles('*pyc'):\r\n print 'Removing:', pyc\r\n pyc.remove()\r\n \r\n setup = namespace('setup') # the distutils commands from 'setup.py'\r\n\r\n # re-define the 'test' target\r\n task('test', [clean, setup.test])\r\n\r\nHere is how you run our new ``test`` target::\r\n\r\n $ mk test\r\n\r\nWe can still run the original setuptools ``test`` target using the ``setup`` namepace::\r\n\r\n $ mk setup.test\r\n\r\nPlease see ``mkfile.py`` in the distribution's base directory for more task examples.\r\n\r\nNamespaces\r\n----------\r\n\r\nTasks may belong to namespaces. Namespace tasks are called by joining the namespace and task name with a dot, as if you were referencing a Python object attribute::\r\n\r\n # call the 'bar' task in the 'foo' namespace\r\n $ mk foo.bar\r\n\r\nPlease see `Jeff Shell's post `_ for examples of how namespaces are defined and populated.\r\n\r\nSetuptools Integration\r\n----------------------\r\n\r\nAll of the commands exported by ``setuptools`` are available in the ``setup`` namespace. However, setuptools' commands may also be called from the root namespace - invoking them does not require the command to be prefixed with ``setup.`` Therefore the following three commands are equivalent::\r\n\r\n $ mk develop\r\n $ mk setup.develop\r\n $ python setup.py develop\r\n\r\nOther Notes\r\n-----------\r\n\r\nExtra command-line parameters are passed through to their targets. The following two commands are equivalent::\r\n\r\n $ mk rotate --help\r\n $ python setup.py rotate --help\r\n\r\nThe ``mk`` script takes a number of command-line switches, notably ``-T``, which lists all of the registered tasks, ``-n``, which runs a task and its dependencies without executing them, and ``-f``, which allows you to specify an alternative mkfile.\r\n\r\n\r\nKnown Issues\r\n------------\r\n\r\nThe program fails on vanilla ``setup.py`` files that define their own commands. The Python Imaging Library, PIL, is one example of this.\r\n\r\nThe ``mk develop`` command can choke upon first invocation when there is a new package version. In the meantime one can fall back to the setuptools method.\r\n\r\nAcknowledgments\r\n---------------\r\n\r\nThis program was heavily inspired by `Jeff Shell's in-house build system `_. The example targets Jeff provided should work in this system with little modification.\r\n\r\nPath support is greatly enhanced by Jason Orendorff's excellent `path `_ module. I highly recommend it for **all** of your Python work.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "mkcode", "package_url": "https://pypi.org/project/mkcode/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/mkcode/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/mkcode/0.2/", "requires_dist": null, "requires_python": null, "summary": "A make-style Python build tool", "version": "0.2" }, "last_serial": 794851, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "25e01184ea3a2c72a0c6f7f0daadf07c", "sha256": "52c09808ca8afdec12d7a4d0b8e01b1a0dbaffa444fb87d1d47dbc18628c5273" }, "downloads": -1, "filename": "mkcode-0.1-py2.4.egg", "has_sig": false, "md5_digest": "25e01184ea3a2c72a0c6f7f0daadf07c", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 42860, "upload_time": "2007-06-11T03:15:54", "url": "https://files.pythonhosted.org/packages/2d/98/8db87bf522327f979c090709daf742b8f320325466ab92de81d8ddcb55e5/mkcode-0.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "3e2deb389482f1472ac53520cd464801", "sha256": "3bce5fe7a9a7f8c512ca0b2fd2b99be994aca3ce9127309735092b9bb5281c95" }, "downloads": -1, "filename": "mkcode-0.1.tar.gz", "has_sig": false, "md5_digest": "3e2deb389482f1472ac53520cd464801", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18198, "upload_time": "2007-06-11T03:15:59", "url": "https://files.pythonhosted.org/packages/93/84/a523ca327500daffe225a71e2a6badc8600425596578cc082a2da409d190/mkcode-0.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "b1b4a9badf3652f618ba65f9870a6b05", "sha256": "d40f0073b23963ef61cf89825cccdc6fdd3287043d41c175d30d60a98f54b156" }, "downloads": -1, "filename": "mkcode-0.1.zip", "has_sig": false, "md5_digest": "b1b4a9badf3652f618ba65f9870a6b05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23786, "upload_time": "2007-06-11T03:16:09", "url": "https://files.pythonhosted.org/packages/45/70/51802ee763d40b0c80c935b36f9ba0b885181e62742105f866270879a51b/mkcode-0.1.zip" } ], "0.1dev": [ { "comment_text": "", "digests": { "md5": "d056646105641344054c1d1d4b8e628d", "sha256": "fe0d7f7cb11d9568e4877c45e87665edb3c713d28f38fef8c04814f7b5d20155" }, "downloads": -1, "filename": "mkcode-0.1dev-py2.4.egg", "has_sig": false, "md5_digest": "d056646105641344054c1d1d4b8e628d", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 42767, "upload_time": "2007-06-11T02:50:26", "url": "https://files.pythonhosted.org/packages/7e/bc/d3e00c56897afbaab237af15f42bd510edac76e3060f279c4860861aa8c4/mkcode-0.1dev-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "49e528c1df1f042500f32d25794c280e", "sha256": "c54da1084c50a46558f227c66c18ffa1ea774c3fd0c6ef48e8306368aeb8d220" }, "downloads": -1, "filename": "mkcode-0.1dev.tar.gz", "has_sig": false, "md5_digest": "49e528c1df1f042500f32d25794c280e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18025, "upload_time": "2007-06-11T02:50:45", "url": "https://files.pythonhosted.org/packages/ee/6d/43f33469c6fc922fa582e82ceb457a8aa8636b4da731fff3a74b9615d89d/mkcode-0.1dev.tar.gz" }, { "comment_text": "", "digests": { "md5": "64dc8c5d291eaaf3a3307b333019d70b", "sha256": "59ed12dad5b374a1948cdaa9bf61b86ca78290603ba1bac8547e921c33580a5a" }, "downloads": -1, "filename": "mkcode-0.1dev.zip", "has_sig": false, "md5_digest": "64dc8c5d291eaaf3a3307b333019d70b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23636, "upload_time": "2007-06-11T02:50:46", "url": "https://files.pythonhosted.org/packages/d4/71/ac6b6fb5144aad117c50270134fe5aceaca6832202abeef55d972f8135bd/mkcode-0.1dev.zip" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "50cf6d398506ccfd54a56dc7709f36c4", "sha256": "0c152fe55fc7a3c8108ca75b1c1b0b90e821ffee9c2160759cbc18fd4b8361cf" }, "downloads": -1, "filename": "mkcode-0.2-py2.4.egg", "has_sig": false, "md5_digest": "50cf6d398506ccfd54a56dc7709f36c4", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 42909, "upload_time": "2007-06-12T03:55:41", "url": "https://files.pythonhosted.org/packages/6c/e3/1de3bdd20b75e41c79e21250083b30b1920d3a72c79a1477cc7edb3c5d82/mkcode-0.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "91131ad1e15d1ac193b15e5649c145d8", "sha256": "f5ec9b50557468606d92fcf7af69ec476630c102211fe6186216f46ce41adb96" }, "downloads": -1, "filename": "mkcode-0.2.tar.gz", "has_sig": false, "md5_digest": "91131ad1e15d1ac193b15e5649c145d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20482, "upload_time": "2007-06-12T03:55:42", "url": "https://files.pythonhosted.org/packages/1e/e3/089bd88cecabca1140ac321393131ab7f904747e003dca671575003db48a/mkcode-0.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "1aec31921d856b8c08706dcb96e8843c", "sha256": "18cd1ac5bdeee0a8c668bddeacdb2000c273e0fc2af0c67bc5f14be1d7b4c9b5" }, "downloads": -1, "filename": "mkcode-0.2.zip", "has_sig": false, "md5_digest": "1aec31921d856b8c08706dcb96e8843c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27085, "upload_time": "2007-06-12T03:55:43", "url": "https://files.pythonhosted.org/packages/68/39/2771faf27de89ffc3edffef727795d355bfaabbe59afadf3f02e50cf25c2/mkcode-0.2.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "50cf6d398506ccfd54a56dc7709f36c4", "sha256": "0c152fe55fc7a3c8108ca75b1c1b0b90e821ffee9c2160759cbc18fd4b8361cf" }, "downloads": -1, "filename": "mkcode-0.2-py2.4.egg", "has_sig": false, "md5_digest": "50cf6d398506ccfd54a56dc7709f36c4", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 42909, "upload_time": "2007-06-12T03:55:41", "url": "https://files.pythonhosted.org/packages/6c/e3/1de3bdd20b75e41c79e21250083b30b1920d3a72c79a1477cc7edb3c5d82/mkcode-0.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "91131ad1e15d1ac193b15e5649c145d8", "sha256": "f5ec9b50557468606d92fcf7af69ec476630c102211fe6186216f46ce41adb96" }, "downloads": -1, "filename": "mkcode-0.2.tar.gz", "has_sig": false, "md5_digest": "91131ad1e15d1ac193b15e5649c145d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20482, "upload_time": "2007-06-12T03:55:42", "url": "https://files.pythonhosted.org/packages/1e/e3/089bd88cecabca1140ac321393131ab7f904747e003dca671575003db48a/mkcode-0.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "1aec31921d856b8c08706dcb96e8843c", "sha256": "18cd1ac5bdeee0a8c668bddeacdb2000c273e0fc2af0c67bc5f14be1d7b4c9b5" }, "downloads": -1, "filename": "mkcode-0.2.zip", "has_sig": false, "md5_digest": "1aec31921d856b8c08706dcb96e8843c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27085, "upload_time": "2007-06-12T03:55:43", "url": "https://files.pythonhosted.org/packages/68/39/2771faf27de89ffc3edffef727795d355bfaabbe59afadf3f02e50cf25c2/mkcode-0.2.zip" } ] }