blob: f04b7b422cf51b67586703f2ae09eb86c1ce6ba9 [file] [log] [blame]
``funcsigs`` is a backport of the `PEP 362`_ function signature features from
Python 3.3's `inspect`_ module. The backport is compatible with Python 2.6, 2.7
as well as 3.2 and up.
The reference documentation is standard library documentation for the
`inspect`_ module in Python3. This documentation has been included in the
``funcsigs`` package documentation hosted on `Read The Docs`_.
To obtain a signature object, pass the target function to the
``funcsigs.signature`` function. ::
>>> from funcsigs import signature
>>> def foo(a, b=None, *args, **kwargs):
... pass
>>> sig = signature(foo)
For the details of the signature object, refer to the either the package of
standard library documentation.
The ``funcsigs`` backport has been tested against:
* CPython 2.6
* CPython 2.7
* CPython 3.2
* PyPy 1.9
Continuous integration testing is provided by `Travis CI`_.
Under Python 2.x there is a compatability issue when a function is assigned to
the ``__wrapped__`` property of a class after it has been constructed.
Similiarily there under PyPy directly passing the ``__call__`` method of a
builtin is also a compatability issues. Otherwise the functionality is
believed to be uniform between both Python2 and Python3.
Source code for ``funcsigs`` is hosted on `GitHub`_. Any bug reports or feature
requests can be made using GitHub's `issues system`_. |build_status| |coverage|
This is a derived work of CPython under the terms of the `PSF License
Agreement`_. The original CPython inspect module, its unit tests and
documentation are the copyright of the Python Software Foundation. The derived
work is distributed under the `Apache License Version 2.0`_.
.. _Apache License Version 2.0:
.. _GitHub:
.. _PSF License Agreement:
.. _Travis CI:
.. _Read The Docs:
.. _PEP 362:
.. _inspect:
.. _issues system:
.. |build_status| image::
:alt: Current build status
.. |coverage| image::
:alt: Coverage status
.. |pypi_version| image::
:alt: Latest PyPI version