Example #1
0
    def test_convert_empty_instances(self):
        original_dict = {
            "key": OrderedDict(),
            "nested_dict": {
                "nested_key": OrderedDict(),
            },
        }
        expected_dict = {
            "key": None,
            "nested_dict": {
                "nested_key": None,
            },
        }

        convert_empty_instances(original_dict)

        self.assertEqual(original_dict, expected_dict)
def convert_response_to_nationaliteit_historie_dict(response):
    dict_object = xmltodict.parse(response.content)

    antwoord_dict_object = dict_object["soapenv:Envelope"]["soapenv:Body"][
        "ns:npsLa01"
    ]["ns:antwoord"]["ns:object"]["ns:inp.heeftAlsNationaliteit"]

    nationaliteit_historie_dict = {
        "aanduidingBijzonderNederlanderschap": antwoord_dict_object[
            "ns:historieMaterieel"
        ]["ns:aanduidingStrijdigheidNietigheid"],
        "datumIngangGeldigheid": {
            "dag": int(
                antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][
                    "StUF:beginGeldigheid"
                ][settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END]
            ),
            "datum": antwoord_dict_object["ns:historieMaterieel"][
                "StUF:tijdvakGeldigheid"
            ]["StUF:beginGeldigheid"],
            "jaar": int(
                antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][
                    "StUF:beginGeldigheid"
                ][settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END]
            ),
            "maand": int(
                antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][
                    "StUF:beginGeldigheid"
                ][settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END]
            ),
        },
        "nationaliteit": {"code": "0000", "omschrijving": "Nederland"},
        "redenOpname": {
            "code": antwoord_dict_object["ns:historieFormeelRelatie"][
                "ns:inp.redenVerkrijging"
            ],
            "omschrijving": RedenCodeAndOmschrijving.get_omschrijving_from_code(
                antwoord_dict_object["ns:historieFormeelRelatie"][
                    "ns:inp.redenVerkrijging"
                ]
            ),
        },
        "inOnderzoek": {
            "aanduidingBijzonderNederlanderschap": bool(
                antwoord_dict_object["ns:historieMaterieel"][
                    "ns:aanduidingStrijdigheidNietigheid"
                ]
            ),
            "nationaliteit": True,
            "redenOpname": bool(
                antwoord_dict_object["ns:historieFormeelRelatie"][
                    "ns:inp.redenVerkrijging"
                ]
            ),
            "datumIngangOnderzoek": {
                "dag": 0,
                "datum": "string",
                "jaar": 0,
                "maand": 0,
            },
        },
        "geheimhoudingPersoonsgegevens": True,
        "datumEindeGeldigheid": {
            "dag": int(
                antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][
                    "StUF:eindGeldigheid"
                ][settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END]
            ),
            "datum": antwoord_dict_object["ns:historieMaterieel"][
                "StUF:tijdvakGeldigheid"
            ]["StUF:eindGeldigheid"],
            "jaar": int(
                antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][
                    "StUF:eindGeldigheid"
                ][settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END]
            ),
            "maand": int(
                antwoord_dict_object["ns:historieMaterieel"]["StUF:tijdvakGeldigheid"][
                    "StUF:eindGeldigheid"
                ][settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END]
            ),
        },
        "redenBeeindigen": {
            "code": antwoord_dict_object["ns:historieFormeelRelatie"][
                "ns:inp.redenVerlies"
            ],
            "omschrijving": RedenCodeAndOmschrijving.get_omschrijving_from_code(
                antwoord_dict_object["ns:historieFormeelRelatie"]["ns:inp.redenVerlies"]
            ),
        },
        "indicatieNationaliteitBeeindigd": True,
    }

    convert_empty_instances(nationaliteit_historie_dict)

    return nationaliteit_historie_dict
