#!/usr/bin/env python
# This script is generated with chut. Do NOT edit this file.
# All your changes will be lost at the next generation.

version = 'unknown'

import base64, json, types, zlib, sys, os
os.environ['CHUTIFIED'] = '1'
PY3 = sys.version_info[0] == 3
_chut_modules = []
_chut_modules.append(('six', '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\n'))
_chut_modules.append(('docopt', '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\n'))
_chut_modules.append(('ConfigObject', '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\nHpp7vcBJLTMSBP8F6/lKqQ==\n'))
_chut_modules.append(('chut', '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\n'))
for name, code in _chut_modules:
    if PY3:
        if isinstance(code, str):
            code = code.encode('utf-8')
    else:
        name = bytes(name)
    code = zlib.decompress(base64.decodestring(code))
    mod = types.ModuleType(name)
    globs = dict()
    if PY3:
        if isinstance(code, bytes):
            code = code.decode('utf-8')
        exec(code, globs)
    else:
        exec('exec code in globs')
    mod.__dict__.update(globs)
    if name == 'chut':
        mod.wraps_module(mod)
    else:
        sys.modules[name] = mod
from chut import env
# -*- coding: utf-8 -*-
__doc__ = """Generate this page"""
from chut import *  # noqa

TEMPLATE = '''
%(binary)s
=========================================================

.. literalinclude:: ../chut/examples/%(filename)s
   :language: python

Get standalone `%(binary)s <_static/binaries/%(binary)s>`_

'''


@console_script
def example(args):
    fd = open('docs/examples.rst', 'w')
    fd.write((
    '==========================\n'
    'Examples\n'
    '==========================\n\n'))
    for filename in sorted(find('chut/examples -name *.py')):
        scripts = list(grep('-A1 -E @.*console_script', filename))
        if not scripts:
            continue
        filename = path.basename(filename)
        scripts = [s[4:].split('(')[0] for s in scripts if s[0] != '@']
        binary = scripts[0].replace('_', '-')
        fd.write(TEMPLATE % dict(filename=filename, binary=binary))
    fd.close()

if __name__ == '__main__':
    example()
