Skip to content
Snippets Groups Projects
Commit 60a988e9 authored by Nathaniel Kofalt's avatar Nathaniel Kofalt
Browse files

Clean up enum usage

parent e3e6e857
No related branches found
No related tags found
No related merge requests found
......@@ -6,13 +6,13 @@ API request handlers for process-job-handling.
from __future__ import absolute_import
import bson
from enum import Enum, unique
import pymongo
import datetime
from collections import namedtuple
from . import base
from . import config
from . import util
log = config.log
......@@ -38,18 +38,12 @@ JOB_TRANSITIONS = [
def valid_transition(from_state, to_state):
return (from_state + ' --> ' + to_state) in JOB_TRANSITIONS or from_state == to_state
# Represet the general categories of gear function
@unique
class Category(Enum):
classifier = 'classifier' # discover metadata
converter = 'converter' # translate between formats
qa = 'qa' # quality assurance
analytical = 'analytical' # general purpose
# Enum strings are prefixed by their class: "Category.classifier".
# This overrides that behaviour and removes the prefix.
def __str__(self):
return str(self.value)
Category = util.Enum('Category', {
'classifier': 'classifier', # discover metadata
'converter': 'converter', # translate between formats
'qa': 'qa', # quality assurance
'analytical': 'analytical', # general purpose
})
Gear = namedtuple('gear', ['name', 'category', 'input'])
......
......@@ -5,6 +5,7 @@ import datetime
import mimetypes
import bson.objectid
import tempdir as tempfile
import enum as baseEnum
MIMETYPES = [
('.bvec', 'text', 'bvec'),
......@@ -110,3 +111,9 @@ def custom_json_serializer(obj):
elif isinstance(obj, datetime.datetime):
return pytz.timezone('UTC').localize(obj).isoformat()
raise TypeError(repr(obj) + " is not JSON serializable")
class Enum(baseEnum.Enum):
# Enum strings are prefixed by their class: "Category.classifier".
# This overrides that behaviour and removes the prefix.
def __str__(self):
return str(self.name)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment