cloudinary-cli 1.11.0__tar.gz → 1.11.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. {cloudinary_cli-1.11.0/cloudinary_cli.egg-info → cloudinary_cli-1.11.2}/PKG-INFO +2 -2
  2. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/utils/api_utils.py +2 -1
  3. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/utils/utils.py +6 -3
  4. cloudinary_cli-1.11.2/cloudinary_cli/version.py +1 -0
  5. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2/cloudinary_cli.egg-info}/PKG-INFO +2 -2
  6. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli.egg-info/requires.txt +1 -1
  7. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/requirements.txt +1 -1
  8. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_utils.py +10 -1
  9. cloudinary_cli-1.11.0/cloudinary_cli/version.py +0 -1
  10. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/LICENSE +0 -0
  11. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/MANIFEST.in +0 -0
  12. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/README.md +0 -0
  13. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/__init__.py +0 -0
  14. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/cli.py +0 -0
  15. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/cli_group.py +0 -0
  16. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/core/__init__.py +0 -0
  17. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/core/admin.py +0 -0
  18. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/core/config.py +0 -0
  19. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/core/overrides.py +0 -0
  20. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/core/provisioning.py +0 -0
  21. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/core/search.py +0 -0
  22. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/core/uploader.py +0 -0
  23. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/core/utils.py +0 -0
  24. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/defaults.py +0 -0
  25. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/modules/__init__.py +0 -0
  26. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/modules/clone.py +0 -0
  27. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/modules/make.py +0 -0
  28. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/modules/migrate.py +0 -0
  29. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/modules/regen_derived.py +0 -0
  30. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/modules/sync.py +0 -0
  31. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/modules/upload_dir.py +0 -0
  32. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/samples/__init__.py +0 -0
  33. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/html/media_library_widget +0 -0
  34. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/html/product_gallery +0 -0
  35. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/html/upload_widget +0 -0
  36. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/html/video_player +0 -0
  37. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/node/upload +0 -0
  38. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/python/base +0 -0
  39. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/python/explicit +0 -0
  40. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/python/find_all_empty_folders +0 -0
  41. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/python/upload +0 -0
  42. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/templates/ruby/upload +0 -0
  43. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/utils/__init__.py +0 -0
  44. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/utils/config_utils.py +0 -0
  45. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/utils/file_utils.py +0 -0
  46. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli/utils/json_utils.py +0 -0
  47. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli.egg-info/SOURCES.txt +0 -0
  48. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli.egg-info/dependency_links.txt +0 -0
  49. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli.egg-info/entry_points.txt +0 -0
  50. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli.egg-info/not-zip-safe +0 -0
  51. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/cloudinary_cli.egg-info/top_level.txt +0 -0
  52. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/setup.cfg +0 -0
  53. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/setup.py +0 -0
  54. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/__init__.py +0 -0
  55. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/helper_test.py +0 -0
  56. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_cli.py +0 -0
  57. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_cli_api.py +0 -0
  58. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_cli_config.py +0 -0
  59. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_cli_samples.py +0 -0
  60. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_cli_search_api.py +0 -0
  61. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_cli_url.py +0 -0
  62. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_cli_utils.py +0 -0
  63. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_file_utils.py +0 -0
  64. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_modules/__init__.py +0 -0
  65. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_modules/test_cli_make.py +0 -0
  66. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_modules/test_cli_sync.py +0 -0
  67. {cloudinary_cli-1.11.0 → cloudinary_cli-1.11.2}/test/test_modules/test_cli_upload_dir.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudinary-cli
3
- Version: 1.11.0
3
+ Version: 1.11.2
4
4
  Summary: A command line interface for Cloudinary with full API support
5
5
  Home-page: https://github.com/cloudinary/cloudinary-cli
6
6
  Author: Cloudinary, Brian Luk
@@ -13,7 +13,7 @@ Classifier: Operating System :: OS Independent
13
13
  Requires-Python: >=3.6.0
14
14
  Description-Content-Type: text/markdown
15
15
  License-File: LICENSE
16
- Requires-Dist: cloudinary>=1.37.0
16
+ Requires-Dist: cloudinary>=1.42.2
17
17
  Requires-Dist: pygments
18
18
  Requires-Dist: jinja2
19
19
  Requires-Dist: click
@@ -25,9 +25,10 @@ def query_cld_folder(folder, folder_mode):
25
25
  files = {}
26
26
 
27
27
  folder = folder.strip('/') # omit redundant leading slash and duplicate trailing slashes in query
28
+ folder_key = "asset_folder" if folder_mode == "dynamic" else "folder"
28
29
  folder_query = f"{folder}/*" if folder else "*"
29
30
 
