utils/const.py: fix ident

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
Nicolas Sebrecht 2014-12-30 01:05:20 +01:00
parent 532278b4dd
commit a35c432671
1 changed files with 22 additions and 25 deletions

View File

@ -1,40 +1,37 @@
# Copyright 2013 Eygene A. Ryabinkin. # Copyright (C) 2013-2014 Eygene A. Ryabinkin and contributors
# #
# Collection of classes that implement const-like behaviour # Collection of classes that implement const-like behaviour
# for various objects. # for various objects.
import copy import copy
class ConstProxy (object): class ConstProxy(object):
""" """Implements read-only access to a given object
Implements read-only access to a given object that can be attached to each instance only once."""
that can be attached to each instance only once.
""" def __init__(self):
self.__dict__['__source'] = None
def __init__ (self):
self.__dict__['__source'] = None
def __getattr__ (self, name): def __getattr__(self, name):
src = self.__dict__['__source'] src = self.__dict__['__source']
if src == None: if src == None:
raise ValueError ("using non-initialized ConstProxy() object") raise ValueError("using non-initialized ConstProxy() object")
return copy.deepcopy (getattr (src, name)) return copy.deepcopy(getattr(src, name))
def __setattr__ (self, name, value): def __setattr__(self, name, value):
raise AttributeError ("tried to set '%s' to '%s' for constant object" % \ raise AttributeError("tried to set '%s' to '%s' for constant object"% \
(name, value)) (name, value))
def __delattr__ (self, name): def __delattr__(self, name):
raise RuntimeError ("tried to delete field '%s' from constant object" % \ raise RuntimeError("tried to delete field '%s' from constant object"% \
(name)) (name))
def set_source (self, source): def set_source(self, source):
""" Sets source object for this instance. """ """ Sets source object for this instance. """
if (self.__dict__['__source'] != None): if (self.__dict__['__source'] != None):
raise ValueError ("source object is already set") raise ValueError("source object is already set")
self.__dict__['__source'] = source self.__dict__['__source'] = source