682d9fe207
add option name's validation and rename Option method with objimpl_
2013-04-20 21:58:52 +02:00
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
54fe8d0f4b
cache for properties is now in get_properties and not for validate_properties
2013-04-20 11:25:14 +02:00
a11768ef43
remove expired cache with config.cfgimpl_reset_cache(True)
2013-04-19 22:42:33 +02:00
d7b5d9dc16
add SlaveError for slave's length
2013-04-19 20:23:34 +02:00
410add6a2a
add SlaveError for slave's length
2013-04-19 20:10:55 +02:00
e08bd93cd8
all multi gestion is now in Multi
2013-04-18 23:06:14 +02:00
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
d5e1cb6576
pass force_properties to value's _setitem and remove config's setoption
2013-04-17 23:19:53 +02:00
5e67522f91
_empty is u'' for UnicodeOption
2013-04-17 22:06:10 +02:00
eea96cc3d1
MultiTypeError => ValueError
2013-04-17 21:57:06 +02:00
80438b1495
Rename AmbigousOptionError as ConflictOptionError
2013-04-17 21:50:31 +02:00
3170237c8e
properties validation not in setting and now launch when modify multi
2013-04-17 21:33:34 +02:00
656b751995
mandatory is a true property (no more MandatoryError) + tests
2013-04-16 22:44:16 +02:00
6097f3af84
only catch PropertiesOptionError
2013-04-16 12:04:20 +02:00
16801ad1b2
SubConfig: first argument must be a OD
2013-04-16 11:51:48 +02:00
90999585fa
auto_store_value => force_store_value
2013-04-16 11:30:02 +02:00
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
1f0bb88bc1
add cons_lower + DomainnameOption
2013-04-16 09:34:00 +02:00
9357b342c1
review exception
2013-04-14 12:01:32 +02:00
fbcbbfbd2b
consistencies now a list
2013-04-14 10:14:06 +02:00
9644dd3661
add gettext support
2013-04-13 23:09:05 +02:00
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
26568dc45a
Values validate now value
2013-04-11 11:30:58 +02:00
0c5ab9df18
don't launch apply_requires more than needed
2013-04-08 16:12:23 +02:00
67e67a5020
NoValueReturn is not needed now + apply_requires is now in settings
2013-04-08 16:05:56 +02:00
d8b68fa1ec
suppress _cfgimpl_parent and _cfgimpl_get_path() from SubConfig
2013-04-05 16:59:48 +02:00
88ea962d82
tiramisu/config.py: _cfgimpl_subconfigs is not used
2013-04-05 12:31:50 +02:00
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
c918191d21
permissives are for a specified option not config
2013-04-04 15:14:16 +02:00
9006dca09f
set permissive to cfgimpl_get_home_by_path
2013-04-04 12:16:18 +02:00
e9902d8ce2
rewrite make_dict
2013-04-04 11:24:00 +02:00
6105191d9c
tiramisu/value.py : self.opt => opt + disable permissive in read_write mode
2013-04-03 17:05:41 +02:00
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
201f9d6db4
remise en fonction des self._cfgimpl_slots
2013-03-27 16:41:22 +01:00
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
899f864f8d
works on performante
2013-03-26 10:29:49 +01:00
4f3db9cbc6
support break in iterator
2013-03-25 14:21:30 +01:00
39c8e2eb0b
add import and name => opt._name
2013-03-25 11:45:21 +01:00
f6a14e3223
add UnicodeOption
2013-03-20 12:37:27 +01:00
087f7e3a75
cfgimpl_permissive is not the permissive param
2013-03-14 17:51:51 +01:00
9e81ae4737
get_home_by_path is a public method
2013-03-14 16:07:26 +01:00
15beeda0f0
add permissive in config
2013-03-14 11:31:44 +01:00
783e982c9b
informations attribute finally works
2013-03-13 11:29:29 +01:00
e1357fd5c5
adds information attribute to an option
2013-03-12 17:45:28 +01:00
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
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
gwen
77633c84ce
private method _get_multitype()
2013-02-25 14:27:12 +01:00
gwen
7b4f3b5d36
option's name shall not have an api's method name
2013-02-25 11:33:20 +01:00
gwen
8f4efe6b00
add masters/slaves in the Values()
2013-02-22 11:09:17 +01:00
gwen
e6d5d349c8
refactoring values
2013-02-21 17:07:00 +01:00
gwen
b69ecbd2eb
update of the doc
2013-02-19 11:24:17 +01:00
gwen
a8e6bac87f
refactoring, the values are in an OptionValues object
2013-02-08 11:50:22 +01:00
gwen
9259a6e3f7
values are in value objects now
2013-02-07 16:20:21 +01:00
gwen
29914051e0
master groups that have multis
2013-02-06 17:19:56 +01:00
gwen
a404c4c992
masters shall have the same names as groups
2013-02-06 16:21:30 +01:00
gwen
6a3b7102b5
adds a freeze_everything possibility
2013-02-06 14:59:24 +01:00
gwen
d00a623fc1
validator set to false for read_write in setting
2013-02-06 14:34:12 +01:00
Daniel Dehennin
2cb3ddf2e8
Fix line wrapping and some raise messages spacing
...
* tiramisu/option.py (Multi.append): do not wrapp short line.
(validate_requires_arg): Add missing space for multi line strings.
2013-01-31 17:09:59 +01:00
Daniel Dehennin
03baedd4dd
Fix appending to a non-grouped multi
...
When the multi is not grouped, just set the value and do not try to
update len of inexistant slaves.
The code path try to update the len of all other variables under the
OptionDescription of the multi.
* tiramisu/option.py (Multi.append): return after setting the value.
Fixes : #4811 @10m
2013-01-31 17:09:59 +01:00
Daniel Dehennin
170698a5e3
Find breaks on "disabled" property
...
The exception was raised during unwrap_from_path() call.
* tiramisu/config.py (_filter_by_attrs): do not catch exception arround
getattr().
(_find): continue to next option if unwrap_from_path() raise
PropertiesOptionError.
Fixes : #4728 @5m
2013-01-31 14:38:48 +01:00
Daniel Dehennin
f494bb1502
Better raise message
...
* tiramisu/config.py (Config._valid_len): use master and slave name and
value.
2013-01-30 18:04:55 +01:00
Daniel Dehennin
184c48db8c
Do not append default value on already defined multi slaves
...
* tiramisu/option.py (Multi.append): append the default value when the
slaves have no item or lesser than the master.
Divide looping over slaves by factor 2.
Fixes : #4799 @4h
2013-01-30 18:04:55 +01:00
Daniel Dehennin
064bed9efa
Fix infinite recursion on calculated master of multi variable
...
There was a infinite recursion between option.Multi.append() and
config.Config._getattr() through config.Config.fill_multi() when
calculating the master:
- config.Config._getattr()
-> config.Config.fill_multi()
-> option.Multi.__init__()
-> option.Multi.append()
-> config.Config._getattr()
* tiramisu/option.py (Multi.append): do not pass by
config.Config._getattr().
* tiramisu/option.py (Multi.__init__): do not catch exception when
appending.
Ref: #4799 @8h
2013-01-30 18:04:46 +01:00
Daniel Dehennin
deaa0942ff
Remove useless returns and variables
...
* tiramisu/option.py (Multi.__setitem__): Do not returns.
(Multi.append): Ditoo.
Remove useless "ret" variable.
(Multi._setvalue): Ditoo.
(Multi.pop): Do not set "ret" to None, raise if "ret" is not in "locals()"
(Multi._pop): Avoid useless "oldvalue" variable.
2013-01-30 09:19:48 +01:00
Daniel Dehennin
f267073e0d
Variable "ret" referenced before assignment
...
Variable defined in sub-scope ("for", "if") are not defined above.
* tiramisu/option.py (Multi.append): Define "ret" to None.
* tiramisu/option.py (Multi._setvalue): Ditoo.
* tiramisu/option.py (Multi.pop): Ditoo.
2013-01-29 15:21:31 +01:00
gwen
e2a02c5b7a
find raises an exception if no option found Fixes #4721
2013-01-28 09:55:51 +01:00
gwen
c66dcd09ee
substitute properties/permissivers in apply_requries
2013-01-28 09:33:08 +01:00
gwen
189053ad03
master subgroups that have subgroups
2013-01-11 09:46:41 +01:00
gwen
f9d6f62a70
multi defaults value addition cinematics
2013-01-10 12:03:59 +01:00
gwen
e70054c4d4
owners for multi options
2012-12-11 16:22:02 +01:00
gwen
cda5d8c0bd
generic owners shall live in settings
2012-12-11 11:18:53 +01:00
gwen
ca2f4487dd
add owner
2012-12-10 14:38:25 +01:00
gwen
cd50cf7551
owners are *real* objects now
2012-12-10 14:10:05 +01:00
gwen
07d3cb1037
constants heritage
2012-12-10 09:53:13 +01:00
gwen
e118f07539
groupe_types are real types now
2012-12-06 18:14:57 +01:00
gwen
69d747baec
comments on the code
2012-12-05 11:12:04 +01:00
gwen
7574ac43aa
Multi()'s and append
2012-12-05 10:54:32 +01:00
gwen
7784a82cde
tests on group types
2012-12-05 09:41:53 +01:00
gwen
0db34bbeba
master len without getattr
2012-12-04 16:22:39 +01:00
gwen
6538231817
pop and append in multi values
2012-12-04 15:18:13 +01:00
gwen
4393da13ab
validation of the len of the multi in a group
2012-12-04 12:06:26 +01:00
gwen
d633574cc5
comparison failed
2012-12-03 15:48:04 +01:00
gwen
2dfc906966
symlink has an option's API
2012-11-30 16:23:40 +01:00
gwen
43af9cf7f7
getkey() and __eq__ for a SymLink
2012-11-30 15:08:34 +01:00
gwen
e0490c2bed
add permissive in the requirements
2012-11-30 10:47:35 +01:00
gwen
1dea71c17f
getdefault returns the default_multi
2012-11-29 11:40:52 +01:00
gwen
de47772958
string representation for a symlink option
2012-11-29 10:15:30 +01:00
gwen
d9c8e06236
config's string representation
2012-11-28 10:14:16 +01:00
gwen
bf112bc756
custom validator for multis
2012-11-22 11:53:51 +01:00
gwen
426e64ca39
is_default in _getattr
2012-11-22 10:19:13 +01:00
gwen
79cf82e328
doc: migrated to sphinx
2012-11-20 17:14:58 +01:00
gwen
60ef6cc2b4
doc
2012-11-20 09:15:29 +01:00
gwen
86f9096937
settings are in a separate object
2012-11-19 10:45:03 +01:00
gwen
5969eaa2d6
add custom validator
2012-11-19 09:51:40 +01:00
gwen
b353c6ba60
modification of reset's arity
2012-11-16 10:04:25 +01:00
gwen
e0bf9faf5c
default_multi method
2012-11-15 14:59:36 +01:00
gwen
eb7e393864
the value owner is a string now
2012-11-15 10:55:14 +01:00
gwen
09dba4b959
suppression of the override
2012-11-12 12:06:58 +01:00
gwen
1de236d2a8
at_index to check owners
2012-11-08 09:57:29 +01:00
gwen
407c74008c
docstrings for special params
2012-11-08 09:03:28 +01:00
gwen
307a3a00a8
permissive getattr in mandatory_warnings()
2012-11-07 17:14:50 +01:00
gwen
bfb5045753
test mandatory
2012-11-06 15:19:36 +01:00
gwen
ec2a65bd37
multi options
2012-10-17 11:14:17 +02:00
gwen
a36ae7df85
permissive in the getattr
2012-10-16 15:09:52 +02:00
gwen
b3da043190
trimming options's callbacks
2012-10-15 15:06:41 +02:00
gwen
0bd7624eea
find method in config filters by attrs
2012-10-12 11:35:07 +02:00
gwen
aa67ae31aa
find method in config
2012-10-11 16:16:43 +02:00
gwen
d3dc40033b
add docstring and some docs
2012-10-05 16:00:07 +02:00
gwen
8ca58c508d
__dir__ deleted
2012-10-05 11:02:58 +02:00
gwen
a2f9beb9f4
freeze() in read_write method
2012-09-24 15:58:37 +02:00
gwen
9e417334d4
multi-action available now in requires
2012-09-20 10:51:35 +02:00
gwen
9b419a488d
remove unicity by name commented code
2012-09-19 10:25:39 +02:00
gwen
b2e97573bd
tests on frozen and None value
2012-09-19 09:31:02 +02:00
gwen
f50935523f
frozen api
2012-09-18 16:14:47 +02:00
gwen
99dc71a752
has_callback options cannot be overrided
2012-09-18 15:31:32 +02:00
gwen
c70fc04f3a
has_callback options cannot be overrided
2012-09-18 15:25:35 +02:00
gwen
1ce8d4c098
autolib imports
2012-09-18 10:50:00 +02:00
gwen
b533bd996b
eosfunc and autolib
2012-09-18 09:48:41 +02:00
gwen
934d011847
generic properties api
2012-09-14 11:55:32 +02:00
gwen
9604fd15ec
generic properties api
2012-09-14 10:29:25 +02:00
gwen
e2bcac1c01
mandatory or type error raised
2012-09-12 10:38:41 +02:00
gwen
c6ad86bd81
non mandatory error
2012-09-11 16:45:59 +02:00
gwen
99df5bbd79
non mandatory import error
2012-09-11 16:32:24 +02:00
gwen
fb2aa0ed67
non mandatory api opt._name error
2012-09-11 15:25:35 +02:00
gwen
8795180867
non mandatory api
2012-09-11 15:18:38 +02:00
gwen
e2ec79063e
mandatory options
2012-09-11 13:28:37 +02:00
gwen
5907f3e663
api for mandatory
2012-09-10 11:49:52 +02:00
gwen
3e8d16ece6
add property api
2012-09-07 16:10:52 +02:00
gwen
7c19ec7689
syntax errors
2012-09-07 15:50:32 +02:00
gwen
9bb366bb91
now we know wich property has been matched
2012-09-07 15:47:06 +02:00
gwen
d8370b008b
commented code for unicity by name
2012-08-16 11:42:24 +02:00
gwen
bf0dcbe2c8
replace special_owner with hascallback_and_freeze
2012-08-14 10:55:08 +02:00
gwen
11b2edd07d
Option.force_default() -> opt value returns the default value
2012-08-13 16:06:02 +02:00
gwen
7006091c9c
opt.hidden and opt.disabled is replaced by opt.properties
2012-08-13 12:57:18 +02:00
gwen
753b0a55c7
opt.hidden and opt.disabled is replaced by opt.properties
2012-08-13 12:49:58 +02:00
gwen
1d5330f15e
opt.hidden and opt.disabled is replaced by opt.properties
2012-08-13 11:48:25 +02:00
gwen
5ee7247e52
suppression of the notion of normal and expert mode
2012-08-13 10:51:52 +02:00
gwen
d05feb78f9
suppression of the notion of normal and expert mode
2012-08-13 09:32:33 +02:00
gwen
a88d203790
has_callback method for option
2012-07-27 11:46:27 +02:00
gwen
525aee85f2
mandatory warning for the toplevel
2012-07-27 09:54:32 +02:00
gwen
967842c239
mandatory warnings works now
2012-07-26 16:55:01 +02:00
gwen
c9bc9f3823
recursive requirements are detected now
2012-07-26 10:54:57 +02:00
gwen
323663385b
various misspellings
2012-07-25 09:04:22 +02:00
gwen
f393854baa
add validation upon mandatory options function
2012-07-24 16:54:06 +02:00
gwen
f5975777b9
add validation upon mandatory options function
2012-07-24 15:35:44 +02:00
gwen
45ff59aea2
tests are passing again after package renaming
2012-07-23 14:52:08 +02:00
gwen
a871cab083
relative imports to absolute imports ( fixes #2667 )
2012-07-23 14:39:16 +02:00