def from_vcs( vcs: Vcs, pattern: str, metadata: Optional[bool], dirty: bool, format: Optional[str], style: Optional[Style], latest_tag: bool, tag_dir: str, debug: bool, bump: bool, tagged_metadata: bool, ) -> None: version = Version.from_vcs(vcs, pattern, latest_tag, tag_dir) print( version.serialize(metadata, dirty, format, style, bump, tagged_metadata=tagged_metadata)) if debug: print("# Matched tag: {}".format(version._matched_tag), file=sys.stderr) print("# Newer unmatched tags: {}".format( version._newer_unmatched_tags), file=sys.stderr)
def _get_version(config: Mapping) -> Tuple[Version, str]: vcs = Vcs(config["vcs"]) style = config["style"] if style is not None: style = Style(style) version = Version.from_vcs(vcs, config["pattern"], config["latest-tag"], config["subversion"]["tag-dir"]) if config["format-jinja"]: base = version.base revision = version.revision if config["bump"]: if version.stage is None: base = bump_version(version.base) else: if version.revision is None: revision = 2 else: revision = version.revision + 1 default_context = { "base": base, "version": version, "stage": version.stage, "revision": revision, "distance": version.distance, "commit": version.commit, "dirty": version.dirty, "env": os.environ, "bump_version": bump_version, "tagged_metadata": version.tagged_metadata, "serialize_pep440": serialize_pep440, "serialize_pvp": serialize_pvp, "serialize_semver": serialize_semver, } custom_context = {} # type: dict for entry in config["format-jinja-imports"]: if "module" in entry: module = import_module(entry["module"]) if "item" in entry: custom_context[entry["item"]] = getattr( module, entry["item"]) else: custom_context[entry["module"]] = module serialized = jinja2.Template( config["format-jinja"]).render(**default_context, **custom_context) if style is not None: check_version(serialized, style) else: serialized = version.serialize( metadata=config["metadata"], dirty=config["dirty"], format=config["format"], style=style, bump=config["bump"], tagged_metadata=config["tagged-metadata"], ) return (version, serialized)
def from_vcs( vcs: Vcs, pattern: str, metadata: Optional[bool], dirty: bool, format: Optional[str], style: Optional[Style], latest_tag: bool, tag_dir: str, ) -> None: version = Version.from_vcs(vcs, pattern, latest_tag, tag_dir) print(version.serialize(metadata, dirty, format, style))
def _get_version(config: Mapping, pyproject_path: Path) -> Tuple[Version, str]: if _state.version: return _state.version pyproject = tomlkit.parse(pyproject_path.read_text()) if not _state.original_version: _state.original_version = pyproject["tool"]["poetry"]["version"] vcs = Vcs(config["vcs"]) style = config["style"] if style is not None: style = Style(style) version = Version.from_vcs(vcs, config["pattern"], config["latest-tag"], config["subversion"]["tag-dir"]) serialized = version.serialize(config["metadata"], config["dirty"], config["format"], style) pyproject["tool"]["poetry"]["version"] = serialized pyproject_path.write_text(tomlkit.dumps(pyproject)) _state.version = (version, serialized) return (version, serialized)
def _get_version(config: Mapping, pyproject_path: Path) -> Tuple[Version, str]: if _state.version: return _state.version pyproject = tomlkit.parse(pyproject_path.read_text(encoding='utf8')) if not _state.original_version: _state.original_version = pyproject["tool"]["poetry"]["version"] vcs = Vcs(config["vcs"]) style = config["style"] if style is not None: style = Style(style) version = Version.from_vcs(vcs, config["pattern"], config["latest-tag"], config["subversion"]["tag-dir"]) if config["format-jinja"]: serialized = jinja2.Template(config["format-jinja"]).render( base=version.base, stage=version.stage, revision=version.revision, distance=version.distance, commit=version.commit, dirty=version.dirty, env=os.environ, bump_version=bump_version, serialize_pep440=serialize_pep440, serialize_pvp=serialize_pvp, serialize_semver=serialize_semver, ) if style is not None: check_version(serialized, style) else: serialized = version.serialize(config["metadata"], config["dirty"], config["format"], style) pyproject["tool"]["poetry"]["version"] = serialized pyproject_path.write_text(tomlkit.dumps(pyproject)) _state.version = (version, serialized) return (version, serialized)
def test__version__from_any_vcs(tmp_path) -> None: with chdir(tmp_path): with pytest.raises(RuntimeError): Version.from_any_vcs() with pytest.raises(RuntimeError): Version.from_vcs(Vcs.Any)