Add civit model pull ability

This commit is contained in:
2025-09-20 12:12:56 +07:00
parent 65bffc38eb
commit 991d655756
9 changed files with 632 additions and 13 deletions

View File

@@ -1,5 +1,8 @@
from unicodedata import category
from modelspace.ModelPackageSelector import format_bytes
from modelspace.ModelSpace import ModelSpace
from modules.civit.client import Client
from shell.Handlers.ABS import Handler
from modelspace.Repository import global_repo
@@ -17,18 +20,50 @@ class ModelSpaceHandler(Handler):
'load': self._load,
'list': self._list,
'debug': self._debug,
'add-to-collection': self._add_to_collection,
'init-civit': self._init_civit,
'pull-civit': self._pull_civit,
# 'show': self._show,
# 'activate': self._activate,
}
self._loaded_instances: dict[str, ModelSpace] = {}
self._active_instance: ModelSpace | None = None
pass
self.client: Client | None = None
def _init_civit(self, command: list[str], pos=0):
keys, args = self.parse_arguments(command[pos:], ['path', 'key'])
self._check_arg(keys, 'path')
self.client = Client(keys['path'], keys['key'])
self.succeed = True
def _create_inter(self, command: list[str], pos=0):
global_repo.add_model_package_interactive()
self.succeed = True
def _add_to_collection(self, command: list[str], pos=0):
keys, args = self.parse_arguments(command[pos:], ['pkg', 'collection', 'category', 'ext'])
self._check_arg(keys, 'pkg')
self._check_arg(keys, 'collection')
if keys['ext']:
internal = False
category = None
else:
internal = True
category = keys['category']
global_repo.model_sub_repo.add_package_to_collection(keys['pkg'], keys['collection'], category, internal)
self.succeed = True
def _pull_civit(self, command: list[str], pos=0):
keys, args = self.parse_arguments(command[pos:], ['model', 'version', 'file'])
self._check_arg(keys, 'model')
global_repo.model_sub_repo.pull_civit_package(self.client, keys['model'], keys['version'], keys['file'])
self.succeed = True
def _load(self, command: list[str], pos = 0):
keys, args = self.parse_arguments(command[pos:], ['path', 'layout', 'name'])
self._check_arg(keys, 'path')