Move things from routing.py to tools/routing.py
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Sat, 15 Dec 2012 23:50:20 +0000 (00:50 +0100)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Sun, 23 Dec 2012 11:26:34 +0000 (12:26 +0100)
This stops a cyclic import.

Move add_route, mount and endpoint_to_controller into
tools/routing.py and change all callers.

mediagoblin/app.py
mediagoblin/edit/routing.py
mediagoblin/listings/routing.py
mediagoblin/routing.py
mediagoblin/submit/routing.py
mediagoblin/tools/routing.py [new file with mode: 0644]
mediagoblin/user_pages/routing.py
mediagoblin/webfinger/routing.py

index 207e9d2cbab6c85db741eba7d01b0aa0504cf11c..ff64f65c9e3c967aa5b320d6e65c707f6d3a8034 100644 (file)
@@ -17,7 +17,8 @@
 import os
 import logging
 
-from mediagoblin.routing import get_url_map, endpoint_to_controller
+from mediagoblin.routing import get_url_map
+from mediagoblin.tools.routing import endpoint_to_controller
 
 from werkzeug.wrappers import Request
 from werkzeug.exceptions import HTTPException, NotFound
index 28b73d1e45b44f9776415c025e2b111022574a0e..3e6787d2cc13b1fc190b090a79c1b53825be68e3 100644 (file)
@@ -14,7 +14,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from mediagoblin.routing import add_route
+from mediagoblin.tools.routing import add_route
 
 add_route('mediagoblin.edit.profile', '/edit/profile/',
     'mediagoblin.edit.views:edit_profile')
index d25f1c8cd36ca4ad4ced2af3067667df1b7b92b2..e5683168e0b1c7413cd9b134a6e00809d2235575 100644 (file)
@@ -14,7 +14,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from mediagoblin.routing import add_route
+from mediagoblin.tools.routing import add_route
 
 add_route('mediagoblin.listings.tags_listing',
           "/tag/<string:tag>/",
index dc22ba0947dfbf58f67ed1b17f4baef135817eb3..1cf82a026f5cd0a0e9af8039f3888461e77156a4 100644 (file)
 
 import logging
 
-from werkzeug.routing import Map, Rule
-from mediagoblin.tools.common import import_component
+from mediagoblin.tools.routing import add_route, mount, url_map
 from mediagoblin.tools.pluginapi import PluginManager
 
 
 _log = logging.getLogger(__name__)
 
-url_map = Map()
-
-view_functions = {}
-
-
-def endpoint_to_controller(endpoint):
-    view_func = view_functions[endpoint]
-
-    _log.debug('endpoint: {0} view_func: {1}'.format(endpoint, view_func))
-
-    # import the endpoint, or if it's already a callable, call that
-    if isinstance(view_func, basestring):
-        view_func = import_component(view_func)
-        view_functions[endpoint] = view_func
-
-    return view_func
-
-
-def add_route(endpoint, url, controller):
-    """
-    Add a route to the url mapping
-    """
-    # XXX: We cannot use this, since running tests means that the plugin
-    # routes will be populated over and over over the same session.
-    #
-    # assert endpoint not in view_functions.keys(), 'Trying to overwrite a rule'
-
-    view_functions.update({endpoint: controller})
-
-    url_map.add(Rule(url, endpoint=endpoint))
-
-
-def mount(mountpoint, routes):
-    """
-    Mount a bunch of routes to this mountpoint
-    """
-    for endpoint, url, controller in routes:
-        url = "%s/%s" % (mountpoint.rstrip('/'), url.lstrip('/'))
-        add_route(endpoint, url, controller)
-
 
 def get_url_map():
     for route in PluginManager().get_routes():
index fbe3c39c3badf9051e82bbddd2a476ebab1d7902..085344fd2d6df547bbd0cc83c2ed3b7e05ee556d 100644 (file)
@@ -14,7 +14,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from mediagoblin.routing import add_route
+from mediagoblin.tools.routing import add_route
 
 add_route('mediagoblin.submit.start',
     '/submit/', 'mediagoblin.submit.views:submit_start')
diff --git a/mediagoblin/tools/routing.py b/mediagoblin/tools/routing.py
new file mode 100644 (file)
index 0000000..6c5acbe
--- /dev/null
@@ -0,0 +1,63 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import logging
+
+from werkzeug.routing import Map, Rule
+from mediagoblin.tools.common import import_component
+
+
+_log = logging.getLogger(__name__)
+
+url_map = Map()
+
+view_functions = {}
+
+
+def endpoint_to_controller(endpoint):
+    view_func = view_functions[endpoint]
+
+    _log.debug('endpoint: {0} view_func: {1}'.format(endpoint, view_func))
+
+    # import the endpoint, or if it's already a callable, call that
+    if isinstance(view_func, basestring):
+        view_func = import_component(view_func)
+        view_functions[endpoint] = view_func
+
+    return view_func
+
+
+def add_route(endpoint, url, controller):
+    """
+    Add a route to the url mapping
+    """
+    # XXX: We cannot use this, since running tests means that the plugin
+    # routes will be populated over and over over the same session.
+    #
+    # assert endpoint not in view_functions.keys(), 'Trying to overwrite a rule'
+
+    view_functions.update({endpoint: controller})
+
+    url_map.add(Rule(url, endpoint=endpoint))
+
+
+def mount(mountpoint, routes):
+    """
+    Mount a bunch of routes to this mountpoint
+    """
+    for endpoint, url, controller in routes:
+        url = "%s/%s" % (mountpoint.rstrip('/'), url.lstrip('/'))
+        add_route(endpoint, url, controller)
index 22d7f9b88b7541463a5b62fa3279268700f90d0a..63bf5c2adb6718f3000e9a6cc1217a8de3063cde 100644 (file)
@@ -14,7 +14,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from mediagoblin.routing import add_route
+from mediagoblin.tools.routing import add_route
 
 add_route('mediagoblin.user_pages.user_home',
           '/u/<string:user>/', 'mediagoblin.user_pages.views:user_home')
index 18f9eb02f620dda97a142a7c903defee294a524d..eb10509f8cf5e134b64da720b32befaffb5e3cf8 100644 (file)
@@ -14,7 +14,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from mediagoblin.routing import add_route
+from mediagoblin.tools.routing import add_route
 
 add_route('mediagoblin.webfinger.host_meta', '/.well-known/host-meta',
     'mediagoblin.webfinger.views:host_meta')