mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 01:48:04 +03:00 
			
		
		
		
	Enable commit check via env var
This commit is contained in:
		
							parent
							
								
									582701519e
								
							
						
					
					
						commit
						0135f6ed95
					
				| 
						 | 
					@ -7,7 +7,8 @@ import tarfile
 | 
				
			||||||
from pathlib import Path
 | 
					from pathlib import Path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .._util import get_hash, get_checksum, download_file, ensure_pathy
 | 
					from .._util import get_hash, get_checksum, download_file, ensure_pathy
 | 
				
			||||||
from ...util import make_tempdir, get_minor_version
 | 
					from ...util import make_tempdir, get_minor_version, ENV_VARS, check_bool_env_var
 | 
				
			||||||
 | 
					from ...git_info import GIT_VERSION
 | 
				
			||||||
from ... import about
 | 
					from ... import about
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if TYPE_CHECKING:
 | 
					if TYPE_CHECKING:
 | 
				
			||||||
| 
						 | 
					@ -130,7 +131,8 @@ def get_command_hash(
 | 
				
			||||||
    currently installed packages, whatever environment variables have been marked
 | 
					    currently installed packages, whatever environment variables have been marked
 | 
				
			||||||
    as relevant, and the command.
 | 
					    as relevant, and the command.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    spacy_v = get_minor_version(about.__version__)
 | 
					    check_commit = check_bool_env_var(ENV_VARS.PROJECT_USE_GIT_VERSION)
 | 
				
			||||||
 | 
					    spacy_v = GIT_VERSION if check_commit else get_minor_version(about.__version__)
 | 
				
			||||||
    dep_checksums = [get_checksum(dep) for dep in sorted(deps)]
 | 
					    dep_checksums = [get_checksum(dep) for dep in sorted(deps)]
 | 
				
			||||||
    hashes = [spacy_v, site_hash, env_hash] + dep_checksums
 | 
					    hashes = [spacy_v, site_hash, env_hash] + dep_checksums
 | 
				
			||||||
    hashes.extend(cmd)
 | 
					    hashes.extend(cmd)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,8 @@ import srsly
 | 
				
			||||||
from ... import about
 | 
					from ... import about
 | 
				
			||||||
from ...git_info import GIT_VERSION
 | 
					from ...git_info import GIT_VERSION
 | 
				
			||||||
from ...util import working_dir, run_command, split_command, is_cwd, join_command
 | 
					from ...util import working_dir, run_command, split_command, is_cwd, join_command
 | 
				
			||||||
from ...util import SimpleFrozenList, is_minor_version_match
 | 
					from ...util import SimpleFrozenList, is_minor_version_match, ENV_VARS
 | 
				
			||||||
 | 
					from ...util import check_bool_env_var
 | 
				
			||||||
from .._util import PROJECT_FILE, PROJECT_LOCK, load_project_config, get_hash
 | 
					from .._util import PROJECT_FILE, PROJECT_LOCK, load_project_config, get_hash
 | 
				
			||||||
from .._util import get_checksum, project_cli, Arg, Opt, COMMAND
 | 
					from .._util import get_checksum, project_cli, Arg, Opt, COMMAND
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,9 +65,10 @@ def project_run(
 | 
				
			||||||
                err_help = "Maybe you forgot to run the 'project assets' command or a previous step?"
 | 
					                err_help = "Maybe you forgot to run the 'project assets' command or a previous step?"
 | 
				
			||||||
                err_kwargs = {"exits": 1} if not dry else {}
 | 
					                err_kwargs = {"exits": 1} if not dry else {}
 | 
				
			||||||
                msg.fail(err, err_help, **err_kwargs)
 | 
					                msg.fail(err, err_help, **err_kwargs)
 | 
				
			||||||
 | 
					        check_spacy_commit = check_bool_env_var(ENV_VARS.PROJECT_USE_GIT_VERSION)
 | 
				
			||||||
        with working_dir(project_dir) as current_dir:
 | 
					        with working_dir(project_dir) as current_dir:
 | 
				
			||||||
            msg.divider(subcommand)
 | 
					            msg.divider(subcommand)
 | 
				
			||||||
            rerun = check_rerun(current_dir, cmd)
 | 
					            rerun = check_rerun(current_dir, cmd, check_spacy_commit=check_spacy_commit)
 | 
				
			||||||
            if not rerun and not force:
 | 
					            if not rerun and not force:
 | 
				
			||||||
                msg.info(f"Skipping '{cmd['name']}': nothing changed")
 | 
					                msg.info(f"Skipping '{cmd['name']}': nothing changed")
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,6 +73,7 @@ logger = logging.getLogger("spacy")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ENV_VARS:
 | 
					class ENV_VARS:
 | 
				
			||||||
    CONFIG_OVERRIDES = "SPACY_CONFIG_OVERRIDES"
 | 
					    CONFIG_OVERRIDES = "SPACY_CONFIG_OVERRIDES"
 | 
				
			||||||
 | 
					    PROJECT_USE_GIT_VERSION = "SPACY_PROJECT_USE_GIT_VERSION"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class registry(thinc.registry):
 | 
					class registry(thinc.registry):
 | 
				
			||||||
| 
						 | 
					@ -1342,3 +1343,16 @@ def is_cython_func(func: Callable) -> bool:
 | 
				
			||||||
        cls_func = vars(sys.modules[func.__module__])[func.__qualname__.split(".")[0]]
 | 
					        cls_func = vars(sys.modules[func.__module__])[func.__qualname__.split(".")[0]]
 | 
				
			||||||
        return hasattr(cls_func, attr)
 | 
					        return hasattr(cls_func, attr)
 | 
				
			||||||
    return False
 | 
					    return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def check_bool_env_var(env_var: str) -> bool:
 | 
				
			||||||
 | 
					    """Convert the value of an environment variable to a boolean. Add special
 | 
				
			||||||
 | 
					    check for "0" (falsy) and consider everything else truthy, except unset.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    env_var (str): The name of the environment variable to check.
 | 
				
			||||||
 | 
					    RETURNS (bool): Its boolean value.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    value = os.environ.get(env_var, False)
 | 
				
			||||||
 | 
					    if value == "0":
 | 
				
			||||||
 | 
					        return False
 | 
				
			||||||
 | 
					    return bool(value)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user