Source code for pcapkit.vendor.mh.handover_ack_status
# -*- coding: utf-8 -*-"""Handover Acknowledge Status Codes=======================================.. module:: pcapkit.vendor.mh.handover_ack_statusThis module contains the vendor crawler for **Handover Acknowledge Status Codes**,which is automatically generating :class:`pcapkit.const.mh.handover_ack_status.HandoverACKStatus`."""importcsvimportreimportsysfrompcapkit.vendor.defaultimportVendor__all__=['HandoverACKStatus']
[docs]classHandoverACKStatus(Vendor):"""Handover Acknowledge Status Codes"""#: Value limit checker.FLAG='isinstance(value, int) and 0 <= value <= 255'#: Link to registry.LINK='https://www.iana.org/assignments/mobility-parameters/handover-acknowledge-status.csv'defprocess(self,data:'list[str]')->'tuple[list[str], list[str]]':"""Process CSV data. Args: data: CSV data. Returns: Enumeration fields and missing fields. """reader=csv.reader(data)next(reader)# headerenum=[]# type: list[str]miss=[]# type: list[str]foriteminreader:long=item[1]rfcs=item[2]temp=[]# type: list[str]forrfcinfilter(None,re.split(r'\[|\]',rfcs)):if'RFC'inrfcandre.match(r'\d+',rfc[3:]):# temp.append(f'[{rfc[:3]} {rfc[3:]}]')temp.append(f'[:rfc:`{rfc[3:]}`]')else:temp.append(f'[{rfc}]'.replace('_',' '))tmp1=f" {''.join(temp)}"ifrfcselse''split=long.split(' (',1)iflen(split)==2:name=split[0]cmmt=f" ({split[1]}"else:name,cmmt=long,''desc=self.wrap_comment(f'{name}{cmmt}{tmp1}')try:code,_=item[0],int(item[0])renm=self.rename(name,code,original=long)pres=f"{renm} = {code}"sufs=f'#: {desc}'# if len(pres) > 74:# sufs = f"\n{' '*80}{sufs}"# enum.append(f'{pres.ljust(76)}{sufs}')enum.append(f'{sufs}\n{pres}')exceptValueError:start,stop=item[0].split('-')miss.append(f'if {start} <= value <= {stop}:')miss.append(f' #: {desc}')miss.append(f" return extend_enum(cls, '{self.safe_name(name)}_%d' % value, value)")returnenum,miss