diff options
| author | dirkf <fieldhouse@gmx.net> | 2023-07-25 00:22:54 +0100 | 
|---|---|---|
| committer | dirkf <fieldhouse@gmx.net> | 2023-07-25 13:19:43 +0100 | 
| commit | b87018122995acb7e6a1be3f2464605259b93611 (patch) | |
| tree | 11f47d8a9d8e32e04cf5eca2fa9c82448fff49e9 | |
| parent | a25e9f3c84a34d43f78a4e5a6f6c2e98e2a0ade3 (diff) | |
[build] Extend use of `devscripts/utils`
| -rwxr-xr-x | devscripts/bash-completion.py | 11 | ||||
| -rw-r--r-- | devscripts/create-github-release.py | 9 | ||||
| -rwxr-xr-x | devscripts/fish-completion.py | 11 | ||||
| -rwxr-xr-x | devscripts/gh-pages/add-version.py | 15 | ||||
| -rwxr-xr-x | devscripts/gh-pages/generate-download.py | 17 | ||||
| -rwxr-xr-x | devscripts/gh-pages/update-copyright.py | 17 | ||||
| -rwxr-xr-x | devscripts/gh-pages/update-feed.py | 11 | ||||
| -rwxr-xr-x | devscripts/gh-pages/update-sites.py | 11 | ||||
| -rwxr-xr-x | devscripts/make_contributing.py | 9 | ||||
| -rw-r--r-- | devscripts/make_issue_template.py | 17 | ||||
| -rwxr-xr-x | devscripts/make_readme.py | 11 | ||||
| -rw-r--r-- | devscripts/make_supportedsites.py | 15 | ||||
| -rw-r--r-- | devscripts/prepare_manpage.py | 10 | ||||
| -rwxr-xr-x | devscripts/zsh-completion.py | 8 | ||||
| -rw-r--r-- | youtube_dl/update.py | 1 | 
15 files changed, 99 insertions, 74 deletions
| diff --git a/devscripts/bash-completion.py b/devscripts/bash-completion.py index 3d1391334..7db396a77 100755 --- a/devscripts/bash-completion.py +++ b/devscripts/bash-completion.py @@ -5,8 +5,12 @@ import os  from os.path import dirname as dirn  import sys -sys.path.insert(0, dirn(dirn((os.path.abspath(__file__))))) +sys.path.insert(0, dirn(dirn(os.path.abspath(__file__)))) +  import youtube_dl +from youtube_dl.compat import compat_open as open + +from utils import read_file  BASH_COMPLETION_FILE = "youtube-dl.bash-completion"  BASH_COMPLETION_TEMPLATE = "devscripts/bash-completion.in" @@ -18,9 +22,8 @@ def build_completion(opt_parser):          for option in group.option_list:              # for every long flag              opts_flag.append(option.get_opt_string()) -    with open(BASH_COMPLETION_TEMPLATE) as f: -        template = f.read() -    with open(BASH_COMPLETION_FILE, "w") as f: +    template = read_file(BASH_COMPLETION_TEMPLATE) +    with open(BASH_COMPLETION_FILE, "w", encoding='utf-8') as f:          # just using the special char          filled_template = template.replace("{{flags}}", " ".join(opts_flag))          f.write(filled_template) diff --git a/devscripts/create-github-release.py b/devscripts/create-github-release.py index 2ddfa1096..320bcfc27 100644 --- a/devscripts/create-github-release.py +++ b/devscripts/create-github-release.py @@ -1,7 +1,6 @@  #!/usr/bin/env python  from __future__ import unicode_literals -import io  import json  import mimetypes  import netrc @@ -10,7 +9,9 @@ import os  import re  import sys -sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +dirn = os.path.dirname + +sys.path.insert(0, dirn(dirn(os.path.abspath(__file__))))  from youtube_dl.compat import (      compat_basestring, @@ -22,6 +23,7 @@ from youtube_dl.utils import (      make_HTTPS_handler,      sanitized_Request,  ) +from utils import read_file  class GitHubReleaser(object): @@ -89,8 +91,7 @@ def main():      changelog_file, version, build_path = args -    with io.open(changelog_file, encoding='utf-8') as inf: -        changelog = inf.read() +    changelog = read_file(changelog_file)      mobj = re.search(r'(?s)version %s\n{2}(.+?)\n{3}' % version, changelog)      body = mobj.group(1) if mobj else '' diff --git a/devscripts/fish-completion.py b/devscripts/fish-completion.py index 51d19dd33..267ba6a58 100755 --- a/devscripts/fish-completion.py +++ b/devscripts/fish-completion.py @@ -6,10 +6,13 @@ import os  from os.path import dirname as dirn  import sys -sys.path.insert(0, dirn(dirn((os.path.abspath(__file__))))) +sys.path.insert(0, dirn(dirn(os.path.abspath(__file__)))) +  import youtube_dl  from youtube_dl.utils import shell_quote +from utils import read_file, write_file +  FISH_COMPLETION_FILE = 'youtube-dl.fish'  FISH_COMPLETION_TEMPLATE = 'devscripts/fish-completion.in' @@ -38,11 +41,9 @@ def build_completion(opt_parser):              complete_cmd.extend(EXTRA_ARGS.get(long_option, []))              commands.append(shell_quote(complete_cmd)) -    with open(FISH_COMPLETION_TEMPLATE) as f: -        template = f.read() +    template = read_file(FISH_COMPLETION_TEMPLATE)      filled_template = template.replace('{{commands}}', '\n'.join(commands)) -    with open(FISH_COMPLETION_FILE, 'w') as f: -        f.write(filled_template) +    write_file(filled_template)  parser = youtube_dl.parseOpts()[0] diff --git a/devscripts/gh-pages/add-version.py b/devscripts/gh-pages/add-version.py index 867ea0048..b84908f85 100755 --- a/devscripts/gh-pages/add-version.py +++ b/devscripts/gh-pages/add-version.py @@ -6,16 +6,21 @@ import sys  import hashlib  import os.path +dirn = os.path.dirname + +sys.path.insert(0, dirn(dirn(dirn(os.path.abspath(__file__))))) + +from devscripts.utils import read_file, write_file +from youtube_dl.compat import compat_open as open  if len(sys.argv) <= 1:      print('Specify the version number as parameter')      sys.exit()  version = sys.argv[1] -with open('update/LATEST_VERSION', 'w') as f: -    f.write(version) +write_file('update/LATEST_VERSION', version) -versions_info = json.load(open('update/versions.json')) +versions_info = json.loads(read_file('update/versions.json'))  if 'signature' in versions_info:      del versions_info['signature'] @@ -39,5 +44,5 @@ for key, filename in filenames.items():  versions_info['versions'][version] = new_version  versions_info['latest'] = version -with open('update/versions.json', 'w') as jsonf: -    json.dump(versions_info, jsonf, indent=4, sort_keys=True) +with open('update/versions.json', 'w', encoding='utf-8') as jsonf: +    json.dumps(versions_info, jsonf, indent=4, sort_keys=True) diff --git a/devscripts/gh-pages/generate-download.py b/devscripts/gh-pages/generate-download.py index a873d32ee..3e38e9299 100755 --- a/devscripts/gh-pages/generate-download.py +++ b/devscripts/gh-pages/generate-download.py @@ -2,14 +2,21 @@  from __future__ import unicode_literals  import json +import os.path +import sys -versions_info = json.load(open('update/versions.json')) +dirn = os.path.dirname + +sys.path.insert(0, dirn(dirn((os.path.abspath(__file__))))) + +from utils import read_file, write_file + +versions_info = json.loads(read_file('update/versions.json'))  version = versions_info['latest']  version_dict = versions_info['versions'][version]  # Read template page -with open('download.html.in', 'r', encoding='utf-8') as tmplf: -    template = tmplf.read() +template = read_file('download.html.in')  template = template.replace('@PROGRAM_VERSION@', version)  template = template.replace('@PROGRAM_URL@', version_dict['bin'][0]) @@ -18,5 +25,5 @@ template = template.replace('@EXE_URL@', version_dict['exe'][0])  template = template.replace('@EXE_SHA256SUM@', version_dict['exe'][1])  template = template.replace('@TAR_URL@', version_dict['tar'][0])  template = template.replace('@TAR_SHA256SUM@', version_dict['tar'][1]) -with open('download.html', 'w', encoding='utf-8') as dlf: -    dlf.write(template) + +write_file('download.html', template) diff --git a/devscripts/gh-pages/update-copyright.py b/devscripts/gh-pages/update-copyright.py index 61487f925..444595c48 100755 --- a/devscripts/gh-pages/update-copyright.py +++ b/devscripts/gh-pages/update-copyright.py @@ -5,17 +5,22 @@ from __future__ import with_statement, unicode_literals  import datetime  import glob -import io  # For Python 2 compatibility  import os  import re +import sys -year = str(datetime.datetime.now().year) +dirn = os.path.dirname + +sys.path.insert(0, dirn(dirn(dirn(os.path.abspath(__file__))))) + +from devscripts.utils import read_file, write_file +from youtube_dl import compat_str + +year = compat_str(datetime.datetime.now().year)  for fn in glob.glob('*.html*'): -    with io.open(fn, encoding='utf-8') as f: -        content = f.read() +    content = read_file(fn)      newc = re.sub(r'(?P<copyright>Copyright © 2011-)(?P<year>[0-9]{4})', 'Copyright © 2011-' + year, content)      if content != newc:          tmpFn = fn + '.part' -        with io.open(tmpFn, 'wt', encoding='utf-8') as outf: -            outf.write(newc) +        write_file(tmpFn, newc)          os.rename(tmpFn, fn) diff --git a/devscripts/gh-pages/update-feed.py b/devscripts/gh-pages/update-feed.py index 506a62377..13a367d34 100755 --- a/devscripts/gh-pages/update-feed.py +++ b/devscripts/gh-pages/update-feed.py @@ -2,10 +2,16 @@  from __future__ import unicode_literals  import datetime -import io  import json +import os.path  import textwrap +import sys +dirn = os.path.dirname + +sys.path.insert(0, dirn(dirn(os.path.abspath(__file__)))) + +from utils import write_file  atom_template = textwrap.dedent("""\      <?xml version="1.0" encoding="utf-8"?> @@ -72,5 +78,4 @@ for v in versions:  entries_str = textwrap.indent(''.join(entries), '\t')  atom_template = atom_template.replace('@ENTRIES@', entries_str) -with io.open('update/releases.atom', 'w', encoding='utf-8') as atom_file: -    atom_file.write(atom_template) +write_file('update/releases.atom', atom_template) diff --git a/devscripts/gh-pages/update-sites.py b/devscripts/gh-pages/update-sites.py index 531c93c70..06a8a474c 100755 --- a/devscripts/gh-pages/update-sites.py +++ b/devscripts/gh-pages/update-sites.py @@ -5,15 +5,17 @@ import sys  import os  import textwrap +dirn = os.path.dirname +  # We must be able to import youtube_dl -sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +sys.path.insert(0, dirn(dirn(dirn(os.path.abspath(__file__)))))  import youtube_dl +from devscripts.utils import read_file, write_file  def main(): -    with open('supportedsites.html.in', 'r', encoding='utf-8') as tmplf: -        template = tmplf.read() +    template = read_file('supportedsites.html.in')      ie_htmls = []      for ie in youtube_dl.list_extractors(age_limit=None): @@ -29,8 +31,7 @@ def main():      template = template.replace('@SITES@', textwrap.indent('\n'.join(ie_htmls), '\t')) -    with open('supportedsites.html', 'w', encoding='utf-8') as sitesf: -        sitesf.write(template) +    write_file('supportedsites.html', template)  if __name__ == '__main__': diff --git a/devscripts/make_contributing.py b/devscripts/make_contributing.py index 226d1a5d6..5a9eb194f 100755 --- a/devscripts/make_contributing.py +++ b/devscripts/make_contributing.py @@ -1,10 +1,11 @@  #!/usr/bin/env python  from __future__ import unicode_literals -import io  import optparse  import re +from utils import read_file, write_file +  def main():      parser = optparse.OptionParser(usage='%prog INFILE OUTFILE') @@ -14,8 +15,7 @@ def main():      infile, outfile = args -    with io.open(infile, encoding='utf-8') as inf: -        readme = inf.read() +    readme = read_file(infile)      bug_text = re.search(          r'(?s)#\s*BUGS\s*[^\n]*\s*(.*?)#\s*COPYRIGHT', readme).group(1) @@ -25,8 +25,7 @@ def main():      out = bug_text + dev_text -    with io.open(outfile, 'w', encoding='utf-8') as outf: -        outf.write(out) +    write_file(outfile, out)  if __name__ == '__main__': diff --git a/devscripts/make_issue_template.py b/devscripts/make_issue_template.py index b7ad23d83..65fa8169f 100644 --- a/devscripts/make_issue_template.py +++ b/devscripts/make_issue_template.py @@ -1,8 +1,11 @@  #!/usr/bin/env python  from __future__ import unicode_literals -import io  import optparse +import os.path +import sys + +from utils import read_file, read_version, write_file  def main(): @@ -13,17 +16,11 @@ def main():      infile, outfile = args -    with io.open(infile, encoding='utf-8') as inf: -        issue_template_tmpl = inf.read() - -    # Get the version from youtube_dl/version.py without importing the package -    exec(compile(open('youtube_dl/version.py').read(), -                 'youtube_dl/version.py', 'exec')) +    issue_template_tmpl = read_file(infile) -    out = issue_template_tmpl % {'version': locals()['__version__']} +    out = issue_template_tmpl % {'version': read_version()} -    with io.open(outfile, 'w', encoding='utf-8') as outf: -        outf.write(out) +    write_file(outfile, out)  if __name__ == '__main__':      main() diff --git a/devscripts/make_readme.py b/devscripts/make_readme.py index c5d5dd4f1..7a5b04dcc 100755 --- a/devscripts/make_readme.py +++ b/devscripts/make_readme.py @@ -1,9 +1,13 @@  from __future__ import unicode_literals -import io -import sys +import os.path  import re +import sys +dirn = os.path.dirname + +sys.path.insert(0, dirn(dirn(os.path.abspath(__file__)))) +from utils import read_file  from youtube_dl.compat import compat_open as open  README_FILE = 'README.md' @@ -12,8 +16,7 @@ helptext = sys.stdin.read()  if isinstance(helptext, bytes):      helptext = helptext.decode('utf-8') -with io.open(README_FILE, encoding='utf-8') as f: -    oldreadme = f.read() +oldreadme = read_file(README_FILE)  header = oldreadme[:oldreadme.index('# OPTIONS')]  footer = oldreadme[oldreadme.index('# CONFIGURATION'):] diff --git a/devscripts/make_supportedsites.py b/devscripts/make_supportedsites.py index 764795bc5..c424d18d7 100644 --- a/devscripts/make_supportedsites.py +++ b/devscripts/make_supportedsites.py @@ -1,17 +1,19 @@  #!/usr/bin/env python  from __future__ import unicode_literals -import io  import optparse -import os +import os.path  import sys -  # Import youtube_dl -ROOT_DIR = os.path.join(os.path.dirname(__file__), '..') -sys.path.insert(0, ROOT_DIR) +dirn = os.path.dirname + +sys.path.insert(0, dirn(dirn(os.path.abspath(__file__)))) +  import youtube_dl +from utils import write_file +  def main():      parser = optparse.OptionParser(usage='%prog OUTFILE.md') @@ -38,8 +40,7 @@ def main():          ' - ' + md + '\n'          for md in gen_ies_md(ies)) -    with io.open(outfile, 'w', encoding='utf-8') as outf: -        outf.write(out) +    write_file(outfile, out)  if __name__ == '__main__': diff --git a/devscripts/prepare_manpage.py b/devscripts/prepare_manpage.py index 76bf873e1..0090ada3e 100644 --- a/devscripts/prepare_manpage.py +++ b/devscripts/prepare_manpage.py @@ -1,13 +1,13 @@  from __future__ import unicode_literals -import io  import optparse  import os.path  import re +from utils import read_file, write_file +  ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  README_FILE = os.path.join(ROOT_DIR, 'README.md') -  PREFIX = r'''%YOUTUBE-DL(1)  # NAME @@ -29,8 +29,7 @@ def main():      outfile, = args -    with io.open(README_FILE, encoding='utf-8') as f: -        readme = f.read() +    readme = read_file(README_FILE)      readme = re.sub(r'(?s)^.*?(?=# DESCRIPTION)', '', readme)      readme = re.sub(r'\s+youtube-dl \[OPTIONS\] URL \[URL\.\.\.\]', '', readme) @@ -38,8 +37,7 @@ def main():      readme = filter_options(readme) -    with io.open(outfile, 'w', encoding='utf-8') as outf: -        outf.write(readme) +    write_file(outfile, readme)  def filter_options(readme): diff --git a/devscripts/zsh-completion.py b/devscripts/zsh-completion.py index 60aaf76cc..ebd552fcb 100755 --- a/devscripts/zsh-completion.py +++ b/devscripts/zsh-completion.py @@ -7,6 +7,8 @@ import sys  sys.path.insert(0, dirn(dirn((os.path.abspath(__file__)))))  import youtube_dl +from utils import read_file, write_file +  ZSH_COMPLETION_FILE = "youtube-dl.zsh"  ZSH_COMPLETION_TEMPLATE = "devscripts/zsh-completion.in" @@ -34,15 +36,13 @@ def build_completion(opt_parser):      flags = [opt.get_opt_string() for opt in opts] -    with open(ZSH_COMPLETION_TEMPLATE) as f: -        template = f.read() +    template = read_file(ZSH_COMPLETION_TEMPLATE)      template = template.replace("{{fileopts}}", "|".join(fileopts))      template = template.replace("{{diropts}}", "|".join(diropts))      template = template.replace("{{flags}}", " ".join(flags)) -    with open(ZSH_COMPLETION_FILE, "w") as f: -        f.write(template) +    write_file(ZSH_COMPLETION_FILE, template)  parser = youtube_dl.parseOpts()[0] diff --git a/youtube_dl/update.py b/youtube_dl/update.py index b5f26e4a9..a147b5253 100644 --- a/youtube_dl/update.py +++ b/youtube_dl/update.py @@ -1,6 +1,5 @@  from __future__ import unicode_literals -import io  import json  import traceback  import hashlib | 
