-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
P0 · critiqueBloquant — à traiter immédiatementBloquant — à traiter immédiatementfeatureNouvelle 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
ParseQuery permet de rechercher des objets dans une classe Parse avec des filtres, du tri et de la pagination.
⚠️ Dépend de #2 (ParseObject) —find()retourne des instancesParseObject.
Endpoint REST Parse
GET /classes/{ClassName}?where={...}&limit=N&skip=N&order=field
Correspondances filtres → opérateurs JSON Parse
| Méthode Python | Opérateur JSON |
|---|---|
equal_to("k", v) |
{"k": v} |
not_equal_to("k", v) |
{"k": {"$ne": v}} |
greater_than("k", v) |
{"k": {"$gt": v}} |
less_than("k", v) |
{"k": {"$lt": v}} |
greater_than_or_equal_to("k", v) |
{"k": {"$gte": v}} |
less_than_or_equal_to("k", v) |
{"k": {"$lte": v}} |
API Python attendue
from parse_sdk import ParseQuery
results = await (
ParseQuery("GameScore")
.equal_to("playerName", "Alice")
.greater_than("score", 1000)
.limit(25)
.order_by_descending("score")
.find()
)
first = await ParseQuery("GameScore").equal_to("active", True).first()
count = await ParseQuery("GameScore").greater_than("score", 500).count()
results = query.find_sync()Fichiers à créer / modifier
- Créer
src/parse_sdk/query.py - Modifier
src/parse_sdk/__init__.py→ ajouterParseQuery - Créer
tests/unit/test_query_basic.py
Points techniques
_constraints: dict interne pour les filtreswhere_options: dict pourlimit,skip,ordercount()ajoutecount=1&limit=0aux paramètresfirst()appellefind()aveclimit=1et retourne le premier ou None- Utiliser
encode_parse_value()pour sérialiser les valeurs des filtres
Critères d'acceptation
- Chaque filtre génère le bon opérateur JSON
-
equal_togère le cas sans opérateur - Toutes les méthodes retournent
self(chaînage) -
find()→list[ParseObject] -
first()→ParseObject | None -
count()→int - Versions
_syncdisponibles - Tests mockés avec
respx -
mypy,black,ruffpassent
Ressources
- Doc Parse REST queries : https://docs.parseplatform.org/rest/guide/#queries
src/parse_sdk/_types.py→encode_parse_value()
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P0 · critiqueBloquant — à traiter immédiatementBloquant — à traiter immédiatementfeatureNouvelle 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