Skip to content

Commit

Permalink
Merge pull request #660 from xchem/fix_target_loader_object_proc
Browse files Browse the repository at this point in the history
Fixes a bug in target loader's create_objects func
  • Loading branch information
kaliif authored Sep 11, 2024
2 parents 0c3e7a6 + 51eb5b8 commit 65de5c0
Showing 1 changed file with 23 additions and 24 deletions.
47 changes: 23 additions & 24 deletions viewer/target_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -336,13 +336,15 @@ def wrapper_create_objects(
)
obj.save()
new = True
except MultipleObjectsReturned:
msg = "{}.get_or_create in {} returned multiple objects for {}".format(
instance_data.model_class._meta.object_name, # pylint: disable=protected-access
instance_data.key,
instance_data.fields,
)
self.report.log(logging.ERROR, msg)
failed = failed + 1

# obj, new = instance_data.model_class.filter_manager.by_target(
# self.target
# ).get_or_create(
# **instance_data.fields,
# defaults=instance_data.defaults,
# )
else:
# no unique field requirements, just create new object
obj = instance_data.model_class(
Expand All @@ -355,15 +357,6 @@ def wrapper_create_objects(
instance_data.model_class._meta.object_name, # pylint: disable=protected-access
obj,
)

except MultipleObjectsReturned:
msg = "{}.get_or_create in {} returned multiple objects for {}".format(
instance_data.model_class._meta.object_name, # pylint: disable=protected-access
instance_data.key,
instance_data.fields,
)
self.report.log(logging.ERROR, msg)
failed = failed + 1
except IntegrityError:
msg = "{} object {} failed to save".format(
instance_data.model_class._meta.object_name, # pylint: disable=protected-access
Expand Down Expand Up @@ -414,15 +407,21 @@ def wrapper_create_objects(
# index data here probs
result[instance_data.versioned_key] = m

msg = "{} {} objects processed, {} created, {} fetched from database".format(
created + existing + failed,
next( # pylint: disable=protected-access
iter(result.values())
).instance._meta.model._meta.object_name, # pylint: disable=protected-access
created,
existing,
) # pylint: disable=protected-access
self.report.log(logging.INFO, msg)
result = {}
if result:
msg = "{} {} objects processed, {} created, {} fetched from database".format(
created + existing + failed,
next( # pylint: disable=protected-access
iter(result.values())
).instance._meta.model._meta.object_name, # pylint: disable=protected-access
created,
existing,
) # pylint: disable=protected-access
self.report.log(logging.INFO, msg)
else:
# cannot continue when one object type is missing, abort
msg = f"No objects returned by {func.__name__}"
self.report.log(logging.ERROR, msg)

# refresh all objects to make sure they're up to date.
# this is specifically because of the superseded flag above -
Expand Down

0 comments on commit 65de5c0

Please sign in to comment.