Example #3
0
def get_kind_instance_dict(instance_xml_dict):
    kind_dict = {
        "burgerservicenummer":
        instance_xml_dict.get("inp.bsn", "string"),
        "geheimhoudingPersoonsgegevens":
        instance_xml_dict.get("inp.indicatieGeheim", "string"),
        "naam": {
            "geslachtsnaam":
            instance_xml_dict.get("geslachtsnaam", "string"),
            "voorletters":
            instance_xml_dict.get("voorletters", "string"),
            "voornamen":
            instance_xml_dict.get("voornamen", "string"),
            "voorvoegsel":
            instance_xml_dict.get("voorvoegselGeslachtsnaam", "string"),
            "inOnderzoek": {
                "geslachtsnaam":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "voornamen":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "voorvoegsel":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "datumIngangOnderzoek": {
                    "dag": None,
                    "datum": None,
                    "jaar": None,
                    "maand": None,
                },
            },
        },
        "geboorte": {
            "datum": {
                "dag":
                int(
                    instance_xml_dict.get(
                        "geboortedatum",
                        "19000101")[settings.OPENPERSONEN_DAY_START:settings.
                                    OPENPERSONEN_DAY_END])
                if instance_xml_dict.get("geboortedatum")
                and not isinstance(instance_xml_dict["geboortedatum"], dict)
                else None,
                "datum":
                convert_datum_to_proper_date_format(
                    instance_xml_dict.get("geboortedatum", "19000101"))
                if instance_xml_dict.get("geboortedatum")
                and not isinstance(instance_xml_dict["geboortedatum"], dict)
                else None,
                "jaar":
                int(
                    instance_xml_dict.get(
                        "geboortedatum",
                        "19000101")[settings.OPENPERSONEN_YEAR_START:settings.
                                    OPENPERSONEN_YEAR_END])
                if instance_xml_dict.get("geboortedatum")
                and not isinstance(instance_xml_dict["geboortedatum"], dict)
                else None,
                "maand":
                int(
                    instance_xml_dict.get(
                        "geboortedatum",
                        "19000101")[settings.OPENPERSONEN_MONTH_START:settings.
                                    OPENPERSONEN_MONTH_END])
                if instance_xml_dict.get("geboortedatum")
                and not isinstance(instance_xml_dict["geboortedatum"], dict)
                else None,
            },
            "land": {
                "code":
                instance_xml_dict.get("inp.geboorteLand"),
                "omschrijving":
                CountryCodeAndOmschrijving.get_omschrijving_from_code(
                    instance_xml_dict.get("inp.geboorteLand", 0))
                if instance_xml_dict.get("inp.geboorteLand") and
                not isinstance(instance_xml_dict.get("inp.geboorteLand"), dict)
                else None,
            },
            "plaats": {
                "code":
                GemeenteCodeAndOmschrijving.get_code_from_omschrijving(
                    instance_xml_dict.get("inp.geboorteplaats", 0))
                if not isinstance(instance_xml_dict.get("inp.geboorteplaats"),
                                  dict) else 0,
                "omschrijving":
                instance_xml_dict.get("inp.geboorteplaats", "string"),
            },
            "inOnderzoek": {
                "datum":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "land":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "plaats":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "datumIngangOnderzoek": {
                    "dag": None,
                    "datum": None,
                    "jaar": None,
                    "maand": None,
                },
            },
        },
        "leeftijd":
        calculate_age(instance_xml_dict.get("geboortedatum", "string")),
        "inOnderzoek": {
            "burgerservicenummer":
            any([
                "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                for in_onderzoek in instance_xml_dict.get("inOnderzoek", [])
                if isinstance(in_onderzoek, dict)
            ]),
            "datumIngangOnderzoek": {
                "dag": None,
                "datum": None,
                "jaar": None,
                "maand": None,
            },
        },
    }

    convert_empty_instances(kind_dict)

    return kind_dict
def convert_response_to_verblijfs_titel_historie_dict(response):
    dict_object = xmltodict.parse(response.content)

    antwoord_dict_object = dict_object["soapenv:Envelope"]["soapenv:Body"][
        "ns:npsLa01"
    ]["ns:antwoord"]["ns:object"]["ns:historieMaterieel"]

    verblijfs_titel_dict = {
        "aanduiding": {
            "code": "0000",
            "omschrijving": antwoord_dict_object["ns:vbt.aanduidingVerblijfstitel"],
        },
        "datumEinde": {
            "dag": int(
                antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:beginGeldigheid"][
                    settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END
                ]
            ),
            "datum": antwoord_dict_object["StUF:tijdvakGeldigheid"][
                "StUF:beginGeldigheid"
            ],
            "jaar": int(
                antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:beginGeldigheid"][
                    settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END
                ]
            ),
            "maand": int(
                antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:beginGeldigheid"][
                    settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END
                ]
            ),
        },
        "datumIngang": {
            "dag": int(
                antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:eindGeldigheid"][
                    settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END
                ]
            ),
            "datum": antwoord_dict_object["StUF:tijdvakGeldigheid"][
                "StUF:eindGeldigheid"
            ],
            "jaar": int(
                antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:eindGeldigheid"][
                    settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END
                ]
            ),
            "maand": int(
                antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:eindGeldigheid"][
                    settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END
                ]
            ),
        },
        "inOnderzoek": {
            "aanduiding": bool(antwoord_dict_object["ns:vbt.aanduidingVerblijfstitel"]),
            "datumEinde": bool(
                antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:eindGeldigheid"]
            ),
            "datumIngang": bool(
                antwoord_dict_object["StUF:tijdvakGeldigheid"]["StUF:beginGeldigheid"]
            ),
            "datumIngangOnderzoek": {
                "dag": 0,
                "datum": "string",
                "jaar": 0,
                "maand": 0,
            },
        },
        "geheimhoudingPersoonsgegevens": True,
    }
    convert_empty_instances(verblijfs_titel_dict)

    return verblijfs_titel_dict
