Development of a Python GUI Interface to a YAML Configuration File for Propagation of Largely Identical Database Records between Field Project Entries

Date and Time: 
2015 April 14 @ 8:30am
Location: 
FL2-1022 Large Auditorium
Speaker: 
Soo Rin Park

The EOL Metadata Database and Cyberinfrastructure (EMDAC) is a comprehensive metadata database and integrated cyberinfrastructure which provides a public data portal to all of EOL’s field project data holdings. This paper demonstrates the use of the Python programming language to create a GUI (Graphical User Interface) tool that generates or edits a YAML (YAML Ain’t Markup Language) based metadata configuration file to automate data loading into the EOL metadata and (internal) data tracking system databases through user input and data serialization. The EOL metadata database editor, ZINC (Zinc is not CODIAC), provides data loading flexibility through upwards of 60 metadata fields. In order to load data from a suite of EOL instruments deployed in nearly every field project, only a half­dozen fields need to be changed from project to project. Yet, previously all fields had to be entered manually for each project. As a stopgap, a suite of three simple hand­edited metadata configuration file was created. However, the format was non­standard and the files contained overlapping metadata, causing the process to be prone to human error. To simplify the process, Python was chosen to create a new GUI interface to a single robust YAML­formatted input file allowing propagation of metadata between projects, and thus requiring editing of just a handful of fields. A Model­View­Controller architecture, which focuses on separating the model(data) from the view(GUI), was used. Code design included emphasis on easy modification of the required configuration without the need to delve into the code should the database configuration change in the future.

The decision to work in Python and YAML will be discussed, as well as the impact the languages had on the development process. The benefits as well as the hindrance of structuring the script using a Model­View­Controller architecture, and the effect of efforts to make the user experience intuitive, will also be covered.

Speaker Description: 

Soo Park is currently pursuing an undergraduate degree in Electrical and Computer Engineering with a minor in Technology, Arts & Media at University of Colorado Boulder, and is expected to graduate May 2016. She has been working as a Software Assistant at NCAR/EOL since June 2014.

AttachmentSize
File SEA2015_PythonGUI.pptx1.64 MB

Event Category: