From ea4e5b040776ac560904752325b7505886a04bc9 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Wed, 2 Feb 2022 16:21:13 +0100 Subject: [PATCH] few fixes and smaller modifications --- openpype/cli.py | 6 +++--- openpype/lib/project_backpack.py | 27 ++++++++++++++++++++------- openpype/pype_commands.py | 4 ++-- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/openpype/cli.py b/openpype/cli.py index f15306e3d3..0597c387d0 100644 --- a/openpype/cli.py +++ b/openpype/cli.py @@ -419,9 +419,9 @@ def repack_version(directory): @click.option( "--dirpath", help="Directory where package is stored", default=None ) -def pack_project(project_name, dirpath): +def pack_project(project, dirpath): """Create a package of project with all files and database dump.""" - PypeCommands().pack_project(project_name, dirpath) + PypeCommands().pack_project(project, dirpath) @main.command() @@ -429,6 +429,6 @@ def pack_project(project_name, dirpath): @click.option( "--root", help="Replace root which was stored in project", default=None ) -def uppack_project(zipfile, root): +def unpack_project(zipfile, root): """Create a package of project with all files and database dump.""" PypeCommands().unpack_project(zipfile, root) diff --git a/openpype/lib/project_backpack.py b/openpype/lib/project_backpack.py index 045e8b4ea1..42dc8a4f63 100644 --- a/openpype/lib/project_backpack.py +++ b/openpype/lib/project_backpack.py @@ -53,6 +53,7 @@ def pack_project(project_name, destination_dir=None): destination_dir(str): Optinal path where zip will be stored. Project's root is used if not passed. """ + print("Creating package of project \"{}\"".format(project_name)) # Validate existence of project dbcon = AvalonMongoDB() dbcon.Session["AVALON_PROJECT"] = project_name @@ -74,7 +75,7 @@ def pack_project(project_name, destination_dir=None): root_path = source_root[platform.system().lower()] print("Using root \"{}\" with path \"{}\"".format( - root_name, root_value + root_name, root_path )) project_source_path = os.path.join(root_path, project_name) @@ -85,12 +86,13 @@ def pack_project(project_name, destination_dir=None): if not destination_dir: destination_dir = root_path + destination_dir = os.path.normpath(destination_dir) if not os.path.exists(destination_dir): os.makedirs(destination_dir) zip_path = os.path.join(destination_dir, project_name + ".zip") - print("Project will be packaged into {}".format(zip_path)) + print("Project will be packaged into \"{}\"".format(zip_path)) # Rename already existing zip if os.path.exists(zip_path): dst_filepath = add_timestamp(zip_path) @@ -121,6 +123,7 @@ def pack_project(project_name, destination_dir=None): with open(temp_docs_json, "w") as stream: stream.write(data) + print("Packing files into zip") # Write all to zip file with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zip_stream: # Add metadata file @@ -138,10 +141,12 @@ def pack_project(project_name, destination_dir=None): ) zip_stream.write(filepath, archive_name) + print("Cleaning up") # Cleanup os.remove(temp_docs_json) os.remove(temp_metadata_json) dbcon.uninstall() + print("*** Packing finished ***") def unpack_project(path_to_zip, new_root=None): @@ -153,12 +158,13 @@ def unpack_project(path_to_zip, new_root=None): new_root(str): Optional way how to set different root path for unpacked project. """ + print("Unpacking project from zip {}".format(path_to_zip)) if not os.path.exists(path_to_zip): print("Zip file does not exists: {}".format(path_to_zip)) return tmp_dir = tempfile.mkdtemp(prefix="unpack_") - print("Zip is extracted to: {}".format(tmp_dir)) + print("Zip is extracted to temp: {}".format(tmp_dir)) with zipfile.ZipFile(path_to_zip, "r") as zip_stream: zip_stream.extractall(tmp_dir) @@ -183,9 +189,9 @@ def unpack_project(path_to_zip, new_root=None): database.drop_collection(project_name) print("Removed existing project collection") - collection = database[project_name] - # Create new collection with loaded docs print("Creating project documents ({})".format(len(docs))) + # Create new collection with loaded docs + collection = database[project_name] collection.insert_many(docs) # Skip change of root if is the same as the one stored in metadata @@ -217,16 +223,23 @@ def unpack_project(path_to_zip, new_root=None): src_project_files_dir = os.path.join( tmp_dir, PROJECT_FILES_DIR, project_name ) - dst_project_files_dir = os.path.join(root_path, project_name) + dst_project_files_dir = os.path.normpath( + os.path.join(root_path, project_name) + ) if os.path.exists(dst_project_files_dir): new_path = add_timestamp(dst_project_files_dir) + print("Project folder already exists. Renamed \"{}\" -> \"{}\"".format( + dst_project_files_dir, new_path + )) os.rename(dst_project_files_dir, new_path) - print("Moving {} -> {}".format( + print("Moving project files from temp \"{}\" -> \"{}\"".format( src_project_files_dir, dst_project_files_dir )) shutil.move(src_project_files_dir, dst_project_files_dir) # CLeanup + print("Cleaning up") shutil.rmtree(tmp_dir) dbcon.uninstall() + print("*** Unpack finished ***") diff --git a/openpype/pype_commands.py b/openpype/pype_commands.py index e5db036c04..1ed6cc9344 100644 --- a/openpype/pype_commands.py +++ b/openpype/pype_commands.py @@ -434,12 +434,12 @@ class PypeCommands: version_packer = VersionRepacker(directory) version_packer.process() - def pack_project(project_name, dirpath): + def pack_project(self, project_name, dirpath): from openpype.lib.project_backpack import pack_project pack_project(project_name, dirpath) - def unpack_project(zip_filepath, new_root): + def unpack_project(self, zip_filepath, new_root): from openpype.lib.project_backpack import unpack_project unpack_project(zip_filepath, new_root)