Source

fabulator / src / decorators.py

# -*- coding: latin-1 -*-
"""



"""
import traceback


from mexceptions import ImproperlyConfigured


# how it sux !
class Decorate(object):
    def __init__(self):
        pass
        
    def __call__(self, func):
        pass


class Permissions(Decorate):
    def __init__(self, username, env):
        self.username = username
        self.env = env
        
    def __call__(self, func):
        def _wrapper(*args, **kwargs):
            try:
                self.env.user = self.env.yaml.get('project').get(self.username)
            except Exception, e:
                raise ImproperlyConfigured("did you configured the 'project' part of your settings ?")
            if not self.env.user:
                raise ImproperlyConfigured("did you configured the 'project' part of your settings ?")
            print func
            return func(*args, **kwargs)

        return _wrapper

class ConfChecker(Decorate):
    def __init__(self, conf, env):
        self.conf = conf
        self.env = env
    
    def __call__(self, func):
        def _wrapper(*args, **kwargs):
            conf = self.env.yaml
            if not self.conf in conf:
                raise ImproperlyConfigured("does %s exists in your configuration file ?" % self.conf)
            return func(*args, **kwargs)

        return _wrapper
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.