Ejemplo n.º 1
0
def parse_from_json(amend: dict, position: int, session: str, num_texte: int,
                    organe: str, subdiv: dict) -> Amendement:
    num, rectif = Amendement.parse_num(amend["num"])
    subdiv_type, subdiv_num, subdiv_mult, subdiv_pos = _parse_subdiv(
        subdiv["libelle_subdivision"])
    return Amendement(  # type: ignore
        chambre="senat",
        session=session,
        num_texte=num_texte,
        organe=organe,
        subdiv_type=subdiv_type,
        subdiv_num=subdiv_num,
        subdiv_mult=subdiv_mult,
        subdiv_pos=subdiv_pos,
        num=num,
        rectif=rectif,
        alinea=amend["libelleAlinea"],
        auteur=amend["auteur"],
        matricule=(extract_matricule(amend["urlAuteur"])
                   if amend["auteur"] != "LE GOUVERNEMENT" else None),
        sort=amend.get("sort"),
        position=position,
        identique=parse_bool(amend["isIdentique"]),
        discussion_commune=(int(amend["idDiscussionCommune"]) if parse_bool(
            amend["isDiscussionCommune"]) else None),
    )
Ejemplo n.º 2
0
def _parse_division(node: etree.Element) -> SubDiv:
    extract = partial(extract_from_node, node)

    division_type = extract("pointeurFragmentTexte", "division", "type")
    if division_type is None:
        raise ValueError("Missing division type")

    if division_type == "TITRE":
        return SubDiv(type_="titre", num="", mult="", pos="")

    division_titre = extract("pointeurFragmentTexte", "division", "titre")
    if division_titre is None:
        raise ValueError("Missing division titre")

    return _parse_subdiv(division_titre)
Ejemplo n.º 3
0
def parse_from_csv(row: dict, session: str, num_texte: int,
                   organe: str) -> Amendement:
    num, rectif = Amendement.parse_num(row["Numéro "])
    subdiv_type, subdiv_num, subdiv_mult, subdiv_pos = _parse_subdiv(
        row["Subdivision "])
    return Amendement(  # type: ignore
        chambre="senat",
        session=session,
        num_texte=num_texte,
        organe=organe,
        num=num,
        rectif=rectif,
        subdiv_type=subdiv_type,
        subdiv_num=subdiv_num,
        subdiv_mult=subdiv_mult,
        subdiv_pos=subdiv_pos,
        alinea=row["Alinéa"].strip(),
        auteur=row["Auteur "],
        matricule=extract_matricule(row["Fiche Sénateur"]),
        date_depot=parse_date(row["Date de dépôt "]),
        sort=row["Sort "],
        dispositif=clean_html(row["Dispositif "]),
        objet=clean_html(row["Objet "]),
    )
Ejemplo n.º 4
0
def test_parse_subdiv(text, type_, num, mult, pos):
    from zam_repondeur.fetch.division import _parse_subdiv

    assert _parse_subdiv(text) == (type_, num, mult, pos)