30
- expression = Search().expression(f"folder:\"{folder_query}\"").with_field("image_analysis").max_results(500)
31
+ expression = Search().expression(f"{folder_key}:\"{folder_query}\"").with_field("image_analysis").max_results(500)
31
32
 
32
33
  next_cursor = True
33
34
  while next_cursor:
@@ -149,7 +149,7 @@ def parse_args_kwargs(func, params=None, kwargs=None):
149
149
  params_specs = parse(func.__doc__).params
150
150
 
151
151
  if len(args) > num_req:
152
- # Here we comsumed more args than the function can get,
152
+ # Here we consumed more args than the function can get,
153
153
  # let's see if we have a list arg and pass everything as list.
154
154
  # Otherwise, let's pass everything as is and hope for the best :)
155
155
  last_positional_list_param = next((s for s in reversed(params_specs) if s.arg_name not in kwargs and s.type_name and s.type_name.startswith('list')), None)
@@ -161,7 +161,10 @@ def parse_args_kwargs(func, params=None, kwargs=None):
161
161
  for s in params_specs:
162
162
  if s.type_name and s.type_name.startswith('list'):
163
163
  pos = get_index_by_name(spec.args, s.arg_name)
164
- args[pos] = normalize_list_params(args[pos])
164
+ if isinstance(pos, int) and 0 <= pos < len(args):
165
+ args[pos] = normalize_list_params(args[pos])
166
+ if s.arg_name in kwargs:
167
+ kwargs[s.arg_name] = normalize_list_params(kwargs[s.arg_name])
165
168
 
166
169
  return args, kwargs
167
170
 
@@ -334,7 +337,7 @@ def normalize_list_params(params):
334
337
  """
335
338
  normalized_params = []
336
339
  for f in build_array(params):
337
- if "," in f:
340
+ if isinstance(f, str) and "," in f:
338
341
  normalized_params += f.split(",")
339
342
  else:
340
343
  normalized_params.append(f)
@@ -0,0 +1 @@
1
+ __version__ = "1.11.2"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudinary-cli
3
- Version: 1.11.0
3
+ Version: 1.11.2
4
4
  Summary: A command line interface for Cloudinary with full API support
5
5
  Home-page: https://github.com/cloudinary/cloudinary-cli
6
6
  Author: Cloudinary, Brian Luk
@@ -13,7 +13,7 @@ Classifier: Operating System :: OS Independent
13
13
  Requires-Python: >=3.6.0
14
14
  Description-Content-Type: text/markdown
15
15
  License-File: LICENSE
16
- Requires-Dist: cloudinary>=1.37.0
16
+ Requires-Dist: cloudinary>=1.42.2
17
17
  Requires-Dist: pygments
18
18
  Requires-Dist: jinja2
19
19
  Requires-Dist: click
@@ -1,4 +1,4 @@
1
- cloudinary>=1.37.0
1
+ cloudinary>=1.42.2
2
2
  pygments
3
3
  jinja2
4
4
  click
@@ -1,4 +1,4 @@
1
- cloudinary>=1.37.0
1
+ cloudinary>=1.42.2
2
2
  pygments
3
3
  jinja2
4
4
  click
@@ -70,6 +70,15 @@ class UtilsTest(unittest.TestCase):
70
70
  self.assertListEqual(["l1a0", "l1a1", "l1a2", "l1a3"], args[2])
71
71
  self.assertEqual("sa2", args[3])
72
72
 
73
+ # should consume list values separated by spaces and commas in kwargs
74
+ args, kwargs = parse_args_kwargs(_list_args_test_func,
75
+ ["l0a0,l0a1,l0a2", "sa0"], {"list_arg": "l1a0,l1a1", "non_list_arg2": "sa2"})
76
+ self.assertEqual(2, len(args))
77
+ self.assertListEqual(["l0a0", "l0a1", "l0a2"], args[0])
78
+ self.assertEqual("sa0", args[1])
79
+ self.assertListEqual(["l1a0", "l1a1"], kwargs["list_arg"])
80
+ self.assertEqual("sa2", kwargs["non_list_arg2"])
81
+
73
82
  def test_group_params(self):
74
83
  self.assertDictEqual({}, group_params([]))
75
84
  self.assertDictEqual({"k1": "v1", "k2": "v2"}, group_params([("k1", "v1"), ("k2", "v2")]))
@@ -143,7 +152,7 @@ def _args_kwargs_test_func(arg1, arg2=None):
143
152
  return arg1, arg2
144
153
 
145
154
 
146
- def _list_args_test_func(fist_list_arg, non_list_arg, list_arg, non_list_arg2):
155
+ def _list_args_test_func(fist_list_arg, non_list_arg, list_arg=None, non_list_arg2=None):
147
156
  """
148
157
  Function for testing list args.
149
158
 
@@ -1 +0,0 @@
1
- __version__ = "1.11.0"
File without changes