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
Emmanuel Garette
6105191d9c
tiramisu/value.py : self.opt => opt + disable permissive in read_write mode
2013-04-03 17:05:41 +02:00
Emmanuel Garette
e6f00948f3
optimisations and all is properties
2013-04-03 12:20:26 +02:00
gwen
8181d1b596
build cache builds correctly now
2013-03-27 17:01:20 +01:00
Garette Emmanuel
201f9d6db4
remise en fonction des self._cfgimpl_slots
2013-03-27 16:41:22 +01:00
Garette Emmanuel
d00153787d
Le cache des paths est dans l'OptionDescription
...
Utilisation des slots pour la Config
Il faut 566Mo de mémoire pour charger 50 variantes de 100 serveurs chacuns (5000 serveurs en tout).
ref #5111
2013-03-27 16:17:45 +01:00
Garette Emmanuel
899f864f8d
works on performante
2013-03-26 10:29:49 +01:00
Garette Emmanuel
4f3db9cbc6
support break in iterator
2013-03-25 14:21:30 +01:00
Garette Emmanuel
39c8e2eb0b
add import and name => opt._name
2013-03-25 11:45:21 +01:00
Garette Emmanuel
f6a14e3223
add UnicodeOption
2013-03-20 12:37:27 +01:00
Garette Emmanuel
087f7e3a75
cfgimpl_permissive is not the permissive param
2013-03-14 17:51:51 +01:00
Garette Emmanuel
9e81ae4737
get_home_by_path is a public method
2013-03-14 16:07:26 +01:00
Garette Emmanuel
15beeda0f0
add permissive in config
2013-03-14 11:31:44 +01:00
Garette Emmanuel
783e982c9b
informations attribute finally works
2013-03-13 11:29:29 +01:00
Garette Emmanuel
e1357fd5c5
adds information attribute to an option
2013-03-12 17:45:28 +01:00
Garette Emmanuel
729feb3239
adds information attribute to an option
2013-03-12 16:54:39 +01:00
gwen
11ad037af9
iter on all objects
2013-03-07 11:02:18 +01:00
Garette Emmanuel
9b3eb33d27
generate correct len for slave if no value
2013-03-06 17:17:33 +01:00
gwen
c26b0ca12b
Merge branch 'master' of ssh://git.labs.libre-entreprise.org/gitroot/tiramisu
2013-03-06 09:34:07 +01:00
gwen
4660f58608
valid name accepts only str type
2013-03-06 09:22:56 +01:00
gwen
e360a07a21
BaseType refactoring
2013-03-01 13:10:52 +01:00
gwen
df3753c36b
finally a getvalue without a getattr
2013-02-27 11:09:13 +01:00
gwen
c40d33fec3
type shall not be a list
2013-02-27 08:50:41 +01:00
gwen
1f1e5e5d26
type shall not be a list
2013-02-26 17:04:41 +01:00
gwen
e515ec145d
type shall not be a list
2013-02-26 16:58:44 +01:00
gwen
151bc83ba5
previous value api
2013-02-26 14:56:15 +01:00
gwen
762b0e9c69
is_empty
2013-02-26 14:31:45 +01:00
gwen
8be48e5eba
pep8
2013-02-25 16:24:30 +01:00
gwen
eb632c002d
option names shall be valid names
2013-02-25 16:06:10 +01:00
gwen
a02cb26d5f
masterlen > instead of !=
2013-02-25 15:52:10 +01:00
gwen
ea7d297c9b
private method _get_multitype()
2013-02-25 15:12:09 +01:00