Skip to content

Commit f846fb2

Browse files
Revert code changes
1 parent b1cbbcb commit f846fb2

File tree

4 files changed

+42
-130
lines changed

4 files changed

+42
-130
lines changed

cloudsmith_cli/cli/commands/list_.py

Lines changed: 8 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def entitlements_(*args, **kwargs): # pylint: disable=missing-docstring
128128
help=("A boolean-like search term for querying package attributes."),
129129
)
130130
@click.pass_context
131-
def packages(ctx, opts, owner_repo, page, page_size, show_all, query):
131+
def packages(ctx, opts, owner_repo, page, page_size, query):
132132
"""
133133
List packages for a repository.
134134
@@ -165,48 +165,20 @@ def packages(ctx, opts, owner_repo, page, page_size, show_all, query):
165165
166166
--query 'name:^foo$ filename:.zip$ architecture:~x86'
167167
168-
Options:
169-
-p, --page INTEGER The page of results to show.
170-
-l, --page-size INTEGER The number of results to return per page.
171-
--show-all Show all results by automatically paginating through all pages.
172-
-q, --query TEXT A boolean-like search term for querying package attributes.
173168
"""
174169
owner, repo = owner_repo
175170

176-
if show_all:
177-
if page is not None or page_size is not None:
178-
raise click.UsageError(
179-
"--show-all cannot be used with --page or --page-size"
180-
)
181-
else:
182-
if page is None and page_size is None:
183-
show_all = True
184-
185171
# Use stderr for messages if the output is something else (e.g. # JSON)
186172
use_stderr = opts.output != "pretty"
187173

188-
if show_all:
189-
click.echo(
190-
f"Retrieving all packages for repository {owner}/{repo}. This may take a while...",
191-
err=use_stderr,
192-
)
193-
else:
194-
click.echo("Getting list of packages ... ", nl=False, err=use_stderr)
174+
click.echo("Getting list of packages ... ", nl=False, err=use_stderr)
195175

196176
context_msg = "Failed to get list of packages!"
197177
with handle_api_exceptions(ctx, opts=opts, context_msg=context_msg):
198178
with maybe_spinner(opts):
199-
if show_all:
200-
packages_, page_info = utils.get_all_pages(
201-
list_packages,
202-
owner=owner,
203-
repo=repo,
204-
query=query,
205-
)
206-
else:
207-
packages_, page_info = list_packages(
208-
owner=owner, repo=repo, page=page, page_size=page_size, query=query
209-
)
179+
packages_, page_info = list_packages(
180+
owner=owner, repo=repo, page=page, page_size=page_size, query=query
181+
)
210182

211183
click.secho("OK", fg="green", err=use_stderr)
212184

@@ -239,10 +211,7 @@ def packages(ctx, opts, owner_repo, page, page_size, show_all, query):
239211
num_results = len(packages_)
240212
list_suffix = "package%s visible" % ("s" if num_results != 1 else "")
241213
utils.pretty_print_list_info(
242-
num_results=num_results,
243-
page_info=page_info,
244-
suffix=list_suffix,
245-
show_all=show_all,
214+
num_results=num_results, page_info=page_info, suffix=list_suffix
246215
)
247216

248217

