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
Ressources
Contexte
Cette issue complète
ParseObjectavec 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 dansParseObject.Ce qui existe déjà dans
_types.pyIncrement(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
ParseObjectFichiers à modifier
src/parse_sdk/object.py→ ajouter les 5 nouvelles méthodestests/unit/test_object.py→ ajouter les testsCritères d'acceptation
increment(key, amount=1)fonctionneadd_to_array(key, values)fonctionneadd_unique(key, values)fonctionneremove_from_array(key, values)fonctionneunset(key)fonctionneGeoPointetPointersérialisés correctement viaencode_parse_value()selfpour le chaînagemypy,black,ruffpassentRessources
src/parse_sdk/_types.py— lire ce fichier en entier avant de commencertests/unit/test_types_and_exceptions.py— exemples de tests à imiter