@classmethod
def from_gnaf_dict(cls, **kwags):
    """Create an AbAddressUtility class from a dict containing GNAF
        information.

        :params **kwags: a dict from GNAF format.
        """
    a = {'flat_number_prefix': kwags.get('flat_number_prefix', None),
        'flat_number': kwags.get('flat_number', None), 'flat_number_suffix':
        kwags.get('flat_number_suffix', None), 'number_first_prefix': kwags
        .get('number_first_prefix', None), 'number_first': kwags.get(
        'number_first', None), 'number_first_suffix': kwags.get(
        'number_first_suffix', None), 'number_last_prefix': kwags.get(
        'number_last_prefix', None), 'number_last': kwags.get('number_last',
        None), 'number_last_suffix': kwags.get('number_last_suffix', None),
        'street_name': kwags.get('street_name', None), 'street_type_code':
        kwags.get('street_type_code', None), 'street_suffix_code': kwags.
        get('street_suffix_code', None), 'locality_name': kwags.get(
        'locality_name', None), 'state_abbreviation': kwags.get(
        'state_abbreviation', None), 'postcode': kwags.get('postcode', None)}
    for k, v in a.items():
        if v is None:
            a[k] = ''
    _flat = (
        f"{a['flat_number_prefix']}{a['flat_number']}{a['flat_number_suffix']}"
        )
    _number_first = (
        f"{a['number_first_prefix']}{a['number_first']}{a['number_first_suffix']}"
        )
    _number_last = (
        f"{a['number_last_prefix']}{a['number_last']}{a['number_last_suffix']}"
        )
    _street = (
        f"{a['street_name']} {a['street_type_code']}{' ' + a['street_suffix_code']}"
        )
    address = (
        f"{_flat + '/' if len(_flat) > 0 else ''}{_number_first}{'-' + _number_last if len(_number_last) > 0 else ''} {_street.title()}, {a['locality_name'].title()} {a['state_abbreviation']} {a['postcode']}"
        )
    return cls(address)
