Browse Source

Restoring authorship annotation for <dvshkurko@yandex-team.ru>. Commit 1 of 2.

dvshkurko 3 years ago
parent
commit
321ee9bce3

+ 5 - 5
build/docs/empty/ya.make

@@ -1,5 +1,5 @@
-UNION()
-
-OWNER(g:ymake)
-
-END()
+UNION() 
+ 
+OWNER(g:ymake) 
+ 
+END() 

+ 9 - 9
build/plugins/java.py

@@ -180,15 +180,15 @@ def onjava_module(unit, *args):
             ymake.report_configure_error('{}: JDK export supported only for JAVA_PROGRAM module type'.format(unit.path()))
         data['WITH_JDK'] = extract_macro_calls(unit, 'WITH_JDK_VALUE', args_delim)
 
-    if not data['EXTERNAL_JAR']:
-        has_processor = extract_macro_calls(unit, 'GENERATE_VCS_JAVA_INFO_NODEP', args_delim)
-        data['EMBED_VCS'] = [[str(has_processor and has_processor[0] and has_processor[0][0])]]
-        # FORCE_VCS_INFO_UPDATE is responsible for setting special value of VCS_INFO_DISABLE_CACHE__NO_UID__
-        macro_val = extract_macro_calls(unit, 'FORCE_VCS_INFO_UPDATE', args_delim)
-        macro_str = macro_val[0][0] if macro_val and macro_val[0] and macro_val[0][0] else ''
-        if macro_str and macro_str == 'yes':
-            data['VCS_INFO_DISABLE_CACHE__NO_UID__'] = macro_val
-
+    if not data['EXTERNAL_JAR']: 
+        has_processor = extract_macro_calls(unit, 'GENERATE_VCS_JAVA_INFO_NODEP', args_delim) 
+        data['EMBED_VCS'] = [[str(has_processor and has_processor[0] and has_processor[0][0])]] 
+        # FORCE_VCS_INFO_UPDATE is responsible for setting special value of VCS_INFO_DISABLE_CACHE__NO_UID__ 
+        macro_val = extract_macro_calls(unit, 'FORCE_VCS_INFO_UPDATE', args_delim) 
+        macro_str = macro_val[0][0] if macro_val and macro_val[0] and macro_val[0][0] else '' 
+        if macro_str and macro_str == 'yes': 
+            data['VCS_INFO_DISABLE_CACHE__NO_UID__'] = macro_val 
+ 
     for java_srcs_args in data['JAVA_SRCS']:
         external = None
 

+ 157 - 157
build/scripts/c_templates/svn_interface.c

@@ -1,79 +1,79 @@
-// Used indirectly. See build/scripts/vcs_info.py
-// ya-bin dump vcs-info > vcs.json
+// Used indirectly. See build/scripts/vcs_info.py 
+// ya-bin dump vcs-info > vcs.json 
 // python build/scripts/vcs_info.py vcs.json out.c build/scripts/c_templates/svn_interface.c <any_prefix>library/cpp/svnversion<any_suffix>
