Add foreign key validation in Collection
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza por los puntos de entrada de Schema y Collection y, después, inspecciona el comportamiento existente de require_relationship_one_to_at_least_one y @dy.filter descrito en la issue. Compara la declaración solicitada con el enfoque foreign_key de sqlmodel. Se considera terminado cuando los miembros de una collection pueden declarar referencias y las claves referenciadas que falten provocan una assertion en lugar de filtrarse silenciosamente; no se indica ningún archivo ni prueba.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Lets say you have this basic example:
class Country(dy.Schema):
country_code = dy.String(primary_key=True)
capital = dy.String()
class CountryPair(dy.Schema):
a_country_code = dy.String(primary_key=True)
b_country_code = dy.String(primary_key=True)
distance = dy.Float64()
class MyCollection(dy.Collection):
"""Collection of all input tables for DMU balancing optimization."""
country: dy.LazyFrame[Country]
country_pair: dy.LazyFrame[CountryPair]
You might want to check/assert that a_country_code and b_country_code are present in Country.country_code.
Today you can use require_relationship_one_to_at_least_one but this will not raise a Expection but only filter.
And I would like to have something that is closer to my Collection definition. I tried to add in my Collection:
@dy.filter()
def at_least_one_diagnosis_per_invoice(self) -> pl.LazyFrame:
return self.country.select(pl.col.country_code.name.prefix("a_")).join(
self.country_pair,
on="a_country_code",
how="inner",
)
# But it fails with: ImplementationError: Members of a collection must have an overlapping primary key but did not find any
But even if this worked, I am more interesting into an assertion rather than a filter.
Do you think we can add support for foreign_key in the same manner this is done by sqlmodel
Exmaple:
class Country(dy.Schema):
country_code = dy.String(primary_key=True)
capital = dy.String()
class CountryPair(dy.Schema):
a_country_code = dy.String(primary_key=True, foreign_key="country.country_code") # reference Collection attribute
b_country_code = dy.String(primary_key=True, foreign_key="country.country_code") # reference Collection attribute
distance = dy.Float64()
class MyCollection(dy.Collection):
"""Collection of all input tables for DMU balancing optimization."""
country: dy.LazyFrame[Country]
country_pair: dy.LazyFrame[CountryPair]
- Lenguaje dominante
- Python
- Estrellas
- 618
- Forks
- 21
- Merge medio
- 14 h 34 min
- PR fusionados (30 d)
- 7
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Quantco/dataframely
-
Expose validation errors Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Quantco/dataframely#402 · 3 comentarios ·
-
Adding `sorted` in `dy.Column` Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
Quantco/dataframely#357 · 1 reacción ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Quantco/dataframely#309 · 4 comentarios · 2 reacciones ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
Quantco/dataframely#273 · 5 comentarios · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Quantco/dataframely#272 · 10 comentarios · 1 reacción ·
Todos los issues de Quantco/dataframely
Issues similares
-
agent-ready documentation needs-triage
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
Add https://search.jeremyh.xyz/ Abiertoinstance instance add
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
searxng/searx-instances#939 · 1 comentario ·
-
area-deployment area-integrations triage:bot-seen
Dificultad 2/5 Medio día Aptitud para principiantes 86/100