{ "info": { "author": "Ionel Cristian M\u0103rie\u0219", "author_email": "contact@ionelmc.ro", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Utilities" ], "description": "========\nOverview\n========\n\n\n\nRemote vanilla PDB (over TCP sockets) *done right*: no extras, proper handling around connection failures and CI. Based\non `pdbx `_.\n\n* Free software: BSD 2-Clause License\n\nInstallation\n============\n\n::\n\n pip install remote-pdb\n\nUsage\n=====\n\nTo open a remote PDB on first available port:\n\n.. code:: python\n\n from remote_pdb import set_trace\n set_trace() # you'll see the port number in the logs\n\nTo use some specific host/port:\n\n.. code:: python\n\n from remote_pdb import RemotePdb\n RemotePdb('127.0.0.1', 4444).set_trace()\n\nTo connect just run ``telnet 127.0.0.1 4444``. When you are finished\ndebugging, either exit the debugger, or press Control-], then Control-d.\n\nAlternately, one can connect with NetCat: ``nc -C 127.0.0.1 4444`` or Socat: ``socat readline\ntcp:127.0.0.1:4444`` (for line editing and history support). When finished debugging, either exit\nthe debugger, or press Control-c.\n\nIntegration with breakpoint() in Python 3.7+\n============================================\n\nIf you are using Python 3.7 one can use the new ``breakpoint()`` built in to invoke\nremote PDB. In this case the following environment variable must be set:\n\n.. code:: bash\n\n PYTHONBREAKPOINT=remote_pdb.set_trace\n\nThe debugger can then be invoked as follows, without any imports:\n\n.. code:: python\n\n breakpoint()\n\nAs the ``breakpoint()`` function does not take any arguments, environment variables can be used to\nspecify the host and port that the server should listen to. For example, to run ``script.py`` in such a\nway as to make ``telnet 127.0.0.1 4444`` the correct way of connecting, one would run:\n\n.. code:: bash\n\n PYTHONBREAKPOINT=remote_pdb.set_trace REMOTE_PDB_HOST=127.0.0.1 REMOTE_PDB_PORT=4444 python script.py\n\nIf ``REMOTE_PDB_HOST`` is omitted then a default value of 127.0.0.1 will be used. If ``REMOTE_PDB_PORT`` is\nomitted then the first available port will be used. The connection information will be logged to the console,\nas with calls to ``remote_pdb.set_trace()``.\n\nTo quiet the output, set ``REMOTE_PDB_QUIET=1``, this will prevent\n``RemotePdb`` from producing any output -- you'll probably want to specify\n``REMOTE_PDB_PORT`` as well since the randomized port won't be printed.\n\n\nNote about OS X\n===============\n\nIn certain scenarios (backgrounded processes) OS X will prevent readline to be imported (and readline is a dependency of pdb). \nA workaround (run this early):\n\n.. code:: python\n\n import signal\n signal.signal(signal.SIGTTOU, signal.SIG_IGN)\n\nSee `#9 `_ and `cpython#14892 `_.\n\nRequirements\n============\n\nPython 2.6, 2.7, 3.2, 3.3 and PyPy are supported.\n\nSimilar projects\n================\n\n* `qdb `_\n\n\nChangelog\n=========\n\n2.0.0 (2019-07-31)\n------------------\n\n* Fixed inconsistency with normal use of ``pdb`` - `BdbQuit` will now be raised on quitting.\n Contributed by Anthony Sottile in `#18 `_.\n **BACKWARDS INCOMPATIBLE**.\n* Added ``REMOTE_PDB_QUIET=1`` to silence output.\n Contributed by Anthony Sottile in `#19 `_.\n\n1.3.0 (2019-03-13)\n------------------\n\n* Documented support for Python 3.7's ``breakpoint()``.\n* Added support for setting the socket listening host/port through the ``REMOTE_PDB_HOST``/``REMOTE_PDB_PORT``\n environment variables. Contributed by Matthew Wilkes in `#14 `_.\n* Removed use of `rw` file wrappers around sockets (turns out socket's ``makefile`` is very buggy in Python 3.6 and\n later - `output is discarded `_). Contributed in `#13\n `_.\n\n1.2.0 (2015-09-26)\n------------------\n\n* Always print/log listening address.\n\n1.1.3 (2015-07-06)\n------------------\n\n* Corrected the default frame tracing starts from.\n\n1.1.2 (2015-07-06)\n------------------\n\n* Small readme update.\n\n1.1.1 (2015-07-06)\n------------------\n\n* Remove bogus ``remote_pdb`` console script.\n\n1.1.0 (2015-06-21)\n------------------\n\n* Fixed buffering issues when running on Python 3 and Windows.\n\n1.0.0 (2015-06-15)\n------------------\n\n* Added support for PDB++.\n\n0.2.1 (2014-03-07)\n------------------\n\n* First release on PyPI.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ionelmc/python-remote-pdb", "keywords": "", "license": "BSD 2-Clause License", "maintainer": "", "maintainer_email": "", "name": "remote-pdb", "package_url": "https://pypi.org/project/remote-pdb/", "platform": "", "project_url": "https://pypi.org/project/remote-pdb/", "project_urls": { "Changelog": "https://python-remote-pdb.readthedocs.io/en/latest/changelog.html", "Documentation": "https://python-remote-pdb.readthedocs.io/", "Homepage": "https://github.com/ionelmc/python-remote-pdb", "Issue Tracker": "https://github.com/ionelmc/python-remote-pdb/issues" }, "release_url": "https://pypi.org/project/remote-pdb/2.0.0/", "requires_dist": null, "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "summary": "Remote vanilla PDB (over TCP sockets) *done right*: no extras, proper handling around connection failures and CI. Based on `pdbx `_.", "version": "2.0.0" }, "last_serial": 5612927, "releases": { "0.1": [], "0.2.0": [ { "comment_text": "", "digests": { "md5": "bbc98407b2851fadffc342d1aa25aaf1", "sha256": "8457d4d9f87405eccf6e6c2d6e7dfaa548a351286adf972e5e9793d4ff149aeb" }, "downloads": -1, "filename": "remote-pdb-0.2.0.tar.gz", "has_sig": false, "md5_digest": "bbc98407b2851fadffc342d1aa25aaf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6709, "upload_time": "2014-03-06T00:22:06", "url": "https://files.pythonhosted.org/packages/ce/a5/9cb6d2fd3017d62f713ba0725b83533a0ba5610e5eb8e92cf1fdf97a0547/remote-pdb-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "96bb198a4344dcb41cf4dc214135ab73", "sha256": "28bb7451deb7cbfe55f8ab39197ca8d8cff750ee503433e087f1c9f7a60fb4bf" }, "downloads": -1, "filename": "remote-pdb-0.2.1.tar.gz", "has_sig": false, "md5_digest": "96bb198a4344dcb41cf4dc214135ab73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6822, "upload_time": "2014-03-07T00:02:11", "url": "https://files.pythonhosted.org/packages/d2/e9/80bfbcf8f2db4e08b434c2435f8b12b3b26e33127b91be8b54beff75e1ef/remote-pdb-0.2.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "a12ba5efa8cbbb7e0cdd7b38a529c9eb", "sha256": "7052dbff2e4be58960a11f8e2cf5960a75ef5c05f3021cf23b62b47531fc360d" }, "downloads": -1, "filename": "remote_pdb-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a12ba5efa8cbbb7e0cdd7b38a529c9eb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6270, "upload_time": "2015-06-15T17:32:16", "url": "https://files.pythonhosted.org/packages/0a/77/63de9d107f1ee9b2b63109606a289713273804e66abc2e6304b272dc30b9/remote_pdb-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb8ad80b1eb714cf367ebd1138f81623", "sha256": "8623d754c521467356c772e24e5adcb5e5ec5392727bea06afee7ffe0c428ce8" }, "downloads": -1, "filename": "remote-pdb-1.0.0.tar.gz", "has_sig": false, "md5_digest": "eb8ad80b1eb714cf367ebd1138f81623", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13610, "upload_time": "2015-06-15T17:32:20", "url": "https://files.pythonhosted.org/packages/b3/86/6e79daffc1a6a6fecdbb18e783fc22bd204d871de8d63caa3692da5e2c24/remote-pdb-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "d36231bd431a5a02e87edcdb751e1dbb", "sha256": "1cfdd9e17c176582f206742e06f8923ca7828a95b0fbda87188a59cb9105e969" }, "downloads": -1, "filename": "remote_pdb-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d36231bd431a5a02e87edcdb751e1dbb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6467, "upload_time": "2015-06-21T00:04:44", "url": "https://files.pythonhosted.org/packages/d5/ac/15b9750e3e78dad383f153ac312ef9b3e8b5e9021c1f99be4cab8cc38fb8/remote_pdb-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9c58b0f4403b95e48b3389676c6c577", "sha256": "e23f6bb941c50aadc3aaab4452c6dfa7a1dff29c8a89719bbdbf9dfaf82e3b1c" }, "downloads": -1, "filename": "remote-pdb-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a9c58b0f4403b95e48b3389676c6c577", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13521, "upload_time": "2015-06-21T00:04:48", "url": "https://files.pythonhosted.org/packages/bb/2f/3fb9cca29787ce227871545d2b6c3669c20dec432dc808d74994a05006bc/remote-pdb-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "7571b2363b6b5188c3c6210773f47dee", "sha256": "f2802caf3e9494cf3c215c4ac3d5f5c5e6a03aa24fa956e6239a50a1799b8f87" }, "downloads": -1, "filename": "remote-pdb-1.1.1.tar.gz", "has_sig": false, "md5_digest": "7571b2363b6b5188c3c6210773f47dee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13552, "upload_time": "2015-07-06T17:27:50", "url": "https://files.pythonhosted.org/packages/22/b0/40dacb94a70d78fffd07cae736b7f33c0e785e71856a28858abbe77109fa/remote-pdb-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "225df53239013d73eb5a983a352c7981", "sha256": "12db3e23352f362652a52955e793f9d3f1cb0c05c6ef45d42eeb76487ec1e6be" }, "downloads": -1, "filename": "remote-pdb-1.1.2.tar.gz", "has_sig": false, "md5_digest": "225df53239013d73eb5a983a352c7981", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13732, "upload_time": "2015-07-06T17:39:04", "url": "https://files.pythonhosted.org/packages/97/a0/eba3f1823ed22cd41a5bd7627243a76d50421c3074fcc1709081e4dfb514/remote-pdb-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "ae1a44fb36d8292e4c676135d5c922d5", "sha256": "b0fdf4d6efc66bf32d85a8231044489b4fec6747cb4553452f966100543e1e8a" }, "downloads": -1, "filename": "remote_pdb-1.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ae1a44fb36d8292e4c676135d5c922d5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6686, "upload_time": "2015-07-27T11:34:32", "url": "https://files.pythonhosted.org/packages/1d/f9/07da68ab3a17695de95621ffe4a06214978beb04aa45dbf51b7f8f499f54/remote_pdb-1.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c9c7464084e4509b11da3f71c96a86c", "sha256": "edf236820c52c0182835ba03033d6784a1744ae11ad4a396879ac3e59073aff2" }, "downloads": -1, "filename": "remote-pdb-1.1.3.tar.gz", "has_sig": false, "md5_digest": "5c9c7464084e4509b11da3f71c96a86c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13786, "upload_time": "2015-07-27T11:34:36", "url": "https://files.pythonhosted.org/packages/98/b8/77c008153041578214d7b03e097d77f011051b6d30b645fa99fe1a2f1ea2/remote-pdb-1.1.3.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "41e751310e6c89c7a5519f7684649daa", "sha256": "665cc74e033fe7c65ff40a1d28e6b3b7def7f1fb9947500ac5b44badfb1b2562" }, "downloads": -1, "filename": "remote_pdb-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "41e751310e6c89c7a5519f7684649daa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6728, "upload_time": "2015-09-26T15:22:55", "url": "https://files.pythonhosted.org/packages/23/c5/4e1c194bf967146822aed1153ee30baf28a53586190c78c0be7f92e17ccf/remote_pdb-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0bc5817d403fa62d56ef874bfc5d11b3", "sha256": "61ae364de25d1dd2bd03643309b20db79c1b8e4da42068840e030f9e69655101" }, "downloads": -1, "filename": "remote-pdb-1.2.0.tar.gz", "has_sig": false, "md5_digest": "0bc5817d403fa62d56ef874bfc5d11b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13725, "upload_time": "2015-09-26T15:22:59", "url": "https://files.pythonhosted.org/packages/96/c4/a05b197c7c0be80023228b45f33d0d0ac6669e382bfe52204dfdc624bb0e/remote-pdb-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "d8c9d14eec34b97573988d4aa5cfc254", "sha256": "0a5835ae6f75244bf728616f41a57b35dab4d17f51601bd5f80413ee9b4b5732" }, "downloads": -1, "filename": "remote_pdb-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d8c9d14eec34b97573988d4aa5cfc254", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 5691, "upload_time": "2019-03-13T16:52:06", "url": "https://files.pythonhosted.org/packages/49/9b/8b2ed14c556402fe5023b3d8ea7505721cc13fee78cba51d8406f746dcfd/remote_pdb-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a06d266e0743e0371c2cf715bed85250", "sha256": "e441ddde7e74dd17c1ce924a20e998b22e560e53c404a0f9266be7f9900c1f3f" }, "downloads": -1, "filename": "remote-pdb-1.3.0.tar.gz", "has_sig": false, "md5_digest": "a06d266e0743e0371c2cf715bed85250", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 17564, "upload_time": "2019-03-13T16:52:08", "url": "https://files.pythonhosted.org/packages/8d/05/1131d41f0f85ae44f50e77018ab0e0b92b280906f5136ca14063b8c12a0b/remote-pdb-1.3.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "57beb4f6500de2696a900dbd94d634ee", "sha256": "2a1602ac1ec42e4c88da73c7221ca7f5a8559405b962eb0dbb2cdf413558b156" }, "downloads": -1, "filename": "remote_pdb-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "57beb4f6500de2696a900dbd94d634ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 5971, "upload_time": "2019-07-31T11:33:49", "url": "https://files.pythonhosted.org/packages/72/4d/976e45067b791c0012ee060ba615a95122ba4152dce2cf5d4f57847eef84/remote_pdb-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "534c7b19a7378de0ecb194f42f3d51b1", "sha256": "ad38f36f539b22be820f94062618366d5d3461115c1605b11679dba75f94ee62" }, "downloads": -1, "filename": "remote-pdb-2.0.0.tar.gz", "has_sig": false, "md5_digest": "534c7b19a7378de0ecb194f42f3d51b1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 18410, "upload_time": "2019-07-31T11:33:51", "url": "https://files.pythonhosted.org/packages/be/de/d8923fb412117ea28a89751cb5712c68ad47326cbe15bdcf257022557f93/remote-pdb-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "57beb4f6500de2696a900dbd94d634ee", "sha256": "2a1602ac1ec42e4c88da73c7221ca7f5a8559405b962eb0dbb2cdf413558b156" }, "downloads": -1, "filename": "remote_pdb-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "57beb4f6500de2696a900dbd94d634ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 5971, "upload_time": "2019-07-31T11:33:49", "url": "https://files.pythonhosted.org/packages/72/4d/976e45067b791c0012ee060ba615a95122ba4152dce2cf5d4f57847eef84/remote_pdb-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "534c7b19a7378de0ecb194f42f3d51b1", "sha256": "ad38f36f539b22be820f94062618366d5d3461115c1605b11679dba75f94ee62" }, "downloads": -1, "filename": "remote-pdb-2.0.0.tar.gz", "has_sig": false, "md5_digest": "534c7b19a7378de0ecb194f42f3d51b1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 18410, "upload_time": "2019-07-31T11:33:51", "url": "https://files.pythonhosted.org/packages/be/de/d8923fb412117ea28a89751cb5712c68ad47326cbe15bdcf257022557f93/remote-pdb-2.0.0.tar.gz" } ] }