summaryrefslogtreecommitdiffstats
path: root/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info
diff options
context:
space:
mode:
Diffstat (limited to 'venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info')
-rw-r--r--venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/INSTALLER1
-rw-r--r--venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/LICENSE73
-rw-r--r--venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/METADATA141
-rw-r--r--venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/RECORD16
-rw-r--r--venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/WHEEL4
5 files changed, 235 insertions, 0 deletions
diff --git a/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/INSTALLER b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/INSTALLER
new file mode 100644
index 00000000..a1b589e3
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/INSTALLER
@@ -0,0 +1 @@
+pip
diff --git a/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/LICENSE b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/LICENSE
new file mode 100644
index 00000000..50d4fa5e
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/LICENSE
@@ -0,0 +1,73 @@
+The MIT License (MIT)
+
+Copyright (c) 2022 Alex Grönholm
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+This project contains code copied from the Python standard library.
+The following is the required license notice for those parts.
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Python Software Foundation;
+All Rights Reserved" are retained in Python alone or in any derivative version
+prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee. This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
diff --git a/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/METADATA b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/METADATA
new file mode 100644
index 00000000..2930c85b
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/METADATA
@@ -0,0 +1,141 @@
+Metadata-Version: 2.1
+Name: exceptiongroup
+Version: 1.1.1
+Summary: Backport of PEP 654 (exception groups)
+Author-email: Alex Grönholm <alex.gronholm@nextday.fi>
+Requires-Python: >=3.7
+Description-Content-Type: text/x-rst
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Typing :: Typed
+Requires-Dist: pytest >= 6 ; extra == "test"
+Project-URL: Changelog, https://github.com/agronholm/exceptiongroup/blob/main/CHANGES.rst
+Project-URL: Issue Tracker, https://github.com/agronholm/exceptiongroup/issues
+Project-URL: Source code, https://github.com/agronholm/exceptiongroup
+Provides-Extra: test
+
+.. image:: https://github.com/agronholm/exceptiongroup/actions/workflows/test.yml/badge.svg
+ :target: https://github.com/agronholm/exceptiongroup/actions/workflows/test.yml
+ :alt: Build Status
+.. image:: https://coveralls.io/repos/github/agronholm/exceptiongroup/badge.svg?branch=main
+ :target: https://coveralls.io/github/agronholm/exceptiongroup?branch=main
+ :alt: Code Coverage
+
+This is a backport of the ``BaseExceptionGroup`` and ``ExceptionGroup`` classes from
+Python 3.11.
+
+It contains the following:
+
+* The ``exceptiongroup.BaseExceptionGroup`` and ``exceptiongroup.ExceptionGroup``
+ classes
+* A utility function (``exceptiongroup.catch()``) for catching exceptions possibly
+ nested in an exception group
+* Patches to the ``TracebackException`` class that properly formats exception groups
+ (installed on import)
+* An exception hook that handles formatting of exception groups through
+ ``TracebackException`` (installed on import)
+* Special versions of some of the functions from the ``traceback`` module, modified to
+ correctly handle exception groups even when monkey patching is disabled, or blocked by
+ another custom exception hook:
+
+ * ``traceback.format_exception()``
+ * ``traceback.format_exception_only()``
+ * ``traceback.print_exception()``
+ * ``traceback.print_exc()``
+
+If this package is imported on Python 3.11 or later, the built-in implementations of the
+exception group classes are used instead, ``TracebackException`` is not monkey patched
+and the exception hook won't be installed.
+
+See the `standard library documentation`_ for more information on exception groups.
+
+.. _standard library documentation: https://docs.python.org/3/library/exceptions.html
+
+Catching exceptions
+===================
+
+Due to the lack of the ``except*`` syntax introduced by `PEP 654`_ in earlier Python
+versions, you need to use ``exceptiongroup.catch()`` to catch exceptions that are
+potentially nested inside an exception group. This function returns a context manager
+that calls the given handler for any exceptions matching the sole argument.
+
+The argument to ``catch()`` must be a dict (or any ``Mapping``) where each key is either
+an exception class or an iterable of exception classes. Each value must be a callable
+that takes a single positional argument. The handler will be called at most once, with
+an exception group as an argument which will contain all the exceptions that are any
+of the given types, or their subclasses. The exception group may contain nested groups
+containing more matching exceptions.
+
+Thus, the following Python 3.11+ code:
+
+.. code-block:: python3
+
+ try:
+ ...
+ except* (ValueError, KeyError) as excgroup:
+ for exc in excgroup.exceptions:
+ print('Caught exception:', type(exc))
+ except* RuntimeError:
+ print('Caught runtime error')
+
+would be written with this backport like this:
+
+.. code-block:: python3
+
+ from exceptiongroup import ExceptionGroup, catch
+
+ def value_key_err_handler(excgroup: ExceptionGroup) -> None:
+ for exc in excgroup.exceptions:
+ print('Caught exception:', type(exc))
+
+ def runtime_err_handler(exc: ExceptionGroup) -> None:
+ print('Caught runtime error')
+
+ with catch({
+ (ValueError, KeyError): value_key_err_handler,
+ RuntimeError: runtime_err_handler
+ }):
+ ...
+
+**NOTE**: Just like with ``except*``, you cannot handle ``BaseExceptionGroup`` or
+``ExceptionGroup`` with ``catch()``.
+
+Notes on monkey patching
+========================
+
+To make exception groups render properly when an unhandled exception group is being
+printed out, this package does two things when it is imported on any Python version
+earlier than 3.11:
+
+#. The ``traceback.TracebackException`` class is monkey patched to store extra
+ information about exception groups (in ``__init__()``) and properly format them (in
+ ``format()``)
+#. An exception hook is installed at ``sys.excepthook``, provided that no other hook is
+ already present. This hook causes the exception to be formatted using
+ ``traceback.TracebackException`` rather than the built-in rendered.
+
+If ``sys.exceptionhook`` is found to be set to something else than the default when
+``exceptiongroup`` is imported, no monkeypatching is done at all.
+
+To prevent the exception hook and patches from being installed, set the environment
+variable ``EXCEPTIONGROUP_NO_PATCH`` to ``1``.
+
+Formatting exception groups
+---------------------------
+
+Normally, the monkey patching applied by this library on import will cause exception
+groups to be printed properly in tracebacks. But in cases when the monkey patching is
+blocked by a third party exception hook, or monkey patching is explicitly disabled,
+you can still manually format exceptions using the special versions of the ``traceback``
+functions, like ``format_exception()``, listed at the top of this page. They work just
+like their counterparts in the ``traceback`` module, except that they use a separately
+patched subclass of ``TracebackException`` to perform the rendering.
+
+Particularly in cases where a library installs its own exception hook, it is recommended
+to use these special versions to do the actual formatting of exceptions/tracebacks.
+
+.. _PEP 654: https://www.python.org/dev/peps/pep-0654/
+
diff --git a/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/RECORD b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/RECORD
new file mode 100644
index 00000000..f47229ba
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/RECORD
@@ -0,0 +1,16 @@
+exceptiongroup-1.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+exceptiongroup-1.1.1.dist-info/LICENSE,sha256=blBw12UDHgrUA6HL-Qrm0ZoCKPgC4yC3rP9GCqcu1Hw,3704
+exceptiongroup-1.1.1.dist-info/METADATA,sha256=gcXVTozLLdDgq64e3WpHXs0PxyQFEWZ9nrULx5I9Zz0,6083
+exceptiongroup-1.1.1.dist-info/RECORD,,
+exceptiongroup-1.1.1.dist-info/WHEEL,sha256=rSgq_JpHF9fHR1lx53qwg_1-2LypZE_qmcuXbVUq948,81
+exceptiongroup/__init__.py,sha256=Zr-MMWDXFMdrRBC8nS8UFqATRQL0Z-Lb-SANqs-uu0I,920
+exceptiongroup/__pycache__/__init__.cpython-39.pyc,,
+exceptiongroup/__pycache__/_catch.cpython-39.pyc,,
+exceptiongroup/__pycache__/_exceptions.cpython-39.pyc,,
+exceptiongroup/__pycache__/_formatting.cpython-39.pyc,,
+exceptiongroup/__pycache__/_version.cpython-39.pyc,,
+exceptiongroup/_catch.py,sha256=m7BHRSU_kKy_pqMISPArf99zW1RgMG00i8623f7_sEo,3578
+exceptiongroup/_exceptions.py,sha256=xYztS-tSD7-c3IhflF2yZQr5ab7LcvVH18mT8lxzaVk,9772
+exceptiongroup/_formatting.py,sha256=HvArXuIyt0I8Wh4S3akamBSekPslCdCFqTnR6byEPVQ,19475
+exceptiongroup/_version.py,sha256=YLzlJBLuVqQyUSlkA30f-5TxKHA1-kSXwKvyg5nAOSc,160
+exceptiongroup/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
diff --git a/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/WHEEL b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/WHEEL
new file mode 100644
index 00000000..db4a255f
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/exceptiongroup-1.1.1.dist-info/WHEEL
@@ -0,0 +1,4 @@
+Wheel-Version: 1.0
+Generator: flit 3.8.0
+Root-Is-Purelib: true
+Tag: py3-none-any