Skip to main content

Git operations and utilities (clone, branch, commit, retry, remote helpers) — standalone module from the SciTeX ecosystem

Project description

scitex-git

PyPI Python Tests Install Test Coverage Docs License: AGPL v3

Git operations and utilities extracted from the SciTeX ecosystem as a standalone package.

Install

pip install scitex-git

API

import scitex_git as sxg

# Clone / init
sxg.clone_repo(url, dest_dir)
sxg.git_init(repo_path)

# Add / commit
sxg.git_add_all(repo_path)
sxg.git_commit(repo_path, message="…")

# Branch
sxg.git_checkout_new_branch(repo_path, branch_name)
sxg.git_branch_rename(repo_path, old, new)
sxg.setup_branches(repo_path, template_name)

# Repo init / discovery
sxg.init_git_repo(project_dir, git_strategy="parent")
sxg.find_parent_git(project_dir)
sxg.create_child_git(project_dir)
sxg.remove_child_git(project_dir)

# Remote
sxg.get_remote_url(repo_path)
sxg.is_cloned_from(repo_path, url)
sxg.ls_remote(url)
sxg.get_head_hash(repo_path)

# Retry decorator
@sxg.git_retry(max_attempts=3)
def maybe_flaky_operation(): ...

Status

Standalone fork of scitex.git. scitex.logging.getLogger is replaced by stdlib logging.getLogger; the scitex.sh.sh shell wrapper is replaced by a tiny ~70-LOC _vendor_sh.py that supports just the call-shape used here. The optional scitex.writer.verify_tree_structure validation step in create_child_git is gated behind a try/except ImportError so it only runs when scitex-writer is installed.

The umbrella package's scitex.git import path is preserved via a sys.modules-alias bridge so existing code continues to work.

License

AGPL-3.0-only (see LICENSE).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scitex_git-0.1.1.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scitex_git-0.1.1-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file scitex_git-0.1.1.tar.gz.

File metadata

  • Download URL: scitex_git-0.1.1.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scitex_git-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e6f6af91746ad0bc4b7548f536f1be24385d63563e8b82d8a6d5e0074fa1b2f3
MD5 0c7d768f8d069b8c5ae59cbb829ee0c5
BLAKE2b-256 1945b7258204dd5e5cd0f91b394908ab9a9f507cb78c4829eec09a0b5b9aa5cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for scitex_git-0.1.1.tar.gz:

Publisher: publish-pypi.yml on ywatanabe1989/scitex-git

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scitex_git-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: scitex_git-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 31.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scitex_git-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 47a38049a2d764900c1335ff1c0a9f05872124b1811fe478cb377fa5147c87ad
MD5 b486ed101d34e080a1e3135332839c8c
BLAKE2b-256 34c32493f4757985b9aae3ff6f2c818f7984a3939da33ad4bd62d15e2a6c87e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for scitex_git-0.1.1-py3-none-any.whl:

Publisher: publish-pypi.yml on ywatanabe1989/scitex-git

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page