Skip to content

uiopaubo/ELIXIR-exercise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction
============

This repository contains programs, libraries, data files and documentation for
an exercise in processing different file types. Since it will be made publicly
available, although perhaps not forever, it has been adorned with licensing
information to communicate its origins and status for further use,
modification and redistribution.

Although an apparently simple exercise, numerous aspects of it can conspire to
produce erroneous solutions to the individual tasks. Hopefully, this has been
avoided here! The segment overlapping task is a familiar endeavour, its
essence found in applications like calendar event scheduling and document
annotation amongst many others. For my own interest, I considered some of the
more formal aspects of this task, and my notes on the topic are present in the
docs directory.

Other aspects of the work presented here can be discussed, including testing
regimes, error handling, input validation, the presence or absence of data
type declarations, the genericity and extensibility of certain abstractions,
potential enhancements, the provision of software packaging metadata, and so
on. It would be possible to improve the work in all of these areas, but
sufficient effort has probably already been expended for the purpose of this
exercise.

Some of the choices in various areas of improvement would involve adhering to
the conventions already established in an existing project or environment. For
example, there might be a particular framework in use for exposing
functionality as command line tools, replacing the tentative measures employed
here for handling command arguments. Here, no effort has been made to use
third-party packages to provide such functionality.

Deliverables
============

The program performing the tasks described in the exercise is located at the
top level of this repository:

process_files

It provides guidance if run without arguments, but it should be presented with
two arguments, each of which being either a segment or function file, as
described in the documentation for the exercise.

The supporting functionality has been delivered in the form of Python modules:

coverage.py
functions.py
segments.py

These might have been placed within a common package, but this might be
excessive for this exercise and for such a small amount of code.

Some notes describing the approach to the exercise can be found in the docs
directory:

Activities.txt - describes the activities/tasks and the approaches used
Formats.txt - summarises the data formats involved
Notes.txt - a more detailed consideration of segment data characteristics
Testing.txt - a discussion of testing

Along with the supplied example data, some additional testing data has been
provided in the tests directory, along with a testing script located at the
top level of this repository:

run_tests

This indicates a simple approach for validating the behaviour of some of the
functionality by performing operations and comparing the result to a
previously determined expected result. Such an approach would be only one of
several approaches in a larger, more comprehensive system.

Copyright and Licensing Information
===================================

Comprehensive licensing information is provided in the individual files,
together with information in the .reuse and LICENSES directories.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages