implement unrestraint for tiramisu-cmdline-parser

This commit is contained in:
Emmanuel Garette 2019-08-23 10:54:50 +02:00
parent 039e2e6b7b
commit 70389d70cd
2 changed files with 10 additions and 1 deletions

View File

@ -1,5 +1,5 @@
from .api import Config from .api import Config
__version__ = "0.2" __version__ = "0.4"
__all__ = ('Config',) __all__ = ('Config',)

View File

@ -644,6 +644,7 @@ class Config:
# config # config
def __init__(self, def __init__(self,
dico): dico):
self._unrestraint = False
if DEBUG: if DEBUG:
from pprint import pprint from pprint import pprint
pprint(dico) pprint(dico)
@ -668,6 +669,7 @@ class Config:
self.root = first_path.rsplit('.', 1)[0] self.root = first_path.rsplit('.', 1)[0]
else: else:
self.root = '' self.root = ''
self.dico = dico
def __getattr__(self, def __getattr__(self,
subfunc: str) -> Any: subfunc: str) -> Any:
@ -682,6 +684,11 @@ class Config:
if subfunc == 'owner': if subfunc == 'owner':
return ContextOwner(self, return ContextOwner(self,
self.schema) self.schema)
if subfunc == 'unrestraint':
ret = Config(self.dico)
ret._unrestraint = True
ret.temp = self.temp
return ret
raise APIError(_('please specify a valid sub function ({})').format(subfunc)) raise APIError(_('please specify a valid sub function ({})').format(subfunc))
def add_value(self, def add_value(self,
@ -847,6 +854,8 @@ class Config:
path: str, path: str,
index: Optional[int], index: Optional[int],
permissive: bool=False) -> bool: permissive: bool=False) -> bool:
if self._unrestraint:
return False
if permissive: if permissive:
property_ = 'hidden' property_ = 'hidden'
needs = True needs = True