else: return int(value) def python_value(self, value): return None if value is None else timedelta(seconds=value) class MACAddress: def __init__(self, mac): self.mac = str(mac) def __str__(self): return self.mac PostgresqlDatabase.register_fields({ 'datetime_tz': 'timestamp with time zone', 'macaddr': 'macaddr', 'inet': 'inet', 'cidr': 'cidr', }) SqliteDatabase.register_fields({ 'datetime_tz': 'DATETIME', "inet": "VARCHAR(32)", "cidr": "VARCHAR(32)", "macaddr": "VARCHAR(32)", })
"""Custom fields.""" import ujson from cached_property import cached_property from peewee import Field, PostgresqlDatabase, Proxy try: from playhouse.postgres_ext import Json, JsonLookup PostgresqlDatabase.register_fields({'json': 'json'}) except: Json = JsonLookup = None class JSONField(Field): """Implement JSON field.""" def __init__(self, dumps=None, loads=None, *args, **kwargs): """Initialize the serializer.""" self.dumps = dumps or ujson.dumps self.loads = loads or ujson.loads super(JSONField, self).__init__(*args, **kwargs) @cached_property def db_field(self): """Return database field type.""" database = self.get_database() if isinstance(database, Proxy): database = database.obj if Json and isinstance(database, PostgresqlDatabase): return 'json' return 'text' def db_value(self, value):
"""Custom fields.""" import ujson from cached_property import cached_property from peewee import Field, PostgresqlDatabase, Proxy try: from playhouse.postgres_ext import Json, JsonLookup PostgresqlDatabase.register_fields({'json': 'json'}) except: Json = JsonLookup = None class JSONField(Field): """Implement JSON field.""" def __init__(self, dumps=None, loads=None, *args, **kwargs): """Initialize the serializer.""" self.dumps = dumps or ujson.dumps self.loads = loads or ujson.loads super(JSONField, self).__init__(*args, **kwargs) @cached_property def db_field(self): """Return database field type.""" database = self.get_database() if isinstance(database, Proxy): database = database.obj if Json and isinstance(database, PostgresqlDatabase): return 'json'
# -*- coding: utf8 -*- import peewee from peewee import Model, CharField, DateTimeField, ForeignKeyField, Field, PostgresqlDatabase from config import DATABASE_URL from playhouse.db_url import connect from passlib.hash import pbkdf2_sha256 from datetime import datetime db = connect(DATABASE_URL) PostgresqlDatabase.register_fields({'password_hash': 'password_hash'}) class _Model(Model): class Meta: database = db def __repr__(self): data = ", ".join([ "%s: %s" % (key, unicode(value).encode('utf8') if value else None) for key, value in self._data.items() ]) return "{class_name}: {{ {data} }}".format( class_name=self.__class__.__name__, data=data) @classmethod def get_by_id(cls, id): return cls.get(cls.id == id) @classmethod def get_by_name(cls, name): return cls.get(cls.name == name)
# -*- coding: utf8 -*- import peewee from peewee import Model, CharField, DateTimeField, ForeignKeyField, Field, PostgresqlDatabase from config import DATABASE_URL from playhouse.db_url import connect from passlib.hash import pbkdf2_sha256 from datetime import datetime db = connect(DATABASE_URL) PostgresqlDatabase.register_fields({'password_hash': 'password_hash'}) class _Model(Model): class Meta: database = db def __repr__(self): data = ", ".join(["%s: %s" % (key, unicode(value).encode('utf8') if value else None) for key, value in self._data.items()]) return "{class_name}: {{ {data} }}".format(class_name = self.__class__.__name__, data = data) @classmethod def get_by_id(cls, id): return cls.get(cls.id == id) @classmethod def get_by_name(cls, name): return cls.get(cls.name == name) class Merchant(_Model): w1_checkout_id = CharField() name = CharField() contacts = CharField()
if isinstance(value, timedelta): return value.days * 86400 + value.seconds else: return int(value) def python_value(self, value): return None if value is None else timedelta(seconds=value) class MACAddress: def __init__(self, mac): self.mac = str(mac) def __str__(self): return self.mac PostgresqlDatabase.register_fields({ 'datetime_tz': 'timestamp with time zone', 'macaddr': 'macaddr', 'inet': 'inet', 'cidr': 'cidr', }) SqliteDatabase.register_fields({ 'datetime_tz': 'DATETIME', "inet": "VARCHAR(32)", "cidr": "VARCHAR(32)", "macaddr": "VARCHAR(32)", })