當前位置: 首頁>>代碼示例>>Python>>正文


Python sh.Command方法代碼示例

本文整理匯總了Python中sh.Command方法的典型用法代碼示例。如果您正苦於以下問題:Python sh.Command方法的具體用法?Python sh.Command怎麽用?Python sh.Command使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在sh的用法示例。


在下文中一共展示了sh.Command方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: run_command_using_sh

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def run_command_using_sh(cmd, env, kwargs):
    "install the sh module in the system Python to have better debugging of CbCommon module installation (pip install sh)"
    import sh
    command_stdout = ''
    command_stderr = ''
    current_working_directory = kwargs.get('cwd')
    executable_file = cmd[0]
    command_args = cmd[1:]
    command_runner = sh.Command(executable_file)
    try:
        output = command_runner(*command_args, _cwd=current_working_directory, _env=env, _out=command_stdout)
        retcode = output.exit_code
    except sh.ErrorReturnCode as e:
        print("sh e.stderr:{}".format(e.stderr))
        retcode = 1
        command_stderr = e.stderr
        print("command STDOUT:{}".format(command_stdout))
        print("command STDOUT:{}".format(command_stderr))
    return command_stderr, command_stdout, retcode 
開發者ID:xBrite,項目名稱:flyingcloud,代碼行數:21,代碼來源:process.py

示例2: ecr_get_login

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def ecr_get_login(self, namespace, aws_ecr_region):
        """AWS EC2 Container Registry needs a 12-hour token."""
        aws_cli_path = os.path.join(os.getenv("VIRTUAL_ENV"), "bin", "aws")
        command = ["ecr", "get-login", "--region", aws_ecr_region]

        # As of Docker v17.12, --email is no longer accepted for docker login.
        # https://github.com/aws/aws-cli/issues/1926
        import awscli
        from distutils.version import LooseVersion
        if LooseVersion(awscli.__version__) >= LooseVersion("1.11.91"):
            command += ["--no-include-email"]

        with io.BytesIO() as output:
            namespace.logger.info("Running: %r", command)
            sh.Command(aws_cli_path)(*command, _out=output)
            docker_login_cmdline = output.getvalue()
        return self.parse_docker_login(docker_login_cmdline.split()) 
開發者ID:xBrite,項目名稱:flyingcloud,代碼行數:19,代碼來源:base.py

示例3: fits2png

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def fits2png(fits_dir, png_dir):
    """
    Convert fits to png files based on the D1 method
    """
    # cmd_tpl = '%s -cmap Cool'\
    #     ' -zoom to fit -scale log -scale mode minmax -export %s -exit'
    cmd_tpl = '%s -cmap gist_heat -cmap value 0.684039 0'\
        ' -zoom to fit -scale log -scale mode minmax -export %s -exit'
    from sh import Command
    ds9 = Command(ds9_path)
    #fits = '/Users/chen/gitrepos/ml/rgz_rcnn/data/EMU_GAMA23/split_fits/30arcmin/gama_linmos_corrected_clipped0-0.fits'
    #png = '/Users/chen/gitrepos/ml/rgz_rcnn/data/EMU_GAMA23/split_png/30arcmin/gama_linmos_corrected_clipped0-0.png'
    for fits in os.listdir(fits_dir):
        if (fits.endswith('.fits')):
            png = fits.replace('.fits', '.png')
            cmd = cmd_tpl % (osp.join(fits_dir, fits), osp.join(png_dir, png))
            ds9(*(cmd.split())) 
開發者ID:chenwuperth,項目名稱:rgz_rcnn,代碼行數:19,代碼來源:fits_utils.py

