def from_array(array):
        """
        Deserialize a new PassportData from a given dictionary.

        :return: new PassportData instance.
        :rtype: PassportData
        """
        if array is None or not array:
            return None
        # end if
        assert_type_or_raise(array, dict, parameter_name="array")


        data = {}
        data['data'] = EncryptedPassportElement.from_array_list(array.get('data'), list_level=1)
        data['credentials'] = EncryptedCredentials.from_array(array.get('credentials'))
        data['_raw'] = array
        return PassportData(**data)