# Path: rw/scope.py
# NOT_PROVIDED = object()
# SCOPE_CHAIN = None
# LOG = logging.getLogger(__name__)
#         SCOPE_CHAIN = []
# class OutsideScopeError(Exception):
# class Scope(dict):
# class SubScope(Scope):
# class SubScopeView(object):
#     def __init__(self, name=None):
#     def provider(self, key, provider):
#     def activate(self, plugin):
#     def subscope(self, key):
#     def get(self, key, default=NOT_PROVIDED, scopes=None):
#     def __call__(self):
#     def run(self, target_coroutine):
#     def __init__(self, name, parent):
#     def __init__(self, key, scope_chain):
#     def __getitem__(self, item):
#     def __eq__(self, other):
# def set_context(scope):
# def get_current_scope():
# def get(key, default=NOT_PROVIDED):
# def inject(fn):
#     def wrapper(*args, **kwargs):
# def setup_app_scope(name, scope):


import re
import tornado.web
import rw.plugin
from future.builtins import range
from tornado import util
from rw import scope
            if strings[i] != strings_o[i]:
                return strings[i] < strings_o[i]

        # strings are the same, so check variables for non-default parser
        for i in range(len(variables)):
            if variables[i] != 'str' and variables_o[i] == 'str':
                return True
        return False

    def __gt__(self, o):
        """greater than `o`

        :param Route o: other rule to compare with
        """
        if self == o:
            return False
        return o < self

    def __eq__(self, o):
        """equal to `o`

        :param Route o: other rule to compare with
        """
        return self.route == o.route

    @rw.scope.inject
    def match(self, test_path, scope):
        arguments = {}
        for converter_name, args, data in self.route:
            if converter_name:

# Path: rw/scope.py
# NOT_PROVIDED = object()
# SCOPE_CHAIN = None
# LOG = logging.getLogger(__name__)
#         SCOPE_CHAIN = []
# class OutsideScopeError(Exception):
# class Scope(dict):
# class SubScope(Scope):
# class SubScopeView(object):
#     def __init__(self, name=None):
#     def provider(self, key, provider):
#     def activate(self, plugin):
#     def subscope(self, key):
#     def get(self, key, default=NOT_PROVIDED, scopes=None):
#     def __call__(self):
#     def run(self, target_coroutine):
#     def __init__(self, name, parent):
#     def __init__(self, key, scope_chain):
#     def __getitem__(self, item):
#     def __eq__(self, other):
# def set_context(scope):
# def get_current_scope():
# def get(key, default=NOT_PROVIDED):
# def inject(fn):
#     def wrapper(*args, **kwargs):
# def setup_app_scope(name, scope):


# Path: rw/routing.py
import re
import tornado.web
import rw.plugin
from future.builtins import range
from tornado import util
from rw import scope

            if strings[i] != strings_o[i]:
                return strings[i] < strings_o[i]

        # strings are the same, so check variables for non-default parser
        for i in range(len(variables)):
            if variables[i] != 'str' and variables_o[i] == 'str':
                return True
        return False

    def __gt__(self, o):
        """greater than `o`

        :param Route o: other rule to compare with
        """
        if self == o:
            return False
        return o < self

    def __eq__(self, o):
        """equal to `o`

        :param Route o: other rule to compare with
        """
        return self.route == o.route

    @rw.scope.inject
    def match(self, test_path, scope):
        arguments = {}
        for converter_name, args, data in self.route:
            if converter_name:

                converters = rw.scope.get('rw.routing:converters')