awslabs / awslabs/python-deequ

[Pydeequ 1.0.1] pydeequ.checks.isContainedIn does not accept lambda assertion

Aperta
#88 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Jupyter Notebook
Stelle
826
Fork
158
Merge medio
9g 22h
PR unite (30g)
3

Descrizione

**Describe the bug**
When running Pydeequ 1.0.1 the test generated by ConstraintSuggestionRunner include tests using the isContainedIn() function that fail during execution.

The cause is that the suggested tests include a lambda assertion which the python function does not accept as it takes 3 positional arguments but the suggested tests has 5

**To Reproduce**
Steps to reproduce the behavior:
1. Generate a test statement using a dataset that is incomplete, resulting in a suggestion for a test using isContainedIn() which uses a lambda:

- Example: 'value'is empty for more then 97% of the records:
- isContainedIn("value", [""], lambda x: x >= 0.97, "It should be above 0.97!")

2. Execute the test
3. Check output for error:
- TypeError: isContainedIn() takes 3 positional arguments but 5 were given

This issue has been reported before: https://github.com/awslabs/python-deequ/issues/65

The cause is that the current implementation of the isContainedIn was edited in https://github.com/awslabs/python-deequ/commit/30375bb8645728a539b7b2f6d2d85f89266ac047#diff-783716851e9837b9753e643de1f15e031f79bed4ef27e07ce67eeddc5a3fb2ee but the ConstraintSuggestionRunner was not updated to match the latest implementation.

It is unclear to me whether the suggested test is valid and the isContainedIn function needs to be extended or whether the change was made for a reason and thus the ConstraintSuggestionRunner should be adjusted to leave out the broken tests.

A previously made pull request does show how to revert the change: https://github.com/awslabs/python-deequ/pull/58

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con l’implementazione attuale di isContainedIn e ConstraintSuggestionRunner, quindi riproduci il problema usando un dataset incompleto che generi il suggerimento basato su lambda. Confronta la firma della chiamata con il test generato e verifica che il suggerimento venga eseguito senza il TypeError segnalato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
testing
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.