-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
P1 · hauteSprint en cours — haute prioritéSprint en cours — haute prioritéfeatureNouvelle fonctionnalité à développerNouvelle fonctionnalité à développerintermediateRequiert de l'expérience Python / asyncRequiert de l'expérience Python / asyncmodule · queryParseQuery — filtres et paginationParseQuery — filtres et pagination
Milestone
Description
Contexte
Cette issue complète ParseQuery avec les filtres avancés indispensables en production.
⚠️ Dépend de #4 (ParseQuery filtres de base).
Correspondances filtres → opérateurs JSON Parse
| Méthode Python | Opérateur JSON |
|---|---|
contained_in("k", [...]) |
{"k": {"$in": [...]}} |
not_contained_in("k", [...]) |
{"k": {"$nin": [...]}} |
contains_all("k", [...]) |
{"k": {"$all": [...]}} |
exists("k") |
{"k": {"$exists": true}} |
does_not_exist("k") |
{"k": {"$exists": false}} |
starts_with("k", "v") |
{"k": {"$regex": "^v"}} |
contains("k", "v") |
{"k": {"$regex": "v"}} |
API Python attendue
query = ParseQuery("Article")
query.contained_in("status", ["published", "featured"])
query.not_contained_in("status", ["banned"])
query.contains_all("tags", ["python", "async"])
query.exists("email")
query.does_not_exist("deletedAt")
query.starts_with("name", "Al")
query.select("name", "score")
query.include("author")
q1 = ParseQuery("GameScore").greater_than("score", 1000)
q2 = ParseQuery("GameScore").equal_to("cheatMode", False)
combined = ParseQuery.or_query(q1, q2)
results = await combined.find()Fichiers à modifier
- Modifier
src/parse_sdk/query.py - Créer
tests/unit/test_query_advanced.py
Critères d'acceptation
-
contained_in,not_contained_in,contains_allfonctionnent -
exists,does_not_existfonctionnent -
starts_with,containsfonctionnent -
select()etinclude()ajoutent les bons paramètres HTTP -
or_query()etand_query()sont des@classmethod - Toutes les méthodes retournent
self -
mypy,black,ruffpassent
Ressources
- Doc Parse REST : https://docs.parseplatform.org/rest/guide/#query-constraints
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P1 · hauteSprint en cours — haute prioritéSprint en cours — haute prioritéfeatureNouvelle fonctionnalité à développerNouvelle fonctionnalité à développerintermediateRequiert de l'expérience Python / asyncRequiert de l'expérience Python / asyncmodule · queryParseQuery — filtres et paginationParseQuery — filtres et pagination