Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

MorfDict is a dict like object, which convers data on the fly.

Project Description


MorfDict is a dict like object, which convers data late on the fly.

>> from morfdict import MorfDict
>> data = MorfDict()
>> data['first'] = 'my data'
>> data['first']
'my data'
>> data.set_morf('first', lambda obj, value: '*' + value + '*')
>> data['first']
'*my data*'

If you want to make your own default morf method, just ovveride _default_morf method.

>> class MyMorf(MorfDict):
>>    def _default_morf(self, obj, value):
>>        return '*' + value + '*'

StringDict class

StringDict is MorfDict whith default interpolation for itself.

>> from morfdict import StringDict
>> data = StringDict()
>> data['first'] = 'one'
>> data['second'] = '%(first)s two'
>> data['second']
'one two'

PathDict class

PathDict is designed for storing paths.

>> from morfdict import PathDict
>> paths = PathDict({'base' : '/tmp'})
>> paths['home'] = ['%(base)s', 'home', 'myname']
>> paths['home']

Or you can make this:

>> from morfdict import PathDict
>> paths = PathDict({'base' : '/tmp'})
>> paths.set_path('main', 'base', 'home')
>> paths.set_path('home', 'main', 'myname')
>> paths['home']

Factory class

If we want to use ‘modulename.settings’ where ‘modulename’ is our main module and ‘settings’ is our settins module.

>> from morfdict import Factory
>> factory = Factory('modulename', 'settings')
>> settings, paths = factory.make_settings()

It will read the settings from modulename/settings/ This file should looks like this:

>> def make_settings(settings, paths):
>>     settings['name'] = 'value'

If we want to add some additional files for settings, like “”, we can do this:

>> settings, paths = factory.make_settings(additional_modules=[('local', False)])

This is the default behavior. The bool means “raise error on missing module”.

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(12.2 kB) Copy SHA256 Hash SHA256
Wheel 3.6 Sep 4, 2017
(16.0 kB) Copy SHA256 Hash SHA256
Source None Sep 4, 2017

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting