{ "info": { "author": "Cameron Simpson", "author_email": "cs@cskk.id.au", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "*Release 20190812*:\nstack_dump(): trim the last 2 frames from the listing by default (they are part of stack_dump's implementation).\n\nI find the supplied python traceback facilities quite awkward.\nThese functions provide convenient facilities.\n\n## Function `caller(frame_index=-3)`\n\nReturn the `Frame` of the caller's caller.\n\nUseful `frame_index` values:\n* `-1`: caller, this function\n* `-2`: invoker, who wants to know the caller\n* `-3`: the calling function of the invoker\n\nThe default `from_index` value is `-3`.\n\n## Class `Frame`\n\nMRO: `Frame`, `builtins.tuple` \nA `namedtuple` for stack frame contents.\n\n## Function `frames()`\n\nReturn the current stack as a list of `Frame` objects.\n\n## Function `stack_dump(fp=None, indent=0, Fs=None, skip=None)`\n\nRecite current or supplied stack to `fp`, default `sys.stderr`.\n\nParameters:\n* `fp`: the output file object, default `sys.stderr`\n* `indent`: how many spaces to indent the stack lines, default `0`\n* `Fs`: the stack `Frame`s to write,\n default obtained from the current stack\n* `skip`: the number of `Frame`s to trim from the end of `Fs`;\n if `Fs` is `None` this defaults to `2` to trim the `Frame`s\n for the `stack_dump` function and its call to `frames()`,\n otherwise the default is `0` to use the supplied `Frame`s as is\n\n\n\n# Release Log\n\n*Release 20190812*:\nstack_dump(): trim the last 2 frames from the listing by default (they are part of stack_dump's implementation).\n\n*Release 20190101*:\n_Frame: rename .functionname to .funcname; caller: turn raw frames into Frames.\ncaller(): accept optional frame_index, default -3.\n\n*Release 20160827*:\nAdd stack_dump().\n\n*Release 20150115*:\nPyPI metadata fixups.\n\n*Release 20150111*:\nTag for initial PyPI release of cs.py.stack.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/cameron_simpson/css/commits/all", "keywords": "python2,python3", "license": "GNU General Public License v3 or later (GPLv3+)", "maintainer": "", "maintainer_email": "", "name": "cs.py.stack", "package_url": "https://pypi.org/project/cs.py.stack/", "platform": "", "project_url": "https://pypi.org/project/cs.py.stack/", "project_urls": { "Homepage": "https://bitbucket.org/cameron_simpson/css/commits/all" }, "release_url": "https://pypi.org/project/cs.py.stack/20190812/", "requires_dist": null, "requires_python": "", "summary": "Convenience functions for the python execution stack.", "version": "20190812" }, "last_serial": 5663548, "releases": { "20150115": [ { "comment_text": "", "digests": { "md5": "d604191534715f210390e74cae2a54ba", "sha256": "d5d3e14730c1b5d141ea844dda0b4cb0806612704fef9e4ab7c4b93bf5df18e8" }, "downloads": -1, "filename": "cs.py.stack-20150115.tar.gz", "has_sig": false, "md5_digest": "d604191534715f210390e74cae2a54ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1600, "upload_time": "2015-01-18T06:07:25", "url": "https://files.pythonhosted.org/packages/89/10/cd902ebee1de9643a9de2d9b8dff6f781895c410183b095255c5e9158afd/cs.py.stack-20150115.tar.gz" } ], "20160827": [ { "comment_text": "", "digests": { "md5": "a0bc73e346873038a9668c85129cf6d6", "sha256": "976f96ca9cfb4b4775efd9149ce688ff7c7f3cbb889dd4a76b48c1b018c462ca" }, "downloads": -1, "filename": "cs.py.stack-20160827.tar.gz", "has_sig": false, "md5_digest": "a0bc73e346873038a9668c85129cf6d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1710, "upload_time": "2016-08-27T03:27:59", "url": "https://files.pythonhosted.org/packages/1a/00/937d614a104c2a29e56f09e0b67299eccc68c33edac26d3191f6acf06f65/cs.py.stack-20160827.tar.gz" } ], "20190101": [ { "comment_text": "", "digests": { "md5": "588d097707960cb8bad8181e37debfff", "sha256": "eb0ff0d305f6d3b9041ae38efca40fc75b99689a979de5e220db20a4f3502d54" }, "downloads": -1, "filename": "cs.py.stack-20190101.tar.gz", "has_sig": false, "md5_digest": "588d097707960cb8bad8181e37debfff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2075, "upload_time": "2019-01-01T02:54:20", "url": "https://files.pythonhosted.org/packages/91/d8/9833eac255e255cabdc2539cea23cdc6254ddbbbbcb8d0bbc3515e991227/cs.py.stack-20190101.tar.gz" } ], "20190812": [ { "comment_text": "", "digests": { "md5": "84fb3d690c2190d0209d5dba6965eaf3", "sha256": "d2a2c73db723233763054fba9edbc546686077b93edd89488c1bb586d85a779c" }, "downloads": -1, "filename": "cs.py.stack-20190812.tar.gz", "has_sig": false, "md5_digest": "84fb3d690c2190d0209d5dba6965eaf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2888, "upload_time": "2019-08-12T00:09:29", "url": "https://files.pythonhosted.org/packages/47/40/3a08b0b0d5853a9b16320aab71fef739485856910c479178b6dd511ed30e/cs.py.stack-20190812.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "84fb3d690c2190d0209d5dba6965eaf3", "sha256": "d2a2c73db723233763054fba9edbc546686077b93edd89488c1bb586d85a779c" }, "downloads": -1, "filename": "cs.py.stack-20190812.tar.gz", "has_sig": false, "md5_digest": "84fb3d690c2190d0209d5dba6965eaf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2888, "upload_time": "2019-08-12T00:09:29", "url": "https://files.pythonhosted.org/packages/47/40/3a08b0b0d5853a9b16320aab71fef739485856910c479178b6dd511ed30e/cs.py.stack-20190812.tar.gz" } ] }