{ "info": { "author": "Crutcher Dunnavant", "author_email": "crutcher@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Intended Audience :: System Administrators", "License :: OSI Approved :: Python Software Foundation License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: User Interfaces" ], "description": "Base class for writing simple interactive command loop environments.\n\nCommandLoop provides a base class for writing simple interactive user\nenvironments. It is designed around sub-classing, has a simple command\nparser, and is trivial to initialize.\n\nHere is a trivial little environment written using CommandLoop:\n\n import cmdloop\n\n class Hello(cmdloop.CommandLoop):\n PS1='hello>'\n\n @cmdloop.aliases('hello', 'hi', 'hola')\n @cmdloop.shorthelp('say hello')\n @cmdloop.usage('hello TARGET')\n def helloCmd(self, flags, args):\n '''\n Say hello to TARGET, which defaults to 'world'\n '''\n if flags or len(args) > 1:\n raise InvalidArguments\n if args:\n target = args[0]\n else:\n target = self.default_target\n print >> self.OUT, 'Hello %s!' % target\n\n @cmdloop.aliases('quit')\n def quitCmd(self, flags, args):\n '''\n Quit the environment.\n '''\n raise cmdloop.HaltLoop\n\n Hello().runLoop()\n\nHere's a more complex example:\n\n import cmdloop\n\n class HelloGoodbye(cmdloop.CommandLoop):\n PS1='hello>'\n\n def __init__(self, default_target = 'world'):\n self.default_target = default_target\n self.target_list = []\n\n @cmdloop.aliases('hello', 'hi', 'hola')\n @cmdloop.shorthelp('say hello')\n @cmdloop.usage('hello [TARGET]')\n def helloCmd(self, flags, args):\n '''\n Say hello to TARGET, which defaults to 'world'\n '''\n if flags or len(args) > 1:\n raise cmdloop.InvalidArguments\n if args:\n target = args[0]\n else:\n target = self.default_target\n if target not in self.target_list:\n self.target_list.append(target)\n print >> self.OUT, 'Hello %s!' % target\n\n @cmdloop.aliases('goodbye')\n @cmdloop.shorthelp('say goodbye')\n @cmdloop.usage('goodbye TARGET')\n def goodbyeCmd(self, flags, args):\n '''\n Say goodbye to TARGET.\n '''\n if flags or len(args) != 1:\n raise cmdloop.InvalidArguments\n target = args[0]\n if target in self.target_list:\n print >> self.OUT, 'Goodbye %s!' % target\n self.target_list.remove(target)\n else:\n print >> self.OUT, \"I haven't said hello to %s.\" % target\n\n @cmdloop.aliases('quit')\n def quitCmd(self, flags, args):\n '''\n Quit the environment.\n '''\n raise cmdloop.HaltLoop\n\n def _onLoopExit(self):\n if len(self.target_list):\n self.pushCommands(('quit',))\n for target in self.target_list:\n self.pushCommands(('goodbye', target))\n else:\n raise cmdloop.HaltLoop\n\n HelloGoodbye().runLoop()", "description_content_type": null, "docs_url": null, "download_url": "http://py-cmdloop.googlecode.com/svn/trunk/cmdloop.py", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://code.google.com/p/py-cmdloop/", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "CmdLoop", "package_url": "https://pypi.org/project/CmdLoop/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/CmdLoop/", "project_urls": { "Download": "http://py-cmdloop.googlecode.com/svn/trunk/cmdloop.py", "Homepage": "http://code.google.com/p/py-cmdloop/" }, "release_url": "https://pypi.org/project/CmdLoop/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Command Loop Implementation Environment", "version": "0.1.2" }, "last_serial": 13584, "releases": { "0.1.0": [], "0.1.1": [], "0.1.2": [] }, "urls": [] }