Skip to main content

jyinit - scaffold Python projects (CLI)

Project description

jyinit

๐Ÿš€ Extended Python Project Scaffolder โ€“ create production-ready Python projects (apps, services, libraries, ML projects, etc.) with one command.
Includes templates, licenses, CI/CD workflows, Git setup, and interactive prompts.


โœจ Features

  • ๐Ÿ“ฆ Multiple templates: scaffold Flask, FastAPI, Django, Streamlit, ML, libraries, etc.
  • โšก Interactive mode (--interactive): prompts you for missing options.
  • ๐Ÿ”ง Per-template GitHub Actions workflows (via --ci).
  • ๐Ÿ“ Licenses included (MIT, Apache-2.0, GPL-3.0, โ€ฆ).
  • ๐Ÿ™ Git integration:
    • --git โ†’ initializes git repo(s) without remote.
    • --gitrep [url] โ†’ initializes repo(s) and optionally sets a remote + pushes initial commit.
  • ๐Ÿงช Tests scaffold: creates a tests/ folder with __init__.py.
  • ๐Ÿ Virtual environments (--venv) per subproject.
  • ๐Ÿ” Dry-run mode (--dry-run) โ€“ preview everything before creating files.

๐Ÿ“ฅ Installation

pip install jyinit

Or clone locally for development:

git clone https://github.com/nj2216/jyinit.git
cd jyinit
pip install -e .

๐Ÿš€ Usage

Show help

jyinit --help

Interactive mode

Prompts for template, license, Python version, etc.

jyinit create myproj --interactive

Non-interactive example

Create a Flask app with CI, initialize git, and push to GitHub:

jyinit create myrepo --types flask --ci --gitrep https://github.com/you/myrepo.git

Multiple templates (monorepo style)

jyinit create combo --types streamlit mlops --venv --gitrep

List available templates and licenses

jyinit list-templates

โš™๏ธ CLI Options

Option Description
--type Legacy: single template scaffold
--types One or more templates (library, flask, fastapi, django, โ€ฆ)
--dir Base directory for project
--license Choose license (default: MIT)
--author Author name (defaults to system user)
--py Minimum Python version (default: 3.8)
--git Initialize git (no remote)
--gitrep [url] Init git + set optional remote & push
--venv Create .venv per subproject
--no-tests Skip creating tests/ folder
--ci Add tailored GitHub Actions workflow
--interactive Prompt for missing values
--dry-run Preview without writing files

๐Ÿ“‚ Example Generated Project Structure

For a Flask project:

myrepo/
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ myrepo/
โ”‚   โ””โ”€โ”€ __init__.py
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ __init__.py
โ””โ”€โ”€ .github/
    โ””โ”€โ”€ workflows/
        โ””โ”€โ”€ python-package.yml

For a monorepo with streamlit + mlops, youโ€™ll get:

combo/
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ streamlit/
โ”‚   โ”œโ”€โ”€ ...
โ”‚   โ””โ”€โ”€ tests/
โ”œโ”€โ”€ mlops/
โ”‚   โ”œโ”€โ”€ ...
โ”‚   โ””โ”€โ”€ tests/

๐Ÿ›  Development

Clone the repo and install dev dependencies:

pip install -r requirements-dev.txt

Run tests (if you scaffolded pytest):

pytest

๐Ÿ“œ License

jyinit is licensed under the MIT License. See LICENSE for details.


๐Ÿ™Œ Acknowledgments

Inspired by Python project cookiecutters, but with interactive scaffolding, monorepo support, and built-in CI.


๐Ÿค Contributing

Contributions are welcome! ๐ŸŽ‰
Please see our CONTRIBUTING.md for guidelines on how to report issues, propose changes, and submit pull requests.


๐Ÿง‘โ€๐Ÿ’ป Code of Conduct

This project follows the Contributor Covenant Code of Conduct.
By participating, you are expected to uphold this code. Please report any unacceptable behavior to the maintainers.


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

jyinit-0.0.6.tar.gz (39.1 kB view details)

Uploaded Source

Built Distribution

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

jyinit-0.0.6-py3-none-any.whl (37.5 kB view details)

Uploaded Python 3

File details

Details for the file jyinit-0.0.6.tar.gz.

File metadata

  • Download URL: jyinit-0.0.6.tar.gz
  • Upload date:
  • Size: 39.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jyinit-0.0.6.tar.gz
Algorithm Hash digest
SHA256 d4c3d30e037604c06b25bb4016535f0a12b99f16bd77ebde14c3c431b4815942
MD5 57fd8c9d0f6412e6bc6dbab8ba832491
BLAKE2b-256 e875a335c9c652989bdbaa38d3d30f8207ed4476f73041549fe3fc0491f42ebe

See more details on using hashes here.

Provenance

The following attestation bundles were made for jyinit-0.0.6.tar.gz:

Publisher: publish.yml on nj2216/jyinit

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

File details

Details for the file jyinit-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: jyinit-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 37.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jyinit-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0f19b09d4066c98cf20e38755a135ebc81098fbf1eceb6ed65a43a2aea368026
MD5 5c822176de708ae6b4a7b4a223166b88
BLAKE2b-256 fb93bed584d85ab489f2d633ceb3da869af564f1a5ed68c6d4d7a89d5a0550d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for jyinit-0.0.6-py3-none-any.whl:

Publisher: publish.yml on nj2216/jyinit

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