From 03e2a7f2dccedd886f1b410bea0cef328a3e850b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 2 Sep 2021 23:56:13 +0200 Subject: [PATCH] Avoid instantiate set issue10660 review342911003 --- trytond/model/fields/char.py | 2 +- trytond/model/fields/field.py | 16 ++++++++-------- trytond/model/fields/float.py | 2 +- trytond/model/fields/reference.py | 2 +- trytond/model/fields/selection.py | 2 +- trytond/model/modelsql.py | 10 +++++----- trytond/model/modelstorage.py | 2 +- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/trytond/model/fields/char.py b/trytond/model/fields/char.py index 3664d83a53..22788bc09f 100644 --- a/trytond/model/fields/char.py +++ b/trytond/model/fields/char.py @@ -39,7 +39,7 @@ class Char(FieldTranslate): if autocomplete: warnings.warn('autocomplete argument is deprecated, use the ' 'depends decorator', DeprecationWarning, stacklevel=2) - self.autocomplete |= set(autocomplete) + self.autocomplete.update(autocomplete) self.translate = translate self.__size = None self.size = size diff --git a/trytond/model/fields/field.py b/trytond/model/fields/field.py index f60f70319a..8326b81894 100644 --- a/trytond/model/fields/field.py +++ b/trytond/model/fields/field.py @@ -38,7 +38,7 @@ def domain_validate(value): and arg[1] in OPERATORS) or ( isinstance(arg[1], PYSON) - and arg[1].types() == set([str]))))): + and arg[1].types() == {str})))): pass elif isinstance(arg, list): if not test_domain(arg): @@ -57,7 +57,7 @@ def states_validate(value): assert isinstance(value[state], (bool, PYSON)), \ 'values of states must be PYSON' if hasattr(value[state], 'types'): - assert value[state].types() == set([bool]), \ + assert value[state].types() == {bool}, \ 'values of states must return boolean' @@ -73,7 +73,7 @@ def size_validate(value): if value is not None: assert isinstance(value, (int, PYSON)), 'size must be PYSON' if hasattr(value, 'types'): - assert value.types() == set([int]), \ + assert value.types() == {int}, \ 'size must return integer' @@ -81,7 +81,7 @@ def search_order_validate(value): if value is not None: assert isinstance(value, (list, PYSON)), 'search_order must be PYSON' if hasattr(value, 'types'): - assert value.types() == set([list]), 'search_order must be PYSON' + assert value.types() == {list}, 'search_order must be PYSON' def _set_value(record, field): @@ -108,12 +108,12 @@ def depends(*fields, **kwargs): def decorator(func): depends = getattr(func, 'depends', set()) - depends |= set(fields) + depends.update(fields) setattr(func, 'depends', depends) if methods: depend_methods = getattr(func, 'depend_methods', set()) - depend_methods |= set(methods) + depend_methods.update(methods) setattr(func, 'depend_methods', depend_methods) @wraps(func) @@ -267,13 +267,13 @@ class Field(object): warnings.warn('on_change argument is deprecated, ' 'use the depends decorator', DeprecationWarning, stacklevel=3) - self.on_change |= set(on_change) + self.on_change.update(on_change) self.on_change_with = set() if on_change_with: warnings.warn('on_change_with argument is deprecated, ' 'use the depends decorator', DeprecationWarning, stacklevel=3) - self.on_change_with |= set(on_change_with) + self.on_change_with.update(on_change_with) self.__depends = None self.depends = depends or [] self.__context = None diff --git a/trytond/model/fields/float.py b/trytond/model/fields/float.py index c68ba0b445..34075070d3 100644 --- a/trytond/model/fields/float.py +++ b/trytond/model/fields/float.py @@ -13,7 +13,7 @@ def digits_validate(value): assert isinstance(i, (int, PYSON)), \ 'digits must be tuple of integers or PYSON' if isinstance(i, PYSON): - assert i.types().issubset(set([int, int])), \ + assert i.types() == {int}, \ 'PYSON digits must return an integer' diff --git a/trytond/model/fields/reference.py b/trytond/model/fields/reference.py index c71e1a07d2..f6f7ee1cdf 100644 --- a/trytond/model/fields/reference.py +++ b/trytond/model/fields/reference.py @@ -54,7 +54,7 @@ class Reference(SelectionMixin, Field): warnings.warn('selection_change_with argument is deprecated, ' 'use the depends decorator', DeprecationWarning, stacklevel=2) - self.selection_change_with |= set(selection_change_with) + self.selection_change_with.update(selection_change_with) self.sort = sort self.translate_selection = translate self.help_selection = help_selection diff --git a/trytond/model/fields/selection.py b/trytond/model/fields/selection.py index 8eb048fbb9..f417f66531 100644 --- a/trytond/model/fields/selection.py +++ b/trytond/model/fields/selection.py @@ -103,7 +103,7 @@ class Selection(SelectionMixin, Field): warnings.warn('selection_change_with argument is deprecated, ' 'use the depends decorator', DeprecationWarning, stacklevel=2) - self.selection_change_with |= set(selection_change_with) + self.selection_change_with.update(selection_change_with) self.sort = sort self.translate_selection = translate self.help_selection = help_selection diff --git a/trytond/model/modelsql.py b/trytond/model/modelsql.py index 003f2862ba..46389d323b 100644 --- a/trytond/model/modelsql.py +++ b/trytond/model/modelsql.py @@ -570,7 +570,7 @@ class ModelSQL(ModelStorage): 'write_uid', 'write_date', 'id'): if key in values: del values[key] - modified_fields |= set(values.keys()) + modified_fields |= values.keys() # Get default values values_schema = tuple(sorted(values)) @@ -710,7 +710,7 @@ class ModelSQL(ModelStorage): extra_fields.update(fields.get_eval_fields(field.context)) extra_fields.discard('id') all_fields = ( - set(fields_names) | set(fields_related.keys()) | extra_fields) + set(fields_names) | fields_related.keys() | extra_fields) result = [] table = cls.__table__() @@ -906,7 +906,7 @@ class ModelSQL(ModelStorage): row[key] = None to_del = set() - for fname in set(fields_related.keys()) | extra_fields: + for fname in fields_related.keys() | extra_fields: if fname not in fields_names: to_del.add(fname) if fname not in cls._fields: @@ -1029,12 +1029,12 @@ class ModelSQL(ModelStorage): if hasattr(field, 'set'): fields_to_set.setdefault(fname, []).extend((ids, value)) - mptt_fields = cls._mptt_fields & set(values) + mptt_fields = cls._mptt_fields & values.keys() if mptt_fields: cls._update_mptt( list(sorted(mptt_fields)), repeat(ids, len(mptt_fields)), values) - all_field_names |= set(values) + all_field_names |= values.keys() for fname in sorted(fields_to_set, key=cls.index_set_field): fargs = fields_to_set[fname] diff --git a/trytond/model/modelstorage.py b/trytond/model/modelstorage.py index 9c59b35bbc..34ea358cb1 100644 --- a/trytond/model/modelstorage.py +++ b/trytond/model/modelstorage.py @@ -166,7 +166,7 @@ class ModelStorage(Model): ModelAccess.check(cls.__name__, 'create') - all_fields = list(set(chain(*(iter(v.keys()) for v in vlist)))) + all_fields = list(set().union(*vlist)) ModelFieldAccess.check(cls.__name__, all_fields, 'write') # Increase transaction counter