{ "info": { "author": "Kumar McMillan", "author_email": "kumar.mcmillan@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "===========\ndisthelper\n===========\n\n.. contents:: :local:\n\nIntroduction\n============\n\ndisthelper is a command line tool that helps you manage a Python distribution. You may want to create Python scripts to automate common maintenance tasks for your project. But where do you put them? How about the standard `setup.py framework`_? You can think of setup.py as a \"make\" tool for Python, although it's more like how `Ian Bicking describes it`_ and less like an `actual make tool`_ with targets and dependencies. For example, if you wrote a script to build your project docs and another to upload them, you could run these commands from your setup.py file::\n\n python setup.py build_docs upload_docs\n\nWhat it does\n============\n\ndisthelper just automates the use of distutils_ so you don't have to think about how to `create a custom setup.py command`_. It sets up the module / submodule structure, edits your setup.cfg, and adds new command modules as you request them. disthelper doesn't do anything you couldn't do by hand.\n\n.. _create a custom setup.py command: http://docs.python.org/dist/node32.html\n.. _actual make tool: http://www.gnu.org/software/make/manual/make.html#Overview\n.. _Ian Bicking describes it: http://blog.ianbicking.org/pythons-makefile.html\n.. _setup.py framework: http://docs.python.org/dist/setup-script.html\n.. _creating custom distutils commands: http://peak.telecommunity.com/DevCenter/setuptools#adding-commands\n.. _distutils: http://docs.python.org/dist/dist.html\n.. _setuptools: http://pypi.python.org/pypi/setuptools\n\nInstall\n=======\n\nYou can easy_install_ it::\n\n easy_install disthelper\n\nOr grab the source_\n\n.. _source: http://disthelper.googlecode.com/svn/trunk/#egg=disthelper-dev\n.. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall\n\nCreate a command\n================\n\ndisthelper is implemented as a `Paste`_ extension. Let's say you want to create this ``build_docs`` command I mentioned. cd into your project directory and type::\n\n $ paster distcmd build_docs\n | Selected and implied templates:\n | disthelper#distcmd A disthelper-based package for setup.py commands\n | \n | ** creating ./setup.py (you'll probably need to edit this)\n | Variables:\n | command: build_docs\n | distcmds_mod: distcmds\n | package: foo\n | Creating template distcmd\n | Recursing into +package+\n | Creating ./foo/\n | Recursing into +distcmds_mod+\n | Creating ./foo/distcmds/\n | Copying +command+.py_tmpl to ./foo/distcmds/build_docs.py\n | Copying __init__.py to ./foo/distcmds/__init__.py\n | Copying __init__.py to ./foo/__init__.py\n | patching ./setup.cfg ...\n | \n | ./foo/distcmds/build_docs.py\n | ...is ready to edit\n | run as:\n | python setup.py build_docs\n | \n \nIf you don't already have a Python package it will prompt you for its name. Assuming you named your package ``foo``, you should see the following layout::\n \n $ tree\n | .\n | |-- foo\n | | |-- __init__.py\n | | `-- distcmds\n | | |-- __init__.py\n | | `-- build_docs.py\n | |-- setup.cfg\n | `-- setup.py\n | \n | 2 directories, 5 files\n\nYour command is ready to run::\n\n $ python setup.py build_docs --help\n | Global options:\n | --verbose (-v) run verbosely (default)\n | --quiet (-q) run quietly (turns verbosity off)\n | --dry-run (-n) don't actually do anything\n | --help (-h) show detailed help message\n | \n | Options for 'build_docs' command:\n | --long-option (-l) \n | --other-long-option (-o) \n | \n | usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]\n | or: setup.py --help [cmd1 cmd2 ...]\n | or: setup.py --help-commands\n | or: setup.py cmd --help\n | \n\nHowever, it doesn't do anything useful yet so get to it!\n\n.. _Paste: http://pythonpaste.org/\n\nMy command disappeared, what do I do?\n=====================================\n\nUnfortunately, distutils will completely ignore any ImportError in your command so one day your command might simply disappear. To check that your command is set up correctly, run::\n\n $ paster distcmd build_docs --check\n | Selected and implied templates:\n | disthelper#distcmd A disthelper-based package for setup.py commands\n | \n | Variables:\n | command: build_docs\n | distcmds_mod: distcmds\n | package: foo\n | attempting to import foo.distcmds.build_docs\n | OK\n | checking vars in ./setup.cfg\n | \n | build_docs OK\n\n.. The distutils Command class\n ===========================\n \nOther make like tools\n=====================\n\ndisthelper isn't designed for complex builds, dependency management, etc, it just helps you create maintenance scripts. You may want to check out...\n\n- Vellum_\n\n - Vellum is a simple build tool like make but written in Python using a simple yet flexible YAML based format.\n\n- SCONS_\n \n - A software construction tool\n\n- `zc.buildout`_\n\n - System for managing development buildouts\n\n.. _Vellum: http://www.zedshaw.com/projects/vellum/index.html\n.. _SCONS: http://www.scons.org/\n.. _zc.buildout: http://pypi.python.org/pypi/zc.buildout/\n\nChangelog\n=========\n\n- 0.9.2\n\n - fixed another bug in generating setup.py files\n - added shelldoc support for functional tests (README examples)\n\n- 0.9.1\n\n - fixed handling of setup.py file when one doesn't already exist\n \n- 0.9\n \n - first release, basic paster command working", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://code.google.com/p/disthelper/", "keywords": null, "license": "New BSD License", "maintainer": null, "maintainer_email": null, "name": "disthelper", "package_url": "https://pypi.org/project/disthelper/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/disthelper/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://code.google.com/p/disthelper/" }, "release_url": "https://pypi.org/project/disthelper/0.9.2/", "requires_dist": null, "requires_python": null, "summary": "helps you manage a Python distribution", "version": "0.9.2" }, "last_serial": 51435, "releases": { "0.9": [ { "comment_text": "", "digests": { "md5": "729d73565010c3f30dbcdc5883ef70c7", "sha256": "6a17843e93ce450693c3daae16ef01d8c049b67e01e2eb52c1f6393f367129e3" }, "downloads": -1, "filename": "disthelper-0.9.tar.gz", "has_sig": true, "md5_digest": "729d73565010c3f30dbcdc5883ef70c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9734, "upload_time": "2008-04-04T04:36:55", "url": "https://files.pythonhosted.org/packages/f8/d6/80fbb101b92fd82233df0c728ba14f572dffffc4e38f6960a0f1fe97b6b6/disthelper-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "c3d792371439048492db7386b2947b5b", "sha256": "50c11eea3a1c0cb4f3b1b044120ca9488458ec3f7ce6c85064ed9982246f553f" }, "downloads": -1, "filename": "disthelper-0.9.1.tar.gz", "has_sig": true, "md5_digest": "c3d792371439048492db7386b2947b5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10165, "upload_time": "2008-04-04T14:24:53", "url": "https://files.pythonhosted.org/packages/8e/dd/5f680c2eb3c4f4a2c5391fe9610c177500dc2839b5b3dacd3e96b98e0293/disthelper-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "ef3d219a1804e6675fd54e6d27ac4f06", "sha256": "8a14230c2925d7025bca990195bdabdd34cfacba1630265a2728339bb29c64bd" }, "downloads": -1, "filename": "disthelper-0.9.2.tar.gz", "has_sig": true, "md5_digest": "ef3d219a1804e6675fd54e6d27ac4f06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11213, "upload_time": "2008-04-05T05:25:53", "url": "https://files.pythonhosted.org/packages/2e/51/b9b13f2281979f497fe0da01cb7443f13de89a7a0318f13ab9bdf5aaaac8/disthelper-0.9.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ef3d219a1804e6675fd54e6d27ac4f06", "sha256": "8a14230c2925d7025bca990195bdabdd34cfacba1630265a2728339bb29c64bd" }, "downloads": -1, "filename": "disthelper-0.9.2.tar.gz", "has_sig": true, "md5_digest": "ef3d219a1804e6675fd54e6d27ac4f06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11213, "upload_time": "2008-04-05T05:25:53", "url": "https://files.pythonhosted.org/packages/2e/51/b9b13f2281979f497fe0da01cb7443f13de89a7a0318f13ab9bdf5aaaac8/disthelper-0.9.2.tar.gz" } ] }