From a13ac1e759813e7dde572bd31d41d583935c783a Mon Sep 17 00:00:00 2001 From: Aleksandra Apolinarska Date: Thu, 13 Feb 2025 14:45:09 +0100 Subject: [PATCH] #66 ghcomponent to merge datasets --- src/aixd_ara/api.py | 16 +++ .../components/ara_DatasetsMerge/code.py | 25 ++++ .../components/ara_DatasetsMerge/icon.png | Bin 0 -> 1688 bytes .../ara_DatasetsMerge/metadata.json | 45 ++++++++ src/aixd_ara/controller.py | 108 ++++++++++++++++++ src/aixd_ara/gh_ui.py | 10 ++ 6 files changed, 204 insertions(+) create mode 100644 src/aixd_ara/components/ara_DatasetsMerge/code.py create mode 100644 src/aixd_ara/components/ara_DatasetsMerge/icon.png create mode 100644 src/aixd_ara/components/ara_DatasetsMerge/metadata.json diff --git a/src/aixd_ara/api.py b/src/aixd_ara/api.py index 8314243..4ca3ca6 100644 --- a/src/aixd_ara/api.py +++ b/src/aixd_ara/api.py @@ -376,6 +376,22 @@ def ara_welcome(*args): print() +@app.route("/merge_datasets", methods=["POST"]) +def merge_datasets(): + data = request.data + data = json.loads(data) + session_id = data["session_id"] + sc = SessionController.create(session_id) + + result = sc.merge_datasets( + root_folder=data["root_folder"], + new_dataset_name=data["new_dataset_name"], + samples_per_file=data["samples_per_file"], + ) + response = json.dumps(result, cls=DataEncoder) + return response + + if __name__ == "__main__": import sys diff --git a/src/aixd_ara/components/ara_DatasetsMerge/code.py b/src/aixd_ara/components/ara_DatasetsMerge/code.py new file mode 100644 index 0000000..f2ec77f --- /dev/null +++ b/src/aixd_ara/components/ara_DatasetsMerge/code.py @@ -0,0 +1,25 @@ +# flake8: noqa +from scriptcontext import sticky as st +from Grasshopper.Kernel.GH_RuntimeMessageLevel import Error, Warning + +from aixd_ara.gh_ui import merge_datasets +from aixd_ara.gh_ui_helper import clear_sticky +from aixd_ara.gh_ui_helper import component_id +from aixd_ara.gh_ui_helper import session_id + +if samples_per_file is None: samples_per_file = 1000 +assert samples_per_file>0, "samples_per_file must be a positive integer, got {}".format(samples_per_file) + +if root_folder: + cid = component_id(session_id(), ghenv.Component, "ProjectSetup") + + if merge: + st[cid] = merge_datasets(session_id(), root_folder, new_dataset_name,samples_per_file) + + if cid in st.keys(): + status = st[cid]["status"] + msg = st[cid]["msg"] + # if status=="error": + # ghenv.Component.AddRuntimeMessage(Error, msg) + # elif status=="warning": + # ghenv.Component.AddRuntimeMessage(Warning, msg) \ No newline at end of file diff --git a/src/aixd_ara/components/ara_DatasetsMerge/icon.png b/src/aixd_ara/components/ara_DatasetsMerge/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..01f69de672948a9c8f1ed6e138bc87b34fb78d56 GIT binary patch literal 1688 zcmV;J250$+P) zQ82zcY{J?2&iBW6ySF>@s#&n(kcyx5c4lYZzBli^-@HX4f`{>~@$)eve3lTmB0wDw zAs~K1Z!bprrHfOV_tn@4)U&&gd3Z&MqAI+S8CoB)l`G(rKEXpQo9b8JL`yY%XLn zO*>wCX{sTSECWfvpPoM%$;y`35RhdqPsQfmyZD4#bGXJeY~9+bwIvd~E*R7t+t#dV zm1&xWreWZ7&p%Jwwr`h0N+Beo;Cn(ex_<+|0D zc--b(6IP)RVA3TO0k@^z3MARB$@e=0eiMH6i(f*0D8&6fUm&O(^?uGnmnJ9c7BU%M zCY@#~rHN#cqR}Wd1OiUjFx;|~)!Vl-7+(_MY4XOeo7q}3_ z6lwK9z?P0<{QUTFeCmmw`oH|)&9-u>g!}jJhrz)?=3ShjBdud zvjYbX!06~G?Ao;pethVV@tfcMRwKtk9UQ2KRbt=(a~)!?3s^0bg9{6bI5IMfj$PB$ z{b*}zdlc^CcJ3EUj%ULje2=xK1M&O=|U`{f}Ayfj4%W`=Q-g@hg*cgpEmSuS# zpEz*>QmNDz468M@r*xEVEEa?0V_Ts$-bevviAKCfQCKEkbG)X5+zePjT{kaX`VcMK z65ZY1P%f9@;K75QC=3h?c;n>cL~&uZ8R%ThxD+;O~q zKtcj+Y1s|d-m-4zlC0hDs(oRg{Gz^0O`^< z`kQWk*_>M@s{ja6ML@uiAkx*lxHx$}_Ol~LDNt8et5zy}XlMv}dU`x3>a?4oqEQE! zo}LENG$D~_l{+7gXY7ogbMBN8sElO{mAR`TUIenxDtc_;K7I$@83O3 zTra5nD~>C+9jWw22A(p zcb|IqhcEi3q4bG`Ygu6nz8V}UomBhS@q?2`xlb9_Kvxb71VfV)Fa$+7czy|6{*-*>W<@#R!j)cn zRH3DYs)Yk+pt>trjxD>N*?Bc;bbJ)oi%zq#>O_4xw~?)idMrUe<`9avISAW_(&aYz z{~H`Gol9;a0~eBjNdl?Fs{jL1&5sDw3`mgTw-lBXZdni%U19|RSOkQM2H@revZWde i{wK7zkpCRf0N{U_gGW`#H)(SK0000