[utils] Introduce expand_path
This commit is contained in:
		| @@ -56,6 +56,7 @@ from youtube_dl.utils import ( | |||||||
|     read_batch_urls, |     read_batch_urls, | ||||||
|     sanitize_filename, |     sanitize_filename, | ||||||
|     sanitize_path, |     sanitize_path, | ||||||
|  |     expand_path, | ||||||
|     prepend_extension, |     prepend_extension, | ||||||
|     replace_extension, |     replace_extension, | ||||||
|     remove_start, |     remove_start, | ||||||
| @@ -95,6 +96,8 @@ from youtube_dl.utils import ( | |||||||
| from youtube_dl.compat import ( | from youtube_dl.compat import ( | ||||||
|     compat_chr, |     compat_chr, | ||||||
|     compat_etree_fromstring, |     compat_etree_fromstring, | ||||||
|  |     compat_getenv, | ||||||
|  |     compat_setenv, | ||||||
|     compat_urlparse, |     compat_urlparse, | ||||||
|     compat_parse_qs, |     compat_parse_qs, | ||||||
| ) | ) | ||||||
| @@ -214,6 +217,13 @@ class TestUtil(unittest.TestCase): | |||||||
|         self.assertEqual(sanitize_path('./abc'), 'abc') |         self.assertEqual(sanitize_path('./abc'), 'abc') | ||||||
|         self.assertEqual(sanitize_path('./../abc'), '..\\abc') |         self.assertEqual(sanitize_path('./../abc'), '..\\abc') | ||||||
|  |  | ||||||
|  |     def test_expand_path(self): | ||||||
|  |         compat_setenv('YOUTUBE-DL-EXPATH-PATH', 'expanded') | ||||||
|  |         self.assertEqual(expand_path('%YOUTUBE-DL-EXPATH-PATH%'), 'expanded') | ||||||
|  |         self.assertEqual(expand_path('%HOMEPATH%'), compat_getenv('HOMEPATH')) | ||||||
|  |         self.assertEqual(expand_path('~'), compat_getenv('HOME')) | ||||||
|  |         self.assertEqual(expand_path('~/%YOUTUBE-DL-EXPATH-PATH%'), '%s/expanded' % compat_getenv('HOME')) | ||||||
|  |  | ||||||
|     def test_prepend_extension(self): |     def test_prepend_extension(self): | ||||||
|         self.assertEqual(prepend_extension('abc.ext', 'temp'), 'abc.temp.ext') |         self.assertEqual(prepend_extension('abc.ext', 'temp'), 'abc.temp.ext') | ||||||
|         self.assertEqual(prepend_extension('abc.ext', 'temp', 'ext'), 'abc.temp.ext') |         self.assertEqual(prepend_extension('abc.ext', 'temp', 'ext'), 'abc.temp.ext') | ||||||
|   | |||||||
| @@ -39,6 +39,7 @@ from .compat import ( | |||||||
|     compat_basestring, |     compat_basestring, | ||||||
|     compat_chr, |     compat_chr, | ||||||
|     compat_etree_fromstring, |     compat_etree_fromstring, | ||||||
|  |     compat_expanduser, | ||||||
|     compat_html_entities, |     compat_html_entities, | ||||||
|     compat_html_entities_html5, |     compat_html_entities_html5, | ||||||
|     compat_http_client, |     compat_http_client, | ||||||
| @@ -539,6 +540,11 @@ def sanitized_Request(url, *args, **kwargs): | |||||||
|     return compat_urllib_request.Request(sanitize_url(url), *args, **kwargs) |     return compat_urllib_request.Request(sanitize_url(url), *args, **kwargs) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def expand_path(s): | ||||||
|  |     """Expand shell variables and ~""" | ||||||
|  |     return os.path.expandvars(compat_expanduser(s)) | ||||||
|  |  | ||||||
|  |  | ||||||
| def orderedSet(iterable): | def orderedSet(iterable): | ||||||
|     """ Remove all duplicates from the input iterable """ |     """ Remove all duplicates from the input iterable """ | ||||||
|     res = [] |     res = [] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․