rclone-api 1.0.42__py2.py3-none-any.whl → 1.0.43__py2.py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
rclone_api/group_files.py CHANGED
@@ -80,14 +80,10 @@ class TreeNode:
80
80
 
81
81
  def _merge(node: TreeNode, parent_path: str, out: dict[str, list[str]]) -> None:
82
82
  parent_path = parent_path + "/" + node.name
83
- this_count = node.count
84
- child_count = 0
85
- children_has_files = False
86
83
  if not node.child_nodes and not node.files:
87
84
  return # done
88
-
89
85
  if node.files:
90
- children_has_files = True
86
+ # we saw files, to don't try to go any deeper.
91
87
  filelist = out.setdefault(parent_path, [])
92
88
  # for file in node.files:
93
89
  # filelist.append(file)
@@ -98,28 +94,28 @@ def _merge(node: TreeNode, parent_path: str, out: dict[str, list[str]]) -> None:
98
94
  out[parent_path] = filelist
99
95
  return
100
96
 
101
- for child in node.child_nodes.values():
102
- child_count += child.count
103
- child_count += len(node.files)
104
- for file in node.files:
105
- child_count += 1
97
+ n_child_nodes = len(node.child_nodes)
106
98
 
107
- if child_count != this_count or children_has_files:
108
- # print(
109
- # f"Cannot merge {node.name} because different counts or has children with files"
110
- # )
111
- filelist = out.setdefault(parent_path, [])
112
- for child in node.child_nodes.values():
113
- subpaths = child.get_child_subpaths()
114
- filelist.extend(subpaths)
115
- out[parent_path] = filelist
116
- else:
99
+ if n_child_nodes < 4:
100
+ # child = list(node.child_nodes.values())[0]
101
+ # _merge(child, parent_path, out)
102
+ # return
117
103
  for child in node.child_nodes.values():
118
104
  _merge(child, parent_path, out)
105
+ return
119
106
 
107
+ filelist = out.setdefault(parent_path, [])
108
+ # for file in node.files:
109
+ # filelist.append(file)
110
+ # out[parent_path] = filelist
111
+ paths = node.get_child_subpaths()
112
+ for path in paths:
113
+ filelist.append(path)
114
+ out[parent_path] = filelist
115
+ return
120
116
 
121
- def group_files(files: list[str]) -> dict[str, list[str]]:
122
- """split between filename and parent directory path"""
117
+
118
+ def _make_tree(files: list[str]) -> dict[str, TreeNode]:
123
119
  tree: dict[str, TreeNode] = {}
124
120
  for file in files:
125
121
  parts = parse_file(file)
@@ -131,6 +127,12 @@ def group_files(files: list[str]) -> dict[str, list[str]]:
131
127
  if is_last:
132
128
  node.files.append(parts.name)
133
129
  node.add_count()
130
+ return tree
131
+
132
+
133
+ def group_files(files: list[str]) -> dict[str, list[str]]:
134
+ """split between filename and parent directory path"""
135
+ tree: dict[str, TreeNode] = _make_tree(files)
134
136
  outpaths: dict[str, list[str]] = {}
135
137
  for _, node in tree.items():
136
138
  _merge(node, "", outpaths)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: rclone_api
3
- Version: 1.0.42
3
+ Version: 1.0.43
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  Maintainer: Zachary Vorhies
@@ -10,7 +10,7 @@ rclone_api/dir_listing.py,sha256=9Qqf2SUswrOEkyqmaH23V51I18X6ePiXb9B1vUwRF5o,157
10
10
  rclone_api/exec.py,sha256=HWmnU2Jwb-3EttSbAJSaLloYA7YI2mHTzRJ5VEri9aM,941
11
11
  rclone_api/file.py,sha256=D02iHJW1LhfOiM_R_yPHP8_ApnDiYrkuraVcrV8-qkw,1246
12
12
  rclone_api/filelist.py,sha256=xbiusvNgaB_b_kQOZoHMJJxn6TWGtPrWd2J042BI28o,767
13
- rclone_api/group_files.py,sha256=xHE3_gvvMWgvLk33TyTNAa0GRFvIRo2qkwsEKA-yujU,4730
13
+ rclone_api/group_files.py,sha256=FK9-DQV2rpl_EQSI6Y1NqcEA2WVkhBwLY5oP43bnp3k,4690
14
14
  rclone_api/process.py,sha256=RrMfTe0bndmJ6gBK67ioqNvCstJ8aTC8RlGX1XBLlcw,4191
15
15
  rclone_api/rclone.py,sha256=zKLlHykEs43kt-FB3_YFvwPmRcHY2a3-fShMfGEjYH0,21004
16
16
  rclone_api/remote.py,sha256=c9hlRKBCg1BFB9MCINaQIoCg10qyAkeqiS4brl8ce-8,343
@@ -19,9 +19,9 @@ rclone_api/util.py,sha256=sUjH5NmsawmNbPMY7V6hD8vFJXCwbl44XM1kuij3tA0,3918
19
19
  rclone_api/walk.py,sha256=kca0t1GAnF6FLclN01G8NG__Qe-ggodLtAbQSHyVPng,2968
20
20
  rclone_api/assets/example.txt,sha256=lTBovRjiz0_TgtAtbA1C5hNi2ffbqnNPqkKg6UiKCT8,54
21
21
  rclone_api/cmd/list_files.py,sha256=x8FHODEilwKqwdiU1jdkeJbLwOqUkUQuDWPo2u_zpf0,741
22
- rclone_api-1.0.42.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
23
- rclone_api-1.0.42.dist-info/METADATA,sha256=f5ePfkFNusMVvM9SSIdDsLXuZOUFKYF_ak8yAKnuzc4,4489
24
- rclone_api-1.0.42.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
25
- rclone_api-1.0.42.dist-info/entry_points.txt,sha256=XUoTX3m7CWxdj2VAKhEuO0NMOfX2qf-OcEDFwdyk9ZE,72
26
- rclone_api-1.0.42.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
27
- rclone_api-1.0.42.dist-info/RECORD,,
22
+ rclone_api-1.0.43.dist-info/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
23
+ rclone_api-1.0.43.dist-info/METADATA,sha256=De892IJwCIjjb710T9a4SvaBBYIjaf20D1JU_0cUwfM,4489
24
+ rclone_api-1.0.43.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
25
+ rclone_api-1.0.43.dist-info/entry_points.txt,sha256=XUoTX3m7CWxdj2VAKhEuO0NMOfX2qf-OcEDFwdyk9ZE,72
26
+ rclone_api-1.0.43.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
27
+ rclone_api-1.0.43.dist-info/RECORD,,