Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🛡️ Protéger la data avec la ci #3

Closed
6 tasks done
Tracked by #1
adriens opened this issue Mar 6, 2024 · 9 comments
Closed
6 tasks done
Tracked by #1

🛡️ Protéger la data avec la ci #3

adriens opened this issue Mar 6, 2024 · 9 comments
Assignees
Labels
BUILD Toute activité liée à la création de nouvelles fonctionnalités

Comments

@adriens
Copy link
Member

adriens commented Mar 6, 2024

❔ Contexte

le jeu de données a été poussé cf :

Mais il est nécessaire de protéger les données afin de fournir une stabilité et une UX optimale pour les utilisateurs de ce dataset.

💡 Objectif

👉 Le but de cette issue est d'avancer sur le sujet en protégeant les données avec de la CI et ainsi rendre possible un onboarding efficace de contributeurs.

🎯 Actions

Via la CI
, par exemple :

Protéger main en s'assurant que:

  • Fournir les sql : @adriens
  • id_acronym est toujours en majuscules
  • id_acronym est unique : il ne l'est pas 😅
  • description est unique
  • description n'est pas NULL ou vide
  • s'assurer que les lignes sont bien classées par id_acronym (ça facilite la lecture du fichier et c'est fidèle à la version pdf) car en attente de l'implémentation de l'option SORTED
@adriens adriens mentioned this issue Mar 6, 2024
6 tasks
@adriens adriens pinned this issue Mar 6, 2024
@adriens adriens added the BUILD Toute activité liée à la création de nouvelles fonctionnalités label Mar 6, 2024
@adriens adriens changed the title Protéger la data avec la ci 🛡️ Protéger la data avec la ci Mar 6, 2024
@adriens adriens self-assigned this Mar 7, 2024
@adriens
Copy link
Member Author

adriens commented Mar 7, 2024

Surprise : on a au moins un doublon sur CAO:

image

@adriens
Copy link
Member Author

adriens commented Mar 7, 2024

Creation et load de la table

-- Creation de la tabl
create or replace table acronyms(
    id varchar not null,
    description varchar not null unique
);

-- load de la table
insert into acronyms
    select id,
        description
        from read_csv('acronyms_optnc.csv',
        delim = ',',
        header = true,
        columns = {
            'id': 'VARCHAR',
            'description': 'VARCHAR'
        });

Reporting des doublons

select id,
        count(*) as nb_duplicates
from acronyms
group by id
having nb_duplicates > 1
order by nb_duplicates desc,
    id asc;
select description,
        count(*) as nb_duplicates
from acronyms
group by description
having nb_duplicates > 1
order by nb_duplicates desc,
    description asc;

@adriens
Copy link
Member Author

adriens commented Mar 7, 2024

Pour le tri je creuse ceci:

@adriens
Copy link
Member Author

adriens commented Mar 7, 2024

L'option SORTED a éé migrée en discussion:

@adriens
Copy link
Member Author

adriens commented Mar 7, 2024

@adriens adriens removed their assignment Mar 7, 2024
@adriens
Copy link
Member Author

adriens commented Mar 7, 2024

@adriens
Copy link
Member Author

adriens commented Mar 9, 2024

Pour checker l'ordre alphabétique des ids :

import pandas as pd

def test_id_acronym_order():
    df = pd.read_csv('/kaggle/input/lexique-des-acronymes-de-lopt-nc/data/acronyms_optnc.csv', na_values=['NA'])
    df.dropna(subset=['id_acronym'], inplace=True)
    id_acronym = df['id_acronym'].astype(str).tolist()
    sorted_id_acronym = sorted(id_acronym)
    if id_acronym != sorted_id_acronym:
        # Find indices where the values differ
        differing_indices = [i for i, (a, b) in enumerate(zip(id_acronym, sorted_id_acronym)) if a != b]
        print(f"The id_acronym column is not sorted at indices: {differing_indices}")
        print("Original values:", [id_acronym[i] for i in differing_indices])
        print("Sorted values:", [sorted_id_acronym[i] for i in differing_indices])

# call the test
test_id_acronym_order()
The id_acronym column is not sorted at indices: [100, 101, 102, 103, 104]
Original values: ['SID', 'SIG', 'SI MOBILE', 'SIRH', 'SI TELECOMS']
Sorted values: ['SI MOBILE', 'SI TELECOMS', 'SID', 'SIG', 'SIRH']

adriens added a commit that referenced this issue Mar 9, 2024
@adriens
Copy link
Member Author

adriens commented Mar 28, 2024

@adriens adriens mentioned this issue Mar 28, 2024
2 tasks
@adriens
Copy link
Member Author

adriens commented Apr 5, 2024

mbarre added a commit that referenced this issue Apr 10, 2024
@mbarre mbarre closed this as completed Apr 10, 2024
mbarre added a commit that referenced this issue Apr 10, 2024
mbarre added a commit that referenced this issue Apr 10, 2024
@adriens adriens unpinned this issue Apr 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BUILD Toute activité liée à la création de nouvelles fonctionnalités
Projects
None yet
Development

No branches or pull requests

2 participants