~facundo/enjuewemela/trunk

« back to all changes in this revision

Viewing changes to enjuewemela/config_schema.py

  • Committer: facundo at com
  • Date: 2011-07-31 16:49:14 UTC
  • mfrom: (72.1.7 some-fixes)
  • Revision ID: facundo@taniquetil.com.ar-20110731164914-0at88mfphkmzshgk
Lot of small fixes, more internationalization, better configglue usage, enhanced code quality.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from configglue.pyschema.options import BoolConfigOption, StringConfigOption
2
 
from configglue.pyschema.schema import Schema
 
1
try:
 
2
    from configglue.schema import BoolOption, StringOption, Schema
 
3
except ImportError:
 
4
    # old way to do it
 
5
    from configglue.pyschema.options import (
 
6
        BoolConfigOption as BoolOption,
 
7
        StringConfigOption as StringOption,
 
8
    )
 
9
    from configglue.pyschema.schema import Schema
3
10
 
4
11
SOUND_VALS = 'Mute 10 20 30 40 50 60 70 80 90 100'.split()
5
12
 
6
 
class EnumConfigOption(StringConfigOption):
 
13
 
 
14
class EnumConfigOption(StringOption):
7
15
    """Config that allow different options."""
8
16
 
9
17
    def __init__(self, values, default=None):
24
32
 
25
33
class ConfigSchema(Schema):
26
34
    """Schema for the configuration."""
27
 
    username = StringConfigOption(default='anonymous')
28
 
    fullscreen = BoolConfigOption()
 
35
    username = StringOption(default='anonymous')
 
36
    fullscreen = BoolOption()
29
37
    sound_volume = EnumConfigOption(values=SOUND_VALS, default='70')
30
38
    music_volume = EnumConfigOption(values=SOUND_VALS, default='70')