Closed fjuniorr closed 1 year ago
Evitar as transformações de transformer.py está sendo mais difícil do que parece porque além de cuidar das minhas modificações[^1] eu preciso de garantir que os steps da própria frictionless também não façam modificação em resource.data
.
[^1]: Como por exemplo a alteração corrigida em https://github.com/splor-mg/dpm/pull/26#issuecomment-1682238449
Como exemplo ao usar steps.field_update
internamente para que as chaves primárias e estrangeiras sejam atualizadas quando uma coluna é renomeada[^2] existe modificação do resource.data
.
[^2]: Conforme relatado em https://github.com/frictionlessdata/frictionless-py/issues/1560
Minha solução foi extrair a transformação em uma função dedicada,normalize_resource
, evitando o acionamento automático do transformer.py
.
Precisei de alterar o frictionless-py
(ainda vou abrir um PR upstream) mas todos os testes passaram localmente
pytest
=============================================== test session starts ===============================================
platform darwin -- Python 3.11.1, pytest-7.4.0, pluggy-1.2.0
rootdir: /Users/macbook/Projects/splor/dpm
plugins: cov-4.1.0
collected 8 items
tests/integration/test_install.py . [ 12%]
tests/unit/test_issue20.py .. [ 37%]
tests/unit/test_issue_obz_dados2.py . [ 50%]
tests/unit/test_normalize_resource.py . [ 62%]
tests/unit/test_steps.py ... [100%]
================================================ 8 passed in 8.60s ================================================
Closes #28