import os
import uuid
from collections import OrderedDict
#import logging
import numpy as np
import pandas as pd
[docs]class PID(object):
"""Process object, which has an uuid and metadata"""
def __init__(self, *args, **kwargs):
self._metadata = kwargs.get("metadata") or {}
try:
self.uuid = uuid.UUID(kwargs.get("uuid"))
except:
self.uuid = uuid.uuid4()
self.name = kwargs.get("name") or "N.N."
[docs] def get_attr(self, key, default=None):
return self.metadata.get(key, default)
[docs] def add_attr(self, key, value):
self.metadata[str(key)] = value
[docs] def set_attr(self, key, value):
self.metadata[str(key)] = value
metadata = property(get_metadata, set_metadata)
[docs] def get_uuid(self):
return uuid.UUID(self._metadata.get("uuid"))
[docs] def set_uuid(self, uuid):
self._metadata["uuid"] = uuid.hex
uuid = property(get_uuid, set_uuid)
[docs] def get_name(self):
return self._metadata.get("name")
[docs] def set_name(self, name):
self._metadata["name"] = name
name = property(get_name, set_name)
def __str__(self):
return "({0.__class__.__name__}:'{0.name}':{0.uuid.hex})".format(self)
__repr__ = __str__