Source code for flexlate.syncer

from git import Repo

from flexlate import exc
from flexlate.config_manager import ConfigManager
from flexlate.constants import DEFAULT_MERGED_BRANCH_NAME, DEFAULT_TEMPLATE_BRANCH_NAME
from flexlate.render.multi import MultiRenderer
from flexlate.styles import INFO_STYLE, SUCCESS_STYLE, print_styled
from flexlate.transactions.transaction import FlexlateTransaction
from flexlate.update.main import Updater


[docs]class Syncer:
[docs] def sync_local_changes_to_flexlate_branches( self, repo: Repo, transaction: FlexlateTransaction, merged_branch_name: str = DEFAULT_MERGED_BRANCH_NAME, base_merged_branch_name: str = DEFAULT_MERGED_BRANCH_NAME, template_branch_name: str = DEFAULT_TEMPLATE_BRANCH_NAME, base_template_branch_name: str = DEFAULT_TEMPLATE_BRANCH_NAME, no_input: bool = False, remote: str = "origin", updater: Updater = Updater(), renderer: MultiRenderer = MultiRenderer(), config_manager: ConfigManager = ConfigManager(), ): print_styled("Syncing local changes to flexlate branches", INFO_STYLE) try: updater.update( repo, [], transaction, merged_branch_name=merged_branch_name, base_merged_branch_name=base_merged_branch_name, template_branch_name=template_branch_name, base_template_branch_name=base_template_branch_name, no_input=no_input, full_rerender=True, remote=remote, renderer=renderer, config_manager=config_manager, ) except exc.TriedToCommitButNoChangesException as e: raise exc.UnnecessarySyncException("Everything is up to date") from e print_styled( "Successfully synced local changes to flexlate branches", SUCCESS_STYLE )