Skip to main content
SmallSettings
=============

In many projects (web applicatons in particular) there is a need of making a settings. For application we need a 3 types of settings.
* Application settings (for example: application name)
* Envoritment settings (for example: url to database)
* Dynamic settings (for example: what ads to we show today)

SmallSettings provides solusion for the first 2 types of settings (the third one should be stored in the database).
The second problem with settings is wrapping some settings. Sometimes you have to wrap var from app settings in envoritment settings, and sometime you have to do the oposit. SmallSettings has a solution for this.

Settings classes
========
First we look at the "Settings" class.

>> from smallsettings import Settings
>> settings = Settings({'base_settings': 1})
>> settings['base_settings']
1

Pretty normal dict. But it have a special features:

>> settings['something'] = 'new settings %(base_settings)s'
>> settings['something']
'new settings 1'

We can now ovveride the 'base_settings':

>> settings['base_settings'] = 2
>> settings['something']
'new settings 2'

Second, the "Paths" class.

>> from smallsettings import Paths
>> paths = Paths({'base' : '/tmp'})
>> paths['base']
'/tmp'
>> paths['home'] = '/home'
>> paths['home']
'/home'

But using previous var is slite different, because the Paths class use os.path.join:

>> paths['me'] = ['%(home)s', 'me']
>> paths['me']
'/home/me'

If we want to "merge" settings and paths, we co do this:

>> merged = settings.merged(paths)
>> merged['something']
'new settings 2'
>> merged['me']
'/home/me'

Factory
=======

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

>> from smallsettings 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".

Metadata

Release files for SmallSettings 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for SmallSettings 0.2.2
File Size Uploaded
SmallSettings-0.2.2.tar.gz 5.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for SmallSettings 0.2.2
File Interpreter ABI Platform
SmallSettings-0.2.2-py3.3.egg Legacy Egg format - - Details
SmallSettings-0.2.2-py2.7.egg Legacy Egg format - - Details

Total release size: 36.3 kB

Release files / SmallSettings-0.2.2.tar.gz

Download URL SmallSettings-0.2.2.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
40d61408d07d813ad0ccfaaecacbec544f6a90af28493ae733f9c3e3e1e9fc57
BLAKE2b-256 checksum
How to use checksums
8490eb3ba4ca9cf986fc2c064d2310632ee0255ef40058b31f99cc14f0f1073c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / SmallSettings-0.2.2-py3.3.egg

Download URL SmallSettings-0.2.2-py3.3.egg
Size 16.1 kB
Tags Egg
SHA-256 checksum
How to use checksums
bfd6fe1a98da99c151106c3abe8443814671cd4fd9cd9331d5c768d616d92e83
BLAKE2b-256 checksum
How to use checksums
d24407cf7465f09a11a9f9513af4bebd25e2322078bdcbc678db7257860f63a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / SmallSettings-0.2.2-py2.7.egg

Download URL SmallSettings-0.2.2-py2.7.egg
Size 15.2 kB
Tags Egg
SHA-256 checksum
How to use checksums
71b2bc1265c192e2410c0d8506b2180777d88a8c0265e1582dfcad4052224851
BLAKE2b-256 checksum
How to use checksums
d66a0593841ab4746bdf302be77eb78fe3068ead9de55d87790a121f50752eae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.2 This release

3 release files

0.2.1

2 release files

0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page