示例4: install

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def install(self, modules, venv=False, sources_path=False, timeout='45'):
        """pip installs a list of modules

        :param list modules: python modules to ``pip install``
        :param string venv: (optional) if ommited, will use system python
         else, will use `venv` (for virtualenvs and such)
        """
        # this allows us to use the 'virtualenv' feature.
        venv_path = os.path.join(sources_path, venv) if sources_path else venv
        pip = sh.Command('{0}/bin/pip'.format(venv_path)) \
            if venv else sh.Command('pip')
        for module in modules:
            lgr.debug('Installing module {0}'.format(module))
            o = pip.install('--default-timeout', timeout, module, _iter=True)
            try:
                for line in o:
                    lgr.debug(line)
                if not self.check_module_installed(module, venv_path):
                    lgr.error('Module {0} could not be installed.'.format(
                        module))
                    sys.exit(codes.mapping['module_could_not_be_installed'])
            except:
                lgr.error('Module {0} could not be installed.'.format(module))
                sys.exit(codes.mapping['module_could_not_be_installed']) 
開發者ID:cloudify-cosmo,項目名稱:packman,代碼行數:26,代碼來源:python.py

示例5: get_modules

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def get_modules(self, modules, dir, venv=False, timeout='45'):
        """downloads python modules

        :param list modules: python modules to download
        :param string dir: dir to download modules to
        :param string venv: (optional) if ommited, will use system python
         else, will use `dir` (for virtualenvs and such)
        """
        pip = sh.Command('{0}/bin/pip'.format(venv)) \
            if venv else sh.Command('pip')
        for module in modules:
            # returns a stream of the command
            o = pip.install(
                '--no-use-wheel', '--download', dir, module, _iter=True)
            try:
                # this is where the command is actually executed
                for line in o:
                    lgr.debug(line)
            except:
                sys.exit(codes.mapping['failed_to_download_module']) 
開發者ID:cloudify-cosmo,項目名稱:packman,代碼行數:22,代碼來源:python.py

示例6: check_module_installed

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def check_module_installed(self, name, venv=False):
        """checks to see that a module is installed

        :param string name: module to check for
        :param string venv: (optional) if ommited, will use system python
         else, will use `venv` (for virtualenvs and such)
        """
        pip = sh.Command('{0}/bin/pip'.format(venv)) \
            if venv else sh.Command('pip')
        lgr.debug('Checking whether {0} is installed'.format(name))
        installed_modules = pip.freeze()
        if re.search(r'{0}'.format(name.lower()) + '==',
                     str(installed_modules).lower()):
            lgr.debug('Module {0} is installed'.format(name))
            return True
        else:
            lgr.debug('Module {0} is not installed'.format(name))
            return False

    # TODO: (FEAT) support virtualenv --relocate OR
    # TODO: (FEAT) support whack http://mike.zwobble.org/2013/09/relocatable-python-virtualenvs-using-whack/ # NOQA 
開發者ID:cloudify-cosmo,項目名稱:packman,代碼行數:23,代碼來源:python.py

示例7: get_gems

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def get_gems(self, gems, dir, rbenv=False):
        """downloads a list of ruby gems

        :param list gems: gems to download
        :param string dir: directory to download gems to
        """
        gem = sh.Command('{0}/bin/gem'.format(rbenv)) \
            if rbenv else sh.Command('gem')
        for gem in gems:
            lgr.debug('Downloading gem {0}'.format(gem))
            # TODO: (TEST) add support for ruby in different environments
            o = gem.install('--no-ri', '--no-rdoc', '--install-dir',
                            dir, gem, _iter=True)
            try:
                # this is where the command is actually executed
                for line in o:
                    lgr.debug(line)
            except:
                sys.exit(codes.mapping['failed_to_download_gem']) 
開發者ID:cloudify-cosmo,項目名稱:packman,代碼行數:21,代碼來源:ruby.py

