def from_module_package( package: HBShedPackageHandler) -> HBShedPackageHandler: if not package.config().has_parent(): return package else: current_path: Path = package.cwd parent_package: HBShedPackageHandler = package while parent_package.config().has_parent( ) and not parent_package.config().is_parent_external(): current_path = parent_package.cwd.parent parent_package = HBShedPackageHandler(current_path) return parent_package
def __get_package(self, name: str) -> Optional[HBShedPackageHandler]: target_path: Path = self.__node_modules.joinpath(name) if not target_path.is_dir(): raise FileNotFoundError('Package : ' + name + ' not found at : ' + self.__node_modules.as_posix()) return HBShedPackageHandler.from_package_handler( PackageHandler(target_path))
class Module: name: str path: Path package: HBShedPackageHandler def __init__(self, path: Path) -> None: self.path = path self.__load_package() self.__ensure_name() def __load_package(self): self.package = HBShedPackageHandler(self.path) self.package.config() def __ensure_name(self): self.name = self.package.name()
def process(self, package: PackageHandler): hb_package: Optional[ HBShedPackageHandler] = HBShedPackageHandler.from_package_handler( package) if hb_package is not None: if hb_package.config().has_parent_external(): if self.parents.get(hb_package.config().parent_name()): if hb_package.config().has_parent_version( ) and self.parents.get(hb_package.config().parent_name( )) is not None and self.parents.get(hb_package.config( ).parent_name()) != hb_package.config().parent_version(): raise ImportError( 'Version conflict with parent package : ' + package.name() + ' parent: ' + hb_package.config().parent_name() + ' version:' + hb_package.config().parent_version() + ' because version : ' + self.parents.get( hb_package.config().parent_name()) + ' already registered') self.parents[hb_package.config().parent_name( )] = hb_package.config().parent_version()
def __init__(self, root_package: HBShedPackageHandler, package: HBShedPackageHandler, dependencies: Set[str], options: Options) -> None: self.__root_package: HBShedPackageHandler = root_package self.__package: HBShedPackageHandler = package self.__node_modules: Path = root_package.modules_path() self.__dependencies: Set[str] = dependencies self.__options: Options = options
def add_all(self, package: PackageHandler): hb_package: Optional[HBShedPackageHandler] = HBShedPackageHandler.from_package_handler(package) if hb_package is not None: if hb_package.config().has_dependencies(): dependendency: str for dependendency in hb_package.config().dependencies(): self.dependencies.add(dependendency)
def process(self, package: PackageHandler): hb_package: Optional[HBShedPackageHandler] = HBShedPackageHandler.from_package_handler(package) if hb_package is not None: if hb_package.config().has_parent_external() and hb_package.config().has_dependencies(): dependendency: str for dependendency in hb_package.config().dependencies(): self.dependencies.add(dependendency)
def process(self): task: Tasks for task in self.__tasks: if task == Tasks.TEST: self.__ensure_load_hb_package() Test(self.__options, self.__package, self.__cwd).process() elif task == Tasks.SELF_INSTALL: p: Path = Path( os.path.dirname(os.path.realpath(__file__)) + '/../../..') p.resolve() SelfInstall(self.__options, HBShedPackageHandler(p), p).process() elif task == Tasks.INSTALL: self.__ensure_load_hb_package() Install(self.__options, self.__package, self.__cwd).process() elif task == Tasks.CLEAN: self.__ensure_load_hb_package() Clean(self.__options, self.__package, self.__cwd).process() elif task == Tasks.CLEAN_DEPENDENCIES_DIR: self.__ensure_load_hb_package() CleanDependenciesDir(self.__options, self.__package, self.__cwd).process() elif task == Tasks.CLEAN_SOURCES: self.__ensure_load_hb_package() CleanSources(self.__options, self.__package, self.__cwd).process() elif task == Tasks.CLEAN_BUILD: self.__ensure_load_hb_package() CleanBuild(self.__options, self.__package, self.__cwd).process() elif task == Tasks.DEV: self.__ensure_load_hb_package() Dev(self.__options, self.__package, self.__cwd).process() elif task == Tasks.BROWSER_TEST: self.__ensure_load_hb_package() BrowserTest(self.__options, self.__package, self.__cwd).process() elif task == Tasks.EXTRACT_PACKAGE: self.__ensure_load_hb_package() ExtractPackage(self.__options, self.__package, self.__cwd).process() elif task == Tasks.BUILD: self.__ensure_load_hb_package() Build(self.__options, self.__package, self.__cwd).process() elif task == Tasks.GENERATE_SOURCES: self.__ensure_load_hb_package() GenerateSources(self.__options, self.__package, self.__cwd).process() elif task == Tasks.SET_FLEXIO_REGISTRY: SetFlexioRegistry(self.__options, self.__package, self.__cwd).process() elif task == Tasks.PUBLISH: self.__ensure_load_package() Publish(self.__options, self.__package, self.__cwd).process() else: raise ValueError('no tasks for this command')
def __ensure_load_hb_package(self): self.__package = HBShedPackageHandler(self.__cwd) self.__package.config()
def __set_package(self): self.target_package = HBShedPackageHandler(self.target_path)
def __load_package(self): self.package = HBShedPackageHandler(self.path) self.package.config()