Mercurial > hg > orthanc-book
diff Sphinx/source/plugins/python.rst @ 369:181b02cea7ab
inspecting Python API
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 02 Apr 2020 08:39:41 +0200 |
parents | 234de55ed125 |
children | cb1d9a5bb043 847996394688 |
line wrap: on
line diff
--- a/Sphinx/source/plugins/python.rst Wed Apr 01 08:49:06 2020 +0200 +++ b/Sphinx/source/plugins/python.rst Thu Apr 02 08:39:41 2020 +0200 @@ -348,6 +348,42 @@ orthanc.RegisterRestCallback('/pydicom/(.*)', DecodeInstance) # (*) +.. _python-introspection: + +Inspecting the available API +............................ + +.. highlight:: python + +Thanks to Python's introspection primitives, it is possible to inspect +the API of the ``orthanc`` module in order to dump all the available +features:: + + import inspect + import numbers + import orthanc + + # Loop over the members of the "orthanc" module + for (name, obj) in inspect.getmembers(orthanc): + if inspect.isroutine(obj): + print('Function %s():\n Documentation: %s\n' % (name, inspect.getdoc(obj))) + + elif inspect.isclass(obj): + print('Class %s:\n Documentation: %s' % (name, inspect.getdoc(obj))) + + # Loop over the members of the class + for (subname, subobj) in inspect.getmembers(obj): + if isinstance(subobj, numbers.Number): + print(' - Enumeration value %s: %s' % (subname, subobj)) + elif (not subname.startswith('_') and + inspect.ismethoddescriptor(subobj)): + print(' - Method %s(): %s' % (subname, inspect.getdoc(subobj))) + print('') + + + + + Performance and concurrency ---------------------------