
    gB                     J    d dl mZ ddlmZ dedefdZdedee         fdZdS )	    )List   )commonmsgreturnc                     t          j        |           rdS t          j        t          j        |                     }t          j        |dd                   dk    rdS t          |           }d|vrdS dS )zCheck if a message is likely to be BDS code 1,7

    Args:
        msg (str): 28 hexdigits string

    Returns:
        bool: True or False
    F   8   r   BDS20T)r   allzeroshex2bindatabin2intcap17)r   dcapss      K/home/andy/.local/lib/python3.11/site-packages/pyModeS/decoder/bds/bds17.pyis17r      sx     s uv{3''((A~a2h1$$u::D du4    c                     g dt          j        t          j        |                     }d t          |dd                   D             }fd|D             }|S )zExtract capacities from BDS 1,7 message

    Args:
        msg (str): 28 hexdigits string

    Returns:
        list: list of supported BDS codes
    )05060708090A202140414243444548505152535455565F60c                 $    g | ]\  }}|d k    |S )1 ).0ivs      r   
<listcomp>zcap17.<locals>.<listcomp>P   s!    
7
7
7Aa3hh1hhhr   Nr	   c                 &    g | ]}d |         z   S )BDSr1   )r2   r3   allbdss     r   r5   zcap17.<locals>.<listcomp>Q   s"    ///aq	!///r   )r   r   r   	enumerate)r   r   idxcapacityr8   s       @r   r   r   +   sp      F6 	v{3''((A
7
71SbS6**
7
7
7C////3///HOr   N)typingr    r   strboolr   r   r1   r   r   <module>r@      s~               c d    @(s (tCy ( ( ( ( ( (r   