Commit Graph

381 Commits

Author SHA1 Message Date
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