-
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éveloppergood first issueIdéal pour commencer — bien documenté et bornéIdéal pour commencer — bien documenté et bornémodule · objectParseObject — CRUD et types ParseParseObject — CRUD et types Parse
Milestone
Description
Contexte
Cette issue complète ParseObject avec les opérations atomiques et les types spéciaux. Tout est déjà dans _types.py — il s'agit uniquement d'ajouter les méthodes correspondantes dans ParseObject.
⚠️ Dépend de #2 (ParseObject CRUD).
💚 Idéale pour un premier contributeur — le travail est borné, les classes à utiliser existent déjà.
Ce qui existe déjà dans _types.py
| Classe | Format JSON envoyé à Parse |
|---|---|
Increment(amount) |
{"__op": "Increment", "amount": N} |
AddToArray([...]) |
{"__op": "Add", "objects": [...]} |
AddUniqueToArray([...]) |
{"__op": "AddUnique", "objects": [...]} |
RemoveFromArray([...]) |
{"__op": "Remove", "objects": [...]} |
DeleteField() |
{"__op": "Delete"} |
GeoPoint(lat, lng) |
{"__type": "GeoPoint", ...} |
Pointer(class, id) |
{"__type": "Pointer", ...} |
API Python à ajouter dans ParseObject
obj = ParseObject("GameScore")
obj.increment("score", 10)
obj.increment("views") # amount=1 par défaut
obj.add_to_array("tags", ["python", "sdk"])
obj.add_unique("skills", ["async"])
obj.remove_from_array("tags", ["old"])
obj.unset("temporaryField")
obj.set("location", GeoPoint(48.8566, 2.3522))
obj.set("author", Pointer("User", "abc123"))
await obj.save()Fichiers à modifier
- Modifier
src/parse_sdk/object.py→ ajouter les 5 nouvelles méthodes - Modifier
tests/unit/test_object.py→ ajouter les tests
Critères d'acceptation
-
increment(key, amount=1)fonctionne -
add_to_array(key, values)fonctionne -
add_unique(key, values)fonctionne -
remove_from_array(key, values)fonctionne -
unset(key)fonctionne -
GeoPointetPointersérialisés correctement viaencode_parse_value() - Toutes les méthodes retournent
selfpour le chaînage - Tests unitaires pour chaque méthode
-
mypy,black,ruffpassent
Ressources
src/parse_sdk/_types.py— lire ce fichier en entier avant de commencertests/unit/test_types_and_exceptions.py— exemples de tests à imiter- Doc Parse REST : https://docs.parseplatform.org/rest/guide/#updating-objects
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éveloppergood first issueIdéal pour commencer — bien documenté et bornéIdéal pour commencer — bien documenté et bornémodule · objectParseObject — CRUD et types ParseParseObject — CRUD et types Parse