def get_persoon_instance_dict(instance_xml_dict):
    ingeschreven_persoon_dict = {
        "burgerservicenummer":
        instance_xml_dict.get("inp.bsn", "string"),
        "geheimhoudingPersoonsgegevens":
        instance_xml_dict.get("inp.indicatieGeheim", "string"),
        "naam": {
            "geslachtsnaam":
            instance_xml_dict.get("geslachtsnaam", "string"),
            "voorletters":
            instance_xml_dict.get("voorletters", "string"),
            "voornamen":
            instance_xml_dict.get("voornamen", "string"),
            "voorvoegsel":
            instance_xml_dict.get("voorvoegselGeslachtsnaam", "string"),
            "inOnderzoek": {
                "geslachtsnaam":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "voornamen":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "voorvoegsel":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "datumIngangOnderzoek": {
                    "dag": None,
                    "datum": None,
                    "jaar": None,
                    "maand": None,
                },
            },
            "aanduidingNaamgebruik":
            instance_xml_dict.get("aanduidingNaamgebruik", "string"),
        },
        "geboorte": {
            "datum": {
                "dag":
                int(
                    instance_xml_dict.get(
                        "geboortedatum",
                        "19000101")[settings.OPENPERSONEN_DAY_START:settings.
                                    OPENPERSONEN_DAY_END])
                if instance_xml_dict.get("geboortedatum")
                and not isinstance(instance_xml_dict["geboortedatum"], dict)
                else None,
                "datum":
                convert_datum_to_proper_date_format(
                    instance_xml_dict.get("geboortedatum"))
                if instance_xml_dict.get("geboortedatum")
                and not isinstance(instance_xml_dict["geboortedatum"], dict)
                else None,
                "jaar":
                int(
                    instance_xml_dict.get(
                        "geboortedatum",
                        "19000101")[settings.OPENPERSONEN_YEAR_START:settings.
                                    OPENPERSONEN_YEAR_END])
                if instance_xml_dict.get("geboortedatum")
                and not isinstance(instance_xml_dict["geboortedatum"], dict)
                else None,
                "maand":
                int(
                    instance_xml_dict.get(
                        "geboortedatum",
                        "19000101")[settings.OPENPERSONEN_MONTH_START:settings.
                                    OPENPERSONEN_MONTH_END])
                if instance_xml_dict.get("geboortedatum")
                and not isinstance(instance_xml_dict["geboortedatum"], dict)
                else None,
            },
            "land": {
                "code":
                instance_xml_dict.get("inp.geboorteLand"),
                "omschrijving":
                CountryCodeAndOmschrijving.get_omschrijving_from_code(
                    instance_xml_dict.get("inp.geboorteLand"))
                if instance_xml_dict.get("inp.geboorteLand") and
                not isinstance(instance_xml_dict.get("inp.geboorteLand"), dict)
                else None,
            },
            "plaats": {
                "code":
                GemeenteCodeAndOmschrijving.get_code_from_omschrijving(
                    instance_xml_dict.get("inp.geboorteplaats", 0))
                if not isinstance(instance_xml_dict.get("inp.geboorteplaats"),
                                  dict) else 0,
                "omschrijving":
                instance_xml_dict.get("inp.geboorteplaats", "string"),
            },
            "inOnderzoek": {
                "datum":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "land":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "plaats":
                any([
                    "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "datumIngangOnderzoek": {
                    "dag": None,
                    "datum": None,
                    "jaar": None,
                    "maand": None,
                },
            },
        },
        "geslachtsaanduiding":
        instance_xml_dict.get("geslachtsaanduiding", "string"),
        "leeftijd":
        calculate_age(instance_xml_dict.get("geboortedatum", "string")),
        "datumEersteInschrijvingGBA": {
            "dag":
            int(
                instance_xml_dict.get("inp.datumInschrijving", "19000101")
                [settings.OPENPERSONEN_DAY_START:settings.OPENPERSONEN_DAY_END]
            ) if instance_xml_dict.get("inp.datumInschrijving") and
            not isinstance(instance_xml_dict["inp.datumInschrijving"], dict)
            else None,
            "datum":
            convert_datum_to_proper_date_format(
                instance_xml_dict.get("inp.datumInschrijving"))
            if instance_xml_dict.get("inp.datumInschrijving") and
            not isinstance(instance_xml_dict["inp.datumInschrijving"], dict)
            else None,
            "jaar":
            int(
                instance_xml_dict.get(
                    "inp.datumInschrijving",
                    "19000101")[settings.OPENPERSONEN_YEAR_START:settings.
                                OPENPERSONEN_YEAR_END])
            if instance_xml_dict.get("inp.datumInschrijving") and
            not isinstance(instance_xml_dict["inp.datumInschrijving"], dict)
            else None,
            "maand":
            int(
                instance_xml_dict.get(
                    "inp.datumInschrijving",
                    "19000101")[settings.OPENPERSONEN_MONTH_START:settings.
                                OPENPERSONEN_MONTH_END]) if
            instance_xml_dict.get("inp.datumInschrijving") and not isinstance(
                instance_xml_dict["inp.datumInschrijving"], dict) else None,
        },
        "kiesrecht": {
            "europeesKiesrecht":
            instance_xml_dict.get("ing.aanduidingEuropeesKiesrecht") == "2",
            "uitgeslotenVanKiesrecht":
            instance_xml_dict.get("ing.aanduidingUitgeslotenKiesrecht") == "A",
            "einddatumUitsluitingEuropeesKiesrecht": {
                "dag": None,
                "datum": None,
                "jaar": None,
                "maand": None,
            },
            "einddatumUitsluitingKiesrecht": {
                "dag": None,
                "datum": None,
                "jaar": None,
                "maand": None,
            },
        },
        "inOnderzoek": {
            "burgerservicenummer":
            any([
                "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                for in_onderzoek in instance_xml_dict.get("inOnderzoek", [])
                if isinstance(in_onderzoek, dict)
            ]),
            "geslachtsaanduiding":
            any([
                "Persoonsgegevens" == in_onderzoek.get("groepsnaam")
                for in_onderzoek in instance_xml_dict.get("inOnderzoek", [])
                if isinstance(in_onderzoek, dict)
            ]),
            "datumIngangOnderzoek": {
                "dag": None,
                "datum": None,
                "jaar": None,
                "maand": None,
            },
        },
        "nationaliteit": [{
            "aanduidingBijzonderNederlanderschap":
            instance_xml_dict.get("inp.aanduidingBijzonderNederlanderschap",
                                  "string")
            if not isinstance(
                instance_xml_dict.get(
                    "inp.aanduidingBijzonderNederlanderschap"),
                dict,
            ) else 1,
            "datumIngangGeldigheid": {
                "dag":
                int(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get(
                        "inp.datumVerkrijging",
                        "19000101")[settings.OPENPERSONEN_DAY_START:settings.
                                    OPENPERSONEN_DAY_END])
                if instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                         {}).get("inp.datumVerkrijging")
                and not isinstance(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                          {})["inp.datumVerkrijging"],
                    dict,
                ) else None,
                "datum":
                convert_datum_to_proper_date_format(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                          {}).get("inp.datumVerkrijging"))
                if instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                         {}).get("inp.datumVerkrijging")
                and not isinstance(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                          {})["inp.datumVerkrijging"],
                    dict,
                ) else None,
                "jaar":
                int(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get(
                        "inp.datumVerkrijging",
                        "19000101")[settings.OPENPERSONEN_YEAR_START:settings.
                                    OPENPERSONEN_YEAR_END])
                if instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                         {}).get("inp.datumVerkrijging")
                and not isinstance(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                          {})["inp.datumVerkrijging"],
                    dict,
                ) else None,
                "maand":
                int(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get(
                        "inp.datumVerkrijging",
                        "19000101")[settings.OPENPERSONEN_MONTH_START:settings.
                                    OPENPERSONEN_MONTH_END])
                if instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                         {}).get("inp.datumVerkrijging")
                and not isinstance(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                          {})["inp.datumVerkrijging"],
                    dict,
                ) else None,
            },
            "nationaliteit": {
                "code":
                instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                      {}).get("gerelateerde", {}).get("code"),
                "omschrijving":
                instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                      {}).get("gerelateerde",
                                              {}).get("omschrijving"),
            },
            "redenOpname": {
                "code":
                instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get(
                    "inp.redenVerkrijging", ".") if not isinstance(
                        instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                              {}).get("inp.redenVerkrijging"),
                        dict,
                    ) else "string",
                "omschrijving":
                RedenCodeAndOmschrijving.get_omschrijving_from_code(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get(
                        "inp.redenVerkrijging", 0))
                if not isinstance(
                    instance_xml_dict.get("inp.heeftAlsNationaliteit",
                                          {}).get("inp.redenVerkrijging"),
                    dict,
                ) else 0,
            },
            "inOnderzoek": {
                "aanduidingBijzonderNederlanderschap":
                any([
                    "aanduidingBijzonderNederlanderschap" == in_onderzoek.get(
                        "elementnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "nationaliteit":
                any([
                    "Nationaliteit" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "redenOpname":
                False,
                "datumIngangOnderzoek": {
                    "dag": None,
                    "datum": None,
                    "jaar": None,
                    "maand": None,
                },
            },
        }],
        "opschortingBijhouding": {
            "reden":
            instance_xml_dict.get("inp.redenOpschortingBijhouding", "string"),
            "datum": {
                "dag":
                int(
                    instance_xml_dict.get(
                        "inp.datumOpschortingBijhouding",
                        "19000101")[settings.OPENPERSONEN_DAY_START:settings.
                                    OPENPERSONEN_DAY_END])
                if instance_xml_dict.get("inp.datumOpschortingBijhouding")
                and not isinstance(
                    instance_xml_dict.get("inp.datumOpschortingBijhouding"),
                    dict) else None,
                "datum":
                convert_datum_to_proper_date_format(
                    instance_xml_dict.get("inp.datumOpschortingBijhouding"))
                if instance_xml_dict.get("inp.datumOpschortingBijhouding")
                and not isinstance(
                    instance_xml_dict.get("inp.datumOpschortingBijhouding"),
                    dict) else None,
                "jaar":
                int(
                    instance_xml_dict.get(
                        "inp.datumOpschortingBijhouding",
                        "19000101")[settings.OPENPERSONEN_YEAR_START:settings.
                                    OPENPERSONEN_YEAR_END])
                if instance_xml_dict.get("inp.datumOpschortingBijhouding")
                and not isinstance(
                    instance_xml_dict.get("inp.datumOpschortingBijhouding"),
                    dict) else None,
                "maand":
                int(
                    instance_xml_dict.get(
                        "inp.datumOpschortingBijhouding",
                        "19000101")[settings.OPENPERSONEN_MONTH_START:settings.
                                    OPENPERSONEN_MONTH_END])
                if instance_xml_dict.get("inp.datumOpschortingBijhouding")
                and not isinstance(
                    instance_xml_dict.get("inp.datumOpschortingBijhouding"),
                    dict) else None,
            },
        },
        "overlijden": {
            "indicatieOverleden":
            instance_xml_dict.get("inp.redenOpschortingBijhouding") == "O",
            "datum": {
                "dag":
                int(
                    instance_xml_dict.get(
                        "overlijdensdatum",
                        "19000101")[settings.OPENPERSONEN_DAY_START:settings.
                                    OPENPERSONEN_DAY_END])
                if instance_xml_dict.get("overlijdensdatum")
                and not isinstance(instance_xml_dict["overlijdensdatum"], dict)
                else None,
                "datum":
                convert_datum_to_proper_date_format(
                    instance_xml_dict.get("overlijdensdatum"))
                if instance_xml_dict.get("overlijdensdatum")
                and not isinstance(instance_xml_dict["overlijdensdatum"], dict)
                else None,
                "jaar":
                int(
                    instance_xml_dict.get(
                        "overlijdensdatum",
                        "19000101")[settings.OPENPERSONEN_YEAR_START:settings.
                                    OPENPERSONEN_YEAR_END])
                if instance_xml_dict.get("overlijdensdatum")
                and not isinstance(instance_xml_dict["overlijdensdatum"], dict)
                else None,
                "maand":
                int(
                    instance_xml_dict.get(
                        "overlijdensdatum",
                        "19000101")[settings.OPENPERSONEN_MONTH_START:settings.
                                    OPENPERSONEN_MONTH_END])
                if instance_xml_dict.get("overlijdensdatum")
                and not isinstance(instance_xml_dict["overlijdensdatum"], dict)
                else None,
            },
            "land": {
                "code":
                instance_xml_dict.get("inp.overlijdenLand") if
                not isinstance(instance_xml_dict.get("overlijdensdatum"), dict)
                else None,
                "omschrijving":
                CountryCodeAndOmschrijving.get_omschrijving_from_code(
                    instance_xml_dict.get("inp.overlijdenLand"))
                if instance_xml_dict.get("inp.overlijdenLand")
                and not isinstance(instance_xml_dict.get("inp.overlijdenLand"),
                                   dict) else None,
            },
            "plaats": {
                "code":
                GemeenteCodeAndOmschrijving.get_code_from_omschrijving(
                    instance_xml_dict.get("inp.overlijdenplaats", 0)) if
                not isinstance(instance_xml_dict.get("inp.overlijdenplaats"),
                               dict) else 0,
                "omschrijving": (instance_xml_dict.get("inp.overlijdenplaats",
                                                       "string")),
            },
            "inOnderzoek": {
                "datum":
                any([
                    "Overlijden" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "land":
                any([
                    "Overlijden" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "plaats":
                any([
                    "Overlijden" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "datumIngangOnderzoek": {
                    "dag": None,
                    "datum": None,
                    "jaar": None,
                    "maand": None,
                },
            },
        },
        "verblijfplaats": {
            "functieAdres":
            "woonadres",
            "huisletter":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("aoa.huisletter", "string"),
            "huisnummer":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("aoa.huisnummer", "string"),
            "huisnummertoevoeging":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("aoa.huisnummertoevoeging",
                                          "string"),
            "aanduidingBijHuisnummer":
            None,
            "identificatiecodeNummeraanduiding":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("aoa.identificatie", "string"),
            "naamOpenbareRuimte":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("gor.openbareRuimteNaam", "string"),
            "postcode":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("aoa.postcode", "string"),
            "woonplaatsnaam":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("wpl.woonplaatsNaam", "string"),
            "identificatiecodeAdresseerbaarObject":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("wpl.identificatie", "string"),
            "indicatieVestigingVanuitBuitenland":
            True,
            "locatiebeschrijving":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("inp.locatiebeschrijving", "string"),
            "straatnaam":
            instance_xml_dict.get("verblijfsadres",
                                  {}).get("gor.straatnaam", "string"),
            "vanuitVertrokkenOnbekendWaarheen":
            True,
            "datumAanvangAdreshouding": {
                "dag":
                int(
                    instance_xml_dict.get("verblijfsadres", {}).get(
                        "begindatumVerblijf",
                        "19000101")[settings.OPENPERSONEN_DAY_START:settings.
                                    OPENPERSONEN_DAY_END])
                if instance_xml_dict.get("verblijfsadres",
                                         {}).get("begindatumVerblijf")
                and not isinstance(
                    instance_xml_dict.get("verblijfsadres",
                                          {})["begindatumVerblijf"],
                    dict,
                ) else None,
                "datum":
                convert_datum_to_proper_date_format(
                    instance_xml_dict.get("verblijfsadres",
                                          {}).get("begindatumVerblijf"))
                if instance_xml_dict.get("verblijfsadres",
                                         {}).get("begindatumVerblijf")
                and not isinstance(
                    instance_xml_dict.get("verblijfsadres",
                                          {})["begindatumVerblijf"],
                    dict,
                ) else None,
                "jaar":
                int(
                    instance_xml_dict.get("verblijfsadres", {}).get(
                        "begindatumVerblijf",
                        "19000101")[settings.OPENPERSONEN_YEAR_START:settings.
                                    OPENPERSONEN_YEAR_END])
                if instance_xml_dict.get("verblijfsadres",
                                         {}).get("begindatumVerblijf")
                and not isinstance(
                    instance_xml_dict.get("verblijfsadres",
                                          {})["begindatumVerblijf"],
                    dict,
                ) else None,
                "maand":
                int(
                    instance_xml_dict.get("verblijfsadres", {}).get(
                        "begindatumVerblijf",
                        "19000101")[settings.OPENPERSONEN_MONTH_START:settings.
                                    OPENPERSONEN_MONTH_END])
                if instance_xml_dict.get("verblijfsadres",
                                         {}).get("begindatumVerblijf")
                and not isinstance(
                    instance_xml_dict.get("verblijfsadres",
                                          {})["begindatumVerblijf"],
                    dict,
                ) else None,
            },
            "datumIngangGeldigheid": {
                "dag":
                int(
                    instance_xml_dict.get("inp.verblijftIn", {}).get(
                        "gerelateerde", {}).get("ingangsdatumObject",
                                                "19000101")
                    [settings.OPENPERSONEN_DAY_START:settings.
                     OPENPERSONEN_DAY_END])
                if instance_xml_dict.get("inp.verblijftIn", {}).get(
                    "gerelateerde", {}).get("ingangsdatumObject")
                and not isinstance(
                    instance_xml_dict.get("inp.verblijftIn", {}).get(
                        "gerelateerde", {})["ingangsdatumObject"],
                    dict,
                ) else None,
                "datum":
                convert_datum_to_proper_date_format(
                    instance_xml_dict.get("inp.verblijftIn", {}).get(
                        "gerelateerde", {}).get("ingangsdatumObject"))
                if instance_xml_dict.get("inp.verblijftIn", {}).get(
                    "gerelateerde", {}).get("ingangsdatumObject")
                and not isinstance(
                    instance_xml_dict.get("inp.verblijftIn", {}).get(
                        "gerelateerde", {})["ingangsdatumObject"],
                    dict,
                ) else None,
                "jaar":
                int(
                    instance_xml_dict.get("inp.verblijftIn", {}).get(
                        "gerelateerde", {}).get("ingangsdatumObject",
                                                "19000101")
                    [settings.OPENPERSONEN_YEAR_START:settings.
                     OPENPERSONEN_YEAR_END])
                if instance_xml_dict.get("inp.verblijftIn", {}).get(
                    "gerelateerde", {}).get("ingangsdatumObject")
                and not isinstance(
                    instance_xml_dict.get("inp.verblijftIn", {}).get(
                        "gerelateerde", {})["ingangsdatumObject"],
                    dict,
                ) else None,
                "maand":
                int(
                    instance_xml_dict.get("inp.verblijftIn", {}).get(
                        "gerelateerde", {}).get("ingangsdatumObject",
                                                "19000101")
                    [settings.OPENPERSONEN_MONTH_START:settings.
                     OPENPERSONEN_MONTH_END])
                if instance_xml_dict.get("inp.verblijftIn", {}).get(
                    "gerelateerde", {}).get("ingangsdatumObject")
                and not isinstance(
                    instance_xml_dict.get("inp.verblijftIn", {}).get(
                        "gerelateerde", {})["ingangsdatumObject"],
                    dict,
                ) else None,
            },
            "datumInschrijvingInGemeente": {
                "dag": None,
                "datum": None,
                "jaar": None,
                "maand": None,
            },
            "datumVestigingInNederland": {
                "dag": None,
                "datum": None,
                "jaar": None,
                "maand": None,
            },
            "gemeenteVanInschrijving": {
                "code":
                instance_xml_dict.get("inp.verblijftIn",
                                      {}).get("gerelateerde",
                                              {}).get("gemeenteCode"),
                "omschrijving":
                instance_xml_dict.get("inp.verblijftIn",
                                      {}).get("gerelateerde",
                                              {}).get("gemeenteNaam"),
            },
            "landVanwaarIngeschreven": {
                "code": "",
                "omschrijving": ""
            },
            "verblijfBuitenland": {
                "adresRegel1":
                instance_xml_dict.get("sub.verblijfBuitenland",
                                      {}).get("sub.adresBuitenland1"),
                "adresRegel2":
                instance_xml_dict.get("sub.verblijfBuitenland",
                                      {}).get("sub.adresBuitenland2"),
                "adresRegel3":
                instance_xml_dict.get("sub.verblijfBuitenland",
                                      {}).get("sub.adresBuitenland3"),
                "vertrokkenOnbekendWaarheen":
                True,
                "land": {
                    "code":
                    instance_xml_dict.get("sub.verblijfBuitenland",
                                          {}).get("lnd.landcode"),
                    "omschrijving":
                    CountryCodeAndOmschrijving.get_omschrijving_from_code(
                        instance_xml_dict.get("sub.verblijfBuitenland",
                                              {}).get("lnd.landcode", 0))
                    if not isinstance(
                        instance_xml_dict.get("sub.verblijfBuitenland",
                                              {}).get("lnd.landcode"),
                        dict,
                    ) else None,
                },
            },
            "inOnderzoek": {
                "aanduidingBijHuisnummer":
                False,
                "datumAanvangAdreshouding":
                False,
                "datumIngangGeldigheid":
                False,
                "datumInschrijvingInGemeente":
                False,
                "datumVestigingInNederland":
                False,
                "functieAdres":
                False,
                "gemeenteVanInschrijving":
                False,
                "huisletter":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "huisnummer":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "huisnummertoevoeging":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "identificatiecodeNummeraanduiding":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "identificatiecodeAdresseerbaarObject":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "landVanwaarIngeschreven":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "locatiebeschrijving":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "naamOpenbareRuimte":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "postcode":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "straatnaam":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "verblijfBuitenland":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "woonplaatsnaam":
                any([
                    "Verblijfplaats" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "datumIngangOnderzoek": {
                    "dag": None,
                    "datum": None,
                    "jaar": None,
                    "maand": None,
                },
            },
        },
        "gezagsverhouding": {
            "indicatieCurateleRegister":
            instance_xml_dict.get("ing.indicatieCurateleRegister", False),
            "indicatieGezagMinderjarige":
            instance_xml_dict.get("ing.indicatieGezagMinderjarige", False),
            "inOnderzoek": {
                "indicatieCurateleRegister":
                any([
                    "Gezagsverhouding" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "indicatieGezagMinderjarige":
                any([
                    "Gezagsverhouding" == in_onderzoek.get("groepsnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "datumIngangOnderzoek": {
                    "dag": None,
                    "datum": None,
                    "jaar": None,
                    "maand": None,
                },
            },
        },
        "verblijfstitel": {
            "aanduiding": {
                "code": instance_xml_dict.get("vbt.aanduidingVerblijfstitel"),
                "omschrijving": None,
            },
            "datumEinde": {
                "dag":
                int(
                    instance_xml_dict.get(
                        "ing.datumVerliesVerblijfstitel",
                        "19000101")[settings.OPENPERSONEN_DAY_START:settings.
                                    OPENPERSONEN_DAY_END])
                if instance_xml_dict.get("ing.datumVerliesVerblijfstitel")
                and not isinstance(
                    instance_xml_dict["ing.datumVerliesVerblijfstitel"],
                    dict,
                ) else None,
                "datum":
                convert_datum_to_proper_date_format(
                    instance_xml_dict.get("ing.datumVerliesVerblijfstitel",
                                          "19000101"))
                if instance_xml_dict.get("ing.datumVerliesVerblijfstitel")
                and not isinstance(
                    instance_xml_dict["ing.datumVerliesVerblijfstitel"],
                    dict,
                ) else None,
                "jaar":
                int(
                    instance_xml_dict.get(
                        "ing.datumVerliesVerblijfstitel",
                        "19000101")[settings.OPENPERSONEN_YEAR_START:settings.
                                    OPENPERSONEN_YEAR_END])
                if instance_xml_dict.get("ing.datumVerliesVerblijfstitel")
                and not isinstance(
                    instance_xml_dict["ing.datumVerliesVerblijfstitel"],
                    dict,
                ) else None,
                "maand":
                int(
                    instance_xml_dict.get(
                        "ing.datumVerliesVerblijfstitel",
                        "19000101")[settings.OPENPERSONEN_MONTH_START:settings.
                                    OPENPERSONEN_MONTH_END])
                if instance_xml_dict.get("ing.datumVerliesVerblijfstitel")
                and not isinstance(
                    instance_xml_dict["ing.datumVerliesVerblijfstitel"],
                    dict,
                ) else None,
            },
            "datumIngang": {
                "dag":
                int(
                    instance_xml_dict.get(
                        "ing.datumVerkrijgingVerblijfstitel",
                        "19000101")[settings.OPENPERSONEN_DAY_START:settings.
                                    OPENPERSONEN_DAY_END])
                if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel")
                and not isinstance(
                    instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"],
                    dict,
                ) else None,
                "datum":
                convert_datum_to_proper_date_format(
                    instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel",
                                          "19000101"))
                if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel")
                and not isinstance(
                    instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"],
                    dict,
                ) else None,
                "jaar":
                int(
                    instance_xml_dict.get(
                        "ing.datumVerkrijgingVerblijfstitel",
                        "19000101")[settings.OPENPERSONEN_YEAR_START:settings.
                                    OPENPERSONEN_YEAR_END])
                if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel")
                and not isinstance(
                    instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"],
                    dict,
                ) else None,
                "maand":
                int(
                    instance_xml_dict.get(
                        "ing.datumVerkrijgingVerblijfstitel",
                        "19000101")[settings.OPENPERSONEN_MONTH_START:settings.
                                    OPENPERSONEN_MONTH_END])
                if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel")
                and not isinstance(
                    instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"],
                    dict,
                ) else None,
            },
            "inOnderzoek": {
                "aanduiding":
                any([
                    "aanduidingVerblijfstitel" == in_onderzoek.get(
                        "elementnaam")
                    for in_onderzoek in instance_xml_dict.get(
                        "inOnderzoek", []) if isinstance(in_onderzoek, dict)
                ]),
                "datumEinde":
                False,
                "datumIngang":
                False,
                "datumIngangOnderzoek": {
                    "dag": None,
                    "datum": None,
                    "jaar": None,
                    "maand": None,
                },
            },
        },
        "reisdocumenten": [],
    }

    kinderen_info = instance_xml_dict["inp.heeftAlsKinderen"]
    ouders_info = instance_xml_dict["inp.heeftAlsOuders"]
    partners_info = instance_xml_dict["inp.heeftAlsEchtgenootPartner"]

    if not isinstance(kinderen_info, list):
        kinderen_info = [kinderen_info]

    if not isinstance(ouders_info, list):
        ouders_info = [ouders_info]

    if not isinstance(partners_info, list):
        partners_info = [partners_info]

    ingeschreven_persoon_dict["kinderen"] = []
    ingeschreven_persoon_dict["ouders"] = []
    ingeschreven_persoon_dict["partners"] = []

    for kind_info in kinderen_info:
        if "gerelateerde" in kind_info:
            ingeschreven_persoon_dict["kinderen"].append(
                get_kind_instance_dict(kind_info["gerelateerde"]))

    for ouder_info in ouders_info:
        if "gerelateerde" in ouder_info:
            ingeschreven_persoon_dict["ouders"].append(
                get_ouder_instance_dict(ouder_info["gerelateerde"]))

    partners_title = None
    partners_last_name_prefix = None
    partners_last_name = None
    partners_date = None
    for partner_info in partners_info:
        if "gerelateerde" in partner_info:
            ingeschreven_persoon_dict["partners"].append(
                get_partner_instance_dict(partner_info["gerelateerde"]))
        if (not partners_last_name
                or (partner_info.get("datumOntbinding") and partners_date
                    and partners_date > partner_info["datumSluiting"]) or
            (partner_info.get("datumOntbinding") is None and partners_date
             and partners_date < partner_info["datumSluiting"])):
            (
                partners_title,
                partners_last_name_prefix,
                partners_last_name,
                partners_date,
            ) = _get_partner_info(partner_info)

    ingeschreven_persoon_dict["naam"]["aanhef"] = get_aanhef(
        instance_xml_dict.get("voorvoegselGeslachtsnaam"),
        instance_xml_dict.get("geslachtsnaam"),
        partners_last_name_prefix,
        partners_last_name,
        instance_xml_dict.get("aanduidingNaamgebruik"),
        instance_xml_dict.get("geslachtsaanduiding"),
        instance_xml_dict.get("adellijkeTitelPredikaat"),
        partners_title,
    )

    ingeschreven_persoon_dict["naam"]["aanschrijfwijze"] = get_aanschrijfwijze(
        instance_xml_dict.get("voorvoegselGeslachtsnaam"),
        instance_xml_dict.get("geslachtsnaam"),
        instance_xml_dict.get("voornamen"),
        partners_last_name_prefix,
        partners_last_name,
        instance_xml_dict.get("aanduidingNaamgebruik"),
        instance_xml_dict.get("geslachtsaanduiding"),
        instance_xml_dict.get("adellijkeTitelPredikaat"),
        partners_title,
    )

    ingeschreven_persoon_dict["naam"][
        "gebruikInLopendeTekst"] = get_gebruik_in_lopende_tekst(
            instance_xml_dict.get("voorvoegselGeslachtsnaam"),
            instance_xml_dict.get("geslachtsnaam"),
            partners_last_name_prefix,
            partners_last_name,
            instance_xml_dict.get("aanduidingNaamgebruik"),
            instance_xml_dict.get("geslachtsaanduiding"),
            instance_xml_dict.get("adellijkeTitelPredikaat"),
            partners_title,
        )

    convert_empty_instances(ingeschreven_persoon_dict)

    return ingeschreven_persoon_dict
def convert_response_to_verblijf_plaats_historie_dict(response):
    dict_object = xmltodict.parse(response.content)

    antwoord_dict_object = dict_object["soapenv:Envelope"]["soapenv:Body"][
        "ns:npsLa01"]["ns:antwoord"]["ns:object"]["ns:inp.verblijftIn"][
            "ns:historieFormeelRelatie"]["ns:gerelateerde"][
                "ns:adresAanduidingGrp"]

    verblijf_plaats_dict = {
        "functieAdres": "woonadres",
        "huisletter": antwoord_dict_object["ns:aoa.huisletter"],
        "huisnummer": antwoord_dict_object["ns:aoa.huisnummer"],
        "huisnummertoevoeging":
        antwoord_dict_object["ns:aoa.huisnummertoevoeging"],
        "aanduidingBijHuisnummer": "tegenover",
        "identificatiecodeNummeraanduiding": "0518200000366054",
        "naamOpenbareRuimte":
        antwoord_dict_object["ns:gor.openbareRuimteNaam"],
        "postcode": antwoord_dict_object["ns:aoa.postcode"],
        "woonplaatsnaam": antwoord_dict_object["ns:wpl.woonplaatsNaam"],
        "identificatiecodeAdresseerbaarObject": "0518200000366054",
        "indicatieVestigingVanuitBuitenland": True,
        "locatiebeschrijving": "Naast de derde brug",
        "straatnaam": "string",
        "vanuitVertrokkenOnbekendWaarheen": True,
        "datumAanvangAdreshouding": {
            "dag": 0,
            "datum": "string",
            "jaar": 0,
            "maand": 0,
        },
        "datumIngangGeldigheid": {
            "dag": 0,
            "datum": "string",
            "jaar": 0,
            "maand": 0,
        },
        "datumInschrijvingInGemeente": {
            "dag": 0,
            "datum": "string",
            "jaar": 0,
            "maand": 0,
        },
        "datumVestigingInNederland": {
            "dag": 0,
            "datum": "string",
            "jaar": 0,
            "maand": 0,
        },
        "gemeenteVanInschrijving": {
            "code": "0000",
            "omschrijving": "Nederland"
        },
        "landVanwaarIngeschreven": {
            "code": "0000",
            "omschrijving": "Nederland"
        },
        "verblijfBuitenland": {
            "adresRegel1": "string",
            "adresRegel2": "string",
            "adresRegel3": "string",
            "vertrokkenOnbekendWaarheen": True,
            "land": {
                "code": "0000",
                "omschrijving": "Nederland"
            },
        },
        "inOnderzoek": {
            "aanduidingBijHuisnummer":
            True,
            "datumAanvangAdreshouding":
            True,
            "datumIngangGeldigheid":
            True,
            "datumInschrijvingInGemeente":
            True,
            "datumVestigingInNederland":
            True,
            "functieAdres":
            True,
            "gemeenteVanInschrijving":
            True,
            "huisletter":
            bool(antwoord_dict_object["ns:aoa.huisletter"]),
            "huisnummer":
            bool(antwoord_dict_object["ns:aoa.huisnummer"]),
            "huisnummertoevoeging":
            bool(antwoord_dict_object["ns:aoa.huisnummertoevoeging"]),
            "identificatiecodeNummeraanduiding":
            True,
            "identificatiecodeAdresseerbaarObject":
            True,
            "landVanwaarIngeschreven":
            True,
            "locatiebeschrijving":
            True,
            "naamOpenbareRuimte":
            bool(antwoord_dict_object["ns:gor.openbareRuimteNaam"]),
            "postcode":
            bool(antwoord_dict_object["ns:aoa.postcode"]),
            "straatnaam":
            True,
            "verblijfBuitenland":
            True,
            "woonplaatsnaam":
            bool(antwoord_dict_object["ns:wpl.woonplaatsNaam"]),
            "datumIngangOnderzoek": {
                "dag": 0,
                "datum": "string",
                "jaar": 0,
                "maand": 0,
            },
        },
        "datumTot": {
            "dag": 0,
            "datum": "string",
            "jaar": 0,
            "maand": 0
        },
        "geheimhoudingPersoonsgegevens": True,
    }

    convert_empty_instances(verblijf_plaats_dict)

    return verblijf_plaats_dict