From 48a02df7f40720354062890f209b733460f97458 Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Fri, 21 Sep 2018 11:39:20 -0500
Subject: [PATCH] Another bugfix for nan handling in eff_distance

Need to make sure values are actually numeric types before
just passing them to isnan(), since it can't handle them, apparently.
---
 gracedb/events/models.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/gracedb/events/models.py b/gracedb/events/models.py
index 1c7a9c260..c7e12eae8 100644
--- a/gracedb/events/models.py
+++ b/gracedb/events/models.py
@@ -1,4 +1,5 @@
 from math import isnan
+import numbers
 
 from django.db import models, IntegrityError
 from django.urls import reverse
@@ -989,9 +990,13 @@ class SingleInspiral(models.Model):
             for f in [cls._meta.get_field(f) for f in cls.field_names()]:
                 value = getattr(row, f.attname, f.default)
 
-                # Handle nan for eff_distance
-                if f.attname == 'eff_distance' and isnan(value):
-                    value = None
+                # Awful kludge for handling nan for eff_distance
+                try:
+                    if (f.attname == 'eff_distance' and
+                        isinstance(value, numbers.Number) and isnan(value)):
+                        value = None
+                except Exception as e:
+                    pass
 
                 # Only set value of class instance member if
                 # value is not None or if field is nullable.
-- 
GitLab