195 lines
7.3 KiB
Plaintext
195 lines
7.3 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Working on rigpump\n",
|
|
"Working on rigpump .DS_Store\n",
|
|
"Working on rigpump mistaway\n",
|
|
"['v4', 'v3']\n",
|
|
"Working on tankalarms\n",
|
|
"Working on tankalarms .DS_Store\n",
|
|
"Working on tankalarms thingsboard\n",
|
|
"['v1']\n",
|
|
"Working on cameratrailer_hk\n",
|
|
"Working on cameratrailer_hk .DS_Store\n",
|
|
"Working on cameratrailer_hk thingsboard\n",
|
|
"['v5']\n",
|
|
"Working on cameratrailer_hk hikvision_config.cnf\n",
|
|
"Working on .DS_Store\n",
|
|
"Working on config_manager.ipynb\n",
|
|
"Working on advvfdipp_sru\n",
|
|
"Working on advvfdipp_sru .DS_Store\n",
|
|
"Working on advvfdipp_sru thingsboard\n",
|
|
"['v1', 'v2']\n",
|
|
"Working on hrtankbattery\n",
|
|
"Working on hrtankbattery .DS_Store\n",
|
|
"Working on hrtankbattery thingsboard\n",
|
|
"['v1', 'v2', 'v3']\n",
|
|
"Working on hrtankbattery hrtankbattery_tags.json\n",
|
|
"Working on flowmeterskid\n",
|
|
"Working on flowmeterskid .DS_Store\n",
|
|
"Working on flowmeterskid flowmeterskid_ethernetip_baseline.py\n",
|
|
"Working on flowmeterskid thingsboard\n",
|
|
"['v1', 'v0', 'v2']\n",
|
|
"Working on flowmeterskid mistaway\n",
|
|
"['v1']\n",
|
|
"Working on dual_flowmeter\n",
|
|
"Working on dual_flowmeter .DS_Store\n",
|
|
"Working on dual_flowmeter thingsboard\n",
|
|
"['v1']\n",
|
|
"Working on dual_flowmeter mistaway\n",
|
|
"['v1', 'v0']\n",
|
|
"Working on plcfreshwater_advvfdipp\n",
|
|
"Working on plcfreshwater_advvfdipp .DS_Store\n",
|
|
"Working on plcfreshwater_advvfdipp thingsboard\n",
|
|
"['v1', 'v2']\n",
|
|
"Working on hrswd\n",
|
|
"Working on hrswd .DS_Store\n",
|
|
"Working on hrswd thingsboard\n",
|
|
"['v1']\n",
|
|
"Working on advvfdipp_wo_downhole\n",
|
|
"Working on advvfdipp_wo_downhole .DS_Store\n",
|
|
"Working on advvfdipp_wo_downhole thingsboard\n",
|
|
"['v1']\n",
|
|
"Working on transferlite\n",
|
|
"Working on transferlite .DS_Store\n",
|
|
"Working on transferlite mistaway\n",
|
|
"['v1']\n",
|
|
"Working on __pycache__\n",
|
|
"Working on __pycache__ convert_config.cpython-310.pyc\n",
|
|
"Working on __pycache__ convert_config.cpython-39.pyc\n",
|
|
"Working on hrvalvecontroller\n",
|
|
"Working on hrvalvecontroller .DS_Store\n",
|
|
"Working on hrvalvecontroller thingsboard\n",
|
|
"['v1']\n",
|
|
"Working on receiveAttributeResponse.py\n",
|
|
"Working on convert_config.py\n",
|
|
"Working on advvfdipp\n",
|
|
"Working on advvfdipp advvfdipp.csv\n",
|
|
"Working on advvfdipp .DS_Store\n",
|
|
"Working on advvfdipp thingsboard\n",
|
|
"['v1', 'v2', 'v4', 'v3']\n",
|
|
"Working on advvfdipp mistaway\n",
|
|
"['v1', 'v2', 'v4', 'v3']\n",
|
|
"Working on advvfdipp advvfdipp_tags.json\n",
|
|
"Working on receiveAttributeUpdate.py\n",
|
|
"Working on valvecontroller\n",
|
|
"Working on valvecontroller .DS_Store\n",
|
|
"Working on valvecontroller thingsboard\n",
|
|
"['v1', 'v2']\n",
|
|
"Working on hrbooster\n",
|
|
"Working on hrbooster .DS_Store\n",
|
|
"Working on hrbooster thingsboard\n",
|
|
"['v1']\n",
|
|
"Working on .ipynb_checkpoints\n",
|
|
"Working on fkplcpond\n",
|
|
"Working on fkplcpond .DS_Store\n",
|
|
"Working on fkplcpond thingsboard\n",
|
|
"['v1', 'v2', 'v3']\n",
|
|
"Working on abbflow\n",
|
|
"Working on abbflow .DS_Store\n",
|
|
"Working on abbflow thingsboard\n",
|
|
"['v1', 'v2']\n",
|
|
"Working on cameratrailer\n",
|
|
"Working on cameratrailer .DS_Store\n",
|
|
"Working on cameratrailer thingsboard\n",
|
|
"['v1', 'v2', 'v4', 'v3']\n",
|
|
"Working on base.py\n",
|
|
"Working on plcfreshwater\n",
|
|
"Working on plcfreshwater .DS_Store\n",
|
|
"Working on plcfreshwater thingsboard\n",
|
|
"['v1']\n",
|
|
"Working on plcfreshwater mistaway\n",
|
|
"['v1']\n",
|
|
"Working on gateway\n",
|
|
"Working on gateway .DS_Store\n",
|
|
"Working on gateway thingsboard\n",
|
|
"['v1']\n",
|
|
"Working on gateway a_pond.cfg\n",
|
|
"Working on gateway 1701.cfg\n",
|
|
"Working on gateway tree.cfg\n",
|
|
"Working on gateway measure_gateway.csv\n",
|
|
"Working on promagmbs\n",
|
|
"Working on promagmbs .DS_Store\n",
|
|
"Working on promagmbs mistaway\n",
|
|
"['v1']\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import os\n",
|
|
"import shutil\n",
|
|
"import re\n",
|
|
"\n",
|
|
"def convert_structure(root):\n",
|
|
" for devicetype in os.listdir(root):\n",
|
|
" print(f\"Working on {devicetype}\")\n",
|
|
" devicetype_path = os.path.join(root, devicetype)\n",
|
|
" #print(devicetype_path)\n",
|
|
" if os.path.isdir(devicetype_path):\n",
|
|
" for platform in os.listdir(devicetype_path):\n",
|
|
" print(f\"Working on {devicetype} {platform}\")\n",
|
|
" platform_path = os.path.join(devicetype_path, platform)\n",
|
|
" if os.path.isdir(platform_path):\n",
|
|
" versions = [d for d in os.listdir(platform_path) if re.match(r'v\\d+', d)]\n",
|
|
" print(versions)\n",
|
|
" versions_sorted = sorted(versions, key=lambda x: int(re.search(r'v(\\d+)', x).group(1)))\n",
|
|
"\n",
|
|
" # Move configuration files from all versions\n",
|
|
" for version in versions_sorted:\n",
|
|
" version_path = os.path.join(platform_path, version)\n",
|
|
" for file in os.listdir(version_path):\n",
|
|
" if file.endswith('.cfg'):\n",
|
|
" shutil.move(os.path.join(version_path, file), platform_path)\n",
|
|
"\n",
|
|
" # Move pub and sub folders from the latest version\n",
|
|
" latest_version_path = os.path.join(platform_path, versions_sorted[-1])\n",
|
|
" for folder in ['pub', 'sub']:\n",
|
|
" folder_path = os.path.join(latest_version_path, folder)\n",
|
|
" if os.path.isdir(folder_path):\n",
|
|
" new_folder_path = os.path.join(platform_path, folder)\n",
|
|
" if os.path.exists(new_folder_path):\n",
|
|
" shutil.rmtree(new_folder_path)\n",
|
|
" shutil.move(folder_path, platform_path)\n",
|
|
"\n",
|
|
" # Remove old version folders\n",
|
|
" for version in versions_sorted:\n",
|
|
" version_path = os.path.join(platform_path, version)\n",
|
|
" shutil.rmtree(version_path)\n",
|
|
"\n",
|
|
"# Example usage\n",
|
|
"root = \"/Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub\"\n",
|
|
"convert_structure(root)\n"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "tbDataCollector",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.10.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|