Ejemplo n.º 1
0
    def __init__(self, verbose_name=None, mongo_name=None,
                 min_value=None, max_value=None, **kwargs):
        """
        :parameters:
          - `verbose_name`: A human-readable name for the Field.
          - `mongo_name`: The name of this field when stored in MongoDB.
          - `min_value`: The minimum value that can be stored in this field.
          - `max_value`: The maximum value that can be stored in this field.

        .. seealso:: constructor for
                     :class:`~pymodm.base.fields.MongoBaseField`
        """
        if not _HAS_DECIMAL128:
            raise ConfigurationError(
                'Need PyMongo >= 3.4 in order to use Decimal128Field.')

        super(Decimal128Field, self).__init__(verbose_name=verbose_name,
                                              mongo_name=mongo_name,
                                              **kwargs)

        def validate_min_and_max(value):
            # Turn value into a Decimal.
            value = value.to_decimal()
            validators.validator_for_min_max(min_value, max_value)(value)

        self.validators.append(
            validators.together(
                validators.validator_for_func(self.to_mongo),
                validate_min_and_max))
Ejemplo n.º 2
0
    def __init__(self, verbose_name=None, mongo_name=None,
                 min_value=None, max_value=None, **kwargs):
        """
        :parameters:
          - `verbose_name`: A human-readable name for the Field.
          - `mongo_name`: The name of this field when stored in MongoDB.
          - `min_value`: The minimum value that can be stored in this field.
          - `max_value`: The maximum value that can be stored in this field.

        .. seealso:: constructor for
                     :class:`~pymodm.base.fields.MongoBaseField`
        """
        super(FloatField, self).__init__(verbose_name=verbose_name,
                                         mongo_name=mongo_name,
                                         **kwargs)
        self.validators.append(
            validators.together(
                validators.validator_for_func(float),
                validators.validator_for_min_max(min_value, max_value)))
Ejemplo n.º 3
0
    def __init__(self, verbose_name=None, mongo_name=None,
                 min_value=None, max_value=None, **kwargs):
        """
        :parameters:
          - `verbose_name`: A human-readable name for the Field.
          - `mongo_name`: The name of this field when stored in MongoDB.
          - `min_value`: The minimum value that can be stored in this field.
          - `max_value`: The maximum value that can be stored in this field.

        .. seealso:: constructor for
                     :class:`~pymodm.base.fields.MongoBaseField`
        """
        super(IntegerField, self).__init__(verbose_name=verbose_name,
                                           mongo_name=mongo_name,
                                           **kwargs)
        self.validators.append(
            validators.together(
                validators.validator_for_func(int),
                validators.validator_for_min_max(min_value, max_value)))
Ejemplo n.º 4
0
    def __init__(self, verbose_name=None, mongo_name=None, **kwargs):
        """
        :parameters:
          - `verbose_name`: A human-readable name for the Field.
          - `mongo_name`: The name of this field when stored in MongoDB.

        .. seealso:: constructor for
                     :class:`~pymodm.base.fields.MongoBaseField`
        """
        super(GeometryCollectionField, self).__init__(verbose_name=verbose_name,
                                                      mongo_name=mongo_name,
                                                      **kwargs)
        self.validators.append(
            validators.together(
                validators.validator_for_type(dict),
                validators.validator_for_geojson_type('GeometryCollection'),
                lambda value: validators.validator_for_type(
                    (list, tuple), 'Geometries')(value.get('geometries'))))
        self.validators.append(
            lambda value: self.validate_geometries(value.get('geometries')))
Ejemplo n.º 5
0
    def __init__(self, verbose_name=None, mongo_name=None, **kwargs):
        """
        :parameters:
          - `verbose_name`: A human-readable name for the Field.
          - `mongo_name`: The name of this field when stored in MongoDB.

        .. seealso:: constructor for
                     :class:`~pymodm.base.fields.MongoBaseField`
        """
        super(GeometryCollectionField, self).__init__(verbose_name=verbose_name,
                                                      mongo_name=mongo_name,
                                                      **kwargs)
        self.validators.append(
            validators.together(
                validators.validator_for_type(dict),
                validators.validator_for_geojson_type('GeometryCollection'),
                lambda value: validators.validator_for_type(
                    (list, tuple), 'Geometries')(value.get('geometries'))))
        self.validators.append(
            lambda value: self.validate_geometries(value.get('geometries')))
Ejemplo n.º 6
0
    def __init__(self,
                 enum_type,
                 verbose_name=None,
                 mongo_name=None,
                 **kwargs):
        """
        :parameters:
          - `enum_type`: The type of this enum field.
          - `verbose_name`: A human-readable name for the field.
          - `mongo_name`: The name of this field when stored in MongoDB.

        .. seealso:: constructor for
                     :class:`~pymodm.base.fields.MongoBaseField`
        """
        if not issubclass(enum_type, Enum):
            raise TypeError(f"'enum_type' must be sub class of 'Enum'")
        self._enum_type = enum_type
        super().__init__(verbose_name=verbose_name,
                         mongo_name=mongo_name,
                         **kwargs)
        self.validators.append(
            validators.together(validators.validator_for_type(enum_type),
                                validators.validator_for_func(enum_type)))