cloudsmith-cli 1.11.0__py2.py3-none-any.whl → 1.12.0__py2.py3-none-any.whl

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.
@@ -12,7 +12,6 @@ from . import (
12
12
  help_,
13
13
  list_,
14
14
  login,
15
- mcp,
16
15
  metrics,
17
16
  move,
18
17
  policy,
@@ -5,22 +5,31 @@ import click
5
5
  from ...core.api.version import get_version as get_api_version
6
6
  from ...core.utils import get_github_website, get_help_website
7
7
  from ...core.version import get_version as get_cli_version
8
- from .. import command, decorators
8
+ from .. import command, decorators, utils
9
9
 
10
10
  CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
11
11
 
12
12
 
13
- def print_version():
13
+ def print_version(opts):
14
14
  """Print the environment versions."""
15
- click.echo("Versions:")
16
- click.secho(
17
- "CLI Package Version: %(version)s"
18
- % {"version": click.style(get_cli_version(), bold=True)}
19
- )
20
- click.secho(
21
- "API Package Version: %(version)s"
22
- % {"version": click.style(get_api_version(), bold=True)}
23
- )
15
+ cli_version = get_cli_version()
16
+ api_version = get_api_version()
17
+
18
+ data = {
19
+ "cli_version": cli_version,
20
+ "api_version": api_version,
21
+ }
22
+
23
+ if not utils.maybe_print_as_json(opts, data):
24
+ click.echo("Versions:")
25
+ click.secho(
26
+ "CLI Package Version: %(version)s"
27
+ % {"version": click.style(cli_version, bold=True)}
28
+ )
29
+ click.secho(
30
+ "API Package Version: %(version)s"
31
+ % {"version": click.style(api_version, bold=True)}
32
+ )
24
33
 
25
34
 
26
35
  @click.group(
@@ -52,12 +61,13 @@ For issues/contributing: %(github_website)s
52
61
  is_eager=True,
53
62
  )
54
63
  @decorators.common_cli_config_options
64
+ @decorators.common_cli_output_options
55
65
  @click.pass_context
56
66
  def main(ctx, opts, version):
57
67
  """Handle entrypoint to CLI."""
58
68
  # pylint: disable=unused-argument
59
69
 
60
70
  if version:
61
- print_version()
71
+ print_version(opts)
62
72
  elif ctx.invoked_subcommand is None:
63
73
  click.echo(ctx.get_help())
@@ -75,7 +75,7 @@ def _print_metrics_table(opts, data):
75
75
  type=str,
76
76
  required=False,
77
77
  help=(
78
- "A comma seperated list of entitlement token identifiers (i.e. slug_perm) or "
78
+ "A comma separated list of entitlement token identifiers (i.e. slug_perm) or "
79
79
  "token secrets. If a list is not specified then all entitlement tokens will "
80
80
  "be included for a given namespace or repository."
81
81
  ),
@@ -74,7 +74,7 @@ def _print_metrics_table(opts, data):
74
74
  type=str,
75
75
  required=False,
76
76
  help=(
77
- "A comma seperated list of package identifiers (i.e. slug_perm). "
77
+ "A comma separated list of package identifiers (i.e. slug_perm). "
78
78
  "If a list is not specified then all package will be included for "
79
79
  "a given repository."
80
80
  ),
@@ -24,6 +24,7 @@ UPSTREAM_FORMATS = [
24
24
  "dart",
25
25
  "deb",
26
26
  "docker",
27
+ "generic",
27
28
  "go",
28
29
  "helm",
29
30
  "hex",
@@ -64,8 +64,6 @@ class ConfigSchema:
64
64
  api_proxy = ConfigParam(name="api_proxy", type=str)
65
65
  api_ssl_verify = ConfigParam(name="api_ssl_verify", type=bool, default=True)
66
66
  api_user_agent = ConfigParam(name="api_user_agent", type=str)
67
- mcp_allowed_tools = ConfigParam(name="mcp_allowed_tools", type=str)
68
- mcp_allowed_tool_groups = ConfigParam(name="mcp_allowed_tool_groups", type=str)
69
67
 
70
68
  @matches_section("profile:*")
71
69
  class Profile(Default):
@@ -97,7 +95,7 @@ class ConfigReader(ConfigFileReader):
97
95
 
98
96
  @classmethod
99
97
  def get_default_filepath(cls):
100
- """Get the default filepath for the configuratin file."""
98
+ """Get the default filepath for the configuration file."""
101
99
  if not cls.config_files:
102
100
  return None
103
101
  if not cls.config_searchpath:
@@ -350,35 +348,6 @@ class Options:
350
348
  """Set value for debug flag."""
351
349
  self._set_option("debug", bool(value))
352
350
 
353
- @property
354
- def mcp_allowed_tools(self):
355
- """Get value for Allowed MCP Tools."""
356
- return self._get_option("mcp_allowed_tools")
357
-
358
- @mcp_allowed_tools.setter
359
- def mcp_allowed_tools(self, value):
360
- """Set value for Allowed MCP Tools."""
361
-
362
- if not value:
363
- return
364
- tools = value.split(",")
365
-
366
- self._set_option("mcp_allowed_tools", tools)
367
-
368
- @property
369
- def mcp_allowed_tool_groups(self):
370
- """Get value for Allowed MCP Tool Groups."""
371
- return self._get_option("mcp_allowed_tool_groups")
372
-
373
- @mcp_allowed_tool_groups.setter
374
- def mcp_allowed_tool_groups(self, value):
375
- """Set value for Allowed MCP Tool Groups."""
376
- if not value:
377
- return
378
- tool_groups = value.split(",")
379
-
380
- self._set_option("mcp_allowed_tool_groups", tool_groups)
381
-
382
351
  @property
383
352
  def output(self):
384
353
  """Get value for output format."""
@@ -7,7 +7,6 @@ import click
7
7
  from cloudsmith_cli.cli import validators
8
8
 
9
9
  from ..core.api.init import initialise_api as _initialise_api
10
- from ..core.mcp import server
11
10
  from . import config, utils
12
11
 
13
12
 
@@ -94,15 +93,9 @@ def common_cli_config_options(f):
94
93
  def wrapper(ctx, *args, **kwargs):
95
94
  # pylint: disable=missing-docstring
96
95
  opts = config.get_or_create_options(ctx)
97
- profile = kwargs.pop("profile") or ctx.meta.get("profile")
98
- config_file = kwargs.pop("config_file") or ctx.meta.get("config_file")
99
- creds_file = kwargs.pop("credentials_file") or ctx.meta.get("creds_file")
100
-
101
- # Store in context for subcommands to inherit
102
- ctx.meta["profile"] = profile
103
- ctx.meta["config_file"] = config_file
104
- ctx.meta["creds_file"] = creds_file
105
-
96
+ profile = kwargs.pop("profile")
97
+ config_file = kwargs.pop("config_file")
98
+ creds_file = kwargs.pop("credentials_file")
106
99
  opts.load_config_file(path=config_file, profile=profile)
107
100
  opts.load_creds_file(path=creds_file, profile=profile)
108
101
  kwargs["opts"] = opts
@@ -337,40 +330,3 @@ def initialise_api(f):
337
330
  return ctx.invoke(f, *args, **kwargs)
338
331
 
339
332
  return wrapper
340
-
341
-
342
- def initialise_mcp(f):
343
- @click.option(
344
- "-a",
345
- "--all-tools",
346
- default=False,
347
- is_flag=True,
348
- help="Show all tools",
349
- )
350
- @click.option(
351
- "-d",
352
- "--allow-destructive-tools",
353
- default=False,
354
- is_flag=True,
355
- help="Allow destructive tools to be used",
356
- )
357
- @click.pass_context
358
- @functools.wraps(f)
359
- def wrapper(ctx, *args, **kwargs):
360
- opts = kwargs.get("opts")
361
-
362
- all_tools = kwargs.pop("all_tools")
363
- allow_destructive_tools = kwargs.pop("allow_destructive_tools")
364
-
365
- mcp_server = server.DynamicMCPServer(
366
- api_config=opts.api_config,
367
- debug_mode=opts.debug,
368
- allow_destructive_tools=allow_destructive_tools,
369
- allowed_tool_groups=opts.mcp_allowed_tool_groups,
370
- allowed_tools=opts.mcp_allowed_tools,
371
- force_all_tools=all_tools,
372
- )
373
- kwargs["mcp_server"] = mcp_server
374
- return ctx.invoke(f, *args, **kwargs)
375
-
376
- return wrapper
@@ -1,3 +1,5 @@
1
+ import json
2
+
1
3
  import pytest
2
4
 
3
5
  from ....core.api.version import get_version as get_api_version
@@ -17,6 +19,32 @@ class TestMainCommand:
17
19
  "API Package Version: " + get_api_version() + "\n"
18
20
  )
19
21
 
22
+ @pytest.mark.parametrize("option", ["-V", "--version"])
23
+ @pytest.mark.parametrize(
24
+ "format_option,format_value",
25
+ [("-F", "json"), ("--output-format", "json")],
26
+ )
27
+ def test_main_version_json(self, runner, option, format_option, format_value):
28
+ """Test the JSON output of `cloudsmith --version --output-format json`."""
29
+ result = runner.invoke(main, [option, format_option, format_value])
30
+ assert result.exit_code == 0
31
+ output = json.loads(result.output)
32
+ assert "data" in output
33
+ assert output["data"]["cli_version"] == get_version()
34
+ assert output["data"]["api_version"] == get_api_version()
35
+
36
+ @pytest.mark.parametrize("option", ["-V", "--version"])
37
+ def test_main_version_pretty_json(self, runner, option):
38
+ """Test the pretty JSON output of `cloudsmith --version --output-format pretty_json`."""
39
+ result = runner.invoke(main, [option, "--output-format", "pretty_json"])
40
+ assert result.exit_code == 0
41
+ output = json.loads(result.output)
42
+ assert "data" in output
43
+ assert output["data"]["cli_version"] == get_version()
44
+ assert output["data"]["api_version"] == get_api_version()
45
+ # Verify it's formatted with indentation
46
+ assert " " in result.output
47
+
20
48
  @pytest.mark.parametrize("option", ["-h", "--help"])
21
49
  def test_main_help(self, runner, option):
22
50
  """Test the output of `cloudsmith --help`."""
@@ -35,13 +35,13 @@ def parse_table(output):
35
35
  Results: 1 repository visible
36
36
  ```
37
37
  """
38
- seperator = "|"
38
+ separator = "|"
39
39
  column_headers = []
40
40
  row_values = []
41
41
 
42
42
  for line in output.split("\n"):
43
- if seperator in line:
44
- raw_values = [raw_value.strip() for raw_value in line.split(seperator)]
43
+ if separator in line:
44
+ raw_values = [raw_value.strip() for raw_value in line.split(separator)]
45
45
  if not column_headers:
46
46
  # If we don't have keys yet, then this must be the column headers
47
47
  column_headers = raw_values
@@ -40,7 +40,7 @@ class RateLimitsInfo:
40
40
  info.remaining = int(data["remaining"])
41
41
  if "reset" in data:
42
42
  info.reset = datetime.datetime.utcfromtimestamp(int(data["reset"]))
43
- if "throtted" in data:
43
+ if "throttled" in data:
44
44
  info.throttled = bool(data["throttled"])
45
45
  else:
46
46
  info.throttled = info.remaining == 0
@@ -58,7 +58,7 @@ def mocked_update_refresh_attempted_at():
58
58
 
59
59
  class TestInitialiseApi:
60
60
  def setup_class(cls): # pylint: disable=no-self-argument
61
- # For the purposes of these tests, we need to explcitly call set_default(None) at the
61
+ # For the purposes of these tests, we need to explicitly call set_default(None) at the
62
62
  # outset because other tests in the suite may have called initialise_api() already.
63
63
  # Resetting Configuration._default to None here effectively reverts the
64
64
  # Configuration class to its vanilla, unmodified behaviour/state.
@@ -1 +1 @@
1
- 1.11.0
1
+ 1.12.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudsmith-cli
3
- Version: 1.11.0
3
+ Version: 1.12.0
4
4
  Summary: Cloudsmith Command-Line Interface (CLI)
5
5
  Home-page: https://github.com/cloudsmith-io/cloudsmith-cli
6
6
  Author: Cloudsmith Ltd
@@ -15,7 +15,6 @@ Classifier: Intended Audience :: System Administrators
15
15
  Classifier: License :: OSI Approved :: Apache Software License
16
16
  Classifier: Operating System :: POSIX :: Linux
17
17
  Classifier: Programming Language :: Python
18
- Classifier: Programming Language :: Python :: 3.9
19
18
  Classifier: Programming Language :: Python :: 3.10
20
19
  Classifier: Programming Language :: Python :: 3.11
21
20
  Classifier: Programming Language :: Python :: 3.12
@@ -31,10 +30,8 @@ Requires-Dist: click!=8.3.0,>=8.1.8
31
30
  Requires-Dist: click-configfile>=0.2.3
32
31
  Requires-Dist: click-didyoumean>=0.0.3
33
32
  Requires-Dist: click-spinner>=0.1.7
34
- Requires-Dist: cloudsmith-api<3.0,>=2.0.22
33
+ Requires-Dist: cloudsmith-api<3.0,>=2.0.24
35
34
  Requires-Dist: keyring>=25.4.1
36
- Requires-Dist: mcp==1.9.1
37
- Requires-Dist: toon-python==0.1.2
38
35
  Requires-Dist: requests>=2.18.4
39
36
  Requires-Dist: requests_toolbelt>=1.0.0
40
37
  Requires-Dist: semver>=2.7.9
@@ -58,7 +55,7 @@ Dynamic: summary
58
55
  [![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/badges/version/cloudsmith/cli/python/cloudsmith-cli/latest/xf=bdist_wheel;xn=cloudsmith-cli;xv=py2.py3/?render=true)](https://cloudsmith.io/~cloudsmith/repos/cli/packages/detail/python/cloudsmith-cli/latest/xf=bdist_wheel;xn=cloudsmith-cli;xv=py2.py3/)
59
56
  [![Python Versions](https://img.shields.io/pypi/pyversions/cloudsmith-cli.svg)](https://pypi.python.org/pypi/cloudsmith-cli)
60
57
  [![PyPI Version](https://img.shields.io/pypi/v/cloudsmith-cli.svg)](https://pypi.python.org/pypi/cloudsmith-cli)
61
- [![CircleCI](https://circleci.com/gh/cloudsmith-io/cloudsmith-cli.svg?style=svg)](https://circleci.com/gh/cloudsmith-io/cloudsmith-cli)
58
+ [![GitHub Actions](https://github.com/cloudsmith-io/cloudsmith-cli/actions/workflows/test.yml/badge.svg)](https://github.com/cloudsmith-io/cloudsmith-cli/actions/workflows/test.yml)
62
59
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
63
60
 
64
61
 
@@ -2,8 +2,8 @@ cloudsmith_cli/__init__.py,sha256=os5rpSQxihzAz72UaZugFVGTE1MOaB2-ocgwVUStcRY,24
2
2
  cloudsmith_cli/__main__.py,sha256=sWZCxOvdsp_Op1y4A7cyFVo-5fgQ667grmiy8FKX-5w,219
3
3
  cloudsmith_cli/cli/__init__.py,sha256=GK3VaqGyKB8vkN501vzSah_cirIorR5qQpVMry5wv7Y,34
4
4
  cloudsmith_cli/cli/command.py,sha256=K374dd1eDLTdQyRdqHE7PSKqhh4PbcrDxoUDVr_s23U,4816
5
- cloudsmith_cli/cli/config.py,sha256=IbYU3KUllwhbddPIRWBK8TWllWnz0MHV1H_durzyxE4,14138
6
- cloudsmith_cli/cli/decorators.py,sha256=l7gI3sM2eBXB-ddTlqMrHuzA5ZBi02uLiO1_ZWjC4Q0,12212
5
+ cloudsmith_cli/cli/config.py,sha256=qCVH03dVS58ISLSm9jKloOtixIslNP7ZbZhlkwipmpQ,13132
6
+ cloudsmith_cli/cli/decorators.py,sha256=KMc9jv1jxc9nRMGIliDm6KUtdFKcPxiR1Q0rltA83t0,10885
7
7
  cloudsmith_cli/cli/exceptions.py,sha256=NjtRnF0cSzRIf6B2xuSxz3PdghGn0LPnnlsHUewA7Pc,6762
8
8
  cloudsmith_cli/cli/saml.py,sha256=VluL-oM4mReXi0ycdFUQJQisNKo9limAiIjSVzGRBnM,3202
9
9
  cloudsmith_cli/cli/table.py,sha256=S03d5izcsz8keKYP3Ep1C4i3sEwYigjUUCSkBKPskHw,1530
@@ -11,7 +11,7 @@ cloudsmith_cli/cli/types.py,sha256=89hPhNtUS1E6GnUxm_Lv_cj9OfNqI6G5s5gD-uRz1Dw,4
11
11
  cloudsmith_cli/cli/utils.py,sha256=FY8begpgyhLJjEvE41N85CEmEeTGJzStn_lvodCkW3E,6326
12
12
  cloudsmith_cli/cli/validators.py,sha256=J9ZEwGsahFQ5B7PT9Ioz4MlJNM6kd4D-X-7xK0US0pw,10003
13
13
  cloudsmith_cli/cli/webserver.py,sha256=b2-Ei-s62lp9QyYPuZ4DhXwMcYKXobwQtfXT41gK0ek,8079
14
- cloudsmith_cli/cli/commands/__init__.py,sha256=lAn-IhMVbgipmVUCYlFA_fXJDDOae7p8wlQgagrSGYE,361
14
+ cloudsmith_cli/cli/commands/__init__.py,sha256=vW6LrMnln5s0-fmsX-RVlcnUVl0ioSRaC8GP-fQAFsQ,352
15
15
  cloudsmith_cli/cli/commands/auth.py,sha256=xJKT10BbNSdQQUQc1OUyoMjOXCbP4oeIEusVI_AtKaw,3367
16
16
  cloudsmith_cli/cli/commands/check.py,sha256=xfqWTOzT5zsdYIUPgKCF3TdhXoX3Koj0UPGyVLC8pSo,4105
17
17
  cloudsmith_cli/cli/commands/copy.py,sha256=a2-4inh747i53dRtR_XngM3q2HNO6PAfd3qvaGILLnw,2777
@@ -23,8 +23,7 @@ cloudsmith_cli/cli/commands/entitlements.py,sha256=qDod53h3tWoAHpDa8qOzVpo7Nowwz
23
23
  cloudsmith_cli/cli/commands/help_.py,sha256=--_NwWZBZWfEnG6MzteaZO6u3IIlh3wufvGbh8JcSv4,226
24
24
  cloudsmith_cli/cli/commands/list_.py,sha256=GtlYAtMOlcmYQBzFG5NrZl4mQX0juN-3HLqZZkCNQNA,10039
25
25
  cloudsmith_cli/cli/commands/login.py,sha256=seIutJQhu4Gk7tLTGWiSVHs53eiLr_zydEfvuuWJUFo,3486
26
- cloudsmith_cli/cli/commands/main.py,sha256=3KRh_uwdBxKfBSZugQ9y7LbZb3D0EtiB6PmYFCqeDG4,1896
27
- cloudsmith_cli/cli/commands/mcp.py,sha256=0z_k6I56rSUFy7bGEGypSsHxiSL6ES4DAGKXtZf58oY,12983
26
+ cloudsmith_cli/cli/commands/main.py,sha256=GHT2mdzCfI1Rlh0JVu5Q3CrorHNSy57sSAUXhs0gZvw,2188
28
27
  cloudsmith_cli/cli/commands/move.py,sha256=7jGyWvYed-B_i522MRR1h3EVvx-Uy8zdgDKnYCFHkQQ,3120
29
28
  cloudsmith_cli/cli/commands/push.py,sha256=fH9uYJ4sOslvSOchBzd1yRjVPc0x07RGsPITOMQpqiw,22256
30
29
  cloudsmith_cli/cli/commands/quarantine.py,sha256=NNWoCk5njAvbTpsed0ElR2LEPWSfXwyWbeC7HCRqbf4,4593
@@ -33,12 +32,12 @@ cloudsmith_cli/cli/commands/resync.py,sha256=jELS9Ok1vltvuRlVhlr2EQENSYr6HnFJHbo
33
32
  cloudsmith_cli/cli/commands/status.py,sha256=cmzZTmzj67qyf4Cob_Cd1abxVpxHOHbTDH2RxvGQzUQ,2504
34
33
  cloudsmith_cli/cli/commands/tags.py,sha256=K7B_OYGnDfQbAMc_Rcj6Xx-rS4dNzUqJEhVwuVlZG-0,11668
35
34
  cloudsmith_cli/cli/commands/tokens.py,sha256=FLlQDF-qzFeBlnUIhoDwjNMUv03dbV-MZR8wFHiuw5k,8147
36
- cloudsmith_cli/cli/commands/upstream.py,sha256=UmWM6BKQC0H8Kk1w6oM_hVBB6xHnYqWZqpYGPuCLJbk,15863
35
+ cloudsmith_cli/cli/commands/upstream.py,sha256=Rfh3bTAyo49SraKQr2PAnSLM7rqnAl4_ta69IgX7DZY,15878
37
36
  cloudsmith_cli/cli/commands/whoami.py,sha256=0rpXnXmii3viDSsmoXC__DsyY8X0mGi4Wxi_hKEjhTI,1680
38
37
  cloudsmith_cli/cli/commands/metrics/__init__.py,sha256=w-FjDvifPvTgf1nwGpTuhzk5mLkqmfvA9utrPqSUSdM,98
39
38
  cloudsmith_cli/cli/commands/metrics/command.py,sha256=-4ykfBJ8Ss6w8QoCqL0AZdhcF7ZmmahtvQ_5YTYif5c,510
40
- cloudsmith_cli/cli/commands/metrics/entitlements.py,sha256=OhxkKYrs1jaYDsJ-fIeB-enr04B9G9XWVrDKt25b2bk,4337
41
- cloudsmith_cli/cli/commands/metrics/packages.py,sha256=zv9T2_UxGiXkAtUYN-iIb0fTOhE4_9mSNsh4t5B-tPc,3912
39
+ cloudsmith_cli/cli/commands/metrics/entitlements.py,sha256=RfME-Ovgu7-Pk3MOliq0y5fuq8obGrNOeE-4Ol5hPIY,4337
40
+ cloudsmith_cli/cli/commands/metrics/packages.py,sha256=rEU_MfYhshQsp499LoBizxDkOJBuzOkxLrQk5EhfiBM,3912
42
41
  cloudsmith_cli/cli/commands/policy/__init__.py,sha256=vWUlqzuIZisbaLdQM4Gx7aCAM2RKPUIHEC5_XTRY-oY,157
43
42
  cloudsmith_cli/cli/commands/policy/command.py,sha256=crZQiXhT7w19h9Z8IFFhM3NyGCTHZ8tL4vpHR430fLo,527
44
43
  cloudsmith_cli/cli/commands/policy/deny.py,sha256=Nb2rTfropRiK5-zvsxLQsTjlr1HpJkhlqD5_jG17ogk,7703
@@ -59,10 +58,9 @@ cloudsmith_cli/cli/tests/commands/test_check.py,sha256=_CJaDQjhXnDQimzLkhBS8wL6V
59
58
  cloudsmith_cli/cli/tests/commands/test_download.py,sha256=VpD-T0GkqHzDZDGYwpN1tyCq6mgTkfdOmXQBfWdAm6E,12268
60
59
  cloudsmith_cli/cli/tests/commands/test_entitlements.py,sha256=Xd-sRdQPMccqlSiPBp7fGeyUCBuYGLCD-3zeVPD3Mxw,737
61
60
  cloudsmith_cli/cli/tests/commands/test_login.py,sha256=RlvPMaS2rTLah2dVF3Yt8gjG1HWEkD6zP_exzUvc1U0,1309
62
- cloudsmith_cli/cli/tests/commands/test_main.py,sha256=JmtJQ455OcqqEi0ostP8nMs0S4oXs4dkEFzPCGliqg8,947
63
- cloudsmith_cli/cli/tests/commands/test_mcp.py,sha256=PfvytYPGsIdNyB_V-DPXbYX6Eq6NMQdoImHnZtOuIGQ,13534
61
+ cloudsmith_cli/cli/tests/commands/test_main.py,sha256=HxSDfsbYU7Tmk_sGE2yuc_7hNrDQhR-f2TgA7Ez3O68,2260
64
62
  cloudsmith_cli/cli/tests/commands/test_package_commands.py,sha256=vpp8TN4cbATxPEPY5GSEvHzZxdp-BaxHmcxflz-Bp6o,5943
65
- cloudsmith_cli/cli/tests/commands/test_repos.py,sha256=z0SsWzeBJ8K-y0fYjXvP9vnE-hfBFllql-5RiAYy7Ks,6738
63
+ cloudsmith_cli/cli/tests/commands/test_repos.py,sha256=xA8tiZon1i6JnNOsPZO96K0wpFuTStOR4sMegGEKG_s,6738
66
64
  cloudsmith_cli/cli/tests/commands/test_tokens.py,sha256=BnTBS5ChIvgb9-HSkxOdzVIo81C6QA8xhJ7vGposow8,4931
67
65
  cloudsmith_cli/cli/tests/commands/test_upstream.py,sha256=AxlcRSf_ZAGBXbAu8t9LHoftTwFstSzyKN5rAEo0VoA,5435
68
66
  cloudsmith_cli/cli/tests/commands/policy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -74,7 +72,7 @@ cloudsmith_cli/core/config.py,sha256=eFA92QQBhccF0SdRtBwG7nrFuU2AK_yWzA9e0TUcNfE
74
72
  cloudsmith_cli/core/download.py,sha256=WFlTpyAR_L6Z5GXBaiA3QZ4ABLO2GS42rduSBn2JcUg,15153
75
73
  cloudsmith_cli/core/keyring.py,sha256=v57SoE-5TaHsaMw7oCwM7ZuOVGPK1vAA2YsmWK35UAM,2310
76
74
  cloudsmith_cli/core/pagination.py,sha256=acJgAumVoe-ef-Ie5m55z0VOn_xZagcHwSYsDLLbhtw,4553
77
- cloudsmith_cli/core/ratelimits.py,sha256=nJkLQNT5CBIk_Jy3mWH5trIaQyj8x6SEo95BwKUxNuw,2534
75
+ cloudsmith_cli/core/ratelimits.py,sha256=5FfMO9tRFDmsPXtotJ-qftNK1qCwUXZs0j5T354TadQ,2535
78
76
  cloudsmith_cli/core/rest.py,sha256=T9SjVwly2I0IzTwBTUtj5c-Yc6I2nnsmUQpuztsuVnw,8061
79
77
  cloudsmith_cli/core/utils.py,sha256=L3fUMKX-8XtNlXK51EOLfF4wGq45uoQMY74ZGedNu4A,2213
80
78
  cloudsmith_cli/core/version.py,sha256=DB62XmdfzQ23EpsdcTMqSA4fCBVV2r7eRhloMqxr4KM,488
@@ -94,24 +92,21 @@ cloudsmith_cli/core/api/status.py,sha256=DcWXhizY0qS7vFNt856OqMvu0fDB5ISiRC16utK
94
92
  cloudsmith_cli/core/api/upstreams.py,sha256=zHXW1CAAIPIetv8D8F338Vs0r8lxzLfmN6hLP9fLANA,2275
95
93
  cloudsmith_cli/core/api/user.py,sha256=wZCHInqTx0TQv2_uteMFHSByn3QP5gWU-4DXtFgI7MI,2966
96
94
  cloudsmith_cli/core/api/version.py,sha256=zgmmTSfD3TDX_QHhuU4GyqaZvrSzpqhwTbuBfrlUYj8,342
97
- cloudsmith_cli/core/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
- cloudsmith_cli/core/mcp/data.py,sha256=e-nHsm24nWasl5xvRhsYq9SrlmcVjBBOKRyj2bzN8MI,372
99
- cloudsmith_cli/core/mcp/server.py,sha256=CEtI8gHxebncdlxgJwY7QXWUqReDCVjzDoDy2SsVQTM,28156
100
95
  cloudsmith_cli/core/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
96
  cloudsmith_cli/core/tests/test_download.py,sha256=hGVVMf6IO4UCWwkTPc2JROedQXhzphs5OD0lDhM7SXo,15784
102
- cloudsmith_cli/core/tests/test_init.py,sha256=CDdCI-ko09I3ltBeFNACGrfNFDNT8zhXUE9J9jYbBbg,7183
97
+ cloudsmith_cli/core/tests/test_init.py,sha256=UMYCD22-lezdMZpq30bXbvJilhzhq9EdagH8OQPkwS4,7184
103
98
  cloudsmith_cli/core/tests/test_keyring.py,sha256=cLmZjhj21gm2fdi-l95yOxQPWuq_XVVNeY3s9QSNvYc,7076
104
99
  cloudsmith_cli/core/tests/test_rest.py,sha256=SXOZfz_YLrxtuE8I07MUWVUYxyz79VHfpYzc18QQM4s,2563
105
100
  cloudsmith_cli/core/tests/test_version.py,sha256=k9QAjOKJ7Q5mfGSahRvtpPN0XDaGOhbbpHngqAIuM34,552
106
- cloudsmith_cli/data/VERSION,sha256=dO5NEhRjmJGD-am4SFd-skNPP10JXeKksZe_Kf-iOZs,7
101
+ cloudsmith_cli/data/VERSION,sha256=yS32vd4zC-IZ1i9I7GSQsBiJQ28vWQJ6qyAOdN5hkWg,7
107
102
  cloudsmith_cli/data/config.ini,sha256=nD39yE9-GyKSxJ5Us5V_bRjAsdhDbD5HnwRNDKeMfR4,737
108
103
  cloudsmith_cli/data/credentials.ini,sha256=UTgXGXigPdlWUQxhQnalSJ18cLswQv6l26y7ZlYstCU,500
109
104
  cloudsmith_cli/templates/__init__.py,sha256=00xHj3iW0vXmI5rzjbryJllE1VHhg6Dxf7uqo9dIyvo,53
110
105
  cloudsmith_cli/templates/auth_error.html,sha256=qBdZ0TE88IFaVk0NIpSPZudDDf0PxAJnnqAyPz5KODo,1290
111
106
  cloudsmith_cli/templates/auth_success.html,sha256=UA629tjTJmIQ_y9eJ-a5Wfp0ilo8cgSsUqjHiCzEhq0,1056
112
- cloudsmith_cli-1.11.0.dist-info/licenses/LICENSE,sha256=eEz1wEWbBZFlc_n_P_55i4CCYgWgHYVJpQjnc6qbXOQ,11344
113
- cloudsmith_cli-1.11.0.dist-info/METADATA,sha256=LcWvT4-p3E_VWkQ7FHsNnwP7lvae1vHUzNVTSZ2fLWg,15871
114
- cloudsmith_cli-1.11.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
115
- cloudsmith_cli-1.11.0.dist-info/entry_points.txt,sha256=lQfpZ8eDB4ye9iK_TRpGnABwkcUgKIS-sGlCjbI1j9s,69
116
- cloudsmith_cli-1.11.0.dist-info/top_level.txt,sha256=9P2AQ4lqblgMVHk2VHuvZKH92H0o19w-qhr_x-5ifIQ,15
117
- cloudsmith_cli-1.11.0.dist-info/RECORD,,
107
+ cloudsmith_cli-1.12.0.dist-info/licenses/LICENSE,sha256=eEz1wEWbBZFlc_n_P_55i4CCYgWgHYVJpQjnc6qbXOQ,11344
108
+ cloudsmith_cli-1.12.0.dist-info/METADATA,sha256=x7yY9aMim3LWaYEk3rWpiGjb2eWZod7InaETozfrbc4,15807
109
+ cloudsmith_cli-1.12.0.dist-info/WHEEL,sha256=AeO2BvogYWm3eGaHCvhzmUYt8ia7KfURiHzO_1atlys,109
110
+ cloudsmith_cli-1.12.0.dist-info/entry_points.txt,sha256=lQfpZ8eDB4ye9iK_TRpGnABwkcUgKIS-sGlCjbI1j9s,69
111
+ cloudsmith_cli-1.12.0.dist-info/top_level.txt,sha256=9P2AQ4lqblgMVHk2VHuvZKH92H0o19w-qhr_x-5ifIQ,15
112
+ cloudsmith_cli-1.12.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any