split_command util function

This commit is contained in:
svlandeg 2020-06-30 12:54:15 +02:00
parent d23be563eb
commit 140c4896a0
2 changed files with 10 additions and 8 deletions

View File

@ -4,7 +4,6 @@ import srsly
from pathlib import Path from pathlib import Path
from wasabi import msg from wasabi import msg
import subprocess import subprocess
import shlex
import os import os
import re import re
import shutil import shutil
@ -14,10 +13,9 @@ import tqdm
from ._app import app, Arg, Opt, COMMAND, NAME from ._app import app, Arg, Opt, COMMAND, NAME
from .. import about from .. import about
from ..compat import is_windows
from ..schemas import ProjectConfigSchema, validate from ..schemas import ProjectConfigSchema, validate
from ..util import ensure_path, run_command, make_tempdir, working_dir from ..util import ensure_path, run_command, make_tempdir, working_dir
from ..util import get_hash, get_checksum from ..util import get_hash, get_checksum, split_command
CONFIG_FILE = "project.yml" CONFIG_FILE = "project.yml"
@ -240,7 +238,7 @@ def project_clone(
with make_tempdir() as tmp_dir: with make_tempdir() as tmp_dir:
cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true" cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
try: try:
run_command(shlex.split(cmd, posix=not is_windows)) run_command(split_command(cmd))
except: except:
raise RuntimeError(f"Could not clone the repo '{repo}' into the temp dir '{tmp_dir}'.") raise RuntimeError(f"Could not clone the repo '{repo}' into the temp dir '{tmp_dir}'.")
with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f: with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
@ -599,7 +597,7 @@ def run_commands(
for command in commands: for command in commands:
# Substitute variables, e.g. "./{NAME}.json" # Substitute variables, e.g. "./{NAME}.json"
command = command.format(**variables) command = command.format(**variables)
command = shlex.split(command, posix=not is_windows) command = split_command(command)
# TODO: is this needed / a good idea? # TODO: is this needed / a good idea?
if len(command) and command[0] in ("python", "python3"): if len(command) and command[0] in ("python", "python3"):
command[0] = sys.executable command[0] = sys.executable

View File

@ -22,7 +22,7 @@ from contextlib import contextmanager
import tempfile import tempfile
import shutil import shutil
import hashlib import hashlib
import shlex
try: try:
import cupy.random import cupy.random
@ -35,7 +35,7 @@ except ImportError:
import importlib_metadata import importlib_metadata
from .symbols import ORTH from .symbols import ORTH
from .compat import cupy, CudaStream from .compat import cupy, CudaStream, is_windows
from .errors import Errors, Warnings from .errors import Errors, Warnings
from . import about from . import about
@ -925,7 +925,11 @@ def from_disk(path, readers, exclude):
# Split to support file names like meta.json # Split to support file names like meta.json
if key.split(".")[0] not in exclude: if key.split(".")[0] not in exclude:
reader(path / key) reader(path / key)
return path return
def split_command(command):
return shlex.split(command, posix=not is_windows)
def import_file(name, loc): def import_file(name, loc):