add:SmallInteger()
This commit is contained in:
@ -614,6 +614,7 @@ Available Model Fields (with required args - optional ones in docs):
|
|||||||
* `Time()`
|
* `Time()`
|
||||||
* `DateTime()`
|
* `DateTime()`
|
||||||
* `JSON()`
|
* `JSON()`
|
||||||
|
* `SmallInteger()`
|
||||||
* `BigInteger()`
|
* `BigInteger()`
|
||||||
* `Decimal(scale, precision)`
|
* `Decimal(scale, precision)`
|
||||||
* `UUID()`
|
* `UUID()`
|
||||||
|
|||||||
@ -538,6 +538,54 @@ 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):
|
class BigInteger(Integer, int):
|
||||||
"""
|
"""
|
||||||
BigInteger field factory that construct Field classes and populated their values.
|
BigInteger field factory that construct Field classes and populated their values.
|
||||||
|
|||||||
Reference in New Issue
Block a user