Timur Izhbulatov — Independent Electronic Music

Simple pure Python config

Sat, 23 Apr 2011 04:20:00 in Tech stuff | permalink

config python

(lambda path:
    open(path, 'w').write('path = %r' % path) or
    globals().__setitem__('__name__', None) or
    type(
        repr('config:' + path),
        (),
        (lambda d:
            execfile(path, {}, d) or d
        )({})
    )()
)('config.py')

This ugly single expression hack illustrates the approach that can be used to create config objects from Python source files.

And here's how it can be made step-by-step

>>> (lambda path: path)('config.py')
'config.py'
>>> (lambda path: globals().__setitem__('__name__', None) or path)('config.py')
'config.py'
>>> (lambda path: globals().__setitem__('__name__', None) or type('', (), {})())('config.py')
< object at 0x1004cc790>
>>> (lambda path: globals().__setitem__('__name__', None) or type(repr('config:' + path), (), {})())('config.py')
<'config:config.py' object at 0x1004cc850>
>>> (lambda path: globals().__setitem__('__name__', None) or type(repr('config:' + path), (), (lambda d: execfile(path, {}, d) or d)({}))())('config.py')
<'config:config.py' object at 0x1004cca50>
>>> (lambda path: globals().__setitem__('__name__', None) or type(repr('config:' + path), (), (lambda d: execfile(path, {}, d) or d)({}))())('config.py').path
'config.py'