
    +                     x    d Z ddlmZ ddlmZ ddlmZ ddlZ ej                  dg d      ZdZ G d	 d
e	      Z
y)ICommon code for 'gcloud firebase test * list-device-capacities' commands.    )absolute_import)division)unicode_literalsNCapacityEntrymodelnameversioncapacityz
        table[box](
          model:label=MODEL_ID,
          name:label=MODEL_NAME,
          version:label=OS_VERSION_ID,
          capacity.color(red=None,yellow=Low,green=High):label=DEVICE_CAPACITY
        )
    c                   *    e Zd ZdZdZed        Zd Zy)DeviceCapacitiesr   Nc                    | j                   | j                  d   j                  j                  }| j                  d   j                  j                  }|j
                  d|j                  d|j                  d|j                  d|j                  d|j
                  d|j                  d|j                  d|j                  d|j                  di
| _         | j                   S )z'A map of enum to user-friendly message.testing_messagesNoneHighMediumLow)
_capacity_messages_cachecontextPerAndroidVersionInfoDeviceCapacityValueValuesEnumPerIosVersionInfoDEVICE_CAPACITY_UNSPECIFIEDDEVICE_CAPACITY_HIGHDEVICE_CAPACITY_MEDIUMDEVICE_CAPACITY_LOWDEVICE_CAPACITY_NONE)selfdevice_capacity_enum_androiddevice_capacity_enum_ioss      =lib/googlecloudsdk/api_lib/firebase/test/device_capacities.pycapacity_messagesz"DeviceCapacities.capacity_messages*   s     $$,%)\\
&334Q4Q # "&
"//0M0M  '
B
BF
&
;
;V
&
=
=x
&
:
:E
&
;
;V
"
>
>
"
7
7
"
9
98
"
6
6
"
7
7'd# (((    c                 @   g }|j                   D ]  }|j                  D ]{  }|j                  |j                  vr|j                  )|j                  t        |j                  |j                  |j                  | j                  |j                                  }  |S )aO  Generate a list of devices/OS versions & corresponding capacity info.

    Args:
      catalog: Android or iOS catalog

    Returns:
      The list of device models, versions, and capacity info we want to have
      printed later. Obsolete (unsupported) devices, versions, and entries
      missing capacity info are filtered out.
    r   )
modelsperVersionInfo	versionIdsupportedVersionIdsdeviceCapacityappendr   idr
   r#   )r   catalogcapacity_datar	   version_infos        r"   get_capacity_dataz"DeviceCapacities.get_capacity_dataD   s     M..,!!)B)BB
&&.
hhZZ$..//0K0KL	N	O /   r$   )__name__
__module____qualname____doc__r   propertyr#   r0    r$   r"   r   r   %   s"    Q!) )2r$   r   )r4   
__future__r   r   r   collections
namedtupler   DEVICE_CAPACITY_TABLE_FORMATobjectr   r6   r$   r"   <module>r<      sC     P &  ' &&&'OQ  9v 9r$   