示例8: test_clone_no_fallback

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def test_clone_no_fallback(self, sh_mock):
        config = configparser.RawConfigParser()
        config.read("projects.ini")
        config.set('DEFAULT', 'fallback_to_master', '0')
        self.config = ConfigOptions(config)
        # We need to redefine the mock object again, to use a side effect
        # that will fail in the git checkout call. A bit convoluted, but
        # it works
        with mock.patch.object(sh.Command, '__call__') as new_mock:
            new_mock.side_effect = _aux_sh
            self.assertRaises(sh.ErrorReturnCode_1, repositories.refreshrepo,
                              'url', 'path', branch='branch')
            expected = [mock.call('url', 'path'),
                        mock.call('origin'),
                        mock.call('-f', 'branch')]
            self.assertEqual(new_mock.call_args_list, expected) 
開發者ID:softwarefactory-project,項目名稱:DLRN,代碼行數:18,代碼來源:test_repositories.py

示例9: test_clone_fallback_var

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def test_clone_fallback_var(self, sh_mock):
        config = configparser.RawConfigParser()
        config.read("projects.ini")
        config.set('DEFAULT', 'fallback_to_master', '1')
        config.set('DEFAULT', 'nonfallback_branches', '^foo-')
        self.config = ConfigOptions(config)
        with mock.patch.object(sh.Command, '__call__') as new_mock:
            new_mock.side_effect = _aux_sh
            result = repositories.refreshrepo('url', 'path', branch='bar')
            self.assertEqual(result, ['master', 'None'])
            expected = [mock.call('url', 'path'),
                        mock.call('origin'),
                        mock.call('-f', 'bar'),
                        mock.call('master'),
                        mock.call('--hard', 'origin/master'),
                        mock.call('--pretty=format:%H %ct', '-1', '.')]
            self.assertEqual(new_mock.call_args_list, expected) 
開發者ID:softwarefactory-project,項目名稱:DLRN,代碼行數:19,代碼來源:test_repositories.py

示例10: __init__

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def __init__(self, scylla_data_dir, db_path, storage_obj,
                 nodetool_path='/usr/bin/nodetool',
                 cqlsh_path='/usr/bin/cqlsh',
                 cqlsh_host='127.0.0.1',
                 cqlsh_port='9042',
                 prefix='scyllabackup',
                 max_workers=4):
        self.scylla_data_dir = scylla_data_dir
        self.db = DB(db_path)
        self.db_path = db_path
        self.nodetool = Command(nodetool_path)
        self.cqlsh = Command(cqlsh_path).bake(cqlsh_host, cqlsh_port)
        self._upload_queue = gevent.queue.JoinableQueue()
        self._download_queue = gevent.queue.JoinableQueue()
        self._delete_queue = gevent.queue.JoinableQueue()
        self._verify_queue = gevent.queue.JoinableQueue()
        self._storage = storage_obj
        self._prefix = prefix
        self.db_key = self._prefix + '/' + os.path.basename(self.db_path)
        self.max_workers = max_workers 
開發者ID:helpshift,項目名稱:scyllabackup,代碼行數:22,代碼來源:snapshot.py

示例11: snapshotter_object

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def snapshotter_object(docker_compose_file, docker_compose_project_name,
                       scylla_data_symlink, sql_db_file, storage_client,
                       docker_service_name):

    scylla_docker_cmd = ['-f', docker_compose_file, '-p',
                         docker_compose_project_name, 'exec',
                         '-T', docker_service_name]

    nodetool_cmd = scylla_docker_cmd + ['nodetool']
    cqlsh_cmd = scylla_docker_cmd + ['cqlsh']

    obj = Snapshot(scylla_data_symlink + '/data/',
                   sql_db_file,
                   storage_obj=storage_client,
                   nodetool_path='docker-compose',
                   cqlsh_path='docker-compose')

    # override cli tools for docker
    obj.nodetool = sh.Command('docker-compose').bake(*nodetool_cmd)
    obj.cqlsh = sh.Command('docker-compose').bake(*cqlsh_cmd)

    return obj 
開發者ID:helpshift,項目名稱:scyllabackup,代碼行數:24,代碼來源:conftest.py

