aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/ipdb
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.ru>2022-02-10 16:44:39 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:44:39 +0300
commite9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch)
tree64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/python/ipdb
parent2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff)
downloadydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/python/ipdb')
-rw-r--r--contrib/python/ipdb/.dist-info/METADATA1172
-rw-r--r--contrib/python/ipdb/.dist-info/top_level.txt2
-rw-r--r--contrib/python/ipdb/COPYING.txt60
-rw-r--r--contrib/python/ipdb/README.rst386
-rw-r--r--contrib/python/ipdb/ipdb/__init__.py2
-rw-r--r--contrib/python/ipdb/ipdb/__main__.py360
-rw-r--r--contrib/python/ipdb/ya.make16
7 files changed, 999 insertions, 999 deletions
diff --git a/contrib/python/ipdb/.dist-info/METADATA b/contrib/python/ipdb/.dist-info/METADATA
index b51b60bf71..a0597b4d58 100644
--- a/contrib/python/ipdb/.dist-info/METADATA
+++ b/contrib/python/ipdb/.dist-info/METADATA
@@ -1,586 +1,586 @@
-Metadata-Version: 2.1
-Name: ipdb
-Version: 0.13.9
-Summary: IPython-enabled pdb
-Home-page: https://github.com/gotcha/ipdb
-Author: Godefroid Chapelle
-Author-email: gotcha@bubblenet.be
-License: BSD
-Keywords: pdb ipython
-Platform: UNKNOWN
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Operating System :: MacOS :: MacOS X
-Classifier: Operating System :: POSIX :: Linux
-Classifier: Operating System :: Microsoft :: Windows
-Classifier: Topic :: Software Development :: Debuggers
-Classifier: License :: OSI Approved :: BSD License
-Requires-Python: >=2.7
-Requires-Dist: setuptools
-Requires-Dist: ipython (<6.0.0,>=5.1.0) ; python_version == "2.7"
-Requires-Dist: toml (>=0.10.2) ; python_version == "2.7"
-Requires-Dist: decorator (<5.0.0) ; python_version == "2.7"
-Requires-Dist: ipython (<7.0.0,>=6.0.0) ; python_version == "3.4"
-Requires-Dist: toml (>=0.10.2) ; python_version == "3.4"
-Requires-Dist: decorator (<5.0.0) ; python_version == "3.4"
-Requires-Dist: ipython (<7.10.0,>=7.0.0) ; python_version == "3.5"
-Requires-Dist: toml (>=0.10.2) ; python_version == "3.5"
-Requires-Dist: decorator ; python_version == "3.5"
-Requires-Dist: ipython (<7.17.0,>=7.10.0) ; python_version == "3.6"
-Requires-Dist: toml (>=0.10.2) ; python_version == "3.6"
-Requires-Dist: decorator ; python_version == "3.6"
-Requires-Dist: ipython (>=7.17.0) ; python_version > "3.6"
-Requires-Dist: toml (>=0.10.2) ; python_version > "3.6"
-Requires-Dist: decorator ; python_version > "3.6"
-
-IPython `pdb`
-=============
-
-.. image:: https://travis-ci.org/gotcha/ipdb.png?branch=master
- :target: https://travis-ci.org/gotcha/ipdb
-.. image:: https://codecov.io/gh/gotcha/ipdb/branch/master/graphs/badge.svg?style=flat
- :target: https://codecov.io/gh/gotcha/ipdb?branch=master
-
-Use
----
-
-ipdb exports functions to access the IPython_ debugger, which features
-tab completion, syntax highlighting, better tracebacks, better introspection
-with the same interface as the `pdb` module.
-
-Example usage:
-
-.. code-block:: python
-
- import ipdb
- ipdb.set_trace()
- ipdb.set_trace(context=5) # will show five lines of code
- # instead of the default three lines
- # or you can set it via IPDB_CONTEXT_SIZE env variable
- # or setup.cfg file
- ipdb.pm()
- ipdb.run('x[0] = 3')
- result = ipdb.runcall(function, arg0, arg1, kwarg='foo')
- result = ipdb.runeval('f(1,2) - 3')
-
-
-Arguments for `set_trace`
-+++++++++++++++++++++++++
-
-The `set_trace` function accepts `context` which will show as many lines of code as defined,
-and `cond`, which accepts boolean values (such as `abc == 17`) and will start ipdb's
-interface whenever `cond` equals to `True`.
-
-Using configuration file
-++++++++++++++++++++++++
-
-It's possible to set up context using a `.ipdb` file on your home folder, `setup.cfg`
-or `pyproject.toml` on your project folder. You can also set your file location via
-env var `$IPDB_CONFIG`. Your environment variable has priority over the home
-configuration file, which in turn has priority over the setup config file.
-Currently, only context setting is available.
-
-A valid setup.cfg is as follows
-
-::
-
- [ipdb]
- context=5
-
-
-A valid .ipdb is as follows
-
-::
-
- context=5
-
-
-A valid pyproject.toml is as follows
-
-::
-
- [tool.ipdb]
- context=5
-
-
-The post-mortem function, ``ipdb.pm()``, is equivalent to the magic function
-``%debug``.
-
-.. _IPython: http://ipython.org
-
-If you install ``ipdb`` with a tool which supports ``setuptools`` entry points,
-an ``ipdb`` script is made for you. You can use it to debug your python 2 scripts like
-
-::
-
- $ bin/ipdb mymodule.py
-
-And for python 3
-
-::
-
- $ bin/ipdb3 mymodule.py
-
-Alternatively with Python 2.7 only, you can also use
-
-::
-
- $ python -m ipdb mymodule.py
-
-You can also enclose code with the ``with`` statement to launch ipdb if an exception is raised:
-
-.. code-block:: python
-
- from ipdb import launch_ipdb_on_exception
-
- with launch_ipdb_on_exception():
- [...]
-
-.. warning::
- Context managers were introduced in Python 2.5.
- Adding a context manager implies dropping Python 2.4 support.
- Use ``ipdb==0.6`` with 2.4.
-
-Or you can use ``iex`` as a function decorator to launch ipdb if an exception is raised:
-
-.. code-block:: python
-
- from ipdb import iex
-
- @iex
- def main():
- [...]
-
-.. warning::
- Using ``from future import print_function`` for Python 3 compat implies dropping Python 2.5 support.
- Use ``ipdb<=0.8`` with 2.5.
-
-Issues with ``stdout``
-----------------------
-
-Some tools, like ``nose`` fiddle with ``stdout``.
-
-Until ``ipdb==0.9.4``, we tried to guess when we should also
-fiddle with ``stdout`` to support those tools.
-However, all strategies tried until 0.9.4 have proven brittle.
-
-If you use ``nose`` or another tool that fiddles with ``stdout``, you should
-explicitly ask for ``stdout`` fiddling by using ``ipdb`` like this
-
-.. code-block:: python
-
- import ipdb
- ipdb.sset_trace()
- ipdb.spm()
-
- from ipdb import slaunch_ipdb_on_exception
- with slaunch_ipdb_on_exception():
- [...]
-
-
-Development
------------
-
-``ipdb`` source code and tracker are at https://github.com/gotcha/ipdb.
-
-Pull requests should take care of updating the changelog ``HISTORY.txt``.
-
-Under the unreleased section, add your changes and your username.
-
-Manual testing
-++++++++++++++
-
-To test your changes, make use of ``manual_test.py``. Create a virtual environment,
-install IPython and run ``python manual_test.py`` and check if your changes are in effect.
-If possible, create automated tests for better behaviour control.
-
-Automated testing
-+++++++++++++++++
-
-To run automated tests locally, create a virtual environment, install `coverage`
-and run `coverage run setup.py test`.
-
-Third-party support
--------------------
-
-Products.PDBDebugMode
-+++++++++++++++++++++
-
-Zope2 Products.PDBDebugMode_ uses ``ipdb``, if available, in place of ``pdb``.
-
-.. _Products.PDBDebugMode: http://pypi.python.org/pypi/Products.PDBDebugMode
-
-iw.debug
-++++++++
-
-iw.debug_ allows you to trigger an ``ipdb`` debugger on any published object
-of a Zope2 application.
-
-.. _iw.debug: http://pypi.python.org/pypi/iw.debug
-
-ipdbplugin
-++++++++++
-
-ipdbplugin_ is a nose_ test runner plugin that also uses the IPython debugger
-instead of ``pdb``. (It does not depend on ``ipdb`` anymore).
-
-.. _ipdbplugin: http://pypi.python.org/pypi/ipdbplugin
-.. _nose: http://readthedocs.org/docs/nose
-
-
-Changelog
-=========
-
-0.13.9 (2021-06-02)
--------------------
-
-- Fix again when `pyproject.toml` does not contain `tool` section.
- [markab108]
-
-
-0.13.8 (2021-05-26)
--------------------
-
-- Fix when `pyproject.toml` does not contain `tool` section.
- [anjos]
-
-- Add the convenience function ``iex()``.
- [alanbernstein]
-
-
-0.13.7 (2021-03-16)
--------------------
-
-- Do not instantiate IPython on import
- [adamchainz]
-
-
-0.13.6 (2021-03-08)
--------------------
-
-- Fix broken parsing of pyproject.toml
- [alexandrebarbaruiva]
-
-
-0.13.5 (2021-03-02)
--------------------
-
-- Add support for pyproject.toml as configuration file
- [alexandrebarbaruiva]
-
-- For users using python 3.4, install 6.0.0 <= IPython < 7.0.0,
- for users using python 3.5, install 7.0.0 <= IPython < 7.10.0,
- for users using python 3.6, install 7.10.0 <= IPython < 7.17.0,
- for users using python>3.6, install IPython >= 7.17.0.
- [d1618033]
-
-
-0.13.4 (2020-10-01)
--------------------
-
-- Add '-m' option
- [mrmino]
-
-
-0.13.3 (2020-06-23)
--------------------
-
-- Allow runcall, runeval to also use set context value
- [meowser]
-
-- Add condition argument to set_trace
- [alexandrebarbaruiva]
-
-
-0.13.2 (2020-03-03)
--------------------
-
-- Remove leftover debug code
- [gotcha]
-
-
-0.13.1 (2020-02-28)
--------------------
-
-- Fix when no configuration file
- [gotcha]
-
-
-0.13.0 (2020-02-28)
--------------------
-
-- Add option to set context via environment variable or configuration file
- [alexandrebarbaruiva]
-
-
-0.12.3 (2019-12-03)
--------------------
-
-- Fix version in usage
- [gotcha]
-
-
-0.12.2 (2019-07-30)
--------------------
-
-- Avoid emitting term-title bytes
- [steinnes]
-
-
-0.12.1 (2019-07-26)
--------------------
-
-- Fix --help
- [native-api]
-
-
-0.12 (2019-03-20)
------------------
-
-- Drop support for Python 3.3.x
- [bmw]
-- Stop deprecation warnings from being raised when IPython >= 5.1 is used.
- Support for IPython < 5.1 has been dropped.
- [bmw]
-
-
-0.11 (2018-02-15)
------------------
-
-- Simplify loading IPython and getting information from it.
- Drop support for python 2.6
- Drop support for IPython < 5.0.0
- [takluyver]
-
-
-0.10.3 (2017-04-22)
--------------------
-
-- For users using python 2.6, do not install IPython >= 2.0.0.
- And for users using python 2.7, do not install IPython >= 6.0.0.
- [vphilippon]
-- Drop support for python 3.2.
- [vphilippon]
-- Command line usage consistent with pdb - Add argument commands
- [zvodd]
-
-
-0.10.2 (2017-01-25)
--------------------
-
-- Ask IPython which debugger class to use.
- Closes https://github.com/gotcha/ipdb/issues/105
- [gnebehay, JBKahn]
-
-- ipdb.set_trace() does not ignore context arg anymore.
- Closes https://github.com/gotcha/ipdb/issues/93.
- [gnebehay, Garrett-R]
-
-
-0.10.1 (2016-06-14)
--------------------
-
-- Support IPython 5.0.
- [ngoldbaum]
-
-
-0.10.0 (2016-04-29)
--------------------
-
-- Stop trying to magically guess when stdout needs to be captured.
- Like needed by `nose`.
- Rather, provide a set of function that can be called explicitely when needed.
- [gotcha]
-
-- drop support of IPython before 0.10.2
-
-
-0.9.4 (2016-04-29)
-------------------
-
-- Fix Restart error when using `python -m ipdb`
- Closes https://github.com/gotcha/ipdb/issues/93.
- [gotcha]
-
-
-0.9.3 (2016-04-15)
-------------------
-
-- Don't require users to pass a traceback to post_mortem.
- [Wilfred]
-
-
-0.9.2 (2016-04-15)
-------------------
-
-- Closes https://github.com/gotcha/ipdb/issues/93.
- [gotcha]
-
-
-0.9.1 (2016-04-12)
-------------------
-
-- Reset ``sys.modules['__main__']`` to original value.
- Closes https://github.com/gotcha/ipdb/issues/85
- [gotcha]
-
-- Fix support of IPython versions 0.x
- [asivokon]
-
-
-0.9.0 (2016-02-22)
-------------------
-
-- Switch to revised BSD license (with approval of all contributors).
- Closes https://github.com/gotcha/ipdb/issues/68
- [lebedov, gotcha]
-
-0.8.3 (2016-02-17)
-------------------
-
-- Don't pass sys.argv to IPython for configuration.
- [emulbreh]
-
-
-0.8.2 (2016-02-15)
-------------------
-
-- Fix lexical comparison for version numbers.
- [sas23]
-
-- Allow configuring how many lines of code context are displayed
- by `set_trace`
- [JamshedVesuna]
-
-- If an instance of IPython is already running its configuration will be
- loaded.
- [IxDay]
-
-
-0.8.1 (2015-06-03)
-------------------
-
-- Make Nose support less invasive.
- Closes https://github.com/gotcha/ipdb/issues/52
- Closes https://github.com/gotcha/ipdb/issues/31
- [blink1073, gotcha]
-
-- Fix for post_mortem in context manager.
- Closes https://github.com/gotcha/ipdb/issues/20
- [omergertel]
-
-
-0.8 (2013-09-19)
-----------------
-
-- More Python 3 compatibility; implies dropping Python 2.5 support.
- Closes https://github.com/gotcha/ipdb/issues/37
- [gotcha]
-
-
-0.7.1 (2013-09-19)
-------------------
-
-- IPython 1.0 compatibility.
- Closes https://github.com/gotcha/ipdb/issues/44
- [pgularski]
-
-- Index into version_info in setup.py for Python 2.6 compatibility.
- [kynan]
-
-- Add Travis CI configuration.
- [kynan]
-
-0.7 (2012-07-06)
-----------------
-
-- Add ``launch_ipdb_on_exception`` context manager. Implies dropping Python 2.4 support.
- [Psycojoker]
-
-- Wrap sys.excepthook only once.
- [marciomazza]
-
-- Add GPL file and refer in headers.
- [stan3]
-
-- Python 3 support.
- [Piet Delport]
-
-- Basic tests.
- [msabramo]
-
-- Added the functions ``runcall``, ``runeval`` and ``run``.
- [dimasad]
-
-
-0.6.1 (2011-10-17)
-------------------
-
-- State dependency on IPython later or equal to 0.10.
- [gotcha]
-
-
-0.6 (2011-09-01)
-----------------
-
-- Add setuptools ``console_scripts`` entry point.
- [akrito, gotcha]
-
-- Nose support.
- Closes https://github.com/gotcha/ipdb/issues/8
- [akaihola, gotcha]
-
-
-0.5 (2011-08-05)
-----------------
-
-- IPython 0.11 support.
- [lebedov]
-
-
-0.4 (2011-06-13)
-----------------
-
-- When used from IPython, use its colors.
- Closes https://github.com/gotcha/ipdb/issues/1
- [gotcha]
-
-- Fixed errors when exiting with "q".
- [gotcha]
-
-- Allow use of ``python -m ipdb mymodule.py``.
- Python 2.7 only.
- Closes https://github.com/gotcha/ipdb/issues/3
- [gotcha]
-
-- Fixed post_mortem when the traceback is None.
- [maurits]
-
-
-0.3 (2011-01-16)
-----------------
-
-- Add ``post_mortem()`` for ``Products.PDBDebugMode`` support.
- [Jean Jordaan]
-
-- Moved to github.com.
-
-
-0.2 (2010-10-20)
-----------------
-
-- Added ``pm()``.
- [Paulo Benedict Ang]
-
-
-0.1 (2010-04-26)
-----------------
-
-- First "non dev" release.
-
-
+Metadata-Version: 2.1
+Name: ipdb
+Version: 0.13.9
+Summary: IPython-enabled pdb
+Home-page: https://github.com/gotcha/ipdb
+Author: Godefroid Chapelle
+Author-email: gotcha@bubblenet.be
+License: BSD
+Keywords: pdb ipython
+Platform: UNKNOWN
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Operating System :: MacOS :: MacOS X
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Operating System :: Microsoft :: Windows
+Classifier: Topic :: Software Development :: Debuggers
+Classifier: License :: OSI Approved :: BSD License
+Requires-Python: >=2.7
+Requires-Dist: setuptools
+Requires-Dist: ipython (<6.0.0,>=5.1.0) ; python_version == "2.7"
+Requires-Dist: toml (>=0.10.2) ; python_version == "2.7"
+Requires-Dist: decorator (<5.0.0) ; python_version == "2.7"
+Requires-Dist: ipython (<7.0.0,>=6.0.0) ; python_version == "3.4"
+Requires-Dist: toml (>=0.10.2) ; python_version == "3.4"
+Requires-Dist: decorator (<5.0.0) ; python_version == "3.4"
+Requires-Dist: ipython (<7.10.0,>=7.0.0) ; python_version == "3.5"
+Requires-Dist: toml (>=0.10.2) ; python_version == "3.5"
+Requires-Dist: decorator ; python_version == "3.5"
+Requires-Dist: ipython (<7.17.0,>=7.10.0) ; python_version == "3.6"
+Requires-Dist: toml (>=0.10.2) ; python_version == "3.6"
+Requires-Dist: decorator ; python_version == "3.6"
+Requires-Dist: ipython (>=7.17.0) ; python_version > "3.6"
+Requires-Dist: toml (>=0.10.2) ; python_version > "3.6"
+Requires-Dist: decorator ; python_version > "3.6"
+
+IPython `pdb`
+=============
+
+.. image:: https://travis-ci.org/gotcha/ipdb.png?branch=master
+ :target: https://travis-ci.org/gotcha/ipdb
+.. image:: https://codecov.io/gh/gotcha/ipdb/branch/master/graphs/badge.svg?style=flat
+ :target: https://codecov.io/gh/gotcha/ipdb?branch=master
+
+Use
+---
+
+ipdb exports functions to access the IPython_ debugger, which features
+tab completion, syntax highlighting, better tracebacks, better introspection
+with the same interface as the `pdb` module.
+
+Example usage:
+
+.. code-block:: python
+
+ import ipdb
+ ipdb.set_trace()
+ ipdb.set_trace(context=5) # will show five lines of code
+ # instead of the default three lines
+ # or you can set it via IPDB_CONTEXT_SIZE env variable
+ # or setup.cfg file
+ ipdb.pm()
+ ipdb.run('x[0] = 3')
+ result = ipdb.runcall(function, arg0, arg1, kwarg='foo')
+ result = ipdb.runeval('f(1,2) - 3')
+
+
+Arguments for `set_trace`
++++++++++++++++++++++++++
+
+The `set_trace` function accepts `context` which will show as many lines of code as defined,
+and `cond`, which accepts boolean values (such as `abc == 17`) and will start ipdb's
+interface whenever `cond` equals to `True`.
+
+Using configuration file
+++++++++++++++++++++++++
+
+It's possible to set up context using a `.ipdb` file on your home folder, `setup.cfg`
+or `pyproject.toml` on your project folder. You can also set your file location via
+env var `$IPDB_CONFIG`. Your environment variable has priority over the home
+configuration file, which in turn has priority over the setup config file.
+Currently, only context setting is available.
+
+A valid setup.cfg is as follows
+
+::
+
+ [ipdb]
+ context=5
+
+
+A valid .ipdb is as follows
+
+::
+
+ context=5
+
+
+A valid pyproject.toml is as follows
+
+::
+
+ [tool.ipdb]
+ context=5
+
+
+The post-mortem function, ``ipdb.pm()``, is equivalent to the magic function
+``%debug``.
+
+.. _IPython: http://ipython.org
+
+If you install ``ipdb`` with a tool which supports ``setuptools`` entry points,
+an ``ipdb`` script is made for you. You can use it to debug your python 2 scripts like
+
+::
+
+ $ bin/ipdb mymodule.py
+
+And for python 3
+
+::
+
+ $ bin/ipdb3 mymodule.py
+
+Alternatively with Python 2.7 only, you can also use
+
+::
+
+ $ python -m ipdb mymodule.py
+
+You can also enclose code with the ``with`` statement to launch ipdb if an exception is raised:
+
+.. code-block:: python
+
+ from ipdb import launch_ipdb_on_exception
+
+ with launch_ipdb_on_exception():
+ [...]
+
+.. warning::
+ Context managers were introduced in Python 2.5.
+ Adding a context manager implies dropping Python 2.4 support.
+ Use ``ipdb==0.6`` with 2.4.
+
+Or you can use ``iex`` as a function decorator to launch ipdb if an exception is raised:
+
+.. code-block:: python
+
+ from ipdb import iex
+
+ @iex
+ def main():
+ [...]
+
+.. warning::
+ Using ``from future import print_function`` for Python 3 compat implies dropping Python 2.5 support.
+ Use ``ipdb<=0.8`` with 2.5.
+
+Issues with ``stdout``
+----------------------
+
+Some tools, like ``nose`` fiddle with ``stdout``.
+
+Until ``ipdb==0.9.4``, we tried to guess when we should also
+fiddle with ``stdout`` to support those tools.
+However, all strategies tried until 0.9.4 have proven brittle.
+
+If you use ``nose`` or another tool that fiddles with ``stdout``, you should
+explicitly ask for ``stdout`` fiddling by using ``ipdb`` like this
+
+.. code-block:: python
+
+ import ipdb
+ ipdb.sset_trace()
+ ipdb.spm()
+
+ from ipdb import slaunch_ipdb_on_exception
+ with slaunch_ipdb_on_exception():
+ [...]
+
+
+Development
+-----------
+
+``ipdb`` source code and tracker are at https://github.com/gotcha/ipdb.
+
+Pull requests should take care of updating the changelog ``HISTORY.txt``.
+
+Under the unreleased section, add your changes and your username.
+
+Manual testing
+++++++++++++++
+
+To test your changes, make use of ``manual_test.py``. Create a virtual environment,
+install IPython and run ``python manual_test.py`` and check if your changes are in effect.
+If possible, create automated tests for better behaviour control.
+
+Automated testing
++++++++++++++++++
+
+To run automated tests locally, create a virtual environment, install `coverage`
+and run `coverage run setup.py test`.
+
+Third-party support
+-------------------
+
+Products.PDBDebugMode
++++++++++++++++++++++
+
+Zope2 Products.PDBDebugMode_ uses ``ipdb``, if available, in place of ``pdb``.
+
+.. _Products.PDBDebugMode: http://pypi.python.org/pypi/Products.PDBDebugMode
+
+iw.debug
+++++++++
+
+iw.debug_ allows you to trigger an ``ipdb`` debugger on any published object
+of a Zope2 application.
+
+.. _iw.debug: http://pypi.python.org/pypi/iw.debug
+
+ipdbplugin
+++++++++++
+
+ipdbplugin_ is a nose_ test runner plugin that also uses the IPython debugger
+instead of ``pdb``. (It does not depend on ``ipdb`` anymore).
+
+.. _ipdbplugin: http://pypi.python.org/pypi/ipdbplugin
+.. _nose: http://readthedocs.org/docs/nose
+
+
+Changelog
+=========
+
+0.13.9 (2021-06-02)
+-------------------
+
+- Fix again when `pyproject.toml` does not contain `tool` section.
+ [markab108]
+
+
+0.13.8 (2021-05-26)
+-------------------
+
+- Fix when `pyproject.toml` does not contain `tool` section.
+ [anjos]
+
+- Add the convenience function ``iex()``.
+ [alanbernstein]
+
+
+0.13.7 (2021-03-16)
+-------------------
+
+- Do not instantiate IPython on import
+ [adamchainz]
+
+
+0.13.6 (2021-03-08)
+-------------------
+
+- Fix broken parsing of pyproject.toml
+ [alexandrebarbaruiva]
+
+
+0.13.5 (2021-03-02)
+-------------------
+
+- Add support for pyproject.toml as configuration file
+ [alexandrebarbaruiva]
+
+- For users using python 3.4, install 6.0.0 <= IPython < 7.0.0,
+ for users using python 3.5, install 7.0.0 <= IPython < 7.10.0,
+ for users using python 3.6, install 7.10.0 <= IPython < 7.17.0,
+ for users using python>3.6, install IPython >= 7.17.0.
+ [d1618033]
+
+
+0.13.4 (2020-10-01)
+-------------------
+
+- Add '-m' option
+ [mrmino]
+
+
+0.13.3 (2020-06-23)
+-------------------
+
+- Allow runcall, runeval to also use set context value
+ [meowser]
+
+- Add condition argument to set_trace
+ [alexandrebarbaruiva]
+
+
+0.13.2 (2020-03-03)
+-------------------
+
+- Remove leftover debug code
+ [gotcha]
+
+
+0.13.1 (2020-02-28)
+-------------------
+
+- Fix when no configuration file
+ [gotcha]
+
+
+0.13.0 (2020-02-28)
+-------------------
+
+- Add option to set context via environment variable or configuration file
+ [alexandrebarbaruiva]
+
+
+0.12.3 (2019-12-03)
+-------------------
+
+- Fix version in usage
+ [gotcha]
+
+
+0.12.2 (2019-07-30)
+-------------------
+
+- Avoid emitting term-title bytes
+ [steinnes]
+
+
+0.12.1 (2019-07-26)
+-------------------
+
+- Fix --help
+ [native-api]
+
+
+0.12 (2019-03-20)
+-----------------
+
+- Drop support for Python 3.3.x
+ [bmw]
+- Stop deprecation warnings from being raised when IPython >= 5.1 is used.
+ Support for IPython < 5.1 has been dropped.
+ [bmw]
+
+
+0.11 (2018-02-15)
+-----------------
+
+- Simplify loading IPython and getting information from it.
+ Drop support for python 2.6
+ Drop support for IPython < 5.0.0
+ [takluyver]
+
+
+0.10.3 (2017-04-22)
+-------------------
+
+- For users using python 2.6, do not install IPython >= 2.0.0.
+ And for users using python 2.7, do not install IPython >= 6.0.0.
+ [vphilippon]
+- Drop support for python 3.2.
+ [vphilippon]
+- Command line usage consistent with pdb - Add argument commands
+ [zvodd]
+
+
+0.10.2 (2017-01-25)
+-------------------
+
+- Ask IPython which debugger class to use.
+ Closes https://github.com/gotcha/ipdb/issues/105
+ [gnebehay, JBKahn]
+
+- ipdb.set_trace() does not ignore context arg anymore.
+ Closes https://github.com/gotcha/ipdb/issues/93.
+ [gnebehay, Garrett-R]
+
+
+0.10.1 (2016-06-14)
+-------------------
+
+- Support IPython 5.0.
+ [ngoldbaum]
+
+
+0.10.0 (2016-04-29)
+-------------------
+
+- Stop trying to magically guess when stdout needs to be captured.
+ Like needed by `nose`.
+ Rather, provide a set of function that can be called explicitely when needed.
+ [gotcha]
+
+- drop support of IPython before 0.10.2
+
+
+0.9.4 (2016-04-29)
+------------------
+
+- Fix Restart error when using `python -m ipdb`
+ Closes https://github.com/gotcha/ipdb/issues/93.
+ [gotcha]
+
+
+0.9.3 (2016-04-15)
+------------------
+
+- Don't require users to pass a traceback to post_mortem.
+ [Wilfred]
+
+
+0.9.2 (2016-04-15)
+------------------
+
+- Closes https://github.com/gotcha/ipdb/issues/93.
+ [gotcha]
+
+
+0.9.1 (2016-04-12)
+------------------
+
+- Reset ``sys.modules['__main__']`` to original value.
+ Closes https://github.com/gotcha/ipdb/issues/85
+ [gotcha]
+
+- Fix support of IPython versions 0.x
+ [asivokon]
+
+
+0.9.0 (2016-02-22)
+------------------
+
+- Switch to revised BSD license (with approval of all contributors).
+ Closes https://github.com/gotcha/ipdb/issues/68
+ [lebedov, gotcha]
+
+0.8.3 (2016-02-17)
+------------------
+
+- Don't pass sys.argv to IPython for configuration.
+ [emulbreh]
+
+
+0.8.2 (2016-02-15)
+------------------
+
+- Fix lexical comparison for version numbers.
+ [sas23]
+
+- Allow configuring how many lines of code context are displayed
+ by `set_trace`
+ [JamshedVesuna]
+
+- If an instance of IPython is already running its configuration will be
+ loaded.
+ [IxDay]
+
+
+0.8.1 (2015-06-03)
+------------------
+
+- Make Nose support less invasive.
+ Closes https://github.com/gotcha/ipdb/issues/52
+ Closes https://github.com/gotcha/ipdb/issues/31
+ [blink1073, gotcha]
+
+- Fix for post_mortem in context manager.
+ Closes https://github.com/gotcha/ipdb/issues/20
+ [omergertel]
+
+
+0.8 (2013-09-19)
+----------------
+
+- More Python 3 compatibility; implies dropping Python 2.5 support.
+ Closes https://github.com/gotcha/ipdb/issues/37
+ [gotcha]
+
+
+0.7.1 (2013-09-19)
+------------------
+
+- IPython 1.0 compatibility.
+ Closes https://github.com/gotcha/ipdb/issues/44
+ [pgularski]
+
+- Index into version_info in setup.py for Python 2.6 compatibility.
+ [kynan]
+
+- Add Travis CI configuration.
+ [kynan]
+
+0.7 (2012-07-06)
+----------------
+
+- Add ``launch_ipdb_on_exception`` context manager. Implies dropping Python 2.4 support.
+ [Psycojoker]
+
+- Wrap sys.excepthook only once.
+ [marciomazza]
+
+- Add GPL file and refer in headers.
+ [stan3]
+
+- Python 3 support.
+ [Piet Delport]
+
+- Basic tests.
+ [msabramo]
+
+- Added the functions ``runcall``, ``runeval`` and ``run``.
+ [dimasad]
+
+
+0.6.1 (2011-10-17)
+------------------
+
+- State dependency on IPython later or equal to 0.10.
+ [gotcha]
+
+
+0.6 (2011-09-01)
+----------------
+
+- Add setuptools ``console_scripts`` entry point.
+ [akrito, gotcha]
+
+- Nose support.
+ Closes https://github.com/gotcha/ipdb/issues/8
+ [akaihola, gotcha]
+
+
+0.5 (2011-08-05)
+----------------
+
+- IPython 0.11 support.
+ [lebedov]
+
+
+0.4 (2011-06-13)
+----------------
+
+- When used from IPython, use its colors.
+ Closes https://github.com/gotcha/ipdb/issues/1
+ [gotcha]
+
+- Fixed errors when exiting with "q".
+ [gotcha]
+
+- Allow use of ``python -m ipdb mymodule.py``.
+ Python 2.7 only.
+ Closes https://github.com/gotcha/ipdb/issues/3
+ [gotcha]
+
+- Fixed post_mortem when the traceback is None.
+ [maurits]
+
+
+0.3 (2011-01-16)
+----------------
+
+- Add ``post_mortem()`` for ``Products.PDBDebugMode`` support.
+ [Jean Jordaan]
+
+- Moved to github.com.
+
+
+0.2 (2010-10-20)
+----------------
+
+- Added ``pm()``.
+ [Paulo Benedict Ang]
+
+
+0.1 (2010-04-26)
+----------------
+
+- First "non dev" release.
+
+
diff --git a/contrib/python/ipdb/.dist-info/top_level.txt b/contrib/python/ipdb/.dist-info/top_level.txt
index 2895c6745b..19168ea109 100644
--- a/contrib/python/ipdb/.dist-info/top_level.txt
+++ b/contrib/python/ipdb/.dist-info/top_level.txt
@@ -1 +1 @@
-ipdb
+ipdb
diff --git a/contrib/python/ipdb/COPYING.txt b/contrib/python/ipdb/COPYING.txt
index a856543f8d..2e6b97774c 100644
--- a/contrib/python/ipdb/COPYING.txt
+++ b/contrib/python/ipdb/COPYING.txt
@@ -1,30 +1,30 @@
-Copyright (c) 2007-2019 ipdb development team
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-
-Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimer in the documentation
-and/or other materials provided with the distribution.
-
-Neither the name of the ipdb Development Team nor the names of its
-contributors may be used to endorse or promote products derived from this
-software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Copyright (c) 2007-2019 ipdb development team
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+Neither the name of the ipdb Development Team nor the names of its
+contributors may be used to endorse or promote products derived from this
+software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/contrib/python/ipdb/README.rst b/contrib/python/ipdb/README.rst
index db53082de7..96f6882d44 100644
--- a/contrib/python/ipdb/README.rst
+++ b/contrib/python/ipdb/README.rst
@@ -1,193 +1,193 @@
-IPython `pdb`
-=============
-
-.. image:: https://travis-ci.org/gotcha/ipdb.png?branch=master
- :target: https://travis-ci.org/gotcha/ipdb
-.. image:: https://codecov.io/gh/gotcha/ipdb/branch/master/graphs/badge.svg?style=flat
- :target: https://codecov.io/gh/gotcha/ipdb?branch=master
-
-Use
----
-
-ipdb exports functions to access the IPython_ debugger, which features
-tab completion, syntax highlighting, better tracebacks, better introspection
-with the same interface as the `pdb` module.
-
-Example usage:
-
-.. code-block:: python
-
- import ipdb
- ipdb.set_trace()
- ipdb.set_trace(context=5) # will show five lines of code
- # instead of the default three lines
- # or you can set it via IPDB_CONTEXT_SIZE env variable
- # or setup.cfg file
- ipdb.pm()
- ipdb.run('x[0] = 3')
- result = ipdb.runcall(function, arg0, arg1, kwarg='foo')
- result = ipdb.runeval('f(1,2) - 3')
-
-
-Arguments for `set_trace`
-+++++++++++++++++++++++++
-
-The `set_trace` function accepts `context` which will show as many lines of code as defined,
-and `cond`, which accepts boolean values (such as `abc == 17`) and will start ipdb's
-interface whenever `cond` equals to `True`.
-
-Using configuration file
-++++++++++++++++++++++++
-
-It's possible to set up context using a `.ipdb` file on your home folder, `setup.cfg`
-or `pyproject.toml` on your project folder. You can also set your file location via
-env var `$IPDB_CONFIG`. Your environment variable has priority over the home
-configuration file, which in turn has priority over the setup config file.
-Currently, only context setting is available.
-
-A valid setup.cfg is as follows
-
-::
-
- [ipdb]
- context=5
-
-
-A valid .ipdb is as follows
-
-::
-
- context=5
-
-
-A valid pyproject.toml is as follows
-
-::
-
- [tool.ipdb]
- context=5
-
-
-The post-mortem function, ``ipdb.pm()``, is equivalent to the magic function
-``%debug``.
-
-.. _IPython: http://ipython.org
-
-If you install ``ipdb`` with a tool which supports ``setuptools`` entry points,
-an ``ipdb`` script is made for you. You can use it to debug your python 2 scripts like
-
-::
-
- $ bin/ipdb mymodule.py
-
-And for python 3
-
-::
-
- $ bin/ipdb3 mymodule.py
-
-Alternatively with Python 2.7 only, you can also use
-
-::
-
- $ python -m ipdb mymodule.py
-
-You can also enclose code with the ``with`` statement to launch ipdb if an exception is raised:
-
-.. code-block:: python
-
- from ipdb import launch_ipdb_on_exception
-
- with launch_ipdb_on_exception():
- [...]
-
-.. warning::
- Context managers were introduced in Python 2.5.
- Adding a context manager implies dropping Python 2.4 support.
- Use ``ipdb==0.6`` with 2.4.
-
-Or you can use ``iex`` as a function decorator to launch ipdb if an exception is raised:
-
-.. code-block:: python
-
- from ipdb import iex
-
- @iex
- def main():
- [...]
-
-.. warning::
- Using ``from future import print_function`` for Python 3 compat implies dropping Python 2.5 support.
- Use ``ipdb<=0.8`` with 2.5.
-
-Issues with ``stdout``
-----------------------
-
-Some tools, like ``nose`` fiddle with ``stdout``.
-
-Until ``ipdb==0.9.4``, we tried to guess when we should also
-fiddle with ``stdout`` to support those tools.
-However, all strategies tried until 0.9.4 have proven brittle.
-
-If you use ``nose`` or another tool that fiddles with ``stdout``, you should
-explicitly ask for ``stdout`` fiddling by using ``ipdb`` like this
-
-.. code-block:: python
-
- import ipdb
- ipdb.sset_trace()
- ipdb.spm()
-
- from ipdb import slaunch_ipdb_on_exception
- with slaunch_ipdb_on_exception():
- [...]
-
-
-Development
------------
-
-``ipdb`` source code and tracker are at https://github.com/gotcha/ipdb.
-
-Pull requests should take care of updating the changelog ``HISTORY.txt``.
-
-Under the unreleased section, add your changes and your username.
-
-Manual testing
-++++++++++++++
-
-To test your changes, make use of ``manual_test.py``. Create a virtual environment,
-install IPython and run ``python manual_test.py`` and check if your changes are in effect.
-If possible, create automated tests for better behaviour control.
-
-Automated testing
-+++++++++++++++++
-
-To run automated tests locally, create a virtual environment, install `coverage`
-and run `coverage run setup.py test`.
-
-Third-party support
--------------------
-
-Products.PDBDebugMode
-+++++++++++++++++++++
-
-Zope2 Products.PDBDebugMode_ uses ``ipdb``, if available, in place of ``pdb``.
-
-.. _Products.PDBDebugMode: http://pypi.python.org/pypi/Products.PDBDebugMode
-
-iw.debug
-++++++++
-
-iw.debug_ allows you to trigger an ``ipdb`` debugger on any published object
-of a Zope2 application.
-
-.. _iw.debug: http://pypi.python.org/pypi/iw.debug
-
-ipdbplugin
-++++++++++
-
-ipdbplugin_ is a nose_ test runner plugin that also uses the IPython debugger
-instead of ``pdb``. (It does not depend on ``ipdb`` anymore).
-
-.. _ipdbplugin: http://pypi.python.org/pypi/ipdbplugin
-.. _nose: http://readthedocs.org/docs/nose
+IPython `pdb`
+=============
+
+.. image:: https://travis-ci.org/gotcha/ipdb.png?branch=master
+ :target: https://travis-ci.org/gotcha/ipdb
+.. image:: https://codecov.io/gh/gotcha/ipdb/branch/master/graphs/badge.svg?style=flat
+ :target: https://codecov.io/gh/gotcha/ipdb?branch=master
+
+Use
+---
+
+ipdb exports functions to access the IPython_ debugger, which features
+tab completion, syntax highlighting, better tracebacks, better introspection
+with the same interface as the `pdb` module.
+
+Example usage:
+
+.. code-block:: python
+
+ import ipdb
+ ipdb.set_trace()
+ ipdb.set_trace(context=5) # will show five lines of code
+ # instead of the default three lines
+ # or you can set it via IPDB_CONTEXT_SIZE env variable
+ # or setup.cfg file
+ ipdb.pm()
+ ipdb.run('x[0] = 3')
+ result = ipdb.runcall(function, arg0, arg1, kwarg='foo')
+ result = ipdb.runeval('f(1,2) - 3')
+
+
+Arguments for `set_trace`
++++++++++++++++++++++++++
+
+The `set_trace` function accepts `context` which will show as many lines of code as defined,
+and `cond`, which accepts boolean values (such as `abc == 17`) and will start ipdb's
+interface whenever `cond` equals to `True`.
+
+Using configuration file
+++++++++++++++++++++++++
+
+It's possible to set up context using a `.ipdb` file on your home folder, `setup.cfg`
+or `pyproject.toml` on your project folder. You can also set your file location via
+env var `$IPDB_CONFIG`. Your environment variable has priority over the home
+configuration file, which in turn has priority over the setup config file.
+Currently, only context setting is available.
+
+A valid setup.cfg is as follows
+
+::
+
+ [ipdb]
+ context=5
+
+
+A valid .ipdb is as follows
+
+::
+
+ context=5
+
+
+A valid pyproject.toml is as follows
+
+::
+
+ [tool.ipdb]
+ context=5
+
+
+The post-mortem function, ``ipdb.pm()``, is equivalent to the magic function
+``%debug``.
+
+.. _IPython: http://ipython.org
+
+If you install ``ipdb`` with a tool which supports ``setuptools`` entry points,
+an ``ipdb`` script is made for you. You can use it to debug your python 2 scripts like
+
+::
+
+ $ bin/ipdb mymodule.py
+
+And for python 3
+
+::
+
+ $ bin/ipdb3 mymodule.py
+
+Alternatively with Python 2.7 only, you can also use
+
+::
+
+ $ python -m ipdb mymodule.py
+
+You can also enclose code with the ``with`` statement to launch ipdb if an exception is raised:
+
+.. code-block:: python
+
+ from ipdb import launch_ipdb_on_exception
+
+ with launch_ipdb_on_exception():
+ [...]
+
+.. warning::
+ Context managers were introduced in Python 2.5.
+ Adding a context manager implies dropping Python 2.4 support.
+ Use ``ipdb==0.6`` with 2.4.
+
+Or you can use ``iex`` as a function decorator to launch ipdb if an exception is raised:
+
+.. code-block:: python
+
+ from ipdb import iex
+
+ @iex
+ def main():
+ [...]
+
+.. warning::
+ Using ``from future import print_function`` for Python 3 compat implies dropping Python 2.5 support.
+ Use ``ipdb<=0.8`` with 2.5.
+
+Issues with ``stdout``
+----------------------
+
+Some tools, like ``nose`` fiddle with ``stdout``.
+
+Until ``ipdb==0.9.4``, we tried to guess when we should also
+fiddle with ``stdout`` to support those tools.
+However, all strategies tried until 0.9.4 have proven brittle.
+
+If you use ``nose`` or another tool that fiddles with ``stdout``, you should
+explicitly ask for ``stdout`` fiddling by using ``ipdb`` like this
+
+.. code-block:: python
+
+ import ipdb
+ ipdb.sset_trace()
+ ipdb.spm()
+
+ from ipdb import slaunch_ipdb_on_exception
+ with slaunch_ipdb_on_exception():
+ [...]
+
+
+Development
+-----------
+
+``ipdb`` source code and tracker are at https://github.com/gotcha/ipdb.
+
+Pull requests should take care of updating the changelog ``HISTORY.txt``.
+
+Under the unreleased section, add your changes and your username.
+
+Manual testing
+++++++++++++++
+
+To test your changes, make use of ``manual_test.py``. Create a virtual environment,
+install IPython and run ``python manual_test.py`` and check if your changes are in effect.
+If possible, create automated tests for better behaviour control.
+
+Automated testing
++++++++++++++++++
+
+To run automated tests locally, create a virtual environment, install `coverage`
+and run `coverage run setup.py test`.
+
+Third-party support
+-------------------
+
+Products.PDBDebugMode
++++++++++++++++++++++
+
+Zope2 Products.PDBDebugMode_ uses ``ipdb``, if available, in place of ``pdb``.
+
+.. _Products.PDBDebugMode: http://pypi.python.org/pypi/Products.PDBDebugMode
+
+iw.debug
+++++++++
+
+iw.debug_ allows you to trigger an ``ipdb`` debugger on any published object
+of a Zope2 application.
+
+.. _iw.debug: http://pypi.python.org/pypi/iw.debug
+
+ipdbplugin
+++++++++++
+
+ipdbplugin_ is a nose_ test runner plugin that also uses the IPython debugger
+instead of ``pdb``. (It does not depend on ``ipdb`` anymore).
+
+.. _ipdbplugin: http://pypi.python.org/pypi/ipdbplugin
+.. _nose: http://readthedocs.org/docs/nose
diff --git a/contrib/python/ipdb/ipdb/__init__.py b/contrib/python/ipdb/ipdb/__init__.py
index dfad6f3939..75e8fed02a 100644
--- a/contrib/python/ipdb/ipdb/__init__.py
+++ b/contrib/python/ipdb/ipdb/__init__.py
@@ -4,7 +4,7 @@
# Redistributable under the revised BSD license
# https://opensource.org/licenses/BSD-3-Clause
-from ipdb.__main__ import set_trace, post_mortem, pm, run, iex # noqa
+from ipdb.__main__ import set_trace, post_mortem, pm, run, iex # noqa
from ipdb.__main__ import runcall, runeval, launch_ipdb_on_exception # noqa
from ipdb.stdout import sset_trace, spost_mortem, spm # noqa
diff --git a/contrib/python/ipdb/ipdb/__main__.py b/contrib/python/ipdb/ipdb/__main__.py
index 7bdd3c0225..68dc921dc9 100644
--- a/contrib/python/ipdb/ipdb/__main__.py
+++ b/contrib/python/ipdb/ipdb/__main__.py
@@ -8,54 +8,54 @@ from __future__ import print_function
import os
import sys
-from decorator import contextmanager
+from decorator import contextmanager
-__version__ = '0.13.9'
+__version__ = '0.13.9'
from IPython import get_ipython
from IPython.core.debugger import BdbQuit_excepthook
from IPython.terminal.ipapp import TerminalIPythonApp
from IPython.terminal.embed import InteractiveShellEmbed
-try:
- import configparser
-except:
- import ConfigParser as configparser
-
-
-def _get_debugger_cls():
- shell = get_ipython()
- if shell is None:
- # Not inside IPython
- # Build a terminal app in order to force ipython to load the
- # configuration
- ipapp = TerminalIPythonApp()
- # Avoid output (banner, prints)
- ipapp.interact = False
- ipapp.initialize(["--no-term-title"])
- shell = ipapp.shell
- else:
- # Running inside IPython
-
- # Detect if embed shell or not and display a message
- if isinstance(shell, InteractiveShellEmbed):
- sys.stderr.write(
- "\nYou are currently into an embedded ipython shell,\n"
- "the configuration will not be loaded.\n\n"
- )
-
- # Let IPython decide about which debugger class to use
- # This is especially important for tools that fiddle with stdout
- return shell.debugger_cls
-
-
-def _init_pdb(context=None, commands=[]):
- if context is None:
- context = os.getenv("IPDB_CONTEXT_SIZE", get_context_from_config())
- debugger_cls = _get_debugger_cls()
+try:
+ import configparser
+except:
+ import ConfigParser as configparser
+
+
+def _get_debugger_cls():
+ shell = get_ipython()
+ if shell is None:
+ # Not inside IPython
+ # Build a terminal app in order to force ipython to load the
+ # configuration
+ ipapp = TerminalIPythonApp()
+ # Avoid output (banner, prints)
+ ipapp.interact = False
+ ipapp.initialize(["--no-term-title"])
+ shell = ipapp.shell
+ else:
+ # Running inside IPython
+
+ # Detect if embed shell or not and display a message
+ if isinstance(shell, InteractiveShellEmbed):
+ sys.stderr.write(
+ "\nYou are currently into an embedded ipython shell,\n"
+ "the configuration will not be loaded.\n\n"
+ )
+
+ # Let IPython decide about which debugger class to use
+ # This is especially important for tools that fiddle with stdout
+ return shell.debugger_cls
+
+
+def _init_pdb(context=None, commands=[]):
+ if context is None:
+ context = os.getenv("IPDB_CONTEXT_SIZE", get_context_from_config())
+ debugger_cls = _get_debugger_cls()
try:
- p = debugger_cls(context=context)
+ p = debugger_cls(context=context)
except TypeError:
- p = debugger_cls()
+ p = debugger_cls()
p.rcLines.extend(commands)
return p
@@ -68,9 +68,9 @@ def wrap_sys_excepthook():
sys.excepthook = BdbQuit_excepthook
-def set_trace(frame=None, context=None, cond=True):
- if not cond:
- return
+def set_trace(frame=None, context=None, cond=True):
+ if not cond:
+ return
wrap_sys_excepthook()
if frame is None:
frame = sys._getframe().f_back
@@ -79,115 +79,115 @@ def set_trace(frame=None, context=None, cond=True):
p.shell.restore_sys_module_state()
-def get_context_from_config():
- try:
- parser = get_config()
- return parser.getint("ipdb", "context")
- except (configparser.NoSectionError, configparser.NoOptionError):
- return 3
- except ValueError:
- value = parser.get("ipdb", "context")
- raise ValueError(
- "In %s, context value [%s] cannot be converted into an integer."
- % (parser.filepath, value)
- )
-
-
-class ConfigFile(object):
- """
- Filehandle wrapper that adds a "[ipdb]" section to the start of a config
- file so that users don't actually have to manually add a [ipdb] section.
- Works with configparser versions from both Python 2 and 3
- """
-
- def __init__(self, filepath):
- self.first = True
- with open(filepath) as f:
- self.lines = f.readlines()
-
- # Python 2.7 (Older dot versions)
- def readline(self):
- try:
- return self.__next__()
- except StopIteration:
- return ''
-
- # Python 2.7 (Newer dot versions)
- def next(self):
- return self.__next__()
-
- # Python 3
- def __iter__(self):
- return self
-
- def __next__(self):
- if self.first:
- self.first = False
- return "[ipdb]\n"
- if self.lines:
- return self.lines.pop(0)
- raise StopIteration
-
-
-def get_config():
- """
- Get ipdb config file settings.
- All available config files are read. If settings are in multiple configs,
- the last value encountered wins. Values specified on the command-line take
- precedence over all config file settings.
- Returns: A ConfigParser object.
- """
- parser = configparser.ConfigParser()
-
- filepaths = []
-
- # Low priority goes first in the list
- for cfg_file in ("setup.cfg", ".ipdb", "pyproject.toml"):
- cwd_filepath = os.path.join(os.getcwd(), cfg_file)
- if os.path.isfile(cwd_filepath):
- filepaths.append(cwd_filepath)
-
- # Medium priority (whenever user wants to set a specific path to config file)
- home = os.getenv("HOME")
- if home:
- default_filepath = os.path.join(home, ".ipdb")
- if os.path.isfile(default_filepath):
- filepaths.append(default_filepath)
-
- # High priority (default files)
- env_filepath = os.getenv("IPDB_CONFIG")
- if env_filepath and os.path.isfile(env_filepath):
- filepaths.append(env_filepath)
-
- if filepaths:
- # Python 3 has parser.read_file(iterator) while Python2 has
- # parser.readfp(obj_with_readline)
- try:
- read_func = parser.read_file
- except AttributeError:
- read_func = parser.readfp
- for filepath in filepaths:
- parser.filepath = filepath
- # Users are expected to put an [ipdb] section
- # only if they use setup.cfg
- if filepath.endswith('setup.cfg'):
- with open(filepath) as f:
- parser.remove_section("ipdb")
- read_func(f)
- # To use on pyproject.toml, put [tool.ipdb] section
- elif filepath.endswith('pyproject.toml'):
- import toml
- toml_file = toml.load(filepath)
- if "tool" in toml_file and "ipdb" in toml_file["tool"]:
- if not parser.has_section("ipdb"):
- parser.add_section("ipdb")
- for key, value in toml_file["tool"]["ipdb"].items():
- parser.set("ipdb", key, str(value))
- else:
- read_func(ConfigFile(filepath))
- return parser
-
-
+def get_context_from_config():
+ try:
+ parser = get_config()
+ return parser.getint("ipdb", "context")
+ except (configparser.NoSectionError, configparser.NoOptionError):
+ return 3
+ except ValueError:
+ value = parser.get("ipdb", "context")
+ raise ValueError(
+ "In %s, context value [%s] cannot be converted into an integer."
+ % (parser.filepath, value)
+ )
+
+
+class ConfigFile(object):
+ """
+ Filehandle wrapper that adds a "[ipdb]" section to the start of a config
+ file so that users don't actually have to manually add a [ipdb] section.
+ Works with configparser versions from both Python 2 and 3
+ """
+
+ def __init__(self, filepath):
+ self.first = True
+ with open(filepath) as f:
+ self.lines = f.readlines()
+
+ # Python 2.7 (Older dot versions)
+ def readline(self):
+ try:
+ return self.__next__()
+ except StopIteration:
+ return ''
+
+ # Python 2.7 (Newer dot versions)
+ def next(self):
+ return self.__next__()
+
+ # Python 3
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ if self.first:
+ self.first = False
+ return "[ipdb]\n"
+ if self.lines:
+ return self.lines.pop(0)
+ raise StopIteration
+
+
+def get_config():
+ """
+ Get ipdb config file settings.
+ All available config files are read. If settings are in multiple configs,
+ the last value encountered wins. Values specified on the command-line take
+ precedence over all config file settings.
+ Returns: A ConfigParser object.
+ """
+ parser = configparser.ConfigParser()
+
+ filepaths = []
+
+ # Low priority goes first in the list
+ for cfg_file in ("setup.cfg", ".ipdb", "pyproject.toml"):
+ cwd_filepath = os.path.join(os.getcwd(), cfg_file)
+ if os.path.isfile(cwd_filepath):
+ filepaths.append(cwd_filepath)
+
+ # Medium priority (whenever user wants to set a specific path to config file)
+ home = os.getenv("HOME")
+ if home:
+ default_filepath = os.path.join(home, ".ipdb")
+ if os.path.isfile(default_filepath):
+ filepaths.append(default_filepath)
+
+ # High priority (default files)
+ env_filepath = os.getenv("IPDB_CONFIG")
+ if env_filepath and os.path.isfile(env_filepath):
+ filepaths.append(env_filepath)
+
+ if filepaths:
+ # Python 3 has parser.read_file(iterator) while Python2 has
+ # parser.readfp(obj_with_readline)
+ try:
+ read_func = parser.read_file
+ except AttributeError:
+ read_func = parser.readfp
+ for filepath in filepaths:
+ parser.filepath = filepath
+ # Users are expected to put an [ipdb] section
+ # only if they use setup.cfg
+ if filepath.endswith('setup.cfg'):
+ with open(filepath) as f:
+ parser.remove_section("ipdb")
+ read_func(f)
+ # To use on pyproject.toml, put [tool.ipdb] section
+ elif filepath.endswith('pyproject.toml'):
+ import toml
+ toml_file = toml.load(filepath)
+ if "tool" in toml_file and "ipdb" in toml_file["tool"]:
+ if not parser.has_section("ipdb"):
+ parser.add_section("ipdb")
+ for key, value in toml_file["tool"]["ipdb"].items():
+ parser.set("ipdb", key, str(value))
+ else:
+ read_func(ConfigFile(filepath))
+ return parser
+
+
def post_mortem(tb=None):
wrap_sys_excepthook()
p = _init_pdb()
@@ -228,12 +228,12 @@ def launch_ipdb_on_exception():
pass
-# iex is a concise alias
-iex = launch_ipdb_on_exception()
-
-
+# iex is a concise alias
+iex = launch_ipdb_on_exception()
+
+
_usage = """\
-usage: python -m ipdb [-m] [-c command] ... pyfile [arg] ...
+usage: python -m ipdb [-m] [-c command] ... pyfile [arg] ...
Debug the Python program given by pyfile.
@@ -244,9 +244,9 @@ and in the current directory, if they exist. Commands supplied with
To let the script run until an exception occurs, use "-c continue".
To let the script run up to a given line X in the debugged file, use
"-c 'until X'"
-
-Option -m is available only in Python 3.7 and later.
-
+
+Option -m is available only in Python 3.7 and later.
+
ipdb version %s.""" % __version__
@@ -260,37 +260,37 @@ def main():
except ImportError:
class Restart(Exception):
pass
-
- if sys.version_info >= (3, 7):
- opts, args = getopt.getopt(sys.argv[1:], 'mhc:', ['help', 'command='])
- else:
- opts, args = getopt.getopt(sys.argv[1:], 'hc:', ['help', 'command='])
+
+ if sys.version_info >= (3, 7):
+ opts, args = getopt.getopt(sys.argv[1:], 'mhc:', ['help', 'command='])
+ else:
+ opts, args = getopt.getopt(sys.argv[1:], 'hc:', ['help', 'command='])
commands = []
- run_as_module = False
+ run_as_module = False
for opt, optarg in opts:
if opt in ['-h', '--help']:
print(_usage)
sys.exit()
elif opt in ['-c', '--command']:
commands.append(optarg)
- elif opt in ['-m']:
- run_as_module = True
+ elif opt in ['-m']:
+ run_as_module = True
+
+ if not args:
+ print(_usage)
+ sys.exit(2)
- if not args:
- print(_usage)
- sys.exit(2)
-
mainpyfile = args[0] # Get script filename
- if not run_as_module and not os.path.exists(mainpyfile):
+ if not run_as_module and not os.path.exists(mainpyfile):
print('Error:', mainpyfile, 'does not exist')
sys.exit(1)
sys.argv = args # Hide "pdb.py" from argument list
# Replace pdb's dir with script's dir in front of module search path.
- if not run_as_module:
- sys.path[0] = os.path.dirname(mainpyfile)
+ if not run_as_module:
+ sys.path[0] = os.path.dirname(mainpyfile)
# Note on saving/restoring sys.argv: it's a good idea when sys.argv was
# modified by the script being debugged. It's a bad idea when it was
@@ -299,10 +299,10 @@ def main():
pdb = _init_pdb(commands=commands)
while 1:
try:
- if run_as_module:
- pdb._runmodule(mainpyfile)
- else:
- pdb._runscript(mainpyfile)
+ if run_as_module:
+ pdb._runmodule(mainpyfile)
+ else:
+ pdb._runscript(mainpyfile)
if pdb._user_requested_quit:
break
print("The program finished and will be restarted")
@@ -322,6 +322,6 @@ def main():
print("Post mortem debugger finished. The " + mainpyfile +
" will be restarted")
-
+
if __name__ == '__main__':
main()
diff --git a/contrib/python/ipdb/ya.make b/contrib/python/ipdb/ya.make
index f28e07f17d..c1c769c05c 100644
--- a/contrib/python/ipdb/ya.make
+++ b/contrib/python/ipdb/ya.make
@@ -4,10 +4,10 @@ LICENSE(BSD-3-Clause)
OWNER(orivej g:python-contrib)
-VERSION(0.13.9)
+VERSION(0.13.9)
PEERDIR(
- contrib/python/decorator
+ contrib/python/decorator
contrib/python/ipython
)
@@ -29,10 +29,10 @@ NO_CHECK_IMPORTS(
ipdb.stdout
)
-RESOURCE_FILES(
- PREFIX contrib/python/ipdb/
- .dist-info/METADATA
- .dist-info/top_level.txt
-)
-
+RESOURCE_FILES(
+ PREFIX contrib/python/ipdb/
+ .dist-info/METADATA
+ .dist-info/top_level.txt
+)
+
END()