# -*- coding: utf-8 -*-
# File generated by PyInstaller GUI Wrapper. DO NOT EDIT MANUALLY.
# Contains build-time information scraped from Git (if available)
# and a helper function to format version strings.

import re

# --- Version Data (Generated) ---
__version__ = "v.0.0.0.42-0-g56fb41c"
GIT_COMMIT_HASH = "56fb41c3f8e78e5a59a5aaf56cb2cee135285dca"
GIT_BRANCH = "master"
BUILD_TIMESTAMP = "2025-07-15T12:54:20.374655+00:00"
IS_GIT_REPO = True

# --- Default Values (for comparison or fallback) ---
DEFAULT_VERSION = "0.0.0+unknown"
DEFAULT_COMMIT = "Unknown"
DEFAULT_BRANCH = "Unknown"

# --- Helper Function ---
def get_version_string(format_string=None):
    """
    Returns a formatted string based on the build version information.

    Args:
        format_string (str, optional): A format string using placeholders.
            Defaults to "{version} ({branch}/{commit_short})" if None.
            Placeholders:
                {{version}}: Full version string (e.g., 'v1.0.0-5-gabcdef-dirty')
                {{tag}}: Clean tag part if exists (e.g., 'v1.0.0'), else DEFAULT_VERSION.
                {{commit}}: Full Git commit hash.
                {{commit_short}}: Short Git commit hash (7 chars).
                {{branch}}: Git branch name.
                {{dirty}}: '-dirty' if the repo was dirty, empty otherwise.
                {{timestamp}}: Full build timestamp (ISO 8601 UTC).
                {{timestamp_short}}: Build date only (YYYY-MM-DD).
                {{is_git}}: 'Git' if IS_GIT_REPO is True, 'Unknown' otherwise.

    Returns:
        str: The formatted version string, or an error message if formatting fails.
    """
    if format_string is None:
        format_string = "{version} ({branch}/{commit_short})"  # Default format

    replacements = {}
    try:
        replacements['version'] = __version__ if __version__ else DEFAULT_VERSION
        replacements['commit'] = GIT_COMMIT_HASH if GIT_COMMIT_HASH else DEFAULT_COMMIT
        replacements['commit_short'] = GIT_COMMIT_HASH[:7] if GIT_COMMIT_HASH and len(GIT_COMMIT_HASH) >= 7 else DEFAULT_COMMIT
        replacements['branch'] = GIT_BRANCH if GIT_BRANCH else DEFAULT_BRANCH
        replacements['timestamp'] = BUILD_TIMESTAMP if BUILD_TIMESTAMP else "Unknown"
        replacements['timestamp_short'] = BUILD_TIMESTAMP.split('T')[0] if BUILD_TIMESTAMP and 'T' in BUILD_TIMESTAMP else "Unknown"
        replacements['is_git'] = "Git" if IS_GIT_REPO else "Unknown"
        replacements['dirty'] = "-dirty" if __version__ and __version__.endswith('-dirty') else ""

        tag = DEFAULT_VERSION
        if __version__ and IS_GIT_REPO:
            match = re.match(r'^(v?([0-9]+(?:\.[0-9]+)*))', __version__)
            if match:
                tag = match.group(1)
        replacements['tag'] = tag

        output_string = format_string
        for placeholder, value in replacements.items():
             pattern = re.compile(r'{{\s*' + re.escape(placeholder) + r'\s*}}')
             output_string = pattern.sub(str(value), output_string)

        if re.search(r'{\s*\w+\s*}', output_string):
             pass # Or log a warning: print(f"Warning: Unreplaced placeholders found: {output_string}")

        return output_string

    except Exception as e:
        return f"[Formatting Error: {e}]"
