| Index: third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/utils.py
|
| diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/utils.py b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/utils.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d9be750e416935550e4442812b52531c709190bd
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/tools/manifest/utils.py
|
| @@ -0,0 +1,51 @@
|
| +import platform
|
| +import os
|
| +
|
| +from six import BytesIO
|
| +
|
| +def rel_path_to_url(rel_path, url_base="/"):
|
| + assert not os.path.isabs(rel_path)
|
| + if url_base[0] != "/":
|
| + url_base = "/" + url_base
|
| + if url_base[-1] != "/":
|
| + url_base += "/"
|
| + return url_base + rel_path.replace(os.sep, "/")
|
| +
|
| +
|
| +def from_os_path(path):
|
| + assert os.path.sep == "/" or platform.system() == "Windows"
|
| + rv = path.replace(os.path.sep, "/")
|
| + if "\\" in rv:
|
| + raise ValueError("path contains \\ when separator is %s" % os.path.sep)
|
| + return rv
|
| +
|
| +
|
| +def to_os_path(path):
|
| + assert os.path.sep == "/" or platform.system() == "Windows"
|
| + if "\\" in path:
|
| + raise ValueError("normalised path contains \\")
|
| + return path.replace("/", os.path.sep)
|
| +
|
| +
|
| +class ContextManagerBytesIO(BytesIO):
|
| + def __enter__(self):
|
| + return self
|
| +
|
| + def __exit__(self, *args, **kwargs):
|
| + self.close()
|
| +
|
| +
|
| +class cached_property(object):
|
| + def __init__(self, func):
|
| + self.func = func
|
| + self.__doc__ = getattr(func, "__doc__")
|
| + self.name = func.__name__
|
| +
|
| + def __get__(self, obj, cls=None):
|
| + if obj is None:
|
| + return self
|
| +
|
| + if self.name not in obj.__dict__:
|
| + obj.__dict__[self.name] = self.func(obj)
|
| + obj.__dict__.setdefault("__cached_properties__", set()).add(self.name)
|
| + return obj.__dict__[self.name]
|
|
|