Skip to main content

Project template cloner + code snippet library for the SciTeX ecosystem — six templates vendored, shallow-cloned on demand to ~/.scitex/template/cache/

Project description

scitex-template

pypi python docs

tests quality cov License: AGPL v3

SciTeX

uv pip install scitex-template[all] · pip install scitex[template]


Problem and Solution

# Problem Solution
1 Six template repos evolving independently — minimal scitex-* package, research project, cloud-module plugin, pip project, LaTeX manuscript, singularity container One vendored monorepo + clonerpip install scitex-template ships every clone_* function, plus a code-snippet library for scitex idioms (session decorator, io save/load, plt subplots)
2 Cloner code buried in scitex-python — release cadence didn't match the templates' Standalone cloner — independent versioning, lazy umbrella imports, MCP server that exposes the same ops to agents

Installation

pip install scitex-template              # core (lazy imports for scitex.git / scitex.logging / scitex.scholar)
pip install scitex-template[mcp]         # MCP server deps (fastmcp)
pip install scitex-template[dev]         # pytest + coverage

The umbrella route also works — pip install scitex[template] pulls this package transitively.

Demo

# Clone any of the 6 vendored templates into a fresh dir
scitex-template clone scitex-pkg my-new-pkg     # minimal scitex-* package
scitex-template clone research-project paper-2026
scitex-template clone latex-manuscript thesis
scitex-template clone singularity-container apptainer-rig

# List available templates + code snippets
scitex-template list-templates
scitex-template list-snippets
graph LR
    Vendored["scitex_template/templates/<br/>(6 vendored template repos)"] --> Cloner["scitex-template clone"]
    Snippets["scitex_template/snippets/<br/>(session, io, plt, ...)"] --> CLI["scitex-template list/get"]
    Cloner --> Out1["fresh project dir"]
    CLI --> Out2["copy-paste idioms"]

Architecture

scitex_template/
├── templates/                ← 6 vendored template repos (kept in sync)
│   ├── scitex-pkg/           ← minimal scitex-* package skeleton
│   ├── research-project/     ← @stx.session-driven analysis layout
│   ├── cloud-module-plugin/  ← scitex-cloud plugin scaffold
│   ├── pip-project/          ← bare-bones PyPI package
│   ├── latex-manuscript/     ← scitex-writer-compatible paper
│   └── singularity/          ← apptainer container recipe
├── snippets/                 ← copy-paste idioms (session, io, plt, ...)
├── _cli/                     ← `scitex-template clone` / list / get
└── _mcp/                     ← MCP server exposing the same ops to agents

Each template ships as plain files; cloning is a recursive copy with optional {name} substitution, no Cookiecutter-style runtime templating engine. The MCP server re-exports the CLI surface 1:1.

Quick Start

pip install scitex-template
scitex-template list-templates
scitex-template clone research ./my-experiment
from scitex_template import clone_research, get_code_template

clone_research(target="my-experiment", project_name="my-experiment")
print(get_code_template("session"))

3 Interfaces

Python API
import scitex  # noqa: F401 — ensures scitex.git / .logging are importable

from scitex_template import (
    clone_research,
    clone_pip_project,
    clone_scitex_minimal,
    get_available_templates_info,
    get_code_template,
)

# Clone a research project template
clone_research(target="my-experiment", project_name="my-experiment")

# Discover available templates
for info in get_available_templates_info():
    print(f"{info['id']:>10}  {info['description']}")

# Pull a code snippet for a scitex session script
print(get_code_template("session"))

The legacy import path from scitex.template import … also still works via a compatibility shim in scitex-python.

CLI

Entry point: scitex-template (also python -m scitex_template).

scitex-template list-templates             # enumerate templates
scitex-template show-info research         # template metadata
scitex-template clone research ./my-proj   # populate from cache
scitex-template refresh-cache              # force re-clone
MCP Server — for AI Agents

Install with pip install scitex-template[mcp] and the package exposes async handlers (template_list, template_info, template_clone, template_cache_refresh) over MCP — agents can scaffold projects without running Python themselves.

Template repos

scitex-template clones from these external repositories:

Template id Repo
research scitex-research-template
app / pip pip-project-template
cloud-module scitex-template-cloud-module
minimal scitex-minimal-template
singularity singularity_template
paper paper-template

A future revision may vendor these as templates/<id>/ subdirs in this repo so the cloner and the templates ship in lockstep.

Dependency notes

Per the SciTeX downstream dependency rule (general/01_arch_02), this package aims to avoid a hard runtime dep on the scitex umbrella. At present three submodules are still imported lazily inside clone_* functions: scitex.git, scitex.logging, scitex.scholar.ensure_workspace. Once scitex-git is extracted as a standalone, those imports will move to the standalone equivalents (scitex_git, scitex_logging, scitex_scholar). Users running pip install scitex[template] pick up the umbrella transitively, so there is no current breakage.

License

AGPL-3.0-only.

Part of SciTeX

scitex-template is part of SciTeX. Install via the umbrella with pip install scitex[template] to use as scitex.template (Python) or scitex template ... (CLI).

Four Freedoms for Research

  1. The freedom to run your research anywhere — your machine, your terms.
  2. The freedom to study how every step works — from raw data to final manuscript.
  3. The freedom to redistribute your workflows, not just your papers.
  4. The freedom to modify any module and share improvements with the community.

AGPL-3.0 — because we believe research infrastructure deserves the same freedoms as the software it runs on.


SciTeX

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_template-0.6.6.tar.gz (8.4 MB view details)

Uploaded Source

Built Distribution

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

scitex_template-0.6.6-py3-none-any.whl (8.4 MB view details)

Uploaded Python 3

File details

Details for the file scitex_template-0.6.6.tar.gz.

File metadata

  • Download URL: scitex_template-0.6.6.tar.gz
  • Upload date:
  • Size: 8.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scitex_template-0.6.6.tar.gz
Algorithm Hash digest
SHA256 9e3010bc39eb688aaa419a19d0d1b1144da89ca0efb22729a8abdb2aef9e746a
MD5 5765ea5a1d694e0d19a291ad56f46951
BLAKE2b-256 919792c054f7ba189975344fe117b753ba1335f8cb851e42dacda5cb5b5de63c

See more details on using hashes here.

Provenance

The following attestation bundles were made for scitex_template-0.6.6.tar.gz:

Publisher: pypi-publish-and-github-release-on-tag.yml on ywatanabe1989/scitex-template

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_template-0.6.6-py3-none-any.whl.

File metadata

File hashes

Hashes for scitex_template-0.6.6-py3-none-any.whl
Algorithm Hash digest
SHA256 01ef25c6c7b817d0e74ec36393528ad4f07127d7a686d39722c4e6ebb7f9a141
MD5 9c911cea97aa96044abe407b21c5f458
BLAKE2b-256 32e144e68843054e63efc9b7d976d94eca1989ef9fb285bdabae5823682d3cb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for scitex_template-0.6.6-py3-none-any.whl:

Publisher: pypi-publish-and-github-release-on-tag.yml on ywatanabe1989/scitex-template

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