linode-cli 5.67.0__tar.gz → 5.68.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.
Files changed (56) hide show
  1. {linode_cli-5.67.0/linode_cli.egg-info → linode_cli-5.68.0}/PKG-INFO +1 -1
  2. {linode_cli-5.67.0 → linode_cli-5.68.0/linode_cli.egg-info}/PKG-INFO +1 -1
  3. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/cli.py +48 -0
  4. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/data-3 +0 -0
  5. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/version.py +1 -1
  6. {linode_cli-5.67.0 → linode_cli-5.68.0}/LICENSE +0 -0
  7. {linode_cli-5.67.0 → linode_cli-5.68.0}/MANIFEST.in +0 -0
  8. {linode_cli-5.67.0 → linode_cli-5.68.0}/README.md +0 -0
  9. {linode_cli-5.67.0 → linode_cli-5.68.0}/linode_cli.egg-info/SOURCES.txt +0 -0
  10. {linode_cli-5.67.0 → linode_cli-5.68.0}/linode_cli.egg-info/dependency_links.txt +0 -0
  11. {linode_cli-5.67.0 → linode_cli-5.68.0}/linode_cli.egg-info/entry_points.txt +0 -0
  12. {linode_cli-5.67.0 → linode_cli-5.68.0}/linode_cli.egg-info/requires.txt +0 -0
  13. {linode_cli-5.67.0 → linode_cli-5.68.0}/linode_cli.egg-info/top_level.txt +0 -0
  14. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/__init__.py +0 -0
  15. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/__main__.py +0 -0
  16. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/api_request.py +0 -0
  17. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/arg_helpers.py +0 -0
  18. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/baked/__init__.py +0 -0
  19. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/baked/operation.py +0 -0
  20. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/baked/parsing.py +0 -0
  21. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/baked/request.py +0 -0
  22. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/baked/response.py +0 -0
  23. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/baked/util.py +0 -0
  24. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/completion.py +0 -0
  25. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/configuration/__init__.py +0 -0
  26. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/configuration/auth.py +0 -0
  27. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/configuration/config.py +0 -0
  28. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/configuration/helpers.py +0 -0
  29. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/exit_codes.py +0 -0
  30. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/help_formatter.py +0 -0
  31. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/help_pages.py +0 -0
  32. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/helpers.py +0 -0
  33. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/oauth-landing-page.html +0 -0
  34. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/output/__init__.py +0 -0
  35. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/output/helpers.py +0 -0
  36. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/output/output_handler.py +0 -0
  37. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/overrides.py +0 -0
  38. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/__init__.py +0 -0
  39. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/firewall-editor.py +0 -0
  40. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/get-kubeconfig.py +0 -0
  41. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/image-upload.py +0 -0
  42. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/metadata.py +0 -0
  43. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/monitor-api.py +0 -0
  44. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/obj/__init__.py +0 -0
  45. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/obj/buckets.py +0 -0
  46. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/obj/config.py +0 -0
  47. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/obj/helpers.py +0 -0
  48. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/obj/list.py +0 -0
  49. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/obj/objects.py +0 -0
  50. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/obj/website.py +0 -0
  51. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/plugins.py +0 -0
  52. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/region-table.py +0 -0
  53. {linode_cli-5.67.0 → linode_cli-5.68.0}/linodecli/plugins/ssh.py +0 -0
  54. {linode_cli-5.67.0 → linode_cli-5.68.0}/pyproject.toml +0 -0
  55. {linode_cli-5.67.0 → linode_cli-5.68.0}/setup.cfg +0 -0
  56. {linode_cli-5.67.0 → linode_cli-5.68.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: linode-cli
3
- Version: 5.67.0
3
+ Version: 5.68.0
4
4
  Summary: The official command-line interface for interacting with the Linode API.
5
5
  Author-email: "Akamai Technologies Inc." <developers@linode.com>
6
6
  License-Expression: BSD-3-Clause
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: linode-cli
3
- Version: 5.67.0
3
+ Version: 5.68.0
4
4
  Summary: The official command-line interface for interacting with the Linode API.
5
5
  Author-email: "Akamai Technologies Inc." <developers@linode.com>
6
6
  License-Expression: BSD-3-Clause
@@ -305,8 +305,56 @@ class CLI: # pylint: disable=too-many-instance-attributes
305
305
  with CLI._get_spec_file_reader(spec_location) as f:
306
306
  parsed = CLI._parse_spec_file(f)
307
307
 
308
+ CLI._normalize_content_parameters(parsed)
309
+
308
310
  return OpenAPI(parsed)
309
311
 
312
+ @staticmethod
313
+ def _normalize_content_parameters(parsed: Dict[str, Any]):
314
+ """
315
+ The openapi3 library does not support the OpenAPI 3.0 ``content``
316
+ form for Parameter objects. This method converts any such
317
+ parameters (in components and inline on paths/operations) to use
318
+ a top-level ``schema`` field so they can be parsed normally.
319
+
320
+ :param parsed: The raw spec dict to mutate in-place.
321
+ """
322
+
323
+ def _fix_param(param):
324
+ if not isinstance(param, dict):
325
+ return
326
+ if "content" in param and "schema" not in param:
327
+ content = param.pop("content")
328
+ for media_obj in content.values():
329
+ if isinstance(media_obj, dict) and "schema" in media_obj:
330
+ param["schema"] = media_obj["schema"]
331
+ break
332
+
333
+ for param in (
334
+ parsed.get("components", {}).get("parameters", {}).values()
335
+ ):
336
+ _fix_param(param)
337
+
338
+ for path_item in parsed.get("paths", {}).values():
339
+ if not isinstance(path_item, dict):
340
+ continue
341
+ for p in path_item.get("parameters", []):
342
+ _fix_param(p)
343
+ for method in (
344
+ "get",
345
+ "put",
346
+ "post",
347
+ "delete",
348
+ "options",
349
+ "head",
350
+ "patch",
351
+ "trace",
352
+ ):
353
+ operation = path_item.get(method)
354
+ if isinstance(operation, dict):
355
+ for p in operation.get("parameters", []):
356
+ _fix_param(p)
357
+
310
358
  @staticmethod
311
359
  @contextlib.contextmanager
312
360
  def _get_spec_file_reader(
@@ -2,4 +2,4 @@
2
2
  The version of the Linode CLI.
3
3
  """
4
4
 
5
- __version__ = "v5.67.0"
5
+ __version__ = "v5.68.0"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes