youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit b3ed15b7604ce83e85b791ed329c5725a436b805
parent 666a9a2b954bb6c75a5fcdb9fbb18842038c188a
Author: Sergey M․ <dstftw@gmail.com>
Date:   Sat,  2 May 2015 23:23:06 +0600

[utils] Add replace_extension

Diffstat:
Mtest/test_utils.py | 9+++++++++
Myoutube_dl/utils.py | 7+++++++
2 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/test/test_utils.py b/test/test_utils.py @@ -42,6 +42,7 @@ from youtube_dl.utils import ( sanitize_path, sanitize_url_path_consecutive_slashes, prepend_extension, + replace_extension, shell_quote, smuggle_url, str_to_int, @@ -202,6 +203,14 @@ class TestUtil(unittest.TestCase): self.assertEqual(prepend_extension('.abc', 'temp'), '.abc.temp') self.assertEqual(prepend_extension('.abc.ext', 'temp'), '.abc.temp.ext') + def test_replace_extension(self): + self.assertEqual(replace_extension('abc.ext', 'temp'), 'abc.temp') + self.assertEqual(replace_extension('abc.ext', 'temp', 'ext'), 'abc.temp') + self.assertEqual(replace_extension('abc.unexpected_ext', 'temp', 'ext'), 'abc.unexpected_ext.temp') + self.assertEqual(replace_extension('abc', 'temp'), 'abc.temp') + self.assertEqual(replace_extension('.abc', 'temp'), '.abc.temp') + self.assertEqual(replace_extension('.abc.ext', 'temp'), '.abc.temp') + def test_ordered_set(self): self.assertEqual(orderedSet([1, 1, 2, 3, 4, 4, 5, 6, 7, 3, 5]), [1, 2, 3, 4, 5, 6, 7]) self.assertEqual(orderedSet([]), []) diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py @@ -1357,6 +1357,13 @@ def prepend_extension(filename, ext, expected_real_ext=None): else '{0}.{1}'.format(filename, ext)) +def replace_extension(filename, ext, expected_real_ext=None): + name, real_ext = os.path.splitext(filename) + return '{0}.{1}'.format( + name if not expected_real_ext or real_ext[1:] == expected_real_ext else filename, + ext) + + def check_executable(exe, args=[]): """ Checks if the given binary is installed somewhere in PATH, and returns its name. args can be a list of arguments for a short output (like -version) """