def search_sub(filename): f=File(path+filename) content = [{'sublanguageid':language,'moviebytesize':f.size ,'moviehash':f.get_hash()}] try: datarcv = Os1.search_subs(content) downlink = datarcv['data'][0]['SubDownloadLink'] #Downloading zip file urllib.urlretrieve(downlink, 'subtemp.gz') #Unzip de subtitle file in directory inF = gzip.GzipFile('subtemp.gz', 'rb') s = inF.read() inF.close() filenamesrt = filename[0:len(filename)-4] + '.' + language_ext + '.srt' outF = file(path+filenamesrt, 'wb') outF.write(s) outF.close() print fn + ' -> ' + bcolors.OKGREEN + 'Download OK' + bcolors.ENDC except: print fn + ' -> ' + bcolors.WARNING + 'No subtitle found' + bcolors.ENDC
def main(): parser = argparse.ArgumentParser() parser.add_argument("--discover", action="append", nargs="+", default=[]) parser.add_argument("--modules", action="append", nargs="+", default=[]) parser.add_argument("--exclude", action="append", nargs="+", default=[]) parser.add_argument("--interlink", action="append", default=[]) parser.add_argument("--rst", default=None) parser.add_argument("--html", default=None) parser.add_argument("--skip-failed", action="store_true") parser.add_argument("--theme", default=None) parser.add_argument("--title", default=None) make_switch(parser, "inheritance", False) make_switch(parser, "mro", True) make_switch(parser, "overrides", True) args = parser.parse_args() args.discover = flatten(args.discover) args.modules = flatten(args.modules) args.exclude = flatten(args.exclude) #output_dir = File(args.output) #output_dir.create_folder(ignore_existing=True, recursive=True) if not (args.modules or args.discover): print "Error: need one of --modules or --discover." print "Use --help for more info." sys.exit(1) module_names = set() for folder_name in args.discover: folder = File(folder_name) # Add the folder to the path so we can import things from it sys.path.insert(0, folder.path) print "Discovering packages and modules in %r..." % folder.path for thing in folder.recurse(lambda f: YIELD if f.name.endswith(".py") and not f.name.startswith("__") and f != folder.child("setup.py") else True if f.child("__init__.py").exists else RECURSE if f == folder else SKIP): name = thing.get_path(relative_to=folder, separator=".") # Strip off trailing ".py" for modules if thing.is_file: name = name[:-3] print "Discovered package/module %s" % name module_names.add(name) for name in args.modules: print "Including module %s on request" % name module_names.add(name) exclude = set(args.exclude) for name in set(module_names): current = name # See if the module or any of its parent packages are in the exclude # list while current: if current in exclude: print "Excluding %s on request" % name module_names.discard(name) break current, _, _ = current.rpartition(".") modules = set() for module_name in module_names: print "Importing %s" % module_name try: module = importlib.import_module(module_name) except: if args.skip_failed: print "IMPORT FAILED, ignoring." else: raise else: modules.add(module) modules = sorted(modules, key=lambda m: m.__name__) print "Final list of modules to document: %s" % ", ".join(m.__name__ for m in modules) if args.rst: rst = File(args.rst) rst.delete(ignore_missing=True) else: rst = create_temporary_folder(delete_on_exit=True) rst.create_folder(ignore_existing=True, recursive=True) module_dir = rst.child("modules") module_dir.create_folder(True, True) # conf = "project = {0!r}\n".format("Test Project") with rst.child("conf.py").open("wb") as f: extensions = [] if args.title: f.write("project = {0!r}\n".format(args.title)) if args.theme: f.write("html_theme = {0!r}\n".format(args.theme)) if args.interlink: extensions.append("sphinx.ext.intersphinx") intersphinx_mapping = {} for url in args.interlink: # We're not supporting explicit keys for now, so just use the # URL to make sure we've got a unique one. Perhaps in the # future I'll add something like --named-interlink <name> <url> # to support qualified interlinking. intersphinx_mapping[url] = (url, None) f.write("intersphinx_mapping = {0!r}\n".format(intersphinx_mapping)) f.write("intersphinx_cache_limit = 0\n") f.write("extensions = {0!r}\n".format(extensions)) with rst.child("contents.rst").open("wb") as contents: contents.write(".. toctree::\n") for module in modules: contents.write(" modules/{0}.rst\n".format(module.__name__)) for module in modules: with module_dir.child(module.__name__ + ".rst").open("wb") as m: display_module(module, m, 0, args) if args.html: html = File(args.html) html.delete(ignore_missing=True) html.create_folder(recursive=True) with rst.as_working: subprocess.check_output(["sphinx-build", "-b", "html", rst.path, html.path]) # Include a simple index.html that redirects to py-modindex.html. I'll # likely make the index page's content configurable at some point. html.child("index.html").write(""" <html> <head> <meta http-equiv="refresh" content="0; url=py-modindex.html"/> </head> <body> <a href="py-modindex.html">py-modindex.html</a> </body> </html>""")
import argparse from fileutils import File, YIELD, SKIP, RECURSE, create_temporary_folder import importlib import inspect from singledispatch import singledispatch import types import pydoc from collections import namedtuple import sys import subprocess FILE = File(__file__) MethodWrapper = namedtuple("MethodWrapper", ["function"]) PropertyWrapper = namedtuple("PropertyWrapper", ["name", "prop"]) def make_switch(parser, name, default): parser.add_argument("--" + name, action="store_const", dest=name.replace("-", "_"), const=True, default=default) parser.add_argument("--no-" + name, action="store_const", dest=name.replace("-", "_"), const=False, default=default) def flatten(list): return [v for l in list for v in l] def main(): parser = argparse.ArgumentParser() parser.add_argument("--discover", action="append", nargs="+", default=[]) parser.add_argument("--modules", action="append", nargs="+", default=[]) parser.add_argument("--exclude", action="append", nargs="+", default=[]) parser.add_argument("--interlink", action="append", default=[])