Skip to content

Commit de4e119

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "typing: Add types to custom formatters"
2 parents 30f3192 + e799a4a commit de4e119

24 files changed

+47
-39
lines changed

openstackclient/compute/v2/server.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import json
2222
import logging
2323
import os
24+
import typing as ty
2425

2526
from cliff import columns as cliff_columns
2627
import iso8601
@@ -44,7 +45,7 @@
4445
IMAGE_STRING_FOR_BFV = 'N/A (booted from volume)'
4546

4647

47-
class PowerStateColumn(cliff_columns.FormattableColumn):
48+
class PowerStateColumn(cliff_columns.FormattableColumn[int]):
4849
"""Generate a formatted string of a server's power state."""
4950

5051
power_states = [
@@ -65,7 +66,7 @@ def human_readable(self):
6566
return 'N/A'
6667

6768

68-
class AddressesColumn(cliff_columns.FormattableColumn):
69+
class AddressesColumn(cliff_columns.FormattableColumn[ty.Any]):
6970
"""Generate a formatted string of a server's addresses."""
7071

7172
def human_readable(self):
@@ -86,7 +87,7 @@ def machine_readable(self):
8687
}
8788

8889

89-
class HostColumn(cliff_columns.FormattableColumn):
90+
class HostColumn(cliff_columns.FormattableColumn[str | None]):
9091
"""Generate a formatted string of a hostname."""
9192

9293
def human_readable(self):

openstackclient/compute/v2/usage.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515

1616
"""Usage action implementations"""
1717

18+
from collections.abc import Collection
1819
import datetime
1920
import functools
21+
import typing as ty
2022

2123
from cliff import columns as cliff_columns
2224
from osc_lib import utils
@@ -27,7 +29,7 @@
2729

2830
# TODO(stephenfin): This exists in a couple of places and should be moved to a
2931
# common module
30-
class ProjectColumn(cliff_columns.FormattableColumn):
32+
class ProjectColumn(cliff_columns.FormattableColumn[str]):
3133
"""Formattable column for project column.
3234
3335
Unlike the parent FormattableColumn class, the initializer of the class
@@ -53,12 +55,12 @@ def human_readable(self):
5355
return project
5456

5557

56-
class CountColumn(cliff_columns.FormattableColumn):
58+
class CountColumn(cliff_columns.FormattableColumn[Collection[ty.Any]]):
5759
def human_readable(self):
5860
return len(self._value) if self._value is not None else None
5961

6062

61-
class FloatColumn(cliff_columns.FormattableColumn):
63+
class FloatColumn(cliff_columns.FormattableColumn[float]):
6264
def human_readable(self):
6365
return float(f"{self._value:.2f}")
6466

openstackclient/identity/v2_0/catalog.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"""Identity v2 Service Catalog action implementations"""
1515

1616
import logging
17+
import typing as ty
1718

1819
from cliff import columns as cliff_columns
1920
from osc_lib import exceptions
@@ -26,7 +27,7 @@
2627
LOG = logging.getLogger(__name__)
2728

2829

29-
class EndpointsColumn(cliff_columns.FormattableColumn):
30+
class EndpointsColumn(cliff_columns.FormattableColumn[ty.Any]):
3031
def human_readable(self):
3132
if not self._value:
3233
return ""

openstackclient/identity/v2_0/role_assignment.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def take_action(self, parsed_args):
8080
parsed_args.project,
8181
)
8282
elif parsed_args.authproject:
83-
if auth_ref:
83+
if auth_ref and auth_ref.project_id:
8484
project = utils.find_resource(
8585
identity_client.projects, auth_ref.project_id
8686
)

openstackclient/identity/v2_0/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
LOG = logging.getLogger(__name__)
3131

3232

33-
class ProjectColumn(cliff_columns.FormattableColumn):
33+
class ProjectColumn(cliff_columns.FormattableColumn[str]):
3434
"""Formattable column for project column.
3535
3636
Unlike the parent FormattableColumn class, the initializer of the

openstackclient/identity/v3/application_credential.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import datetime
1919
import json
2020
import logging
21+
import typing as ty
2122
import uuid
2223

2324
from cliff import columns as cliff_columns
@@ -31,11 +32,11 @@
3132
LOG = logging.getLogger(__name__)
3233

3334

34-
class RolesColumn(cliff_columns.FormattableColumn):
35+
class RolesColumn(cliff_columns.FormattableColumn[ty.Any]):
3536
"""Generate a formatted string of role names."""
3637

3738
def human_readable(self):
38-
return utils.format_list(r['name'] for r in self._value)
39+
return utils.format_list(list(r['name'] for r in self._value))
3940

4041

4142
def _format_application_credential(

openstackclient/identity/v3/catalog.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
1010
# License for the specific language governing permissions and limitations
1111
# under the License.
12-
#
1312

1413
"""Identity v3 Service Catalog action implementations"""
1514

1615
import logging
16+
import typing as ty
1717

1818
from cliff import columns as cliff_columns
1919
from osc_lib import exceptions
@@ -26,7 +26,7 @@
2626
LOG = logging.getLogger(__name__)
2727

2828

29-
class EndpointsColumn(cliff_columns.FormattableColumn):
29+
class EndpointsColumn(cliff_columns.FormattableColumn[ty.Any]):
3030
def human_readable(self):
3131
if not self._value:
3232
return ""

openstackclient/image/v1/image.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def _get_columns(item):
7070
_formatters = {}
7171

7272

73-
class HumanReadableSizeColumn(cliff_columns.FormattableColumn):
73+
class HumanReadableSizeColumn(cliff_columns.FormattableColumn[int]):
7474
def human_readable(self):
7575
"""Return a formatted visibility string
7676
@@ -84,7 +84,7 @@ def human_readable(self):
8484
return ''
8585

8686

87-
class VisibilityColumn(cliff_columns.FormattableColumn):
87+
class VisibilityColumn(cliff_columns.FormattableColumn[bool]):
8888
def human_readable(self):
8989
"""Return a formatted visibility string
9090

openstackclient/network/v2/network.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@
2424
from openstackclient.network import common
2525

2626

27-
class AdminStateColumn(cliff_columns.FormattableColumn):
27+
class AdminStateColumn(cliff_columns.FormattableColumn[bool]):
2828
def human_readable(self):
2929
return 'UP' if self._value else 'DOWN'
3030

3131

32-
class RouterExternalColumn(cliff_columns.FormattableColumn):
32+
class RouterExternalColumn(cliff_columns.FormattableColumn[bool]):
3333
def human_readable(self):
3434
return 'External' if self._value else 'Internal'
3535

openstackclient/network/v2/network_agent.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626
LOG = logging.getLogger(__name__)
2727

2828

29-
class AliveColumn(cliff_columns.FormattableColumn):
29+
class AliveColumn(cliff_columns.FormattableColumn[bool]):
3030
def human_readable(self):
3131
return ":-)" if self._value else "XXX"
3232

3333

34-
class AdminStateColumn(cliff_columns.FormattableColumn):
34+
class AdminStateColumn(cliff_columns.FormattableColumn[bool]):
3535
def human_readable(self):
3636
return 'UP' if self._value else 'DOWN'
3737

0 commit comments

Comments
 (0)