-
-
-#include "build/scripts/c_templates/svnversion.h"
-
-#define STR1(x) #x
-#define STR2(x) STR1(x)
-
-const char* GetProgramSvnVersion() {
-#if defined(REVISION)
-// for package systems generating from svn export but providing REVISION macro
-#define STRREVISION STR2(REVISION)
-#define REVISIONINFO "r" STRREVISION
-#if defined(PROGRAM_VERSION)
-    return PROGRAM_VERSION "\n\n" REVISIONINFO;
-#else
-    return REVISIONINFO " "__DATE__
-                        " "__TIME__;
-#endif
-#elif defined(PROGRAM_VERSION)
-    return PROGRAM_VERSION;
-#else
-    return "No program version found";
-#endif
-}
-
-const char* GetArcadiaSourcePath() {
-#if defined(ARCADIA_SOURCE_PATH)
-    return ARCADIA_SOURCE_PATH;
-#else
-    return "";
-#endif
-}
-
-const char* GetArcadiaSourceUrl() {
-#if defined(ARCADIA_SOURCE_URL)
-    return ARCADIA_SOURCE_URL;
-#else
-    return "";
-#endif
-}
-
-int GetArcadiaLastChangeNum() {
-#if defined(ARCADIA_SOURCE_LAST_CHANGE)
-    return ARCADIA_SOURCE_LAST_CHANGE;
-#else
-    return 0;
-#endif
-}
-
-const char* GetArcadiaLastChange() {
-#if defined(ARCADIA_SOURCE_LAST_CHANGE)
-    return STR2(ARCADIA_SOURCE_LAST_CHANGE);
-#else
-    return "";
-#endif
-}
-
-const char* GetArcadiaLastAuthor() {
-#if defined(ARCADIA_SOURCE_LAST_AUTHOR)
-    return ARCADIA_SOURCE_LAST_AUTHOR;
-#else
-    return "";
-#endif
-}
-
-int GetProgramSvnRevision() {
-#if defined(ARCADIA_SOURCE_REVISION)
-    return ARCADIA_SOURCE_REVISION;
-#else
-    return 0;
-#endif
-}
-
+ 
+ 
+#include "build/scripts/c_templates/svnversion.h" 
+ 
+#define STR1(x) #x 
+#define STR2(x) STR1(x) 
+ 
+const char* GetProgramSvnVersion() { 
+#if defined(REVISION) 
+// for package systems generating from svn export but providing REVISION macro 
+#define STRREVISION STR2(REVISION) 
+#define REVISIONINFO "r" STRREVISION 
+#if defined(PROGRAM_VERSION) 
+    return PROGRAM_VERSION "\n\n" REVISIONINFO; 
+#else 
+    return REVISIONINFO " "__DATE__ 
+                        " "__TIME__; 
+#endif 
+#elif defined(PROGRAM_VERSION) 
+    return PROGRAM_VERSION; 
+#else 
+    return "No program version found"; 
+#endif 
+} 
+ 
+const char* GetArcadiaSourcePath() { 
+#if defined(ARCADIA_SOURCE_PATH) 
+    return ARCADIA_SOURCE_PATH; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
+const char* GetArcadiaSourceUrl() { 
+#if defined(ARCADIA_SOURCE_URL) 
+    return ARCADIA_SOURCE_URL; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
+int GetArcadiaLastChangeNum() { 
+#if defined(ARCADIA_SOURCE_LAST_CHANGE) 
+    return ARCADIA_SOURCE_LAST_CHANGE; 
+#else 
+    return 0; 
+#endif 
+} 
+ 
+const char* GetArcadiaLastChange() { 
+#if defined(ARCADIA_SOURCE_LAST_CHANGE) 
+    return STR2(ARCADIA_SOURCE_LAST_CHANGE); 
+#else 
+    return ""; 
+#endif 
+} 
+ 
+const char* GetArcadiaLastAuthor() { 
+#if defined(ARCADIA_SOURCE_LAST_AUTHOR) 
+    return ARCADIA_SOURCE_LAST_AUTHOR; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
+int GetProgramSvnRevision() { 
+#if defined(ARCADIA_SOURCE_REVISION) 
+    return ARCADIA_SOURCE_REVISION; 
+#else 
+    return 0; 
+#endif 
+} 
+ 
 const char* GetVCSDirty()
 {
 #if defined(DIRTY)
@@ -83,33 +83,33 @@ const char* GetVCSDirty()
 #endif
 }
 
-const char* GetProgramHash() {
-#if defined(ARCADIA_SOURCE_HG_HASH)
-    return ARCADIA_SOURCE_HG_HASH;
-#else
-    return "";
-#endif
-}
-
-const char* GetProgramCommitId() {
-#if defined(ARCADIA_SOURCE_REVISION)
-    if (ARCADIA_SOURCE_REVISION <= 0) {
-        return GetProgramHash();
-    }
-    return STR2(ARCADIA_SOURCE_REVISION);
-#else
-    return GetProgramHash();
-#endif
-}
-
-const char* GetProgramScmData() {
-#if defined(SCM_DATA)
-    return SCM_DATA;
-#else
-    return "";
-#endif
-}
-
+const char* GetProgramHash() { 
+#if defined(ARCADIA_SOURCE_HG_HASH) 
+    return ARCADIA_SOURCE_HG_HASH; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
+const char* GetProgramCommitId() { 
+#if defined(ARCADIA_SOURCE_REVISION) 
+    if (ARCADIA_SOURCE_REVISION <= 0) { 
+        return GetProgramHash(); 
+    } 
+    return STR2(ARCADIA_SOURCE_REVISION); 
+#else 
+    return GetProgramHash(); 
+#endif 
+} 
+ 
+const char* GetProgramScmData() { 
+#if defined(SCM_DATA) 
+    return SCM_DATA; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
 const char* GetProgramShortVersionData() {
 #if defined(SVN_REVISION) && defined(SVN_TIME)
     return STR2(SVN_REVISION) " (" SVN_TIME ")";
@@ -118,30 +118,30 @@ const char* GetProgramShortVersionData() {
 #endif
 }
 
-const char* GetProgramBuildUser() {
-#if defined(BUILD_USER)
-    return BUILD_USER;
-#else
-    return "";
-#endif
-}
-
-const char* GetProgramBuildHost() {
-#if defined(BUILD_HOST)
-    return BUILD_HOST;
-#else
-    return "";
-#endif
-}
-
-const char* GetProgramBuildDate() {
-#if defined(BUILD_DATE)
-    return BUILD_DATE;
-#else
-    return "";
-#endif
-}
-
+const char* GetProgramBuildUser() { 
+#if defined(BUILD_USER) 
+    return BUILD_USER; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
+const char* GetProgramBuildHost() { 
+#if defined(BUILD_HOST) 
+    return BUILD_HOST; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
+const char* GetProgramBuildDate() { 
+#if defined(BUILD_DATE) 
+    return BUILD_DATE; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
 int GetProgramBuildTimestamp() {
 #if defined(BUILD_TIMESTAMP)
     return BUILD_TIMESTAMP;
@@ -151,34 +151,34 @@ int GetProgramBuildTimestamp() {
 }
 
 
-const char* GetVCS() {
-#if defined(VCS)
-    return VCS;
-#else
-    return "";
-#endif
-}
-
-const char* GetBranch() {
-#if defined(BRANCH)
-    return BRANCH;
-#else
-    return "";
-#endif
-}
-
-int GetArcadiaPatchNumber() {
-#if defined(ARCADIA_PATCH_NUMBER)
-    return ARCADIA_PATCH_NUMBER;
-#else
-    return 42;
-#endif
-}
-
-const char* GetTag() {
-#if defined(ARCADIA_TAG)
-    return ARCADIA_TAG;
-#else
-    return "";
-#endif
-}
+const char* GetVCS() { 
+#if defined(VCS) 
+    return VCS; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
+const char* GetBranch() { 
+#if defined(BRANCH) 
+    return BRANCH; 
+#else 
+    return ""; 
+#endif 
+} 
+ 
+int GetArcadiaPatchNumber() { 
+#if defined(ARCADIA_PATCH_NUMBER) 
+    return ARCADIA_PATCH_NUMBER; 
+#else 
+    return 42; 
+#endif 
+} 
+ 
+const char* GetTag() { 
+#if defined(ARCADIA_TAG) 
+    return ARCADIA_TAG; 
+#else 
+    return ""; 
+#endif 
+} 

+ 39 - 39
build/scripts/c_templates/svnversion.h

@@ -1,42 +1,42 @@
-#pragma once
-
-// Permit compilation with NO_UTIL():
-// util/system/compiler.h
-#if !defined(Y_HIDDEN)
-#if defined(__GNUC__)
-#define Y_HIDDEN __attribute__((visibility("hidden")))
-#else
-#define Y_HIDDEN
-#endif
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-const char* GetProgramSvnVersion() Y_HIDDEN; // verbose multiline message
-void PrintProgramSvnVersion() Y_HIDDEN;
-const char* GetArcadiaSourcePath() Y_HIDDEN; // "/home/myltsev/arcadia"
-const char* GetArcadiaSourceUrl() Y_HIDDEN;  // "svn+ssh://arcadia.yandex.ru/arc/trunk/arcadia"
-const char* GetArcadiaLastChange() Y_HIDDEN; // "2902074"
-int GetArcadiaLastChangeNum() Y_HIDDEN; // 2902074
-const char* GetArcadiaLastAuthor() Y_HIDDEN; // "dieash"
-int   GetProgramSvnRevision() Y_HIDDEN;     // 2902074
+#pragma once 
+ 
+// Permit compilation with NO_UTIL(): 
+// util/system/compiler.h 
+#if !defined(Y_HIDDEN) 
+#if defined(__GNUC__) 
+#define Y_HIDDEN __attribute__((visibility("hidden"))) 
+#else 
+#define Y_HIDDEN 
+#endif 
+#endif 
+ 
+#if defined(__cplusplus) 
+extern "C" { 
+#endif 
+const char* GetProgramSvnVersion() Y_HIDDEN; // verbose multiline message 
+void PrintProgramSvnVersion() Y_HIDDEN; 
+const char* GetArcadiaSourcePath() Y_HIDDEN; // "/home/myltsev/arcadia" 
+const char* GetArcadiaSourceUrl() Y_HIDDEN;  // "svn+ssh://arcadia.yandex.ru/arc/trunk/arcadia" 
+const char* GetArcadiaLastChange() Y_HIDDEN; // "2902074" 
+int GetArcadiaLastChangeNum() Y_HIDDEN; // 2902074 
+const char* GetArcadiaLastAuthor() Y_HIDDEN; // "dieash" 
+int   GetProgramSvnRevision() Y_HIDDEN;     // 2902074 
 const char* GetVCSDirty() Y_HIDDEN;
-const char* GetProgramHash() Y_HIDDEN;
-const char* GetProgramCommitId() Y_HIDDEN;
-void PrintSvnVersionAndExit(int argc, char* argv[]) Y_HIDDEN;
-void PrintSvnVersionAndExitEx(int argc, char* argv[], const char* opts) Y_HIDDEN;
-void PrintSvnVersionAndExit0() Y_HIDDEN;
-const char* GetProgramScmData() Y_HIDDEN; // verbose multiline message
+const char* GetProgramHash() Y_HIDDEN; 
+const char* GetProgramCommitId() Y_HIDDEN; 
+void PrintSvnVersionAndExit(int argc, char* argv[]) Y_HIDDEN; 
+void PrintSvnVersionAndExitEx(int argc, char* argv[], const char* opts) Y_HIDDEN; 
+void PrintSvnVersionAndExit0() Y_HIDDEN; 
+const char* GetProgramScmData() Y_HIDDEN; // verbose multiline message 
 const char* GetProgramShortVersionData() Y_HIDDEN;
-const char* GetProgramBuildUser() Y_HIDDEN;
-const char* GetProgramBuildHost() Y_HIDDEN;
-const char* GetProgramBuildDate() Y_HIDDEN;
+const char* GetProgramBuildUser() Y_HIDDEN; 
+const char* GetProgramBuildHost() Y_HIDDEN; 
+const char* GetProgramBuildDate() Y_HIDDEN; 
 int GetProgramBuildTimestamp() Y_HIDDEN;
-const char* GetVCS() Y_HIDDEN;
-const char* GetBranch() Y_HIDDEN;
-const char* GetTag() Y_HIDDEN;
-int GetArcadiaPatchNumber() Y_HIDDEN;
-#if defined(__cplusplus)
-}
-#endif
+const char* GetVCS() Y_HIDDEN; 
+const char* GetBranch() Y_HIDDEN; 
+const char* GetTag() Y_HIDDEN; 
+int GetArcadiaPatchNumber() Y_HIDDEN; 
+#if defined(__cplusplus) 
+} 
+#endif 

+ 5 - 5
build/scripts/c_templates/ya.make

@@ -1,7 +1,7 @@
 OWNER(g:ymake)
 
-LIBRARY(dummy-vcs)
-NO_PLATFORM()
-
-SRCS(svn_interface.c)
-END()
+LIBRARY(dummy-vcs) 
+NO_PLATFORM() 
+ 
+SRCS(svn_interface.c) 
+END() 

+ 9 - 9
build/scripts/compile_java.py

@@ -12,7 +12,7 @@ def parse_args(args):
     parser = optparse.OptionParser()
     parser.add_option('--javac-bin')
     parser.add_option('--jar-bin')
-    parser.add_option('--vcs-mf')
+    parser.add_option('--vcs-mf') 
     parser.add_option('--package-prefix')
     parser.add_option('--jar-output')
     parser.add_option('--srcs-jar-output')
@@ -76,10 +76,10 @@ def main():
             with zipfile.ZipFile(s) as zf:
                 zf.extractall(classes_dir)
 
-    if opts.vcs_mf:
-        sp.check_call([opts.jar_bin, 'cfm', opts.jar_output, opts.vcs_mf, os.curdir], cwd=classes_dir)
-    else:
-        sp.check_call([opts.jar_bin, 'cfM', opts.jar_output, os.curdir], cwd=classes_dir)
+    if opts.vcs_mf: 
+        sp.check_call([opts.jar_bin, 'cfm', opts.jar_output, opts.vcs_mf, os.curdir], cwd=classes_dir) 
+    else: 
+        sp.check_call([opts.jar_bin, 'cfM', opts.jar_output, os.curdir], cwd=classes_dir) 
 
     if opts.srcs_jar_output:
         for s in jsrcs:
@@ -92,10 +92,10 @@ def main():
 
                 shutil.copyfile(s, d)
 
-        if opts.vcs_mf:
-            sp.check_call([opts.jar_bin, 'cfm', opts.srcs_jar_output, opts.vcs_mf, os.curdir], cwd=sources_dir)
-        else:
-            sp.check_call([opts.jar_bin, 'cfM', opts.srcs_jar_output, os.curdir], cwd=sources_dir)
+        if opts.vcs_mf: 
+            sp.check_call([opts.jar_bin, 'cfm', opts.srcs_jar_output, opts.vcs_mf, os.curdir], cwd=sources_dir) 
+        else: 
+            sp.check_call([opts.jar_bin, 'cfM', opts.srcs_jar_output, os.curdir], cwd=sources_dir) 
 
 
 if __name__ == '__main__':

+ 31 - 31
build/scripts/fetch_from.py

@@ -4,7 +4,7 @@ import hashlib
 import json
 import logging
 import os
-import platform
+import platform 
 import random
 import shutil
 import socket
@@ -27,7 +27,7 @@ def add_common_arguments(parser):
     parser.add_argument('--untar-to')
     parser.add_argument('--rename', action='append', default=[], metavar='FILE', help='rename FILE to the corresponding output')
     parser.add_argument('--executable', action='store_true', help='make outputs executable')
-    parser.add_argument('--log-path')
+    parser.add_argument('--log-path') 
     parser.add_argument('-v', '--verbose', action='store_true', default=os.environ.get('YA_VERBOSE_FETCHER'), help='increase stderr verbosity')
     parser.add_argument('outputs', nargs='*', default=[])
 
@@ -90,36 +90,36 @@ class OutputNotExistError(Exception):
     pass
 
 
-def setup_logging(args, base_name):
-    def makedirs(path):
-        try:
-            os.makedirs(path)
-        except OSError:
-            pass
-
-    if args.log_path:
-        log_file_name = args.log_path
-    else:
-        log_file_name = base_name + ".log"
-
-    args.abs_log_path = os.path.abspath(log_file_name)
-    makedirs(os.path.dirname(args.abs_log_path))
-    logging.basicConfig(filename=args.abs_log_path, level=logging.DEBUG)
+def setup_logging(args, base_name): 
+    def makedirs(path): 
+        try: 
+            os.makedirs(path) 
+        except OSError: 
+            pass 
+ 
+    if args.log_path: 
+        log_file_name = args.log_path 
+    else: 
+        log_file_name = base_name + ".log" 
+ 
+    args.abs_log_path = os.path.abspath(log_file_name) 
+    makedirs(os.path.dirname(args.abs_log_path)) 
+    logging.basicConfig(filename=args.abs_log_path, level=logging.DEBUG) 
     if args.verbose:
         logging.getLogger().addHandler(logging.StreamHandler(sys.stderr))
-
-
+ 
+ 
 def is_temporary(e):
 
-    def is_broken(e):
-        return isinstance(e, urllib2.HTTPError) and e.code in (410, 404)
+    def is_broken(e): 
+        return isinstance(e, urllib2.HTTPError) and e.code in (410, 404) 
 
     if is_broken(e):
         return False
-
+ 
     if isinstance(e, (BadChecksumFetchError, IncompleteFetchError, urllib2.URLError, socket.error)):
         return True
-
+ 
     import error
 
     return error.is_temporary_error(e)
@@ -293,16 +293,16 @@ def fetch_url(url, unpack, resource_file_name, expected_md5=None, expected_sha1=
 
 
 def chmod(filename, mode):
-    if platform.system().lower() == 'windows':
-        # https://docs.microsoft.com/en-us/windows/win32/fileio/hard-links-and-junctions:
-        # hard to reset read-only attribute for removal if there are multiple hardlinks
-        return
+    if platform.system().lower() == 'windows': 
+        # https://docs.microsoft.com/en-us/windows/win32/fileio/hard-links-and-junctions: 
+        # hard to reset read-only attribute for removal if there are multiple hardlinks 
+        return 
     stat = os.stat(filename)
     if stat.st_mode & 0o777 != mode:
         try:
             os.chmod(filename, mode)
         except OSError:
-            import pwd
+            import pwd 
             sys.stderr.write("{} st_mode: {} pwuid: {}\n".format(filename, stat.st_mode, pwd.getpwuid(os.stat(filename).st_uid)))
             raise
 
@@ -356,9 +356,9 @@ def process(fetched_file, file_name, args, remove=True):
             logging.info('Renaming %s to %s', src, dst)
             if os.path.exists(dst):
                 raise ResourceUnpackingError("Target file already exists ({} -> {})".format(src, dst))
-            if remove:
-                rename_or_copy_and_remove(src, dst)
-            else:
+            if remove: 
+                rename_or_copy_and_remove(src, dst) 
+            else: 
                 hardlink_or_copy(src, dst)
 
     for path in args.outputs:

+ 1 - 1
build/scripts/fetch_from_external.py

@@ -18,7 +18,7 @@ def parse_args():
 def main(args):
     external_file = args.external_file.rstrip('.external')
     if os.path.isfile(args.resource_file):
-        fetch_from.process(args.resource_file, os.path.basename(args.resource_file), args, False)
+        fetch_from.process(args.resource_file, os.path.basename(args.resource_file), args, False) 
         return
 
     error = None

+ 1 - 1
build/scripts/fetch_from_mds.py

@@ -37,7 +37,7 @@ def main(args):
 
 if __name__ == '__main__':
     args = parse_args()
-    fetch_from.setup_logging(args, os.path.basename(__file__))
+    fetch_from.setup_logging(args, os.path.basename(__file__)) 
 
     try:
         main(args)

+ 79 - 79
build/scripts/fetch_from_sandbox.py

@@ -15,7 +15,7 @@ import fetch_from
 
 ORIGIN_SUFFIX = '?origin=fetch-from-sandbox'
 MDS_PREFIX = 'http://storage-int.mds.yandex.net/get-sandbox/'
-TEMPORARY_ERROR_CODES = (429, 500, 503, 504)
+TEMPORARY_ERROR_CODES = (429, 500, 503, 504) 
 
 
 def parse_args():
@@ -23,7 +23,7 @@ def parse_args():
     fetch_from.add_common_arguments(parser)
     parser.add_argument('--resource-id', type=int, required=True)
     parser.add_argument('--custom-fetcher')
-    parser.add_argument('--resource-file')
+    parser.add_argument('--resource-file') 
     return parser.parse_args()
 
 
@@ -35,33 +35,33 @@ class UnsupportedProtocolException(Exception):
     pass
 
 
-def _sky_path():
-    return "/usr/local/bin/sky"
+def _sky_path(): 
+    return "/usr/local/bin/sky" 
 
 
-def _is_skynet_avaliable():
-    if not os.path.exists(_sky_path()):
-        return False
-    try:
-        subprocess.check_output([_sky_path(), "--version"])
-        return True
-    except subprocess.CalledProcessError:
-        return False
-    except OSError:
-        return False
-
-
-def download_by_skynet(resource_info, file_name):
+def _is_skynet_avaliable(): 
+    if not os.path.exists(_sky_path()): 
+        return False 
+    try: 
+        subprocess.check_output([_sky_path(), "--version"]) 
+        return True 
+    except subprocess.CalledProcessError: 
+        return False 
+    except OSError: 
+        return False 
+ 
+ 
+def download_by_skynet(resource_info, file_name): 
     def sky_get(skynet_id, target_dir, timeout=None):
         cmd_args = [_sky_path(), 'get', "-N", "Backbone", "--user", "--wait", "--dir", target_dir, skynet_id]
         if timeout is not None:
             cmd_args += ["--timeout", str(timeout)]
-        logging.info('Call skynet with args: %s', cmd_args)
+        logging.info('Call skynet with args: %s', cmd_args) 
         stdout = subprocess.check_output(cmd_args).strip()
         logging.debug('Skynet call with args %s is finished, result is %s', cmd_args, stdout)
         return stdout
 
-    if not _is_skynet_avaliable():
+    if not _is_skynet_avaliable(): 
         raise UnsupportedProtocolException("Skynet is not available")
 
     skynet_id = resource_info.get("skynet_id")
@@ -94,7 +94,7 @@ def _urlopen(url, data=None, headers=None):
             logging.warning('failed to fetch URL %s with HTTP code %d: %s', url, e.code, e)
             retry_after = int(e.headers.get('Retry-After', str(retry_after)))
 
-            if e.code not in TEMPORARY_ERROR_CODES:
+            if e.code not in TEMPORARY_ERROR_CODES: 
                 raise
 
         except Exception as e:
@@ -141,9 +141,9 @@ def fetch(resource_id, custom_fetcher):
         )
         raise
 
-    if resource_info.get('state', 'DELETED') != 'READY':
-        raise ResourceInfoError("Resource {} is not READY".format(resource_id))
-
+    if resource_info.get('state', 'DELETED') != 'READY': 
+        raise ResourceInfoError("Resource {} is not READY".format(resource_id)) 
+ 
     logging.info('Resource %s info %s', str(resource_id), json.dumps(resource_info))
 
     resource_file_name = os.path.basename(resource_info["file_name"])
@@ -159,15 +159,15 @@ def fetch(resource_id, custom_fetcher):
         random.shuffle(storage_links)
         return storage_links
 
-    skynet = _is_skynet_avaliable()
-
-    if not skynet:
-        logging.info("Skynet is not available, will try other protocols")
-
+    skynet = _is_skynet_avaliable() 
+ 
+    if not skynet: 
+        logging.info("Skynet is not available, will try other protocols") 
+ 
     def iter_tries():
-        if skynet:
-            yield lambda: download_by_skynet(resource_info, resource_file_name)
-
+        if skynet: 
+            yield lambda: download_by_skynet(resource_info, resource_file_name) 
+ 
         if custom_fetcher:
             yield lambda: fetch_via_script(custom_fetcher, resource_id)
 
@@ -191,78 +191,78 @@ def fetch(resource_id, custom_fetcher):
         try:
             fetched_file = action()
             break
-        except UnsupportedProtocolException:
-            pass
-        except subprocess.CalledProcessError as e:
+        except UnsupportedProtocolException: 
+            pass 
+        except subprocess.CalledProcessError as e: 
             logging.warning('failed to fetch resource %s with subprocess: %s', resource_id, e)
-            time.sleep(i)
-        except urllib2.HTTPError as e:
+            time.sleep(i) 
+        except urllib2.HTTPError as e: 
             logging.warning('failed to fetch resource %s with HTTP code %d: %s', resource_id, e.code, e)
-            if e.code not in TEMPORARY_ERROR_CODES:
-                exc_info = exc_info or sys.exc_info()
-            time.sleep(i)
+            if e.code not in TEMPORARY_ERROR_CODES: 
+                exc_info = exc_info or sys.exc_info() 
+            time.sleep(i) 
         except Exception as e:
             logging.exception(e)
             exc_info = exc_info or sys.exc_info()
             time.sleep(i)
     else:
-        if exc_info:
-            raise exc_info[0], exc_info[1], exc_info[2]
-        else:
-            raise Exception("No available protocol and/or server to fetch resource")
+        if exc_info: 
+            raise exc_info[0], exc_info[1], exc_info[2] 
+        else: 
+            raise Exception("No available protocol and/or server to fetch resource") 
 
     return fetched_file, resource_info['file_name']
 
 
-def _get_resource_info_from_file(resource_file):
-    if resource_file is None or not os.path.exists(resource_file):
-        return None
-
-    RESOURCE_INFO_JSON = "resource_info.json"
-    RESOURCE_CONTENT_FILE_NAME = "resource"
-
-    resource_dir, resource_file = os.path.split(resource_file)
-    if resource_file != RESOURCE_CONTENT_FILE_NAME:
-        return None
-
-    resource_json = os.path.join(resource_dir, RESOURCE_INFO_JSON)
-    if not os.path.isfile(resource_json):
-        return None
-
-    try:
-        with open(resource_json, 'r') as j:
-            resource_info = json.load(j)
-        resource_info['file_name']  # check consistency
-        return resource_info
-    except:
-        logging.debug('Invalid %s in %s', RESOURCE_INFO_JSON, resource_dir)
-
-    return None
-
-
+def _get_resource_info_from_file(resource_file): 
+    if resource_file is None or not os.path.exists(resource_file): 
+        return None 
+ 
+    RESOURCE_INFO_JSON = "resource_info.json" 
+    RESOURCE_CONTENT_FILE_NAME = "resource" 
+ 
+    resource_dir, resource_file = os.path.split(resource_file) 
+    if resource_file != RESOURCE_CONTENT_FILE_NAME: 
+        return None 
+ 
+    resource_json = os.path.join(resource_dir, RESOURCE_INFO_JSON) 
+    if not os.path.isfile(resource_json): 
+        return None 
+ 
+    try: 
+        with open(resource_json, 'r') as j: 
+            resource_info = json.load(j) 
+        resource_info['file_name']  # check consistency 
+        return resource_info 
+    except: 
+        logging.debug('Invalid %s in %s', RESOURCE_INFO_JSON, resource_dir) 
+ 
+    return None 
+ 
+ 
 def main(args):
     custom_fetcher = os.environ.get('YA_CUSTOM_FETCHER')
 
-    resource_info = _get_resource_info_from_file(args.resource_file)
-    if resource_info:
-        fetched_file = args.resource_file
-        file_name = resource_info['file_name']
-    else:
-        # This code should be merged to ya and removed.
-        fetched_file, file_name = fetch(args.resource_id, custom_fetcher)
+    resource_info = _get_resource_info_from_file(args.resource_file) 
+    if resource_info: 
+        fetched_file = args.resource_file 
+        file_name = resource_info['file_name'] 
+    else: 
+        # This code should be merged to ya and removed. 
+        fetched_file, file_name = fetch(args.resource_id, custom_fetcher) 
 
-    fetch_from.process(fetched_file, file_name, args, remove=not custom_fetcher and not resource_info)
+    fetch_from.process(fetched_file, file_name, args, remove=not custom_fetcher and not resource_info) 
 
 
 if __name__ == '__main__':
     args = parse_args()
-    fetch_from.setup_logging(args, os.path.basename(__file__))
+    fetch_from.setup_logging(args, os.path.basename(__file__)) 
 
     try:
         main(args)
     except Exception as e:
         logging.exception(e)
-        print >>sys.stderr, open(args.abs_log_path).read()
+        print >>sys.stderr, open(args.abs_log_path).read() 
         sys.stderr.flush()
 
         import error

Some files were not shown because too many files changed in this diff