cloudinary-cli 1.17.0__tar.gz → 1.18.0__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.
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/PKG-INFO +29 -2
- cloudinary_cli-1.17.0/cloudinary_cli.egg-info/PKG-INFO → cloudinary_cli-1.18.0/README.md +27 -26
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/__init__.py +2 -0
- cloudinary_cli-1.18.0/cloudinary_cli/core/collections.py +29 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/utils.py +2 -1
- cloudinary_cli-1.18.0/cloudinary_cli/version.py +1 -0
- cloudinary_cli-1.17.0/README.md → cloudinary_cli-1.18.0/cloudinary_cli.egg-info/PKG-INFO +53 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli.egg-info/SOURCES.txt +1 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli.egg-info/requires.txt +1 -1
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/requirements.txt +1 -1
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli.py +1 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli_api.py +17 -0
- cloudinary_cli-1.17.0/cloudinary_cli/version.py +0 -1
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/LICENSE +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/MANIFEST.in +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/__init__.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/auth/__init__.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/auth/callback_page.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/auth/flow.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/auth/loopback_server.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/auth/oauth_config.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/auth/refresh.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/auth/session.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/cli.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/cli_group.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/admin.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/agent.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/auth.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/config.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/overrides.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/provisioning.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/search.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/uploader.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/core/utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/defaults.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/modules/__init__.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/modules/clone.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/modules/make.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/modules/migrate.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/modules/regen_derived.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/modules/sync.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/modules/upload_dir.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/samples/__init__.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/html/media_library_widget +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/html/product_gallery +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/html/upload_widget +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/html/video_player +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/node/upload +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/python/base +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/python/explicit +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/python/find_all_empty_folders +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/python/upload +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/ruby/upload +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/__init__.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/api_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/config_listing.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/config_resolver.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/config_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/env_config.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/file_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/json_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/search_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/utils/url_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli.egg-info/dependency_links.txt +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli.egg-info/entry_points.txt +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli.egg-info/not-zip-safe +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli.egg-info/top_level.txt +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/setup.cfg +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/setup.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/__init__.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/conftest.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/helper_test.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/oauth_helpers.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_auth_flow.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_auth_loopback.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_auth_region.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_auth_session.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli_agent.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli_agent_cloud.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli_config.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli_config_oauth.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli_samples.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli_search_api.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli_url.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_cli_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_config_cache.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_config_concurrency.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_config_permissions.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_default_config.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_file_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_json_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_modules/__init__.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_modules/test_cli_clone.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_modules/test_cli_make.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_modules/test_cli_regen_derived.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_modules/test_cli_sync.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_modules/test_cli_upload_dir.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_oauth_multiprocess.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_oauth_retry.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_oauth_token_seam.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_search_utils.py +0 -0
- {cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/test/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cloudinary-cli
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.18.0
|
|
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.8.0
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENSE
|
|
16
|
-
Requires-Dist: cloudinary>=1.
|
|
16
|
+
Requires-Dist: cloudinary>=1.47.0
|
|
17
17
|
Requires-Dist: pygments
|
|
18
18
|
Requires-Dist: jinja2
|
|
19
19
|
Requires-Dist: click
|
|
@@ -181,6 +181,7 @@ cld logout # Revokes and removes a saved OAuth login.
|
|
|
181
181
|
cld search --help # Shows usage for the Search API.
|
|
182
182
|
cld admin # Lists Admin API methods.
|
|
183
183
|
cld uploader # Lists Upload API methods.
|
|
184
|
+
cld collections # Lists Collections API methods.
|
|
184
185
|
cld agent signup # For AI agents: creates a Cloudinary account on behalf of a human.
|
|
185
186
|
cld agent cloud # For AI agents: creates a temporary cloud that works immediately.
|
|
186
187
|
```
|
|
@@ -262,6 +263,32 @@ cld admin transformation my_new_transformation
|
|
|
262
263
|
|
|
263
264
|
_**Note:** you can omit 'admin' from the command when calling an Admin API method._
|
|
264
265
|
|
|
266
|
+
## Collections API
|
|
267
|
+
|
|
268
|
+
Enables you to run any methods that can be called through the collections API, to organize assets into collections and share them through public pages.
|
|
269
|
+
|
|
270
|
+
You can find documentation for each of the Collections API methods at [https://cloudinary.com/documentation/collections_api](https://cloudinary.com/documentation/collections_api).
|
|
271
|
+
|
|
272
|
+
The basic syntax using the Collections API is as follows:
|
|
273
|
+
|
|
274
|
+
```
|
|
275
|
+
cld [cli options] collections [command options] [method] [method parameters]
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Example: create a collection, add an asset to it and publish it as a public page:
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
cld collections create_collection "Summer campaign" -o description "Campaign assets"
|
|
282
|
+
cld collections add_collection_assets <collection_id> '["<asset_id>"]'
|
|
283
|
+
cld collections create_collection_public_page <collection_id>
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Create a dynamic collection from a search expression:
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
cld collections create_collection "Summer images" -o type dynamic -O configuration '{"expression": "tags=summer"}'
|
|
290
|
+
```
|
|
291
|
+
|
|
265
292
|
## Search API
|
|
266
293
|
|
|
267
294
|
Runs the admin API search method, allowing you to use a Lucene query string as the expression.
|
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: cloudinary-cli
|
|
3
|
-
Version: 1.17.0
|
|
4
|
-
Summary: A command line interface for Cloudinary with full API support
|
|
5
|
-
Home-page: https://github.com/cloudinary/cloudinary-cli
|
|
6
|
-
Author: Cloudinary, Brian Luk
|
|
7
|
-
Author-email: info@cloudinary.com, lukitsbrian@gmail.com
|
|
8
|
-
License: MIT
|
|
9
|
-
Keywords: cloudinary cli pycloudinary image video digital asset management command line interface transformation friendly easy flexible
|
|
10
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
11
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
-
Classifier: Operating System :: OS Independent
|
|
13
|
-
Requires-Python: >=3.8.0
|
|
14
|
-
Description-Content-Type: text/markdown
|
|
15
|
-
License-File: LICENSE
|
|
16
|
-
Requires-Dist: cloudinary>=1.46.3
|
|
17
|
-
Requires-Dist: pygments
|
|
18
|
-
Requires-Dist: jinja2
|
|
19
|
-
Requires-Dist: click
|
|
20
|
-
Requires-Dist: click-log
|
|
21
|
-
Requires-Dist: filelock
|
|
22
|
-
Requires-Dist: requests
|
|
23
|
-
Requires-Dist: docstring-parser
|
|
24
|
-
Requires-Dist: urllib3>=2.2.2
|
|
25
|
-
Requires-Dist: zipp>=3.19.1
|
|
26
|
-
|
|
27
1
|
[](https://app.travis-ci.com/cloudinary/cloudinary-cli)
|
|
28
2
|
[](https://pypistats.org/packages/cloudinary-cli)
|
|
29
3
|
[](LICENSE)
|
|
@@ -181,6 +155,7 @@ cld logout # Revokes and removes a saved OAuth login.
|
|
|
181
155
|
cld search --help # Shows usage for the Search API.
|
|
182
156
|
cld admin # Lists Admin API methods.
|
|
183
157
|
cld uploader # Lists Upload API methods.
|
|
158
|
+
cld collections # Lists Collections API methods.
|
|
184
159
|
cld agent signup # For AI agents: creates a Cloudinary account on behalf of a human.
|
|
185
160
|
cld agent cloud # For AI agents: creates a temporary cloud that works immediately.
|
|
186
161
|
```
|
|
@@ -262,6 +237,32 @@ cld admin transformation my_new_transformation
|
|
|
262
237
|
|
|
263
238
|
_**Note:** you can omit 'admin' from the command when calling an Admin API method._
|
|
264
239
|
|
|
240
|
+
## Collections API
|
|
241
|
+
|
|
242
|
+
Enables you to run any methods that can be called through the collections API, to organize assets into collections and share them through public pages.
|
|
243
|
+
|
|
244
|
+
You can find documentation for each of the Collections API methods at [https://cloudinary.com/documentation/collections_api](https://cloudinary.com/documentation/collections_api).
|
|
245
|
+
|
|
246
|
+
The basic syntax using the Collections API is as follows:
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
cld [cli options] collections [command options] [method] [method parameters]
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Example: create a collection, add an asset to it and publish it as a public page:
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
cld collections create_collection "Summer campaign" -o description "Campaign assets"
|
|
256
|
+
cld collections add_collection_assets <collection_id> '["<asset_id>"]'
|
|
257
|
+
cld collections create_collection_public_page <collection_id>
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Create a dynamic collection from a search expression:
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
cld collections create_collection "Summer images" -o type dynamic -O configuration '{"expression": "tags=summer"}'
|
|
264
|
+
```
|
|
265
|
+
|
|
265
266
|
## Search API
|
|
266
267
|
|
|
267
268
|
Runs the admin API search method, allowing you to use a Lucene query string as the expression.
|
|
@@ -3,6 +3,7 @@ import click
|
|
|
3
3
|
from cloudinary_cli.core.admin import admin
|
|
4
4
|
from cloudinary_cli.core.agent import agent_group
|
|
5
5
|
from cloudinary_cli.core.auth import login, logout
|
|
6
|
+
from cloudinary_cli.core.collections import collections
|
|
6
7
|
from cloudinary_cli.core.config import config_command
|
|
7
8
|
from cloudinary_cli.core.search import search, search_folders
|
|
8
9
|
from cloudinary_cli.core.uploader import uploader
|
|
@@ -22,6 +23,7 @@ commands = [
|
|
|
22
23
|
admin,
|
|
23
24
|
uploader,
|
|
24
25
|
provisioning,
|
|
26
|
+
collections,
|
|
25
27
|
url,
|
|
26
28
|
utils
|
|
27
29
|
]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from click import command, argument, option
|
|
2
|
+
import cloudinary.collections
|
|
3
|
+
|
|
4
|
+
from cloudinary_cli.utils.api_utils import handle_api_command
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@command("collections",
|
|
8
|
+
short_help="Run any methods that can be called through the collections API.",
|
|
9
|
+
help="""\b
|
|
10
|
+
Run any methods that can be called through the collections API.
|
|
11
|
+
Format: cld <cli options> collections <command options> <method> <method parameters>
|
|
12
|
+
\te.g. cld collections create_collection "Summer campaign" -o description "Campaign assets"
|
|
13
|
+
\t OR
|
|
14
|
+
\t cld collections add_collection_assets <collection_id> '["<asset_id>"]'
|
|
15
|
+
""")
|
|
16
|
+
@argument("params", nargs=-1)
|
|
17
|
+
@option("-o", "--optional_parameter", multiple=True, nargs=2,
|
|
18
|
+
help="Pass an optional parameter as a string, with no parsing. e.g. -o query summer")
|
|
19
|
+
@option("-O", "--optional_parameter_parsed", multiple=True, nargs=2,
|
|
20
|
+
help="Pass an optional parameter and parse its value as JSON or a boolean. "
|
|
21
|
+
"e.g. -O configuration '{\"expression\": \"tags=summer\"}'")
|
|
22
|
+
@option("-ls", "--ls", is_flag=True, help="List all available methods in the Collections API.")
|
|
23
|
+
@option("--save", nargs=1, help="Save output to a file.")
|
|
24
|
+
@option("-d", "--doc", is_flag=True, help="Open the Collections API reference in a browser.")
|
|
25
|
+
def collections(params, optional_parameter, optional_parameter_parsed, ls, save, doc):
|
|
26
|
+
return handle_api_command(params, optional_parameter, optional_parameter_parsed, ls, save, doc,
|
|
27
|
+
doc_url="https://cloudinary.com/documentation/collections_api",
|
|
28
|
+
api_instance=cloudinary.collections,
|
|
29
|
+
api_name="collections")
|
|
@@ -22,7 +22,8 @@ from cloudinary.utils import build_array
|
|
|
22
22
|
|
|
23
23
|
not_callable = ('is_appengine_sandbox', 'call_tags_api', 'call_context_api', 'call_cacheable_api', 'call_api',
|
|
24
24
|
'call_metadata_api', 'call_json_api', 'only', 'transformation_string', 'account_config',
|
|
25
|
-
'reset_config', 'upload_large_part', 'upload_image', 'upload_resource', 'build_eager'
|
|
25
|
+
'reset_config', 'upload_large_part', 'upload_image', 'upload_resource', 'build_eager',
|
|
26
|
+
'base64url_decode')
|
|
26
27
|
|
|
27
28
|
BLOCK_SIZE = 65536
|
|
28
29
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.18.0"
|
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: cloudinary-cli
|
|
3
|
+
Version: 1.18.0
|
|
4
|
+
Summary: A command line interface for Cloudinary with full API support
|
|
5
|
+
Home-page: https://github.com/cloudinary/cloudinary-cli
|
|
6
|
+
Author: Cloudinary, Brian Luk
|
|
7
|
+
Author-email: info@cloudinary.com, lukitsbrian@gmail.com
|
|
8
|
+
License: MIT
|
|
9
|
+
Keywords: cloudinary cli pycloudinary image video digital asset management command line interface transformation friendly easy flexible
|
|
10
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Requires-Python: >=3.8.0
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Requires-Dist: cloudinary>=1.47.0
|
|
17
|
+
Requires-Dist: pygments
|
|
18
|
+
Requires-Dist: jinja2
|
|
19
|
+
Requires-Dist: click
|
|
20
|
+
Requires-Dist: click-log
|
|
21
|
+
Requires-Dist: filelock
|
|
22
|
+
Requires-Dist: requests
|
|
23
|
+
Requires-Dist: docstring-parser
|
|
24
|
+
Requires-Dist: urllib3>=2.2.2
|
|
25
|
+
Requires-Dist: zipp>=3.19.1
|
|
26
|
+
|
|
1
27
|
[](https://app.travis-ci.com/cloudinary/cloudinary-cli)
|
|
2
28
|
[](https://pypistats.org/packages/cloudinary-cli)
|
|
3
29
|
[](LICENSE)
|
|
@@ -155,6 +181,7 @@ cld logout # Revokes and removes a saved OAuth login.
|
|
|
155
181
|
cld search --help # Shows usage for the Search API.
|
|
156
182
|
cld admin # Lists Admin API methods.
|
|
157
183
|
cld uploader # Lists Upload API methods.
|
|
184
|
+
cld collections # Lists Collections API methods.
|
|
158
185
|
cld agent signup # For AI agents: creates a Cloudinary account on behalf of a human.
|
|
159
186
|
cld agent cloud # For AI agents: creates a temporary cloud that works immediately.
|
|
160
187
|
```
|
|
@@ -236,6 +263,32 @@ cld admin transformation my_new_transformation
|
|
|
236
263
|
|
|
237
264
|
_**Note:** you can omit 'admin' from the command when calling an Admin API method._
|
|
238
265
|
|
|
266
|
+
## Collections API
|
|
267
|
+
|
|
268
|
+
Enables you to run any methods that can be called through the collections API, to organize assets into collections and share them through public pages.
|
|
269
|
+
|
|
270
|
+
You can find documentation for each of the Collections API methods at [https://cloudinary.com/documentation/collections_api](https://cloudinary.com/documentation/collections_api).
|
|
271
|
+
|
|
272
|
+
The basic syntax using the Collections API is as follows:
|
|
273
|
+
|
|
274
|
+
```
|
|
275
|
+
cld [cli options] collections [command options] [method] [method parameters]
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Example: create a collection, add an asset to it and publish it as a public page:
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
cld collections create_collection "Summer campaign" -o description "Campaign assets"
|
|
282
|
+
cld collections add_collection_assets <collection_id> '["<asset_id>"]'
|
|
283
|
+
cld collections create_collection_public_page <collection_id>
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Create a dynamic collection from a search expression:
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
cld collections create_collection "Summer images" -o type dynamic -O configuration '{"expression": "tags=summer"}'
|
|
290
|
+
```
|
|
291
|
+
|
|
239
292
|
## Search API
|
|
240
293
|
|
|
241
294
|
Runs the admin API search method, allowing you to use a Lucene query string as the expression.
|
|
@@ -26,6 +26,7 @@ cloudinary_cli/core/__init__.py
|
|
|
26
26
|
cloudinary_cli/core/admin.py
|
|
27
27
|
cloudinary_cli/core/agent.py
|
|
28
28
|
cloudinary_cli/core/auth.py
|
|
29
|
+
cloudinary_cli/core/collections.py
|
|
29
30
|
cloudinary_cli/core/config.py
|
|
30
31
|
cloudinary_cli/core/overrides.py
|
|
31
32
|
cloudinary_cli/core/provisioning.py
|
|
@@ -45,6 +45,23 @@ class TestCLIApi(unittest.TestCase):
|
|
|
45
45
|
self.assertEqual(0, result.exit_code, result.output)
|
|
46
46
|
self.assertIn('"foo": "bar"', result.output)
|
|
47
47
|
|
|
48
|
+
@unittest.skipUnless(CONFIG_PRESENT, REQUIRES_CONFIG)
|
|
49
|
+
@patch(URLLIB3_REQUEST)
|
|
50
|
+
def test_collections(self, mocker):
|
|
51
|
+
mocker.return_value = API_MOCK_RESPONSE
|
|
52
|
+
result = self.runner.invoke(cli, ['collections', 'add_collection_assets', 'col1', '["a1", "a2"]'])
|
|
53
|
+
|
|
54
|
+
self.assertEqual(0, result.exit_code, result.output)
|
|
55
|
+
self.assertIn('"foo": "bar"', result.output)
|
|
56
|
+
self.assertIn('/collections/col1/assets', mocker.call_args[1]['url'])
|
|
57
|
+
|
|
58
|
+
def test_collections_ls(self):
|
|
59
|
+
result = self.runner.invoke(cli, ['collections', '-ls'])
|
|
60
|
+
|
|
61
|
+
self.assertEqual(0, result.exit_code, result.output)
|
|
62
|
+
self.assertIn('create_collection', result.output)
|
|
63
|
+
self.assertNotIn('base64url_decode', result.output)
|
|
64
|
+
|
|
48
65
|
|
|
49
66
|
class TestDestructiveBulkConfirmation(unittest.TestCase):
|
|
50
67
|
runner = CliRunner()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.17.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/html/media_library_widget
RENAMED
|
File without changes
|
{cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli/templates/html/product_gallery
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cloudinary_cli-1.17.0 → cloudinary_cli-1.18.0}/cloudinary_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|