@@ -260,7 +229,7 @@ def packages(ctx, opts, owner_repo, page, page_size, show_all, query):
260229
required=False,
261230
)
262231
@click.pass_context
263-
def repos(ctx, opts, owner_repo, page, page_size, show_all):
232+
def repos(ctx, opts, owner_repo, page, page_size):
264233
"""
265234
List repositories for a namespace (owner).
266235
@@ -292,4 +261,4 @@ def _get_package_status(package):
292261

293262
def _get_package_version(package):
294263
"""Get the version for a package (if any)."""
295-
return package["version"] or "None"
264+
return package["version"] or "None"

cloudsmith_cli/cli/commands/repos.py

Lines changed: 11 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from .main import main
1313

1414

15-
def print_repositories(opts, data, page_info=None, show_list_info=True, show_all=False):
15+
def print_repositories(opts, data, page_info=None, show_list_info=True):
1616
"""Print repositories as a table or output in another format."""
1717
headers = [
1818
"Name",
@@ -51,10 +51,7 @@ def print_repositories(opts, data, page_info=None, show_list_info=True, show_all
5151
num_results = len(data)
5252
list_suffix = "repositor%s visible" % ("ies" if num_results != 1 else "y")
5353
utils.pretty_print_list_info(
54-
num_results=num_results,
55-
page_info=page_info,
56-
suffix=list_suffix,
57-
show_all=show_all,
54+
num_results=num_results, page_info=page_info, suffix=list_suffix
5855
)
5956

6057

@@ -86,7 +83,7 @@ def repositories(ctx, opts): # pylink: disable=unused-argument
8683
required=False,
8784
)
8885
@click.pass_context
89-
def get(ctx, opts, owner_repo, page, page_size, show_all):
86+
def get(ctx, opts, owner_repo, page, page_size):
9087
"""
9188
List repositories for a namespace (owner).
9289
@@ -98,23 +95,12 @@ def get(ctx, opts, owner_repo, page, page_size, show_all):
9895
9996
If OWNER isn't specified it'll default to the currently authenticated user
10097
(if any). If you're unauthenticated, no results will be returned.
101-
102-
Options:
103-
-p, --page INTEGER The page of results to show.
104-
-l, --page-size INTEGER The number of results to return per page.
105-
--show-all Show all results by automatically paginating through all pages.
10698
"""
107-
if show_all:
108-
if page is not None or page_size is not None:
109-
raise click.UsageError(
110-
"--show-all cannot be used with --page or --page-size"
111-
)
112-
elif page is None and page_size is None:
113-
show_all = True
114-
11599
# Use stderr for messages if the output is something else (e.g. # JSON)
116100
use_stderr = opts.output != "pretty"
117101

102+
click.echo("Getting list of repositories ... ", nl=False, err=use_stderr)
103+
118104
if isinstance(owner_repo, list):
119105
if len(owner_repo) == 1:
120106
owner = owner_repo[0]
@@ -123,49 +109,26 @@ def get(ctx, opts, owner_repo, page, page_size, show_all):
123109
owner, repo = owner_repo
124110
if isinstance(owner_repo, str):
125111
repo = None
112+
126113
if owner_repo:
127114
owner = owner_repo
128115
else:
129116
owner = None
130117

131-
if show_all:
132-
if owner:
133-
click.echo(
134-
f"Retrieving all repositories for {owner}. This may take a while...",
135-
err=use_stderr,
136-
)
137-
else:
138-
click.echo(
139-
"Retrieving all repositories. This may take a while...", err=use_stderr
140-
)
141-
else:
142-
click.echo("Getting list of repositories ... ", nl=False, err=use_stderr)
143-
144118
context_msg = "Failed to get list of repositories!"
145119
with handle_api_exceptions(ctx, opts=opts, context_msg=context_msg):
146120
with maybe_spinner(opts):
147-
if show_all:
148-
repos_, page_info = utils.get_all_pages(
149-
api.list_repos,
150-
owner=owner,
151-
repo=repo,
152-
)
153-
else:
154-
repos_, page_info = api.list_repos(
155-
owner=owner, repo=repo, page=page, page_size=page_size
156-
)
121+
repos_, page_info = api.list_repos(
122+
owner=owner, repo=repo, page=page, page_size=page_size
123+
)
157124

158125
click.secho("OK", fg="green", err=use_stderr)
159126

160127
if utils.maybe_print_as_json(opts, repos_, page_info):
161128
return
162129

163130
print_repositories(
164-
opts=opts,
165-
data=repos_,
166-
show_list_info=False,
167-
page_info=page_info,
168-
show_all=show_all,
131+
opts=opts, data=repos_, show_list_info=False, page_info=page_info
169132
)
170133

171134

@@ -341,4 +304,4 @@ def delete(ctx, opts, owner_repo, yes):
341304
with maybe_spinner(opts):
342305
api.delete_repo(owner=owner, repo=repo)
343306

344-
click.secho("OK", fg="green")
307+
click.secho("OK", fg="green")

cloudsmith_cli/cli/decorators.py

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -142,33 +142,31 @@ def wrapper(ctx, *args, **kwargs):
142142

143143

144144
def common_cli_list_options(f):
145-
"""Add common options for list commands."""
145+
"""Add common list options to commands."""
146146

147147
@click.option(
148148
"-p",
149149
"--page",
150150
default=1,
151-
help="The page of results to show.",
152-
type=click.INT,
151+
type=int,
152+
help="The page to view for lists, where 1 is the first page",
153153
callback=validators.validate_page,
154154
)
155155
@click.option(
156156
"-l",
157157
"--page-size",
158-
default=None,
159-
help="The number of results to return per page.",
160-
type=click.INT,
158+
default=30,
159+
type=int,
160+
help="The amount of items to view per page for lists.",
161161
callback=validators.validate_page_size,
162162
)
163-
@click.option(
164-
"--show-all",
165-
is_flag=True,
166-
default=False,
167-
help="Show all results by automatically paginating through all pages.",
168-
)
163+
@click.pass_context
169164
@functools.wraps(f)
170-
def wrapper(*args, **kwargs):
171-
return f(*args, **kwargs)
165+
def wrapper(ctx, *args, **kwargs):
166+
# pylint: disable=missing-docstring
167+
opts = config.get_or_create_options(ctx)
168+
kwargs["opts"] = opts
169+
return ctx.invoke(f, *args, **kwargs)
172170

173171
return wrapper
174172

@@ -310,4 +308,4 @@ def call_print_rate_limit_info_with_opts(rate_info):
310308
kwargs["opts"] = opts
311309
return ctx.invoke(f, *args, **kwargs)
312310

313-
return wrapper
311+
return wrapper

cloudsmith_cli/cli/utils.py

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
"""CLI - Utilities."""
2-
32
import json
43
import platform
54
from contextlib import contextmanager
@@ -19,24 +18,20 @@ def make_user_agent(prefix=None):
1918
return f"cloudsmith-cli/{prefix} cli:{get_cli_version()} api:{get_api_version()}"
2019

2120

22-
def pretty_print_list_info(num_results, page_info=None, suffix=None, show_all=False):
21+
def pretty_print_list_info(num_results, page_info=None, suffix=None):
2322
"""Pretty print list info, with pagination, for user display."""
2423
num_results_fg = "green" if num_results else "red"
2524
num_results_text = click.style(str(num_results), fg=num_results_fg)
2625

2726
if page_info and page_info.is_valid:
28-
if show_all:
29-
range_results_text = f"{num_results_text} of {click.style(str(page_info.count), fg=num_results_fg)}"
30-
page_info_text = "all pages"
31-
else:
32-
page_range = page_info.calculate_range(num_results)
33-
page_info_text = f"page: {click.style(str(page_info.page), bold=True)}/{click.style(str(page_info.page_total), bold=True)}, page size: {click.style(str(page_info.page_size), bold=True)}"
34-
range_results_text = "%(from)s-%(to)s (%(num_results)s) of %(total)s" % {
35-
"num_results": num_results_text,
36-
"from": click.style(str(page_range[0]), fg=num_results_fg),
37-
"to": click.style(str(page_range[1]), fg=num_results_fg),
38-
"total": click.style(str(page_info.count), fg=num_results_fg),
39-
}
27+
page_range = page_info.calculate_range(num_results)
28+
page_info_text = f"page: {click.style(str(page_info.page), bold=True)}/{click.style(str(page_info.page_total), bold=True)}, page size: {click.style(str(page_info.page_size), bold=True)}"
29+
range_results_text = "%(from)s-%(to)s (%(num_results)s) of %(total)s" % {
30+
"num_results": num_results_text,
31+
"from": click.style(str(page_range[0]), fg=num_results_fg),
32+
"to": click.style(str(page_range[1]), fg=num_results_fg),
33+
"total": click.style(str(page_info.count), fg=num_results_fg),
34+
}
4035
else:
4136
page_info_text = ""
4237
range_results_text = num_results_text
@@ -195,17 +190,4 @@ def maybe_spinner(opts):
195190
yield
196191
else:
197192
with spinner() as spin:
198-
yield spin
199-
200-
201-
def get_all_pages(func, **kwargs):
202-
"""Retrieve all pages for a paginated API call."""
203-
all_items = []
204-
page = 1
205-
while True:
206-
items, page_info = func(page=page, **kwargs)
207-
all_items.extend(items)
208-
if page >= page_info.page_total:
209-
break
210-
page += 1
211-
return all_items, page_info
193+
yield spin

0 commit comments

Comments
 (0)