Emmanuel Garette
e6a949635f
some improvements
2016-10-10 21:41:22 +02:00
Emmanuel Garette
c81a2bcdbf
better sqlalchemy integration
2016-10-01 20:15:08 +02:00
Emmanuel Garette
69de44bbb4
better sqlalchemy integration
2016-09-30 22:45:33 +02:00
Emmanuel Garette
6fbc4accb9
Merge remote-tracking branch 'origin/2.0'
2016-09-22 08:28:03 +02:00
Emmanuel Garette
6d71749014
force_store_value is rebuild if needed
2016-09-22 08:27:18 +02:00
Emmanuel Garette
19b676967d
better propertyerror message
2016-09-14 20:17:25 +02:00
Emmanuel Garette
408e4cf088
better error messages
2016-09-11 20:41:36 +02:00
Emmanuel Garette
3a5b1090c7
domainname must not be an IP
2016-08-31 15:50:10 +02:00
Emmanuel Garette
6cfa0fc216
use relative importation
2016-06-30 10:43:51 +02:00
Emmanuel Garette
44d585a5e2
better mandatory/empty support for mandatory_warnings
2016-06-29 21:42:54 +02:00
Emmanuel Garette
7460f38a88
update sqlalchemy storage for values et settings
2016-03-29 09:31:00 +02:00
Emmanuel Garette
e91568e6b6
Validation should return exception, not raises exception
...
Don't check force_store_value for SymLinkOption
2016-03-24 19:43:41 +01:00
Emmanuel Garette
f03a31b454
master.slave[-1] = val now works correctly
2016-03-21 17:06:38 +01:00
Emmanuel Garette
7305cfa134
python 3.4 support
2016-03-19 21:27:37 +01:00
Emmanuel Garette
924692d3ab
valid correctly consistencies for master/slaves
2016-03-18 19:55:41 +01:00
Emmanuel Garette
5a5231c2d8
test: set force_permissive to append
2016-03-18 16:41:59 +01:00
Emmanuel Garette
100a0110cd
support callback with propertyerror in master for mandatory_warnings
2016-03-17 22:06:16 +01:00
Emmanuel Garette
cb89c74201
don't check 'mandatory' setting for symlink
2016-03-16 22:33:28 +01:00
Emmanuel Garette
8c733d5303
update setup.py
2016-03-10 14:50:27 +01:00
Emmanuel Garette
32592b9289
setitem for a slave only modify current value
2016-03-08 23:18:42 +01:00
Emmanuel Garette
35ffde841b
add force_permissive to Values.is_default_owner
2016-03-07 16:34:36 +01:00
Emmanuel Garette
da89c1aa58
force_store_value is now used directly when configuration is loaded
2016-03-07 16:13:41 +01:00
Emmanuel Garette
51d14f30a4
can set owner for a slave
2016-01-25 16:22:28 +01:00
Emmanuel Garette
f4307b9122
cannot append properties for option with forbidden_set_properties
2016-01-25 15:49:40 +01:00
Emmanuel Garette
b521c459ee
remove all try/except
2016-01-03 21:18:52 +01:00
Emmanuel Garette
e8764f6173
remove some try/except + consistency not works with submulti
2016-01-03 13:23:15 +01:00
Emmanuel Garette
ce162280ad
simplify _setvalue
2015-12-31 18:20:36 +01:00
Emmanuel Garette
97d7352a5b
better support for dynoptiondescription
2015-12-23 23:30:57 +01:00
Emmanuel Garette
df233d3165
add some optimisations
2015-12-22 22:06:14 +01:00
Emmanuel Garette
a97c3c682a
some optimisation
2015-12-18 22:44:46 +01:00
Emmanuel Garette
4d4d789c8a
simplification
2015-12-17 22:41:57 +01:00
Emmanuel Garette
98200ecae5
improvemnt information
2015-11-30 15:55:34 +01:00
Emmanuel Garette
a521a6d322
requires could be apply to a slave and properties could be different
2015-11-29 23:03:08 +01:00
Emmanuel Garette
c2a6772ec2
impl_get_values with calculated values and no context should return []
2015-11-26 19:42:33 +01:00
Emmanuel Garette
ab555966f7
use python-coverage to delete dead part of code
2015-11-24 10:58:19 +01:00
Emmanuel Garette
54ca54e505
separate value in slave
2015-11-19 22:25:00 +01:00
Emmanuel Garette
11d23bc8d8
unserialise information and requires attribute
2015-11-01 10:35:17 +01:00
Emmanuel Garette
445516ce34
support multi when picklise object
2015-10-30 22:51:36 +01:00
Emmanuel Garette
2cdd80b83d
support context param in picklisation
2015-10-30 22:51:24 +01:00
Emmanuel Garette
a0de1109f7
optimise mandatory_warnings
2015-10-29 09:03:13 +01:00
Emmanuel Garette
64e9171ea6
valid properties for slaves when set or append a master's value
2015-10-26 15:39:07 +01:00
Emmanuel Garette
15d94d5fff
domainname with only one character is now allowed
2015-10-12 17:06:15 +02:00
Emmanuel Garette
3aad913868
check with option as parameter
2015-09-17 21:25:32 +02:00
Emmanuel Garette
5ea92d3460
need new settings when create fake_config
2015-09-17 19:14:56 +02:00
Emmanuel Garette
8e7a32de08
add global 'empty' property, this property raise mandatory PropertiesOptionError if multi or master have empty value
2015-07-26 19:13:25 +02:00
Emmanuel Garette
1da83edfba
add duplicate option to Config
2015-07-24 18:05:51 +02:00
Emmanuel Garette
44cd618704
remove pep8 validation errors
2015-07-24 17:54:10 +02:00
Emmanuel Garette
487b99b32c
for a multi mandatory, allow [] with allow_empty_list attribut
2015-04-20 14:49:43 +02:00
Emmanuel Garette
072246a203
URLOption: allow uppercase in resource name
2015-04-19 09:46:39 +02:00
Emmanuel Garette
2c6275ffbd
remove slave values when delete a master without value
2015-04-19 09:37:46 +02:00
Emmanuel Garette
2b019027be
valid Option is an unicode or a string if needed
2015-04-19 09:15:18 +02:00
Emmanuel Garette
057bba83e4
ValueError if not PropertieError
2015-04-18 23:46:37 +02:00
Emmanuel Garette
d959020eed
ability to disable warnings validation
2015-04-18 23:11:57 +02:00
Emmanuel Garette
10768a6067
refactor validation
2015-04-18 22:53:45 +02:00
Emmanuel Garette
c566ad1111
valid default/callback value in consistencies
2015-03-08 12:03:49 +01:00
Emmanuel Garette
85297d8c4d
test uppercase character before valid domain name for better error message
2014-12-07 14:51:51 +01:00
Emmanuel Garette
bc65caa4dc
mandatory master/slave's consistency with default value as slave
2014-12-07 14:39:23 +01:00
Emmanuel Garette
4fde28a15e
in_network's consistency now verify that IP is not network or broadcast's IP + ip_netmask's consistency now verify that IP is not broadcast's IP
2014-12-01 23:16:00 +01:00
Emmanuel Garette
a801951a78
can reset slave value in all case when deleting master value
2014-12-01 23:08:56 +01:00
Emmanuel Garette
71e69cd0bf
if consistency with multiple option return if transitive
2014-12-01 23:02:55 +01:00
Emmanuel Garette
7646071efd
propertyerror are transitive in consistency, now it's possible to set non-transitive consistency
2014-12-01 22:58:53 +01:00
Emmanuel Garette
2ccf92f879
improve GroupConfig/MetaConfig
...
add set_value in GroupConfig
2014-12-01 21:49:50 +01:00
Emmanuel Garette
c6c331eb54
in find_firsts get option only one time
2014-11-11 11:31:23 +01:00
Emmanuel Garette
f03cbeadb7
better performance in find_firsts
...
_is_build_cache not set in dictionary storage
2014-11-10 21:00:30 +01:00
Emmanuel Garette
4217508f3f
works on sqlalchemy storage
2014-11-10 09:13:44 +01:00
Emmanuel Garette
c75867720f
add force_permissive in mandatory_warnings
2014-10-26 16:39:24 +01:00
Emmanuel Garette
f730050f7c
pass force_permissive to slave for a master or to master for a slave
2014-10-26 16:19:06 +01:00
Emmanuel Garette
4310d59991
add force_permissive to config __iter__
2014-10-26 10:26:23 +01:00
Emmanuel Garette
a130cff4bf
frozen with force_default_on_freeze can change owner
2014-10-26 09:44:06 +01:00
Emmanuel Garette
ed3373cff0
bad characters in DomainnameOption could be in warning level
2014-10-26 09:38:17 +01:00
Emmanuel Garette
8a59e27396
f option is frozen with force_default_on_freeze property, owner must be 'default' check property when tried to change owner
2014-10-26 08:51:45 +01:00
Emmanuel Garette
9ad6cd905c
allow number as first letter of a domainname with netbios type
2014-10-25 22:58:46 +02:00
Emmanuel Garette
471af4fd75
cannot add unvalaible consistency for an option
2014-10-25 22:48:42 +02:00
Emmanuel Garette
9f3d676280
reduce memory usage
2014-10-25 22:11:31 +02:00
Emmanuel Garette
71f8926fca
better support for sqlalchemy storage
2014-07-06 15:31:57 +02:00
Emmanuel Garette
b64189f763
add DynOptionDescription
2014-06-19 23:22:39 +02:00
Emmanuel Garette
888446e4c5
remove unjustified open_values parameters in ChoiceOption
2014-04-27 10:44:19 +02:00
Emmanuel Garette
9112a8c5b0
add SubMulti
2014-04-26 22:37:01 +02:00
Emmanuel Garette
b6a0f188b2
force_store_value now support Multi
2014-04-18 21:33:15 +02:00
Emmanuel Garette
6d8137160c
'getattr' in optiondescription can return a bound method
2014-04-15 21:48:31 +02:00
Emmanuel Garette
7c8164090a
uncomment more test
2014-04-14 23:00:37 +02:00
Emmanuel Garette
9bec52273a
we can pickle object
2014-04-14 22:53:40 +02:00
Emmanuel Garette
5d8b5719a0
Merge branch 'master' into orm
...
Conflicts:
test/test_config_api.py
tiramisu/autolib.py
tiramisu/config.py
tiramisu/option.py
tiramisu/value.py
2014-04-13 10:30:42 +02:00
Emmanuel Garette
299e51e806
start works on storage
2014-04-12 22:47:52 +02:00
Emmanuel Garette
3ab0688c46
Arity change, remove force_properties:
...
* tiramisu/config.py (in cfgimpl_get_home_by_path and getattr)
* tiramisu/value.py (in getitem):
2014-04-12 21:37:20 +02:00
Emmanuel Garette
cd4d3527c7
split tiramisu/option.py and add MasterSlaves object
2014-04-12 17:55:13 +02:00
Emmanuel Garette
a1f0c29713
Merge modification made for 1.0's branch
2014-04-02 12:06:11 +02:00
Emmanuel Garette
76a43a7ff9
if slave has a callback with a slave that has a callback with a default_multi's slave, now it's works
2014-04-02 12:04:50 +02:00
Emmanuel Garette
a3c5e6034f
Merge branch 'force_permissive'
...
Conflicts:
test/test_freeze.py
2014-03-31 22:38:56 +02:00
Emmanuel Garette
cd52729952
add force_permissive in config's method (iter_all, iter_group, find, find_first and make_dict)
...
rename _getattr to getattr
2014-03-31 22:34:57 +02:00
Emmanuel Garette
ff5376a382
properties are check now in getowner
...
get_modified_values works good with force_store_value
2014-03-29 20:31:56 +01:00
Emmanuel Garette
712db2875e
force_store_value works now with permissive
2014-03-28 17:36:02 +01:00
Emmanuel Garette
835d6d6da0
context could be useful in a callback, now we can retrieve context in a function (be careful to infinite loop)
2014-03-26 19:47:42 +01:00
Emmanuel Garette
f7d31bfa92
Merge branch 'master' into force-cache
...
Conflicts:
translations/fr/tiramisu.po
translations/tiramisu.pot
2014-03-15 10:09:19 +01:00
Emmanuel Garette
88b5af9810
Merge branch 'master' into better_warnings
2014-03-12 22:13:20 +01:00
Emmanuel Garette
ff802b46e5
consistencies can make a warning instead of raises
...
for that, you have to set something like:
a.impl_add_consistency('not_equal', b, warnings_only=True)
warning product now adapted message
2014-03-12 21:56:53 +01:00
Emmanuel Garette
5f46763696
add test for consistency with callback
2014-03-12 16:44:48 +01:00
Emmanuel Garette
544cd93c73
can make_dict with disabled suboption
2014-03-12 14:57:36 +01:00
Emmanuel Garette
d7b04ebed0
add consistency in_network for IPOption
...
This new consistency can validate that an IPv4 is a specified (network/netmask) network
2014-03-11 18:57:19 +01:00
Emmanuel Garette
db9ab7a1e9
test if cache property is not set in config when force_cache
2014-03-09 20:22:29 +01:00
Emmanuel Garette
6e8b570a37
mandatory_warnings is now in values and add force_cache to values
2014-03-09 20:06:44 +01:00
Emmanuel Garette
d3f9d20ab5
add extend in config setting
2014-03-08 18:53:22 +01:00
Emmanuel Garette
9f903d3e04
add username's option
2014-03-06 22:09:12 +01:00
gwen
f3a826a8d7
Merge branch 'master' of ssh://git.labs.libre-entreprise.org/gitroot/tiramisu
2014-02-25 16:19:49 +01:00
gwen
0c9d6554ae
a hostname shall not start with a number
2014-02-25 15:20:03 +01:00
gwen
716d2b2348
allows a DomainnameOption to start with a number
2014-02-25 15:16:15 +01:00
Emmanuel Garette
d5b83c123c
tiramisu/setting.py : properties store in cache was a reference to a list modified in validation, should copy properties in cache
2014-02-20 16:55:35 +01:00
Emmanuel Garette
bf0501b1d6
tiramisu/setting.py : properties store in cache was a reference to a list modified in validation, should copy properties in cache
2014-02-20 14:27:29 +01:00
Emmanuel Garette
fc7f3c24a5
properties option in consistencies are now allowed
...
Conflicts:
tiramisu/option.py (PortOption._validate): Strange try/except
removed.
2014-02-17 17:45:37 +01:00
Emmanuel Garette
194c82faad
tests pass now with dictionary and sqlalchemy storage
2014-02-16 23:37:27 +01:00
Emmanuel Garette
0aeb64731b
comment state test
2014-02-06 22:25:04 +01:00
Emmanuel Garette
21c8ed5d76
Merge branch 'master' into orm
...
Conflicts:
test/test_option_consistency.py
test/test_state.py
tiramisu/option.py
2014-02-06 22:24:50 +01:00
Emmanuel Garette
e7531e1fda
more tests
2014-02-06 22:17:20 +01:00
Emmanuel Garette
72f06bc29d
properties option in consistencies are now allowed
2014-02-06 19:19:48 +01:00
Daniel Dehennin
f8ac263c86
Hotfix release 1.0~2.4.1
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iF4EABEKAAYFAlLyBpcACgkQWjgIUPVihwwhyQD/Ri/R6wO/zk49ILx5UzPdDDcU
UCWxsKvbCIloO76BMcIA/0nx/6PUVc/v3iag5reNvtrXJQzdKlprmkjvBhLalVJS
=w09x
-----END PGP SIGNATURE-----
Merge tag 'release/1.0_2.4.1'
Hotfix release 1.0~2.4.1
2014-02-05 11:22:17 +01:00
Emmanuel Garette
6f5d471db1
if option with requires has a property, calculated properties are store in storage
2014-02-05 10:37:39 +01:00
Emmanuel Garette
98bd35ad36
Merge branch 'master' into orm
...
Conflicts:
tiramisu/config.py
tiramisu/option.py
2014-02-04 21:54:30 +01:00
Emmanuel Garette
c52b2f84f4
if option with requires has a property, calculated properties are store in storage
2014-02-04 21:40:07 +01:00
Emmanuel Garette
a067d2cdd9
add some tests
2014-02-04 21:14:30 +01:00
Emmanuel Garette
5646fc35a2
Merge branch 'master' into orm
...
Conflicts:
test/test_parsing_group.py
2014-02-03 22:11:58 +01:00
Emmanuel Garette
8d10ad4002
add tests
2014-02-02 22:47:46 +01:00
Emmanuel Garette
5897231421
Merge branch 'master' into orm
...
Conflicts:
test/test_dereference.py
test/test_state.py
tiramisu/config.py
tiramisu/value.py
2014-02-02 18:52:13 +01:00
Emmanuel Garette
26158fc3c4
update test for metaconfig serialization
2014-02-02 18:33:21 +01:00
Emmanuel Garette
f8faec408f
Merge branch 'master' into metaconfig
2014-02-02 18:21:22 +01:00
Emmanuel Garette
ced260046c
test for multi
2014-02-02 18:21:09 +01:00
Emmanuel Garette
683e40fbb5
when change len of calculated master, change len of slave too
2014-02-02 18:20:01 +01:00
Emmanuel Garette
8709386570
__getattr__ OD
2014-02-01 18:35:18 +01:00
Emmanuel Garette
2f40216fad
Merge branch 'master' into orm
2014-02-01 17:25:39 +01:00
Emmanuel Garette
71b235551e
add tests for find()
2014-02-01 17:25:31 +01:00
Emmanuel Garette
cddeef0990
Merge branch 'master' into orm
2014-02-01 16:49:29 +01:00
Emmanuel Garette
f48f3e7544
add tests for find()
2014-02-01 16:49:16 +01:00
Emmanuel Garette
313b03b246
cache in sql works
2014-02-01 16:26:23 +01:00
Emmanuel Garette
02a987b39d
sqlalchemy
2014-01-30 22:55:15 +01:00
Emmanuel Garette
2eb63c917b
active callback's slave verification
2014-01-28 09:14:56 +01:00
Emmanuel Garette
7c8049a8d0
Merge branch 'master' into orm
2014-01-27 23:28:43 +01:00
Emmanuel Garette
a1dd2cfce7
require works well in sqlalchemy storage
2014-01-27 17:16:05 +01:00
gwen
9deb67f887
warning and error messages not translated in the tests
2014-01-27 14:55:53 +01:00
Emmanuel Garette
880b6366eb
Merge branch 'master' into orm
...
Conflicts:
tiramisu/setting.py
2014-01-25 16:39:32 +01:00
Emmanuel Garette
138018dfe9
if we delete all reference to a Config and we have reference to old SubConfig, Values, Multi or Settings, make a ConfigError instead of AttributError on NoneType object
2014-01-25 11:20:11 +01:00
Emmanuel Garette
3b3e5216fe
cache
2014-01-25 10:15:25 +01:00
Emmanuel Garette
661f844ce6
sqlalchemy has a storage
2014-01-20 14:53:14 +01:00
Emmanuel Garette
068f68460d
Merge branch 'master' into orm
2014-01-18 10:25:09 +01:00
Emmanuel Garette
9d92ab84d7
regression: permissive for option is apply every time, not only when global permissive is set
2014-01-16 09:49:37 +01:00
Emmanuel Garette
cde04d654a
Merge branch 'master' into orm
...
Conflicts:
tiramisu/setting.py
2014-01-09 20:32:17 +01:00
gwen
3c36e05d82
adds test for an API
2014-01-06 14:40:29 +01:00
Emmanuel Garette
64ca069a0b
Merge branch 'master' into orm
...
Conflicts:
test/test_config.py
tiramisu/autolib.py
tiramisu/option.py
tiramisu/value.py
2013-12-12 17:50:42 +01:00
Emmanuel Garette
c58de18b62
add more tests
2013-12-09 18:56:29 +01:00
Emmanuel Garette
73745be440
Important behavior change : to add default_multi value, now use Multi.append(), not Multi.append(None)
2013-12-09 17:59:39 +01:00
Emmanuel Garette
bb1f6947e3
better name's validation
2013-12-09 17:55:52 +01:00
Emmanuel Garette
6e4f19eebe
more tests
2013-12-09 15:43:45 +01:00
Emmanuel Garette
0f966f6d26
check if permissive is in global properties before allow permissive for an option
2013-12-09 15:29:37 +01:00
Emmanuel Garette
20bef5ff04
Important behavior change in callback with multi.
...
Before, tiramisu iterable multi's callback_params in all cases.
Now, this append only if multi's callback_params are in master/slave group.
2013-12-09 15:08:14 +01:00
gwen
029452ccbc
validation of an ip if an ip term starts with a zero
2013-12-02 15:10:05 +01:00
Emmanuel Garette
374c56a9c8
first version with sqlalchemy option's storage
2013-11-23 23:34:17 +01:00
Emmanuel Garette
eb3327cd75
correction in allow_without_dot + test
2013-10-01 10:13:17 +02:00
Emmanuel Garette
6902ad4f18
some extra tests for filename
2013-10-01 08:23:10 +02:00
Emmanuel Garette
2dcdbb137e
rename FileOption to FilenameOption
...
python 3 support
2013-10-01 08:19:10 +02:00
Emmanuel Garette
0a83a9261f
update invalid's message and display all informations when raises
2013-09-30 22:56:08 +02:00
Emmanuel Garette
cce080cbd3
add FileOption
2013-09-30 21:21:47 +02:00
Emmanuel Garette
1a294e3d09
refactor DomainnameOption
...
add options EmailOption and URLOption
2013-09-30 19:41:56 +02:00
Emmanuel Garette
feeb9842f5
serialize metaconfig/groupconfig
2013-09-30 16:22:08 +02:00
Emmanuel Garette
6b7db20716
Merge branch 'master' into metaconfig
2013-09-28 22:49:50 +02:00
Emmanuel Garette
70f684e70c
tiramisu/option.py:
...
separate _consistencies (for Option) and _cache_consistencies (for OptionDescription)
_launch_consistency need index for multi's option
_cons_not_equal support multi options
tiramisu/value.py:
Multi._validate support consistency
2013-09-28 17:05:01 +02:00
Emmanuel Garette
482dfec7f2
consistancies can have more than one option
...
add _cons_broadcast
2013-09-27 23:27:08 +02:00
gwen
2490d00935
refactor name only_private
2013-09-27 11:28:23 +02:00
gwen
162ae02df8
refactor (warnings_only)
2013-09-27 09:52:18 +02:00
Emmanuel Garette
f4677b9ef9
use warnings instead of a new dictionary
2013-09-26 21:56:06 +02:00
Emmanuel Garette
f040d3da61
warning is now a dict
2013-09-26 18:35:20 +02:00
Emmanuel Garette
e63dbf308d
more tests for warnings
2013-09-26 09:31:51 +02:00
Emmanuel Garette
329b9ac349
add _second_level_validation (second's one return only warning almost _validator raise)
2013-09-25 21:10:45 +02:00
Emmanuel Garette
06baff2f3b
add warning ability
2013-09-24 23:19:20 +02:00
Emmanuel Garette
3fc89be40e
comment tiramisu/autolib.py + some modification
2013-09-23 22:40:10 +02:00
Emmanuel Garette
ff7714d8d3
add find test value in a multi's option
2013-09-22 21:31:37 +02:00
Emmanuel Garette
c84d13a1c6
we can serialize Config now
2013-09-22 20:57:52 +02:00
Emmanuel Garette
972dff0a1c
serialize new callback
2013-09-20 23:47:40 +02:00
Emmanuel Garette
ae4df32d0e
error if change slave len for default's slave option
2013-09-19 23:02:15 +02:00
Emmanuel Garette
28c416dd84
add allow_reserved in IPOption
2013-09-19 21:51:55 +02:00
Emmanuel Garette
90ae9aa70d
refactore carry_out_calculation + test + documentation
2013-09-19 21:39:41 +02:00
Emmanuel Garette
866364059c
dont change anything if config_error
2013-09-17 09:10:08 +02:00
Emmanuel Garette
7165f73292
add metaconfig
2013-09-17 09:02:10 +02:00
Emmanuel Garette
57f4dd8d3f
allow mandatory value (see 9ddf100118
for more details)
2013-09-16 20:51:13 +02:00
Emmanuel Garette
9ddf100118
when we get an option's value, we need it's values to calculate properties (ie for mandatory's option)
...
if a disabled option has a callback to an other disabled value, it's raise ConfigError
now only raise if option has no other propertiesError
2013-09-16 15:07:34 +02:00
Emmanuel Garette
3dc72c505c
support no expire in getcache
2013-09-07 22:37:13 +02:00
Emmanuel Garette
77c1ccf40b
add 'cache' property
2013-09-07 17:25:22 +02:00
Emmanuel Garette
f8b0a53c3f
cache is always a dictionary in memory
2013-09-07 10:31:39 +02:00
Emmanuel Garette
22bfbb9fa4
storage no more in setting.py, code is now in storage/__init__.py
2013-09-06 23:15:36 +02:00
Emmanuel Garette
3b733d1b4f
support cache consistencies + no consistencies for a symlink + test
2013-09-03 22:41:18 +02:00
Emmanuel Garette
aeeaf6ec14
impl_get_information and impl_set_information are, now, persistent in storage
2013-09-03 10:38:38 +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
52a6705fbf
new logo for the tiramisu project
2013-09-02 16:27:22 +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
Emmanuel Garette
c01f14920d
test more sloted options
2013-08-30 09:40:28 +02:00
Emmanuel Garette
eb62d0c4a4
add test for impl_get_path_by_opt and impl_get_opt_by_path
2013-08-29 09:29:28 +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
8c24903dfb
order in properties can change
2013-08-28 21:23:42 +02:00
gwen
fbf05ba5e4
python 3 compatibility
...
remove __eq__ and __ne__ in Option
2013-08-28 21:13:42 +02:00
Emmanuel Garette
71a8171c52
add tests for persistent mode
2013-08-27 22:08:35 +02:00
Emmanuel Garette
3be005e82e
add test test/test_dereference.py + memoryleaks in optiondescription's cache
2013-08-27 21:36:52 +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
gwen
551b9fb1e3
getting stated documentation
2013-08-26 17:14:14 +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
e6a183c00d
test get_modified_values
2013-08-24 22:54:02 +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
c2b16d2605
add _path in reset for performance + more tests
2013-08-24 16:30:46 +02:00
Emmanuel Garette
62553aba1f
test invalid owner in setowner
2013-08-23 09:29:42 +02:00
Emmanuel Garette
ac62931525
add test for recursive path in requirement
2013-08-22 22:57:32 +02:00
Emmanuel Garette
04aa4e6bf1
never same calculated properties has properties (only in cache)
2013-08-22 22:48:09 +02:00
gwen
3d67e35447
documentation on the tests
2013-08-22 12:17:10 +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
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
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
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
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
23f6d2228f
add symlink test
2013-06-13 22:07:58 +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
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
ada5bfbf6c
add test for callback not in multi
2013-06-11 15:36:08 +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
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
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
Emmanuel Garette
536eb27904
multi, None and validation
2013-05-10 22:34:07 +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
2c5bbb7bc0
Requires need option, not path
...
Valid requires
2013-04-26 14:40:44 +02:00
Emmanuel Garette
f0ef1734f4
add a test for force_store_value in read_only mode
2013-04-23 19:01:03 +02:00
Emmanuel Garette
7cd44d6886
remove an unused callback in test
2013-04-23 11:41:16 +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
d7b5d9dc16
add SlaveError for slave's length
2013-04-19 20:23:34 +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