def __init__(self, rules=None, default_subdomain='', charset='utf-8',
              strict_slashes=True, redirect_defaults=True,
              converters=None, sort_parameters=False, sort_key=None,
              encoding_errors='replace', host_matching=False):
     _Map.__init__(self, rules, default_subdomain, charset, strict_slashes,
                   redirect_defaults, converters, sort_parameters,
                   sort_key, encoding_errors, host_matching)
Esempio n. 2
0
    def __init__(self, rules=[], defaultSubdomain='', charset='utf-8',
                strict_slashes=True, redirectDefaults=True,
                converters=None, sortParameters=False, sortKey=None,
                encodingErrors='replace', hostMatching=False):

        Map.__init__(self, rules=rules, default_subdomain=defaultSubdomain, charset=charset,
                    strict_slashes=strict_slashes, redirect_defaults=redirectDefaults,
                    converters=converters, sort_parameters=sortParameters, sort_key=sortKey,
                    encoding_errors=encodingErrors, host_matching=hostMatching)

        self._rules = []

        for rule in rules:
            self.add(rule)
Esempio n. 3
0
    def __init__(self, controller=None, children=[], name=None, only=[], excepts=[], root=False,
                subdomain=None, buildOnly=False, strict_slashes=None, redirectTo=None,
                alias=False, host=None, defaults=None, namespace=None):

        Map.__init__(self, rules=[], default_subdomain='', charset='utf-8',
                 strict_slashes=True, redirect_defaults=True,
                 converters=None, sort_parameters=False, sort_key=None,
                 encoding_errors='replace', host_matching=False)

        if only != [] and excepts != []:
                raise ValueError('allow or deny!!!!')

        self._rules = []

        self.children = children

        self.only = only

        self.excepts = excepts

        self.root = root

        self.subdomain = self.default_subdomain = subdomain

        self.buildOnly = buildOnly

        self.strict_slashes = strict_slashes

        self.redirectTo = redirectTo

        self.alias = alias

        self.host = host

        self.defaults = defaults

        self.name = name

        self.getName = self.getNameFromRESTAction

        self.namespace = namespace

        if self.namespace:
            if self.namespace.startswith('/'):
                self.namespace = self.namespace[1:]
            if self.namespace.endswith('/'):
                self.namespace = self.namespace[:len(self.namespace) - 1]
        #ディレクトリが深かった時自動で
        elif controller is not None:
            config = ConfigManager.getConfig()
            if config['CONTROLLER_AUTO_NAMESPACE'] and type(controller) is not int:
                pkgs = controller.__module__.split('.')
                appFolder = config['APP_DIRECTORY']
                controllerFolder = config['CONTROLLER_DIRECTORY']
                if appFolder in pkgs:
                    pkgs.remove(appFolder)
                if controllerFolder in pkgs:
                    pkgs.remove(controllerFolder)

                self.orgName = pkgs[len(pkgs) - 1]
                pkgs = pkgs[:len(pkgs) - 1]
                self.namespace = "/".join(pkgs)
                if self.namespace is not '':
                    self._inSubDir = True

        if controller:
            controller = self._checkControllerType(controller)
            if not name:
                if hasattr(controller, 'baseName'):
                    self.baseName = self.orgName = controller.baseName
                elif isinstance(controller, Rule):
                    self.baseName = self.orgName = str(controller.endpoint)
            self.add(controller)

        #uuuumu
        if self.root:
            self.baseName = '/'

        if self.parent:
            self.baseName = self.parent.baseName + '/' + self.baseName

        if isinstance(self.children, list) and len(self.children) > 0:
            for child in self.children:
                if not isinstance(child, (Resource, RESTfulRule, Rule)):
                    raise TypeError('children is invalid')
                if isinstance(child, Rule):
                    child.rule = self.baseName + '/' + child.rule
                else:
                    child.parent = self
                child.refresh()
                if isinstance(child, Resource):
                    self._rules = self._rules + child._rules