Skip to main content

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

Project description

MorfDict

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']
'/tmp/home/myname'

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']
'/tmp/home/myname'

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/default.py. 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 “local.py”, 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”.

Project details


Download files

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

Source Distribution

MorfDict-0.4.7.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

MorfDict-0.4.7-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file MorfDict-0.4.7.tar.gz.

File metadata

  • Download URL: MorfDict-0.4.7.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for MorfDict-0.4.7.tar.gz
Algorithm Hash digest
SHA256 70ffb419e6b615fcebce45b6783ef4272a5eb88818ebbeda7dd18e3eae1e4199
MD5 0071c4b5fea47a218b0300c9fd0459fc
BLAKE2b-256 7e77d606e30e0b4ba143530ace8607e8a7dbf6cd2f7b84c95dd0be1c6ac2a2ac

See more details on using hashes here.

File details

Details for the file MorfDict-0.4.7-py3-none-any.whl.

File metadata

File hashes

Hashes for MorfDict-0.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8fd827da87a2577402dc87b87c64a39d54f02418103380b4b098bb80cb75bc84
MD5 02d31c1554a8b6f9126a45a6b993cd9b
BLAKE2b-256 171db1802fd925a11b2f26661d748305006e94b5e0e315b0cdf8b8944cf3bb79

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page