Skip to content

Instantly share code, notes, and snippets.

@aconz2
Last active September 29, 2017 21:30
Show Gist options
  • Save aconz2/e389a7c36ac608511ac99e4e31376b15 to your computer and use it in GitHub Desktop.
Save aconz2/e389a7c36ac608511ac99e4e31376b15 to your computer and use it in GitHub Desktop.
inspect example
def mystery_fun(sess : requests.Session):
pass
sess_arg = inspect.signature(mystery_fun).parameters['sess']
inspect.getmembers(sess_arg.annotation, inspect.isfunction)
import requests
import inspect
from terminaltables import AsciiTable
module_docs = [(x,str(inspect.signature(y)), (inspect.getdoc(y) or '')[:20] + '...') for x,y in inspect.getmembers(requests, inspect.isfunction)]
print(inspect.getmodule(requests))
print(AsciiTable([('Name', 'Signature', 'Doc')] + module_docs).table)
sess = requests.Session()
method_docs = [(x,str(inspect.signature(y)), (inspect.getdoc(y) or '')[:20] + '...') for x,y in inspect.getmembers(sess, inspect.ismethod)]
print('{} in {}'.format(type(sess), inspect.getmodule(sess)))
print(AsciiTable([('Name', 'Signature', 'Doc')] + method_docs).table)
<module 'requests' from '/home/andrew/.local/lib/python3.6/site-packages/requests/__init__.py'>
+---------------------+---------------------------------------+-------------------------+
| Name | Signature | Doc |
+---------------------+---------------------------------------+-------------------------+
| check_compatibility | (urllib3_version, chardet_version) | ... |
| delete | (url, **kwargs) | Sends a DELETE reque... |
| get | (url, params=None, **kwargs) | Sends a GET request.... |
| head | (url, **kwargs) | Sends a HEAD request... |
| options | (url, **kwargs) | Sends an OPTIONS req... |
| patch | (url, data=None, **kwargs) | Sends a PATCH reques... |
| post | (url, data=None, json=None, **kwargs) | Sends a POST request... |
| put | (url, data=None, **kwargs) | Sends a PUT request.... |
| request | (method, url, **kwargs) | Constructs and sends... |
| session | () | Returns a :class:`Se... |
+---------------------+---------------------------------------+-------------------------+
<class 'requests.sessions.Session'> in <module 'requests.sessions' from '/home/andrew/.local/lib/python3.6/site-packages/requests/sessions.py'>
+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+
| Name | Signature | Doc |
+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+
| __enter__ | () | ... |
| __exit__ | (*args) | ... |
| __getstate__ | () | ... |
| __init__ | () | Initialize self. Se... |
| __setstate__ | (state) | ... |
| close | () | Closes all adapters ... |
| delete | (url, **kwargs) | Sends a DELETE reque... |
| get | (url, **kwargs) | Sends a GET request.... |
| get_adapter | (url) | Returns the appropri... |
| get_redirect_target | (resp) | Receives a Response.... |
| head | (url, **kwargs) | Sends a HEAD request... |
| merge_environment_settings | (url, proxies, stream, verify, cert) | Check the environmen... |
| mount | (prefix, adapter) | Registers a connecti... |
| options | (url, **kwargs) | Sends a OPTIONS requ... |
| patch | (url, data=None, **kwargs) | Sends a PATCH reques... |
| post | (url, data=None, json=None, **kwargs) | Sends a POST request... |
| prepare_request | (request) | Constructs a :class:... |
| put | (url, data=None, **kwargs) | Sends a PUT request.... |
| rebuild_auth | (prepared_request, response) | When being redirecte... |
| rebuild_method | (prepared_request, response) | When being redirecte... |
| rebuild_proxies | (prepared_request, proxies) | This method re-evalu... |
| request | (method, url, params=None, data=None, headers=None, cookies=None, files=None, auth=None, timeout=None, allow_redirects=True, proxies=None, hooks=None, stream=None, verify=None, cert=None, json=None) | Constructs a :class:... |
| resolve_redirects | (resp, req, stream=False, timeout=None, verify=True, cert=None, proxies=None, yield_requests=False, **adapter_kwargs) | Receives a Response.... |
| send | (request, **kwargs) | Send a given Prepare... |
+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment