Skip to content

Commit 6a6e7c7

Browse files
authored
Ne pas supprimer les acteurs PRO lors de l'ingestion (#1562)
1 parent 4ee070c commit 6a6e7c7

File tree

5 files changed

+17
-81
lines changed

5 files changed

+17
-81
lines changed

dags/compute_acteurs/tasks/business_logic/compute_acteur.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,14 @@
1111
def compute_acteur(df_acteur: pd.DataFrame, df_revisionacteur: pd.DataFrame):
1212

1313
# Collect parent_id among active revisionacteurs
14-
revisionacteur_parent_ids = df_revisionacteur[
14+
df_revisionacteur_parents = df_revisionacteur[
1515
df_revisionacteur["statut"] == constants.ACTEUR_ACTIF
16-
]["parent_id"].unique()
16+
]
17+
if "public_accueilli" in df_revisionacteur.columns:
18+
df_revisionacteur_parents = df_revisionacteur_parents[
19+
df_revisionacteur["public_accueilli"] != constants.PUBLIC_PRO
20+
]
21+
revisionacteur_parent_ids = df_revisionacteur_parents["parent_id"].unique()
1722

1823
df_revisionacteur_parents = df_revisionacteur[
1924
df_revisionacteur["identifiant_unique"].isin(revisionacteur_parent_ids)
@@ -37,6 +42,11 @@ def compute_acteur(df_acteur: pd.DataFrame, df_revisionacteur: pd.DataFrame):
3742

3843
all_parent_ids = set(df_acteur_merged["parent_id"].tolist())
3944
df_children = df_children[df_children["statut"] == constants.ACTEUR_ACTIF]
45+
if "public_accueilli" in df_children.columns:
46+
df_children = df_children[
47+
df_children["public_accueilli"] != constants.PUBLIC_PRO
48+
]
49+
4050
active_parent_ids = set(df_acteur_merged["parent_id"].tolist())
4151
parent_without_children_ids = all_parent_ids - active_parent_ids
4252

@@ -63,6 +73,10 @@ def compute_acteur(df_acteur: pd.DataFrame, df_revisionacteur: pd.DataFrame):
6373
df_acteur_merged = df_acteur_merged[
6474
df_acteur_merged["statut"] == constants.ACTEUR_ACTIF
6575
]
76+
if "public_accueilli" in df_acteur_merged.columns:
77+
df_acteur_merged = df_acteur_merged[
78+
df_acteur_merged["public_accueilli"] != constants.PUBLIC_PRO
79+
]
6680

6781
# Add a new column uuid to make the displayedacteur id without source name in id
6882
df_acteur_merged["uuid"] = df_acteur_merged["identifiant_unique"].apply(

dags/sources/tasks/business_logic/source_data_normalize.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,6 @@ def _remove_undesired_lines(
173173
df = df[df["service_a_domicile"].str.lower() != "oui exclusivement"]
174174
df = df[df["service_a_domicile"].str.lower() != "service à domicile uniquement"]
175175

176-
# Remove acteurs which are for professionals only
177-
if "public_accueilli" in df.columns:
178-
df = df[df["public_accueilli"] != constants.PUBLIC_PRO]
179-
180176
# Remove acteurs which have no sous_categorie_codes
181177
if "sous_categorie_codes" in df.columns:
182178
df = df[df["sous_categorie_codes"].notnull()]

dags_unit_tests/sources/tasks/business_logic/test_source_data_normalize.py

Lines changed: 0 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -181,44 +181,6 @@ def test_source_data_normalize_unhandles_column_raise(self):
181181
)
182182
assert "col_make_it_raise" in str(erreur.value)
183183

184-
def test_public_accueilli_filtre_pro(
185-
self,
186-
dag_config,
187-
):
188-
dag_config = DAGConfig.model_validate(
189-
{
190-
"normalization_rules": [
191-
{
192-
"keep": "identifiant_unique",
193-
},
194-
{
195-
"keep": "public_accueilli",
196-
},
197-
],
198-
"endpoint": "https://example.com/api",
199-
"product_mapping": {"product1": "code1"},
200-
}
201-
)
202-
df, metadata = source_data_normalize(
203-
dag_config=dag_config,
204-
df_acteur_from_source=pd.DataFrame(
205-
{
206-
"identifiant_unique": ["1", "2"],
207-
"public_accueilli": ["Professionnels", "Other"],
208-
}
209-
),
210-
dag_id="id",
211-
)
212-
pd.testing.assert_frame_equal(
213-
df.reset_index(drop=True),
214-
pd.DataFrame(
215-
{
216-
"identifiant_unique": ["2"],
217-
"public_accueilli": ["Other"],
218-
}
219-
).reset_index(drop=True),
220-
)
221-
222184
# TODO : ajout des valeurs avec parametrize
223185
@pytest.mark.parametrize(
224186
"null_value",
@@ -354,39 +316,6 @@ class TestRemoveUndesiredLines:
354316
}
355317
),
356318
),
357-
# Cas suppression professionnele
358-
(
359-
pd.DataFrame(
360-
{
361-
"identifiant_unique": ["id1", "id2", "id3", "id4"],
362-
"service_a_domicile": ["non", "non", "non", "oui"],
363-
"public_accueilli": [
364-
"Particuliers",
365-
"Particuliers et professionnels",
366-
"Professionnels",
367-
"Aucun",
368-
],
369-
"sous_categorie_codes": [
370-
["code1"],
371-
["code2"],
372-
["code3"],
373-
["code4"],
374-
],
375-
}
376-
),
377-
pd.DataFrame(
378-
{
379-
"identifiant_unique": ["id1", "id2", "id4"],
380-
"service_a_domicile": ["non", "non", "oui"],
381-
"public_accueilli": [
382-
"Particuliers",
383-
"Particuliers et professionnels",
384-
"Aucun",
385-
],
386-
"sous_categorie_codes": [["code1"], ["code2"], ["code4"]],
387-
}
388-
),
389-
),
390319
# Cas avec suppression des lignes sans produits acceptés
391320
(
392321
pd.DataFrame(
File renamed without changes.

unit_tests/qfdmo/test_carte_config.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import pytest
44
from django.core.files.base import ContentFile
55

6-
from qfdmo.models import (
7-
CarteConfig,
8-
GroupeActionConfig,
9-
)
6+
from qfdmo.models import CarteConfig, GroupeActionConfig
107
from unit_tests.qfdmo.acteur_factory import (
118
DisplayedActeurFactory,
129
DisplayedPropositionServiceFactory,

0 commit comments

Comments
 (0)