google / google/python-spanner-orm
Re-write Model to use dataclasses.
- Lingua principale
- Python
- Stelle
- 41
- Fork
- 17
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
`Model` currently uses a metaclass (which is disallowed by the style guide for good reasons) and `Field`s which make type checking tricky. (The class attribute is of type `Field`, but the instance attribute with the same name is of type `str`, `int`, or whatever that specific field stores.) I think most of this could be solved by switching to something based on `dataclasses`. E.g., in Python 3.9+:
```python
@dataclasses.dataclass
class Foo(spanner_orm.Model):
foo: Annotated[int, spanner_orm.primary_key]
```
Or in older versions of Python:
```python
@dataclasses.dataclass
class Foo(spanner_orm.Model):
foo: int = dataclasses.field(metadata={spanner_orm.PRIMARY_KEY: True})
```
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.