12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import os
- import json
- from concert.networking.base import get_tango_device
- class Workspace(object):
- # FIXME: we should actually get absolute paths
- ROOT = os.path.expanduser('~')
- def __init__(self, penny, name):
- self.penny = penny
- self.name = name
- @property
- def path(self):
- return os.path.join(self.ROOT, self.penny.device.GetPath(self.name))
- def close(self):
- self.penny.close(self.name)
- def free(self):
- self.penny.free(self.name)
- def delete(self):
- self.penny.delete(self.name)
- def __enter__(self):
- return self
- def __exit__(self, *exc):
- self.close()
- class Penny(object):
- def __init__(self, uri='anka/astor/penny'):
- self.device = get_tango_device(uri)
- @property
- def workspaces(self):
- return json.loads(self.device.WorkspaceList).keys()
- def create(self, name):
- real = self.device.Create(name)
- return Workspace(self, real)
- def close(self, name):
- self.device.Close(name)
- def free(self, name):
- self.device.Free(name)
- def delete(self, name):
- self.device.Delete(name)
|