Emmanuel Garette
8ccfba1671
factorise Option and OptionDescription init
2013-09-02 20:37:23 +02:00
Emmanuel Garette
f106f3ced7
cannot set properties if those properties are in requirement
2013-09-02 19:47:00 +02:00
Emmanuel Garette
4636a977cc
requirements: calculate all requirements for an option
2013-09-02 17:13:43 +02:00
gwen
5624a69e41
merge
2013-09-02 15:11:38 +02:00
gwen
7dd9394b84
makefile and docstrings
2013-09-02 15:06:55 +02:00
Emmanuel Garette
2c1da6d72e
an OptionDescription can be serialized
2013-09-02 15:01:49 +02:00
Emmanuel Garette
d3ee2acaab
can export options
2013-09-01 22:20:11 +02:00
Emmanuel Garette
82b375ade5
- add "make build-pot" to build or update translations/tiramisu.pot files
...
- corrections in error's message in tiramisu/option.py
- update tiramisu.pot
- update fr's translation
2013-08-31 09:54:23 +02:00
Emmanuel Garette
5893f8ad72
attributes in Option are now read-only if option set in Config (_name is everytime read-only)
2013-08-30 21:15:55 +02:00
gwen
5efc62af09
docstring setpermissive
2013-08-29 09:32:32 +02:00
Emmanuel Garette
8aa4260404
test force_default_on_freeze with multi and correction in Multi()
2013-08-28 22:50:35 +02:00
Emmanuel Garette
7f755e0ef8
setpermissive should have opt has option
2013-08-28 22:05:44 +02:00
gwen
fbf05ba5e4
python 3 compatibility
...
remove __eq__ and __ne__ in Option
2013-08-28 21:13:42 +02:00
Emmanuel Garette
776524a22d
pep8
2013-08-28 09:18:48 +02:00
Emmanuel Garette
397a600be7
pep8
2013-08-28 09:16:12 +02:00
Emmanuel Garette
3be005e82e
add test test/test_dereference.py + memoryleaks in optiondescription's cache
2013-08-27 21:36:52 +02:00
Emmanuel Garette
d75cef9c0f
pep8
2013-08-27 17:13:20 +02:00
gwen
a894a5e27b
rename API add_owner -> addowner
2013-08-27 16:12:53 +02:00
Emmanuel Garette
acd27fb56c
huge use of weakrefs to remove memoryleaks due to circular references
2013-08-27 11:39:32 +02:00
Emmanuel Garette
36def6533f
store session in dictionary storage
2013-08-27 09:46:52 +02:00
Emmanuel Garette
fb1eba39ea
save storage with get_storage
...
list_sessions and delete_session is now in setting directly
2013-08-26 21:54:41 +02:00
Emmanuel Garette
0bc47b1cf9
ConstError in tiramisu/error.py
...
storage_type is now unique
rename _const => _NameSpace
can change storage's options in set_storage
storage :
add Setting object in storage
rename enumerate to list_sessions
rename delete to delete_session
auto-create owner when load sqlite3 storage and in getowner
2013-08-26 21:48:42 +02:00
gwen
551b9fb1e3
getting stated documentation
2013-08-26 17:14:14 +02:00
Emmanuel Garette
6b9d5aed59
add enumerate and delete method for manage storage
2013-08-25 21:57:11 +02:00
Emmanuel Garette
dc2c173b44
revert change in append of Multi object for sqlite3 storage
2013-08-25 20:51:29 +02:00
Emmanuel Garette
dcb12dac02
can change storage with set_storage, storage's name is store in storage object and storage is create with get_storage
2013-08-25 20:49:24 +02:00
Emmanuel Garette
36ed6f874f
add some tests for values
...
cannot use __setitem__ to set value for an option
in append, len should not greater than master option
2013-08-25 18:06:07 +02:00
Emmanuel Garette
f482737a47
add test to known if has a value + some corrections
2013-08-24 23:10:35 +02:00
Emmanuel Garette
e4c129efc5
getowner need now an option
2013-08-24 22:32:54 +02:00
Emmanuel Garette
4c27cb586d
in __setattr__, name should never be object's variable name
...
remove context in type_ find's option
find_first_context return AttributError if no results
2013-08-24 21:26:10 +02:00
Emmanuel Garette
6708fe4522
is not config in other, __neq__ should return True
2013-08-24 18:04:19 +02:00
Emmanuel Garette
a7d784ba3e
is not config in other, __neq__ should return True
2013-08-24 18:04:11 +02:00
Emmanuel Garette
196d270cc9
_calc_requirement is a set, not a tuple
2013-08-24 16:34:08 +02:00
Emmanuel Garette
c2b16d2605
add _path in reset for performance + more tests
2013-08-24 16:30:46 +02:00
gwen
0db7ef72a6
automatic API documentation
2013-08-23 11:16:26 +02:00
Emmanuel Garette
f8422c03e8
reqpath is get from option, so reqpath ever exists, cannot raise AttributeError
2013-08-22 22:52:29 +02:00
Emmanuel Garette
04aa4e6bf1
never same calculated properties has properties (only in cache)
2013-08-22 22:48:09 +02:00
gwen
747d994762
documentation on the requirements and docstring updates
2013-08-22 11:08:26 +02:00
Emmanuel Garette
1ddd88fc99
some corrections in sqlite3 storage
2013-08-21 23:21:28 +02:00
Emmanuel Garette
b6bb685ca5
key is now always path and change opt by path dictionary storage
2013-08-21 22:21:50 +02:00
Emmanuel Garette
707a215a2c
pep8
2013-08-21 18:34:32 +02:00
gwen
acca6d5a27
documentation update and docstrings
2013-08-21 17:21:09 +02:00
gwen
7d2449380c
documentation and docstring updates
2013-08-21 14:52:48 +02:00
gwen
a431b46fb9
Merge branch 'master' of ssh://git.labs.libre-entreprise.org/gitroot/tiramisu
2013-08-21 11:10:15 +02:00
gwen
defae40a2f
documentation update and docstrings
2013-08-21 11:09:11 +02:00
Emmanuel Garette
cc569efcc7
pep8
2013-08-20 23:00:20 +02:00
Emmanuel Garette
0d5a447eb3
add persistent option for db
2013-08-20 22:45:11 +02:00
Emmanuel Garette
d971448d02
pep8
2013-08-20 16:48:19 +02:00
Emmanuel Garette
2e8c75a602
merge from val_prop_plugin branch
2013-08-20 16:45:54 +02:00
Emmanuel Garette
82b0e26568
merge from val_prop_plugin branch
2013-08-20 16:44:52 +02:00
gwen
5c8bb1f8f9
documentation update
2013-08-20 16:38:06 +02:00
Emmanuel Garette
ace7f6f828
merge from master
2013-08-20 16:33:32 +02:00
gwen
564fecc261
pep 8 lines too long
2013-08-20 12:08:02 +02:00
Emmanuel Garette
e826f3d1c6
we can personalise storage easily
2013-08-20 09:47:12 +02:00
Emmanuel Garette
df7d6759cd
add sqlite plugin
2013-08-19 11:01:21 +02:00
Emmanuel Garette
f6f709f83d
split cache/value/setting in plugin
2013-08-14 23:06:31 +02:00
Emmanuel Garette
513722ed57
corrections in tiramisu's setting
2013-07-23 14:24:42 +02:00
Emmanuel Garette
e9ffd96a28
update translation
2013-07-18 21:25:07 +02:00
Emmanuel Garette
e6c3104681
translation
2013-07-17 23:05:43 +02:00
Emmanuel Garette
bc054d75af
translation
2013-07-17 23:02:50 +02:00
Emmanuel Garette
15ac8c2872
update french translation
2013-07-17 22:30:35 +02:00
Emmanuel Garette
8056387f02
return true error message when validation
2013-07-17 20:48:46 +02:00
Emmanuel Garette
de44daafeb
- can reset directly custom settings for an option: setting[option].reset()
...
- option properties are now tuple in internal, and change it to set when needed (that coping data)
2013-07-13 10:42:10 +02:00
gwen
a95f19d5f4
default settings
2013-07-12 16:20:34 +02:00
Emmanuel Garette
c53d574ac2
can't use RESERVED address in IPOption and NetworkOption
2013-07-11 23:06:26 +02:00
Emmanuel Garette
1c951558da
add new option's type: PortOption
2013-07-11 23:05:33 +02:00
Emmanuel Garette
c06659012b
Config: __str__ raise if no str/unicode value
2013-07-03 21:56:31 +02:00
Emmanuel Garette
0afb521766
support multi requirement with inverse for same option
2013-07-03 15:04:15 +02:00
gwen
b80bef0f7e
string.format with numeric parameters
2013-07-02 15:05:50 +02:00
Emmanuel Garette
4b5d9b4229
__str__ method could return unicode object, force to decode in str
2013-07-01 16:49:10 +02:00
Emmanuel Garette
b8bfa02e02
Remove 'build_actions' in 'apply_requires', now 'validate_requires_arg' build requires with tuple of tuple
...
New _requires format:
- requirement (like old format)
- tuple of requirements, each items are a tuple of requirement with same action
2013-07-01 11:55:32 +02:00
Emmanuel Garette
9b134c3aa7
requirement are now a dictionary (not anymore a tuple)
2013-06-29 18:41:14 +02:00
Emmanuel Garette
e501c6d12d
support multi requires with inverse set to True
2013-06-28 11:59:51 +02:00
Emmanuel Garette
75f7e7ce5d
callback with option in params which is in an hidden optiondescription
2013-06-26 16:26:42 +02:00
Emmanuel Garette
32de14b731
validate_requires_arg return requires list
2013-06-26 16:25:02 +02:00
Emmanuel Garette
3c0629e6a9
better raise message if try to launch impl_get_information/impl_set_information in uncompatible class
2013-06-14 17:52:57 +02:00
Emmanuel Garette
4d15c91383
symlink support for getowner and raise if option in master/slave
2013-06-13 22:06:49 +02:00
Emmanuel Garette
c2471320c3
apply_requires: add property if any property raise PropertyError if same_action is False
2013-06-13 14:43:51 +02:00
Emmanuel Garette
755b2312c2
allow None in requirement
2013-06-13 12:15:46 +02:00
Emmanuel Garette
fd02a954ca
add sort, reverse, insert and extend in Multi
2013-06-12 22:48:22 +02:00
Emmanuel Garette
9c47eb32d5
ConfigError, not PropertiesOptionError if cannot access to option in carry_out_calculation
2013-06-12 17:07:29 +02:00
Emmanuel Garette
0d114001f4
Works callback/multi/master-slave
...
- in multi, never modify _default value
- _reset slave when _reset master
- if append None in master with callback return not a list, replace None by the value
- list support in slave
2013-06-12 10:22:50 +02:00
Emmanuel Garette
b2538f6f0b
support of non multi variable
2013-06-11 15:31:20 +02:00
Emmanuel Garette
6d1cf308b2
Better support for slave with callback:
...
- callback must return single value, not a list
- if default value, append slave values with master len
- if not default and append, set default value
2013-06-11 15:12:31 +02:00
gwen
22f0aab0a8
fix i18n
2013-06-10 17:45:03 +02:00
gwen
9cf30d214d
raise ConfigError
2013-06-10 17:12:57 +02:00
gwen
1c70a07d7e
transitivity in the requirements
2013-06-10 15:19:00 +02:00
Emmanuel Garette
2751a2694a
RequirementRecursiveError => RequirementError
...
Properties in "apply_requires" are now transitive (but only if tested property is in properties list)
New requirement option (a boolean), don't touch properties if PropertyError in "apply_requires"
2013-05-31 23:30:00 +02:00
gwen
c6c422f472
docstrings and api
2013-05-23 17:51:50 +02:00
gwen
879a415e75
add docstrings
2013-05-23 14:55:52 +02:00
gwen
0e6032dd88
new api documentation
2013-05-21 18:42:56 +02:00
gwen
480ed190aa
Merge branch 'master' of ssh://git.labs.libre-entreprise.org/gitroot/tiramisu
2013-05-21 11:38:02 +02:00
gwen
9acb522791
doc is ready for the new api refactoring
2013-05-21 11:37:39 +02:00
Emmanuel Garette
e131fdc5a5
add cfgimpl_get_children for MetaConfig and informations
2013-05-21 11:09:09 +02:00
Emmanuel Garette
1d8c248d1b
Multi: don't touch slave's value if it's default one's + don't check slave properties (if, for example, disabled for example)
2013-05-21 11:09:09 +02:00
gwen
988bd659b8
refactoring the doc for the 0.55 new API
2013-05-15 17:35:49 +02:00
gwen
89dca8d707
suppress get_consistencies() method
2013-05-14 17:40:42 +02:00
Emmanuel Garette
536eb27904
multi, None and validation
2013-05-10 22:34:07 +02:00
gwen
bd489346a9
docstrings
2013-05-10 16:02:27 +02:00
Emmanuel Garette
c91e7eff97
if not need, don't validate
2013-05-10 16:00:53 +02:00
Emmanuel Garette
fa5d643aee
tiramisu/autolib.py: optimpl_ => impl_
...
tiramisu/option.py: consistency simplication and allow multi
tiramisu/option.py: don't touch cache if force_permissive or force_properties
tiramisu/values.py: set validate paramaters in Multi()
2013-05-10 15:10:06 +02:00
Emmanuel Garette
6ffd71a43e
DomainnameOption now works with default value
2013-05-10 09:27:54 +02:00
Emmanuel Garette
6de65859b4
* config herite from BaseInformation class
...
* _cfgimpl_ => _impl_
* optimpl_ => impl_
* properties/permissives are now set/frozenset
* validation raise ValueError if not valid, didn't return anything otherwise
* consistencies are now validate in setting and when deleting value
* ip/network with netmask consistency now works
* DomainnameOption now works
* if no validation, don't set cache for value
* symlinkoption: remove path (not used)
2013-05-08 18:14:42 +02:00
Emmanuel Garette
1b29793e0f
compare option
2013-05-05 21:43:19 +02:00
Emmanuel Garette
2d57ed160e
work on MetaConfig
2013-05-02 11:34:57 +02:00
Emmanuel Garette
9ceaa4b235
tiramisu/i18n.py: pep8 compliants
2013-05-02 11:23:47 +02:00
Emmanuel Garette
bcfc0cd41b
tiramisu/setting.py: _get_properties and validate_properties are now more easier to read and has best performance
2013-05-02 11:23:04 +02:00
Emmanuel Garette
2c5bbb7bc0
Requires need option, not path
...
Valid requires
2013-04-26 14:40:44 +02:00
Emmanuel Garette
509f41e14c
missing properties in PropertiesOptionError
2013-04-24 17:40:16 +02:00
Emmanuel Garette
f28288fbba
In make_dict check PropertyConfigError for OptionDescription
...
Begin work's on MetaConfig
2013-04-24 11:47:01 +02:00
Emmanuel Garette
2e21f13387
force_store_value store value but not in write mode
2013-04-23 16:43:39 +02:00
Philippe Caseiro
e8bc84ab33
Ajout des fichiers de traduction et mise à jour de i18n.py
...
Support du chargement des locales
2013-04-23 16:30:24 +02:00
Emmanuel Garette
7cd44d6886
remove an unused callback in test
2013-04-23 11:41:16 +02:00
Emmanuel Garette
20fe56e03d
tiramisu/values: _empty should not validate with defaultvalue, defaultvalue is already in value
2013-04-23 10:41:47 +02:00
Emmanuel Garette
e5de0234c2
don't raise if check_disabled is True
2013-04-22 20:42:54 +02:00
Emmanuel Garette
ec88d817ae
missing import
2013-04-22 16:48:56 +02:00
Emmanuel Garette
1fd5f685de
callback must be a function and validator support same paramaters has callback
2013-04-22 16:48:13 +02:00
Emmanuel Garette
e883e5b89e
remove _setoption in SymLinkOption
...
objimpl_ => optimpl_
ConflictConfigError => ConflictError
add read_write/read_only/getowner in Config
2013-04-22 09:19:05 +02:00
Emmanuel Garette
682d9fe207
add option name's validation and rename Option method with objimpl_
2013-04-20 21:58:52 +02:00
Emmanuel Garette
d4ef47759e
Manipulate properties is now more convenient:
...
c.cfgimpl_get_settings().has_property('hidden') => 'hidden' in c.cfgimpl_get_settings()
c.cfgimpl_get_settings().has_property('hidden', option1) => 'frozen' in c.cfgimpl_get_settings()[opt]
c.cfgimpl_get_settings().get_properties(option1) => c.cfgimpl_get_settings()[option1]
c.cfgimpl_get_settings().get_properties(option1) => c.cfgimpl_get_settings()[option1]
c.cfgimpl_get_settings().add_property('hidden', option1) => c.cfgimpl_get_settings()[optiont1].append('hidden')
c.cfgimpl_get_settings().del_property('hidden', option1) => c.cfgimpl_get_settings()[optiont1].remove('hidden')
c.cfgimpl_get_settings().enable_property('hidden') => c.cfgimpl_get_settings().append('hidden')
c.cfgimpl_get_settings().disable_property('hidden') => c.cfgimpl_get_settings().remove('hidden')
2013-04-20 17:30:05 +02:00
Emmanuel Garette
54fe8d0f4b
cache for properties is now in get_properties and not for validate_properties
2013-04-20 11:25:14 +02:00
Emmanuel Garette
a11768ef43
remove expired cache with config.cfgimpl_reset_cache(True)
2013-04-19 22:42:33 +02:00
Emmanuel Garette
d7b5d9dc16
add SlaveError for slave's length
2013-04-19 20:23:34 +02:00
Emmanuel Garette
410add6a2a
add SlaveError for slave's length
2013-04-19 20:10:55 +02:00
Emmanuel Garette
e08bd93cd8
all multi gestion is now in Multi
2013-04-18 23:06:14 +02:00
Emmanuel Garette
324c3d2cf6
* to "reset" a value, now you just have to delete it
...
config.unwrap_from_path("string").reset(config) => del(config.string)
* add cache for value/setting to 5 secds
to "reset" cache just do: config.cfgimpl_clean_cache()
* can desactivate cache by removing "expire" property
2013-04-18 20:26:40 +02:00
Emmanuel Garette
d5e1cb6576
pass force_properties to value's _setitem and remove config's setoption
2013-04-17 23:19:53 +02:00
Emmanuel Garette
5e67522f91
_empty is u'' for UnicodeOption
2013-04-17 22:06:10 +02:00
Emmanuel Garette
eea96cc3d1
MultiTypeError => ValueError
2013-04-17 21:57:06 +02:00
Emmanuel Garette
80438b1495
Rename AmbigousOptionError as ConflictOptionError
2013-04-17 21:50:31 +02:00
Emmanuel Garette
3170237c8e
properties validation not in setting and now launch when modify multi
2013-04-17 21:33:34 +02:00
Emmanuel Garette
656b751995
mandatory is a true property (no more MandatoryError) + tests
2013-04-16 22:44:16 +02:00
Emmanuel Garette
6097f3af84
only catch PropertiesOptionError
2013-04-16 12:04:20 +02:00
Emmanuel Garette
16801ad1b2
SubConfig: first argument must be a OD
2013-04-16 11:51:48 +02:00
Emmanuel Garette
90999585fa
auto_store_value => force_store_value
2013-04-16 11:30:02 +02:00
Emmanuel Garette
447c175b6a
Add "force_store_value" property. If set, store, for example, calculated value as owner values.
...
So calculated value are calculate only one time.
2013-04-16 09:45:42 +02:00
Emmanuel Garette
1f0bb88bc1
add cons_lower + DomainnameOption
2013-04-16 09:34:00 +02:00
Emmanuel Garette
9357b342c1
review exception
2013-04-14 12:01:32 +02:00
Emmanuel Garette
fbcbbfbd2b
consistencies now a list
2013-04-14 10:14:06 +02:00
Emmanuel Garette
9644dd3661
add gettext support
2013-04-13 23:09:05 +02:00
Emmanuel Garette
9c2dcc164c
attribute in Option now starts with '_'
...
add ValidateError
add consistancies in Option
remove byattr in find
2013-04-13 22:50:55 +02:00
Emmanuel Garette
26568dc45a
Values validate now value
2013-04-11 11:30:58 +02:00
Emmanuel Garette
0c5ab9df18
don't launch apply_requires more than needed
2013-04-08 16:12:23 +02:00
Emmanuel Garette
67e67a5020
NoValueReturn is not needed now + apply_requires is now in settings
2013-04-08 16:05:56 +02:00
Emmanuel Garette
d8b68fa1ec
suppress _cfgimpl_parent and _cfgimpl_get_path() from SubConfig
2013-04-05 16:59:48 +02:00
Emmanuel Garette
88ea962d82
tiramisu/config.py: _cfgimpl_subconfigs is not used
2013-04-05 12:31:50 +02:00
Emmanuel Garette
d100d66548
tiramisu/config.py can specify return type for find ('option', 'value', 'path') and remove get
...
user need replace config.get(value) by config.find(byname="value", type_='value')
2013-04-05 12:20:33 +02:00
Emmanuel Garette
c918191d21
permissives are for a specified option not config
2013-04-04 15:14:16 +02:00
Emmanuel Garette
9006dca09f
set permissive to cfgimpl_get_home_by_path
2013-04-04 12:16:18 +02:00
Emmanuel Garette
e9902d8ce2
rewrite make_dict
2013-04-04 11:24:00 +02:00