add:SmallInteger()
This commit is contained in:
@ -41,6 +41,7 @@ from ormar.exceptions import ( # noqa: I100
|
||||
from ormar.fields import (
|
||||
BaseField,
|
||||
BigInteger,
|
||||
SmallInteger,
|
||||
Boolean,
|
||||
DECODERS_MAP,
|
||||
Date,
|
||||
@ -80,6 +81,7 @@ __version__ = "0.10.15"
|
||||
__all__ = [
|
||||
"Integer",
|
||||
"BigInteger",
|
||||
"SmallInteger",
|
||||
"Boolean",
|
||||
"Time",
|
||||
"Text",
|
||||
|
||||
@ -9,6 +9,7 @@ from ormar.fields.foreign_key import ForeignKey, ForeignKeyField, UniqueColumns
|
||||
from ormar.fields.many_to_many import ManyToMany, ManyToManyField
|
||||
from ormar.fields.model_fields import (
|
||||
BigInteger,
|
||||
SmallInteger,
|
||||
Boolean,
|
||||
Date,
|
||||
DateTime,
|
||||
@ -29,6 +30,7 @@ from ormar.fields.through_field import Through, ThroughField
|
||||
__all__ = [
|
||||
"Decimal",
|
||||
"BigInteger",
|
||||
"SmallInteger",
|
||||
"Boolean",
|
||||
"Date",
|
||||
"DateTime",
|
||||
|
||||
@ -538,54 +538,6 @@ else:
|
||||
)
|
||||
|
||||
|
||||
class SmallInteger(Integer, int):
|
||||
"""
|
||||
SmallInteger field factory that construct Field classes and populated their values.
|
||||
"""
|
||||
|
||||
_type = int
|
||||
_sample = 0
|
||||
|
||||
def __new__( # type: ignore
|
||||
cls,
|
||||
*,
|
||||
minimum: int = None,
|
||||
maximum: int = None,
|
||||
multiple_of: int = None,
|
||||
**kwargs: Any
|
||||
) -> BaseField:
|
||||
autoincrement = kwargs.pop("autoincrement", None)
|
||||
autoincrement = (
|
||||
autoincrement
|
||||
if autoincrement is not None
|
||||
else kwargs.get("primary_key", False)
|
||||
)
|
||||
kwargs = {
|
||||
**kwargs,
|
||||
**{
|
||||
k: v
|
||||
for k, v in locals().items()
|
||||
if k not in ["cls", "__class__", "kwargs"]
|
||||
},
|
||||
}
|
||||
kwargs["ge"] = kwargs["minimum"]
|
||||
kwargs["le"] = kwargs["maximum"]
|
||||
return super().__new__(cls, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def get_column_type(cls, **kwargs: Any) -> Any:
|
||||
"""
|
||||
Return proper type of db column for given field type.
|
||||
Accepts required and optional parameters that each column type accepts.
|
||||
|
||||
:param kwargs: key, value pairs of sqlalchemy options
|
||||
:type kwargs: Any
|
||||
:return: initialized column with proper options
|
||||
:rtype: sqlalchemy Column
|
||||
"""
|
||||
return sqlalchemy.SmallInteger()
|
||||
|
||||
|
||||
class BigInteger(Integer, int):
|
||||
"""
|
||||
BigInteger field factory that construct Field classes and populated their values.
|
||||
@ -634,6 +586,54 @@ class BigInteger(Integer, int):
|
||||
return sqlalchemy.BigInteger()
|
||||
|
||||
|
||||
class SmallInteger(Integer, int):
|
||||
"""
|
||||
SmallInteger field factory that construct Field classes and populated their values.
|
||||
"""
|
||||
|
||||
_type = int
|
||||
_sample = 0
|
||||
|
||||
def __new__( # type: ignore
|
||||
cls,
|
||||
*,
|
||||
minimum: int = None,
|
||||
maximum: int = None,
|
||||
multiple_of: int = None,
|
||||
**kwargs: Any
|
||||
) -> BaseField:
|
||||
autoincrement = kwargs.pop("autoincrement", None)
|
||||
autoincrement = (
|
||||
autoincrement
|
||||
if autoincrement is not None
|
||||
else kwargs.get("primary_key", False)
|
||||
)
|
||||
kwargs = {
|
||||
**kwargs,
|
||||
**{
|
||||
k: v
|
||||
for k, v in locals().items()
|
||||
if k not in ["cls", "__class__", "kwargs"]
|
||||
},
|
||||
}
|
||||
kwargs["ge"] = kwargs["minimum"]
|
||||
kwargs["le"] = kwargs["maximum"]
|
||||
return super().__new__(cls, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def get_column_type(cls, **kwargs: Any) -> Any:
|
||||
"""
|
||||
Return proper type of db column for given field type.
|
||||
Accepts required and optional parameters that each column type accepts.
|
||||
|
||||
:param kwargs: key, value pairs of sqlalchemy options
|
||||
:type kwargs: Any
|
||||
:return: initialized column with proper options
|
||||
:rtype: sqlalchemy Column
|
||||
"""
|
||||
return sqlalchemy.SmallInteger()
|
||||
|
||||
|
||||
class Decimal(ModelFieldFactory, decimal.Decimal):
|
||||
"""
|
||||
Decimal field factory that construct Field classes and populated their values.
|
||||
|
||||
Reference in New Issue
Block a user