##// END OF EJS Templates
update notebook api tests...
update notebook api tests with creation URL changes also use unicode as the default name in tests, to increase likelihood of catching unicode bugs.

File last commit:

r13068:87a99254
r13130:76f76016
Show More
utils.py
66 lines | 1.9 KiB | text/x-python | PythonLexer
Brian E. Granger
Splitting handlers into different files....
r10642 """Notebook related utilities
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2011 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
MinRK
add path2url and url2path to html.utils
r13054 import os
from urllib import quote, unquote
Brian E. Granger
Splitting handlers into different files....
r10642 #-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
def url_path_join(*pieces):
"""Join components of url into a relative url
Use to prevent double slash when joining subpath. This will leave the
initial and final / in place
"""
initial = pieces[0].startswith('/')
final = pieces[-1].endswith('/')
MinRK
add path2url and url2path to html.utils
r13054 stripped = [s.strip('/') for s in pieces]
result = '/'.join(s for s in stripped if s)
Brian E. Granger
Splitting handlers into different files....
r10642 if initial: result = '/' + result
if final: result = result + '/'
Brian E. Granger
Fixing url join problems.
r10644 if result == '//': result = '/'
Brian E. Granger
Splitting handlers into different files....
r10642 return result
MinRK
add path2url and url2path to html.utils
r13054
def path2url(path):
"""Convert a local file path to a URL"""
pieces = [ quote(p) for p in path.split(os.path.sep) ]
# preserve trailing /
if pieces[-1] == '':
pieces[-1] = '/'
url = url_path_join(*pieces)
return url
def url2path(url):
"""Convert a URL to a local file path"""
pieces = [ unquote(p) for p in url.split('/') ]
path = os.path.join(*pieces)
return path
MinRK
move url_[un]escape to utils from nbm
r13068 def url_escape(path):
"""Escape special characters in a URL path
Turns '/foo bar/' into '/foo%20bar/'
"""
parts = path.split('/')
return '/'.join([quote(p) for p in parts])
def url_unescape(path):
"""Unescape special characters in a URL path
Turns '/foo%20bar/' into '/foo bar/'
"""
return '/'.join([unquote(p) for p in path.split('/')])