{ "info": { "author": "Yauhen Yakimovich", "author_email": "eugeny.yakimovitch@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "tree_output\n===========\n\n[![Build Status](https://travis-ci.org/ewiger/tree_output.svg?branch=master)](https://travis-ci.org/ewiger/tree_output)\n\n\nPython library to simplify building of tree output with command-line interfaces.\n\nSupported output format options are:\n\n- json\n- ascii\n- ansi\n- null\n\nexamples\n--------\n\n\n```python\ntree_output = HierarchicalOutput.factory('ansi')\nimport colorama\n\ntree_output.emit('foo')\ntree_output.add_level()\ntree_output.emit('foO')\ntree_output.add_level()\ntree_output.emit('bar')\n\ntree_output.add_level()\nfor num in range(10):\n tree_output.emit(num)\ntree_output.emit(10, closed=True)\ntree_output.remove_level()\n\ntree_output.emit('baz', closed=True)\ntree_output.emit('foo2')\n\n\n```\n\nthis will draw a colorful ANSI output like this\n\n```\n.\n\u251c\u2500\u2500 foo\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 foO\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 bar\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 1\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 2\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 3\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 4\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 5\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 6\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 7\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 8\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 9\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 10\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 baz\n\u251c\u2500\u2500 foo2\n\n```\n\nlogging\n-------\n\nAnother option is to integrate with logging and pass hierarchical meta instructions via optional **extra** argument, e.g.\n\n```python\nhoutput = HierarchicalOutput.factory(format='json')\n#houtput = HierarchicalOutput.factory(format='ansi')\nhandler = HierarchicalOutputHandler(houtput=houtput)\nlogger = logging.getLogger('foo')\nlogging.root.addHandler(handler)\n# Emission.\nlogger.info('foo')\nlogger.info('bar', extra={'add_hlevel': True})\nlogger.info('foo2')\nlogger.info('bar', extra={'add_hlevel': True})\nlogger.info('foo2')\nlogger.info('Numbers', extra={'add_hlevel': True})\nfor num in range(10):\n logger.warn(num)\nlogger.warn('end of numbers', extra={'hclosed': True})\nlogger.debug('level up', extra={'remove_hclosed': True})\n```\n\nproduces\n\n```json\n[\"foo\", [\n\t\"bar\", \"foo2\", [\"\n\t\tbar\", \"foo2\", [\n\t\t\t\"Numbers\", \n\t\t\t\"0\", \n \"1\", \n \"2\", \n \"3\", \n \"4\", \n \"5\", \n \"6\", \n \"7\", \n \"8\", \n \"9\", \n \"end of numbers\"\n ], \n \"level up\"]\n ]\n]\n```\n\ntests\n-----\n\nFor tests we use *nose*, i.e. usage would be:\n\n```bash\ncd tests && nosetests\n```", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/ewiger/tree_output/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ewiger/tree_output/", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "tree_output", "package_url": "https://pypi.org/project/tree_output/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/tree_output/", "project_urls": { "Download": "https://github.com/ewiger/tree_output/tarball/master", "Homepage": "https://github.com/ewiger/tree_output/" }, "release_url": "https://pypi.org/project/tree_output/0.1.4/", "requires_dist": null, "requires_python": null, "summary": "Python library to simplify building of tree output with command-line interfaces.", "version": "0.1.4" }, "last_serial": 1478472, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "442bd449544beb097bb573b6f8c5ce02", "sha256": "71e351e7adfb5ab2d352debd2689e57dd422126a56b3d367a0bb9be85cb5460d" }, "downloads": -1, "filename": "tree_output-0.1.1.tar.gz", "has_sig": false, "md5_digest": "442bd449544beb097bb573b6f8c5ce02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3082, "upload_time": "2014-09-09T15:14:51", "url": "https://files.pythonhosted.org/packages/2e/38/c814fa85dcd649e105068c38b88ebb397ed93efb80bd1314c4c7784e7ff7/tree_output-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "07bbf85e75f9e14673608193d2e6ac1b", "sha256": "c1d638aacd491035c238fa9ba83c3eb8ba9eb2cd1bfd977467ebbe47261f40b8" }, "downloads": -1, "filename": "tree_output-0.1.2.tar.gz", "has_sig": false, "md5_digest": "07bbf85e75f9e14673608193d2e6ac1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4208, "upload_time": "2014-09-10T12:02:31", "url": "https://files.pythonhosted.org/packages/ea/53/7583eaa44fdd24b78eb5fd3e1da80d5863c5edee575dc87f3c0194a1342b/tree_output-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "adf076da52a14907a6cae6e6ee027c35", "sha256": "682e7e2d889f28e96e73ba59fb08acbfc2226d88c50c8dba35488cc37a08dab1" }, "downloads": -1, "filename": "tree_output-0.1.3.tar.gz", "has_sig": false, "md5_digest": "adf076da52a14907a6cae6e6ee027c35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4382, "upload_time": "2015-03-26T11:27:23", "url": "https://files.pythonhosted.org/packages/ad/d4/368bbeb85720735708bd2cb4ba3b01644d4263897f4aa0463af7cac45cc0/tree_output-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "825cbf00e9a7a0b7d02a44e85dfb21c7", "sha256": "af7e43811a1f3b577ec43adc75720a5fb9bad05b76b97eecf583cc4a51aba0e7" }, "downloads": -1, "filename": "tree_output-0.1.4.tar.gz", "has_sig": false, "md5_digest": "825cbf00e9a7a0b7d02a44e85dfb21c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4373, "upload_time": "2015-03-26T11:32:32", "url": "https://files.pythonhosted.org/packages/af/5f/9fe4327b99796f12e5a418e6698b301a1eae8c2c28dbeff41827419ef5ec/tree_output-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "825cbf00e9a7a0b7d02a44e85dfb21c7", "sha256": "af7e43811a1f3b577ec43adc75720a5fb9bad05b76b97eecf583cc4a51aba0e7" }, "downloads": -1, "filename": "tree_output-0.1.4.tar.gz", "has_sig": false, "md5_digest": "825cbf00e9a7a0b7d02a44e85dfb21c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4373, "upload_time": "2015-03-26T11:32:32", "url": "https://files.pythonhosted.org/packages/af/5f/9fe4327b99796f12e5a418e6698b301a1eae8c2c28dbeff41827419ef5ec/tree_output-0.1.4.tar.gz" } ] }