Skip to content

time_slide_id must be non-empty

Even though GraceDB does not use or save the time_slide_id column, it must be non-empty. This is due to bugs in glue.ligolw that are fixed in ligo.lw. Migrating from glue.ligolw to ligo.lw would fix this.

Here's an example showing that the time_slide_id column may be empty with ligo.lw, but may not be empty for glue.ligolw.

# test.py
import ligo.lw.ligolw
import ligo.lw.lsctables
import ligo.lw.utils
import glue.ligolw.ligolw
import glue.ligolw.lsctables
import glue.ligolw.utils


for api in [glue.ligolw, ligo.lw]:
    print('testing API:', api)
    xmldoc = api.ligolw.Document()
    xmldoc.appendChild(api.ligolw.LIGO_LW())
    coinc_table = api.lsctables.New(api.lsctables.CoincTable)
    row = coinc_table.RowType()
    for colname in coinc_table.validcolumns:
        setattr(row, colname, None)
    coinc_table.append(row)
    xmldoc.childNodes[0].appendChild(coinc_table)
    api.utils.write_filename(xmldoc, 'test.xml')
$ python test.py 
testing API: <module 'glue.ligolw' from '/usr/lib/python3.8/site-packages/glue/ligolw/__init__.py'>
testing API: <module 'ligo.lw' from '/usr/lib/python3.8/site-packages/ligo/lw/__init__.py'>
Traceback (most recent call last):
  File "test.py", line 19, in <module>
    api.utils.write_filename(xmldoc, 'test.xml')
  File "/usr/lib/python3.8/site-packages/ligo/lw/utils/__init__.py", line 526, in write_filename
    write_fileobj(xmldoc, fileobj, gz = gz, **kwargs)
  File "/usr/lib/python3.8/site-packages/ligo/lw/utils/__init__.py", line 445, in write_fileobj
    xmldoc.write(fileobj, **kwargs)
  File "/usr/lib/python3.8/site-packages/ligo/lw/ligolw.py", line 798, in write
    c.write(fileobj)
  File "/usr/lib/python3.8/site-packages/ligo/lw/ligolw.py", line 389, in write
    c.write(fileobj, indent + Indent)
  File "/usr/lib/python3.8/site-packages/ligo/lw/ligolw.py", line 389, in write
    c.write(fileobj, indent + Indent)
  File "/usr/lib/python3.8/site-packages/ligo/lw/table.py", line 433, in write
    line = next(rowdumper)
AttributeError: coinc_def_id
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information