Source code for pkglts.option.conda.option

import logging
from pathlib import Path

from pkglts.option.reqs.option import requirements
from pkglts.option_object import Option
from pkglts.version import __version__

LOGGER = logging.getLogger(__name__)


[docs] class OptionConda(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( env_name="{{ base.pkgname }}", ) cfg[self._name] = sec
[docs] def check(self, cfg): invalids = [] env_name = cfg[self._name]['env_name'] if not env_name: invalids.append("conda.env_name") if len(env_name) != len(env_name.strip()) or "-" in env_name: invalids.append("conda.env_name") return invalids
[docs] def require_option(self, cfg): return ['pyproject']
[docs] def environment_extensions(self, cfg): channels = set(dep.channel for dep in requirements(cfg)) - {None} channels_minimal = set(dep.channel for dep in requirements(cfg) if 'install' in dep.intents) - {None} return {"channels": channels, "channels_minimal": channels_minimal}