human
I wrote the below code

    if (version is None):
        if hasattr(sys, '_getframe'):
            module = sys._getframe(1).f_globals.get('__name__')
        else:
            module = ''
    def decorator(f):
        prog_name = attrs.pop('prog_name', None)
        message = attrs.pop('message', '%(prog)s,    version    %(version)s')
        def callback(ctx, param, value):
            if ((not value) or ctx.resilient_parsing):
                return
            prog = prog_name
            if (prog is None):
                prog = ctx.find_root().info_name
            ver = version
            if (ver is None):
                try:
                    import pkg_resources
                except ImportError:
                    pass
                else:
                    for dist in pkg_resources.working_set:
                        scripts = (dist.get_entry_map().get('console_scripts') or {})
                        for (script_name, entry_point) in iteritems(scripts):
                            if (entry_point.module_name == module):
                                ver = dist.version
                                break
                if (ver is None):
                    raise RuntimeError('Could    not    determine    version')
            echo((message % {'prog': prog, 'version': ver}), color=ctx.color)
            ctx.exit()
        attrs.setdefault('is_flag', True)
        attrs.setdefault('expose_value', False)
        attrs.setdefault('is_eager', True)
        attrs.setdefault('help', 'Show    the    version    and    exit.')
        attrs['callback'] = callback
        return option(*(param_decls or ('--version',)), **attrs)(f)
    return decorator

What's a good function header?
assistant
#Here is Python program to determine    version')
.

def version_option(version=None, *param_decls, **attrs):