Mercurial > public > src > rhodecode
annotate pylons_app/config/routing.py @ 339:8026872a10ee
Moved admin controllers to separate module
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 30 Jun 2010 17:14:47 +0200 |
parents | 05b212954275 |
children | 51362853ac3b |
rev | line source |
---|---|
0 | 1 """Routes configuration |
2 | |
3 The more specific and detailed routes should be defined first so they | |
4 may take precedent over the more generic routes. For more information | |
5 refer to the routes manual at http://routes.groovie.org/docs/ | |
6 """ | |
7 from routes import Mapper | |
314
752675cdd167
made routes verification method based only on paths, since it's much faster and enough
Marcin Kuzminski <marcin@python-works.com>
parents:
313
diff
changeset
|
8 from pylons_app.lib.utils import check_repo_fast as cr |
0 | 9 |
43 | 10 def make_map(config): |
0 | 11 """Create, configure and return the routes Mapper""" |
43 | 12 map = Mapper(directory=config['pylons.paths']['controllers'], |
13 always_scan=config['debug']) | |
0 | 14 map.minimization = False |
43 | 15 map.explicit = False |
0 | 16 |
17 # The ErrorController route (handles 404/500 error pages); it should | |
18 # likely stay at the top, ensuring it can always be resolved | |
43 | 19 map.connect('/error/{action}', controller='error') |
20 map.connect('/error/{action}/{id}', controller='error') | |
0 | 21 |
22 # CUSTOM ROUTES HERE | |
70
9a2affee4a45
Updated defaults bug of htmlfill + changed routing
Marcin Kuzminski <marcin@python-blog.com>
parents:
55
diff
changeset
|
23 map.connect('hg_home', '/', controller='hg', action='index') |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
44
diff
changeset
|
24 |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
25 def check_repo(environ, match_dict): |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
26 """ |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
27 check for valid repository for proper 404 handling |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
28 @param environ: |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
29 @param match_dict: |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
30 """ |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
31 repo_name = match_dict.get('repo_name') |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
32 return not cr(repo_name, config['base_path']) |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
33 |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
34 #REST routes |
339
8026872a10ee
Moved admin controllers to separate module
Marcin Kuzminski <marcin@python-works.com>
parents:
336
diff
changeset
|
35 with map.submapper(path_prefix='/_admin', controller='pylons_app.controllers.admin.repos:ReposController') as m: |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
36 m.connect("repos", "/repos", |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
37 action="create", conditions=dict(method=["POST"])) |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
38 m.connect("repos", "/repos", |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
39 action="index", conditions=dict(method=["GET"])) |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
40 m.connect("formatted_repos", "/repos.{format}", |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
41 action="index", |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
42 conditions=dict(method=["GET"])) |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
43 m.connect("new_repo", "/repos/new", |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
44 action="new", conditions=dict(method=["GET"])) |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
45 m.connect("formatted_new_repo", "/repos/new.{format}", |
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
46 action="new", conditions=dict(method=["GET"])) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
47 m.connect("/repos/{repo_name:.*}", |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
48 action="update", conditions=dict(method=["PUT"], |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
49 function=check_repo)) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
50 m.connect("/repos/{repo_name:.*}", |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
51 action="delete", conditions=dict(method=["DELETE"], |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
52 function=check_repo)) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
53 m.connect("edit_repo", "/repos/{repo_name:.*}/edit", |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
54 action="edit", conditions=dict(method=["GET"], |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
55 function=check_repo)) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
56 m.connect("formatted_edit_repo", "/repos/{repo_name:.*}.{format}/edit", |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
57 action="edit", conditions=dict(method=["GET"], |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
58 function=check_repo)) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
59 m.connect("repo", "/repos/{repo_name:.*}", |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
60 action="show", conditions=dict(method=["GET"], |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
61 function=check_repo)) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
62 m.connect("formatted_repo", "/repos/{repo_name:.*}.{format}", |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
63 action="show", conditions=dict(method=["GET"], |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
64 function=check_repo)) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
65 #ajax delete repo perm user |
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
66 m.connect('delete_repo_user', "/repos_delete_user/{repo_name:.*}", |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
67 action="delete_perm_user", conditions=dict(method=["DELETE"], |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
68 function=check_repo)) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
69 |
339
8026872a10ee
Moved admin controllers to separate module
Marcin Kuzminski <marcin@python-works.com>
parents:
336
diff
changeset
|
70 map.resource('user', 'users', controller='pylons_app.controllers.admin.users:UsersController', path_prefix='/_admin') |
8026872a10ee
Moved admin controllers to separate module
Marcin Kuzminski <marcin@python-works.com>
parents:
336
diff
changeset
|
71 map.resource('permission', 'permissions', controller='pylons_app.controllers.admin.permissions:PermissionsController', path_prefix='/_admin') |
55
e00dccb6f211
Implemented index page using vcs
Marcin Kuzminski <marcin@python-blog.com>
parents:
47
diff
changeset
|
72 |
92 | 73 #ADMIN |
339
8026872a10ee
Moved admin controllers to separate module
Marcin Kuzminski <marcin@python-works.com>
parents:
336
diff
changeset
|
74 with map.submapper(path_prefix='/_admin', controller='pylons_app.controllers.admin.admin:AdminController') as m: |
319 | 75 m.connect('admin_home', '', action='index')#main page |
149
b3c93efd1c97
Updated template for summary (archives links)
Marcin Kuzminski <marcin@python-works.com>
parents:
148
diff
changeset
|
76 m.connect('admin_add_repo', '/add_repo/{new_repo:[a-z0-9\. _-]*}', |
b3c93efd1c97
Updated template for summary (archives links)
Marcin Kuzminski <marcin@python-works.com>
parents:
148
diff
changeset
|
77 action='add_repo') |
74
cdf4fda66dd9
Started summary page. Added filters to templates. used by n,self.f.filtername prefixed by n to disable other filters. Few other fixes found
Marcin Kuzminski <marcin@python-blog.com>
parents:
70
diff
changeset
|
78 |
205
66b20f525750
Added feed controllers, urls,and changed index page to use them.
Marcin Kuzminski <marcin@python-works.com>
parents:
181
diff
changeset
|
79 #FEEDS |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
80 map.connect('rss_feed_home', '/{repo_name:.*}/feed/rss', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
81 controller='feed', action='rss', |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
82 conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
83 map.connect('atom_feed_home', '/{repo_name:.*}/feed/atom', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
84 controller='feed', action='atom', |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
85 conditions=dict(function=check_repo)) |
205
66b20f525750
Added feed controllers, urls,and changed index page to use them.
Marcin Kuzminski <marcin@python-works.com>
parents:
181
diff
changeset
|
86 |
339
8026872a10ee
Moved admin controllers to separate module
Marcin Kuzminski <marcin@python-works.com>
parents:
336
diff
changeset
|
87 #LOGIN/LOGOUT |
181
55c875d8608b
added login logout and annotate to urls
Marcin Kuzminski <marcin@python-works.com>
parents:
162
diff
changeset
|
88 map.connect('login_home', '/login', controller='login') |
55c875d8608b
added login logout and annotate to urls
Marcin Kuzminski <marcin@python-works.com>
parents:
162
diff
changeset
|
89 map.connect('logout_home', '/logout', controller='login', action='logout') |
74
cdf4fda66dd9
Started summary page. Added filters to templates. used by n,self.f.filtername prefixed by n to disable other filters. Few other fixes found
Marcin Kuzminski <marcin@python-blog.com>
parents:
70
diff
changeset
|
90 |
339
8026872a10ee
Moved admin controllers to separate module
Marcin Kuzminski <marcin@python-works.com>
parents:
336
diff
changeset
|
91 #OTHERS |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
92 map.connect('changeset_home', '/{repo_name:.*}/changeset/{revision}', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
93 controller='changeset', revision='tip', |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
94 conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
95 map.connect('summary_home', '/{repo_name:.*}/summary', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
96 controller='summary', conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
97 map.connect('shortlog_home', '/{repo_name:.*}/shortlog', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
98 controller='shortlog', conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
99 map.connect('branches_home', '/{repo_name:.*}/branches', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
100 controller='branches', conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
101 map.connect('tags_home', '/{repo_name:.*}/tags', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
102 controller='tags', conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
103 map.connect('changelog_home', '/{repo_name:.*}/changelog', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
104 controller='changelog', conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
105 map.connect('files_home', '/{repo_name:.*}/files/{revision}/{f_path:.*}', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
106 controller='files', revision='tip', f_path='', |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
107 conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
108 map.connect('files_diff_home', '/{repo_name:.*}/diff/{f_path:.*}', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
109 controller='files', action='diff', revision='tip', f_path='', |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
110 conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
111 map.connect('files_raw_home', '/{repo_name:.*}/rawfile/{revision}/{f_path:.*}', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
112 controller='files', action='rawfile', revision='tip', f_path='', |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
113 conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
114 map.connect('files_annotate_home', '/{repo_name:.*}/annotate/{revision}/{f_path:.*}', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
115 controller='files', action='annotate', revision='tip', f_path='', |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
116 conditions=dict(function=check_repo)) |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
230
diff
changeset
|
117 map.connect('files_archive_home', '/{repo_name:.*}/archive/{revision}/{fileformat}', |
313
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
118 controller='files', action='archivefile', revision='tip', |
8f7b8e965fe4
fixed 404s added extra validator for magic repo_name path in routes
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
119 conditions=dict(function=check_repo)) |
336
05b212954275
Implemented owner settings, as separete posibility to edit repositry by non administrative owner of repository
Marcin Kuzminski <marcin@python-works.com>
parents:
319
diff
changeset
|
120 map.connect('repo_settings_update', '/{repo_name:.*}/settings', |
05b212954275
Implemented owner settings, as separete posibility to edit repositry by non administrative owner of repository
Marcin Kuzminski <marcin@python-works.com>
parents:
319
diff
changeset
|
121 controller='settings', action="update", |
05b212954275
Implemented owner settings, as separete posibility to edit repositry by non administrative owner of repository
Marcin Kuzminski <marcin@python-works.com>
parents:
319
diff
changeset
|
122 conditions=dict(method=["PUT"], function=check_repo)) |
05b212954275
Implemented owner settings, as separete posibility to edit repositry by non administrative owner of repository
Marcin Kuzminski <marcin@python-works.com>
parents:
319
diff
changeset
|
123 map.connect('repo_settings_home', '/{repo_name:.*}/settings', |
05b212954275
Implemented owner settings, as separete posibility to edit repositry by non administrative owner of repository
Marcin Kuzminski <marcin@python-works.com>
parents:
319
diff
changeset
|
124 controller='settings', action='index', |
05b212954275
Implemented owner settings, as separete posibility to edit repositry by non administrative owner of repository
Marcin Kuzminski <marcin@python-works.com>
parents:
319
diff
changeset
|
125 conditions=dict(function=check_repo)) |
05b212954275
Implemented owner settings, as separete posibility to edit repositry by non administrative owner of repository
Marcin Kuzminski <marcin@python-works.com>
parents:
319
diff
changeset
|
126 |
05b212954275
Implemented owner settings, as separete posibility to edit repositry by non administrative owner of repository
Marcin Kuzminski <marcin@python-works.com>
parents:
319
diff
changeset
|
127 |
0 | 128 return map |