def enable_plugin(self, file_path: str): self.logger.info( self.mcdr_server.tr('plugin_manager.enable_plugin.entered', file_path)) new_file_path = string_util.remove_suffix( file_path, constant.DISABLED_PLUGIN_FILE_SUFFIX) if os.path.isfile(file_path): os.rename(file_path, new_file_path) self.load_plugin(new_file_path)
def enable_plugin(self, file_path: str): with self.__mani_lock: self.logger.info( self.mcdr_server.tr('plugin_manager.enable_plugin.entered', file_path)) new_file_path = string_util.remove_suffix( file_path, plugin_constant.DISABLED_PLUGIN_FILE_SUFFIX) if plugin_factory.is_disabled_plugin(file_path): os.rename(file_path, new_file_path) self.load_plugin(new_file_path)
def __get_plugin_class_from_path(file_path: str, allow_disabled: bool) -> Optional[type]: if os.path.isfile(file_path): if file_path.endswith(plugin_constant.DISABLED_PLUGIN_FILE_SUFFIX ) and allow_disabled: file_path = string_util.remove_suffix( file_path, plugin_constant.DISABLED_PLUGIN_FILE_SUFFIX) suffix = file_util.get_file_suffix(file_path) if suffix == plugin_constant.SOLO_PLUGIN_FILE_SUFFIX: # .py return SoloPlugin if suffix in plugin_constant.PACKED_PLUGIN_FILE_SUFFIXES: # .mcdr return PackedPlugin elif os.path.isdir(file_path) and ( allow_disabled or not file_path.endswith( plugin_constant.DISABLED_PLUGIN_FILE_SUFFIX)): if os.path.isfile( os.path.join( file_path, plugin_constant.PLUGIN_META_FILE)) and not os.path.isfile( os.path.join(file_path, '__init__.py')): return DirectoryPlugin return None
def get_fallback_metadata_id(self) -> str: file_name = string_util.remove_suffix( self.file_name, plugin_constant.SOLO_PLUGIN_FILE_SUFFIX) return re.sub(r'[^a-z0-9]', '_', file_name.lower())