From b42fcd8dc1cf8f3fbd54a0bedbb5fcbf8e10683b Mon Sep 17 00:00:00 2001 From: Tanner Prestegard <tanner.prestegard@ligo.org> Date: Mon, 2 Apr 2018 12:40:41 -0500 Subject: [PATCH] changing event.datadir() to a class property -> event.datadir --- gracedb/events/api/views.py | 14 +++++++------- gracedb/events/buildVOEvent.py | 6 +++--- gracedb/events/models.py | 5 +++-- gracedb/events/permission_utils.py | 2 +- gracedb/events/view_logic.py | 2 +- gracedb/events/view_utils.py | 8 ++++---- gracedb/events/views.py | 6 +++--- 7 files changed, 22 insertions(+), 21 deletions(-) diff --git a/gracedb/events/api/views.py b/gracedb/events/api/views.py index b4490bfc3..915833395 100644 --- a/gracedb/events/api/views.py +++ b/gracedb/events/api/views.py @@ -282,7 +282,7 @@ def assembleLigoLw(data): eventDictList = [data,] xmldoc = ligolw.Document() for e in eventDictList: - fname = os.path.join(e.datadir(), "coinc.xml") + fname = os.path.join(e.datadir, "coinc.xml") if not os.path.exists(fname): raise MissingCoinc elif not os.access(fname, os.R_OK): @@ -630,7 +630,7 @@ class EventDetail(APIView): # XXX handle duplicate file names. f = request.data['eventFile'] - uploadDestination = os.path.join(event.datadir(), f.name) + uploadDestination = os.path.join(event.datadir, f.name) fdest = VersionedFile(uploadDestination, 'w') #for chunk in f.chunks(): # fdest.write(chunk) @@ -813,7 +813,7 @@ class EventLogList(APIView): file_version = None if uploadedFile: filename = uploadedFile.name - filepath = os.path.join(event.datadir(), filename) + filepath = os.path.join(event.datadir, filename) try: # Open / Write the file. @@ -1586,7 +1586,7 @@ class Files(APIView): filename = filename or "" graceid = event.graceid() - filepath = os.path.join(event.datadir(), filename) + filepath = os.path.join(event.datadir, filename) # Check permissions for external users if filename and os.path.isdir(filepath): @@ -1602,7 +1602,7 @@ class Files(APIView): elif not filename: # Get list of files w/urls. rv = {} - filepath = event.datadir() + filepath = event.datadir fnames = [] # Filter files for external users. if is_external(request.user): @@ -1647,7 +1647,7 @@ class Files(APIView): def put(self, request, event, filename=""): """ File uploader. Implements file versioning. """ filename = filename or "" - filepath = os.path.join(event.datadir(), filename) + filepath = os.path.join(event.datadir, filename) try: # Open / Write the file. @@ -1815,7 +1815,7 @@ class VOEventList(APIView): voevent_display_type = dict(VOEvent.VOEVENT_TYPE_CHOICES)[voevent_type].capitalize() filename = "%s-%d-%s.xml" % (event.graceid(), voevent.N, voevent_display_type) - filepath = os.path.join(event.datadir(), filename) + filepath = os.path.join(event.datadir, filename) fdest = VersionedFile(filepath, 'w') fdest.write(voevent_text) fdest.close() diff --git a/gracedb/events/buildVOEvent.py b/gracedb/events/buildVOEvent.py index 66960ffab..306687d56 100644 --- a/gracedb/events/buildVOEvent.py +++ b/gracedb/events/buildVOEvent.py @@ -271,7 +271,7 @@ def buildVOEvent(event, serial_number, voevent_type, request=None, skymap_filena raise VOEventBuilderException("Skymap filename not provided.") fits_name = skymap_filename - fits_path = os.path.join(event.datadir(), fits_name) + fits_path = os.path.join(event.datadir, fits_name) if not os.path.exists(fits_path): raise VOEventBuilderException("Skymap file does not exist: %s" % skymap_filename) @@ -280,7 +280,7 @@ def buildVOEvent(event, serial_number, voevent_type, request=None, skymap_filena if not img_name: stem = '.'.join(fits_name.split('.')[:-1]) img_name = stem + '.png' - img_path = os.path.join(event.datadir(), img_name) + img_path = os.path.join(event.datadir, img_name) if not os.path.exists(img_path): img_name = None @@ -429,7 +429,7 @@ def buildVOEvent(event, serial_number, voevent_type, request=None, skymap_filena # Go find the data file. log = event.eventlog_set.filter(comment__startswith="Original Data").all()[0] filename = log.filename - filepath = os.path.join(event.datadir(),filename) + filepath = os.path.join(event.datadir,filename) if os.path.isfile(filepath): datafile = open(filepath,"r") else: diff --git a/gracedb/events/models.py b/gracedb/events/models.py index 7e1f1962b..f9afd3271 100644 --- a/gracedb/events/models.py +++ b/gracedb/events/models.py @@ -181,6 +181,7 @@ class Event(models.Model): # XXX Not good. But then, it never was. return reverse('file_list', args=[self.graceid()]) + @property def datadir(self): # Create a file-like object which is the SHA-1 hexdigest of the Event's primary key hdf = StringIO(sha1(str(self.id)).hexdigest()) @@ -320,7 +321,7 @@ class Event(models.Model): if purge: # Delete data directory - datadir = self.datadir() + datadir = self.datadir if os.path.isdir(datadir): shutil.rmtree(datadir) @@ -696,7 +697,7 @@ class SingleInspiral(models.Model): """Given an Event (and optional location of coinc.xml) update SingleInspiral data""" # XXX Need a better way to find original data. if datafile is None: - datafile = os.path.join(event.datadir(), 'coinc.xml') + datafile = os.path.join(event.datadir, 'coinc.xml') try: xmldoc = glue.ligolw.utils.load_filename(datafile, contenthandler=LIGOLWContentHandler) diff --git a/gracedb/events/permission_utils.py b/gracedb/events/permission_utils.py index fb8914d58..c843af640 100644 --- a/gracedb/events/permission_utils.py +++ b/gracedb/events/permission_utils.py @@ -158,7 +158,7 @@ def check_external_file_access(event, filename): filename, version = get_file_version(filename) if version is None: # Figure out the version by following the link - filepath = os.path.join(event.datadir(), filename) + filepath = os.path.join(event.datadir, filename) if os.path.islink(filepath): target_file = os.path.realpath(filepath) target_basename = os.path.basename(target_file) diff --git a/gracedb/events/view_logic.py b/gracedb/events/view_logic.py index cb6e165e0..44a1f3127 100644 --- a/gracedb/events/view_logic.py +++ b/gracedb/events/view_logic.py @@ -104,7 +104,7 @@ def _createEventFromForm(request, form): f = request.FILES['eventFile'] if pipeline.name not in ['HardwareInjection',]: - eventDir = event.datadir() + eventDir = event.datadir os.makedirs( eventDir ) uploadDestination = os.path.join(eventDir, f.name) fdest = VersionedFile(uploadDestination, 'w') diff --git a/gracedb/events/view_utils.py b/gracedb/events/view_utils.py index 3da787cb9..8a6240658 100644 --- a/gracedb/events/view_utils.py +++ b/gracedb/events/view_utils.py @@ -567,7 +567,7 @@ def voeventToDict(voevent, request=None): } # Read in the filecontents - filepath = os.path.join(voevent.event.datadir(), voevent.filename) + filepath = os.path.join(voevent.event.datadir, voevent.filename) text = None try: text = open(filepath, 'r').read() @@ -622,7 +622,7 @@ def assembleLigoLw(objects): xmldoc = ligolw.Document() for obj in objects: - fname = os.path.join(obj.datadir(), "coinc.xml") + fname = os.path.join(obj.datadir, "coinc.xml") utils.load_filename(fname, xmldoc=xmldoc, contenthandler=LIGOLWContentHandler) ligolw_add.reassign_ids(xmldoc) @@ -631,7 +631,7 @@ def assembleLigoLw(objects): return xmldoc def _saveUploadedFile(event, uploadedFile): - fname = os.path.join(event.datadir(), uploadedFile.name) + fname = os.path.join(event.datadir, uploadedFile.name) f = VersionedFile(fname, "w") for chunk in uploadedFile.chunks(): f.write(chunk) @@ -779,7 +779,7 @@ def flexigridResponse(request, objects): return response def get_file(event, filename="event.log"): - logfilename = os.path.join(event.datadir(), filename) + logfilename = os.path.join(event.datadir, filename) contents = "" try: lines = open(logfilename, "r").readlines() diff --git a/gracedb/events/views.py b/gracedb/events/views.py index d9466015b..0fbdf0317 100644 --- a/gracedb/events/views.py +++ b/gracedb/events/views.py @@ -209,7 +209,7 @@ def logentry(request, event, num=None): file_version = None if uploadedFile: filename = uploadedFile.name - filepath = os.path.join(event.datadir(), filename) + filepath = os.path.join(event.datadir, filename) try: # Open / Write the file. @@ -856,7 +856,7 @@ def file_list(request, event): if filename not in f: f.append(filename) else: - for dirname, dirnames, filenames in os.walk(event.datadir()): + for dirname, dirnames, filenames in os.walk(event.datadir): f.extend(filenames) break @@ -877,7 +877,7 @@ def file_download(request, event, filename): msg = "You do not have permission to view this file." return HttpResponseForbidden(msg) - file_path = os.path.join(event.datadir(), filename) + file_path = os.path.join(event.datadir, filename) return check_and_serve_file(request, file_path, ResponseClass=HttpResponse) -- GitLab