コード例 #1
0
ファイル: article.py プロジェクト: isususi/amcat
    def __setitem__(self, key: str, value: Union[str, int, float,
                                                 datetime.datetime]):
        # Check for key type
        if not isinstance(key, str):
            raise ValueError(
                "{} is not of type str, but is {} instead.".format(
                    key, type(key)))

        if not is_valid_property_name(key):
            raise ValueError("This property name is not valid: {}".format(key))

        # None does not make sense in this context. The caller should use __delitem__ instead.
        if value is None:
            raise ValueError("Value can not be None. Delete it instead!")

        # Property types are determined by their name. As a result, we expect that type.
        expected_type = get_property_primitive_type(key)

        # Implicitly convert ints to floats (but not the other way around)
        if expected_type is float and isinstance(value, int):
            value = float(value)

        if not isinstance(value, expected_type):
            raise ValueError(
                "Expected type {} for key {}. Got {} with type {} instead.".
                format(expected_type, key, value, type(value)))

        super().__setitem__(key, value)
コード例 #2
0
ファイル: upload.py プロジェクト: amcat/amcat
def validate_field_map(value):
    required = set(REQUIRED)
    name_errors = []
    for k in value.keys():
        required.discard(k)
        if not amcates.is_valid_property_name(k):
            name_errors.append(k)
    if name_errors:
        raise forms.ValidationError("Invalid property name(s): {}".format(", ".join(name_errors)))
    if required:
        raise forms.ValidationError("Missing required article field(s): {}".format(", ".join(required)))
コード例 #3
0
def validate_field_map(value):
    required = set(REQUIRED)
    name_errors = []
    for k in value.keys():
        required.discard(k)
        if not amcates.is_valid_property_name(k):
            name_errors.append(k)
    if name_errors:
        raise forms.ValidationError("Invalid property name(s): {}".format(
            ", ".join(name_errors)))
    if required:
        raise forms.ValidationError(
            "Missing required article field(s): {}".format(
                ", ".join(required)))
コード例 #4
0
 def format_field_name(self, name, type):
     name = "{}_{}".format(name, type) if type and type != "default" else name
     if not is_valid_property_name(name):
         raise Exception("Invalid property name: {}".format(name))
     return name
コード例 #5
0
def validate_property_name(value, type):
    if type != "default":
        value = "{}_{}".format(value, type)
    if not is_valid_property_name(value):
        raise forms.ValidationError("Invalid property name: {}".format(value))
コード例 #6
0
 def format_field_name(self, name, type):
     name = "{}_{}".format(name, type) if type and type != "default" else name
     if not is_valid_property_name(name):
         raise Exception("Invalid property name: {}".format(name))
     return name
コード例 #7
0
def validate_property_name(value, type):
    if type != "default":
        value = "{}_{}".format(value, type)
    if not is_valid_property_name(value):
        raise forms.ValidationError("Invalid property name: {}".format(value))