import logging
from pathlib import Path
from pkglts.local import pkg_full_name
from pkglts.option_object import Option
from pkglts.version import __version__
LOGGER = logging.getLogger(__name__)
[docs]
class OptionBase(Option):
[docs]
def version(self):
return __version__
[docs]
def root_dir(self):
return Path(__file__).parent
[docs]
def update_parameters(self, cfg):
LOGGER.info("update parameters %s", self._name)
sec = dict(
pkgname=Path.cwd().name,
namespace=None,
url=None,
authors=[("moi", "moi@email.com")]
)
cfg[self._name] = sec
[docs]
def check(self, cfg):
invalids = []
pkgname = cfg[self._name]['pkgname']
namespace = cfg[self._name]['namespace']
if "." in pkgname:
invalids.append('base.pkgname')
elif not pkgname.isidentifier():
invalids.append('base.pkgname')
if namespace is not None:
if "." in namespace:
invalids.append('base.namespace')
elif not namespace.isidentifier():
invalids.append('base.namespace')
return invalids
[docs]
def environment_extensions(self, cfg):
return {"pkg_full_name": pkg_full_name(cfg)}