示例12: mafft

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def mafft(infile, outfile, max_iter=1000, thrd=4, mafft='mafft'):
    "Use MAFFT to obtain the multiple sequence alignment"
    # --nuc sequences are nucleotide
    # --localpair pairwise alignments
    # --maxiterate number of iterative refinement
    cmd = sh.Command(mafft)
    cmd = cmd.bake('--nuc')
    cmd = cmd.bake('--preservecase')
    cmd = cmd.bake('--maxiterate', max_iter)
    cmd = cmd.bake('--localpair')
    cmd = cmd.bake('--thread', thrd)
    cmd = cmd.bake(infile)
    cmd = cmd.bake(_out=outfile)

    print(cmd)
    cmd() 
開發者ID:cbg-ethz,項目名稱:V-pipe,代碼行數:18,代碼來源:testBench.py

示例13: bake

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def bake(self):
        """
        Bake a ``testinfra`` command so it's ready to execute and returns None.

        :return: None
        """
        options = self.options
        verbose_flag = util.verbose_flag(options)
        args = verbose_flag + self.additional_files_or_dirs

        self._testinfra_command = sh.Command("pytest").bake(
            options,
            self._tests,
            *args,
            _cwd=self._config.scenario.directory,
            _env=self.env,
            _out=LOG.out,
            _err=LOG.error
        ) 
開發者ID:ansible-community,項目名稱:molecule,代碼行數:21,代碼來源:testinfra.py

示例14: test_bake

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def test_bake(_patched_testinfra_get_tests, inventory_file, _instance):
    tests_directory = _instance._config.verifier.directory
    file1_file = os.path.join(tests_directory, "file1.py")

    os.mkdir(tests_directory)
    util.write_file(file1_file, "")

    _instance.bake()
    x = [
        str(sh.Command("pytest")),
        "--ansible-inventory={}".format(inventory_file),
        "--connection=ansible",
        "-v",
        "--foo=bar",
        "foo.py",
        "bar.py",
        "-p",
        "no:cacheprovider",
        file1_file,
    ]
    result = str(_instance._testinfra_command).split()

    assert sorted(x) == sorted(result) 
開發者ID:ansible-community,項目名稱:molecule,代碼行數:25,代碼來源:test_testinfra.py

示例15: test_run_script

# 需要導入模塊: import sh [as 別名]
# 或者: from sh import Command [as 別名]
def test_run_script():
    print("test_run_script")

    executable = os.path.realpath("../bin/run.sh")

    sh.Command(executable)                          # should do nothing; default behavior is to look in
                                                    # the current directory, which in this case should
                                                    # not have any video files.
    sh.Command(executable)("--help")                # should print help message.

    buf1 = io.StringIO()
    sh.Command(executable)("--list", _out=buf1)     # should list available languages.

    buf2 = io.StringIO()
    sh.Command(executable)("--list", "-a",
                           _out=buf2)               # output should be the same as previous command
                                                    # since --list is a flag, it should take priority.
    assert buf1.getvalue() == buf2.getvalue(), "--list is a flag; it should override any other functionality"

    for file in VIDEO_FILES:
        sh.Command(executable)("-i", "en", file)    # should work except for square brackets in directory

    sh.Command(executable)("-v", VIDEO_DIRECTORY)   # test video directory

    # gather a list of subtitle files created before removing them
    sub_files = glob.glob(VIDEO_DIRECTORY + "*.srt")
    sh.Command("rm")("-rf", sub_files)

    # change directories to the path containing the video files
    current_path = os.path.realpath(__file__)
    sh.cd(os.path.abspath(VIDEO_DIRECTORY))

    # run vanilla command and ensure that the result is the same as before
    subprocess.run([executable])
    sub_files2 = glob.glob(VIDEO_DIRECTORY + "*.srt")

    try:
        assert sub_files == sub_files2
    except AssertionError:
        print("Error: given no arguments, script should search the current directory")
        sh.cd(os.path.dirname(current_path)) 
開發者ID:manojmj92,項目名稱:subtitle-downloader,代碼行數:43,代碼來源:test_cli.py


注:本文中的sh.Command方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。