PUTUP(1)

πŸ“¦ version 4.6, in fedora 43, fedora 44

πŸ’– PUTUP(1) β€” like, the PyScaffold command-line interface bestie πŸ’–

okay so this is the manual page for putup, which lives in section 1 of the User Commands manual. if you've ever been like "i want a python project but i do NOT want to hand-make forty files", this is the girl for you. she's serving scaffolding. she's giving structure. she's literally the blueprint era. πŸŽ€


✨ SYNOPSIS ✨

putup [-h] [-n NAME] [-p PACKAGE_NAME] [-d TEXT] [-l LICENSE] [-u URL]
[-f] [-U] [-V] [-v] [-vv] [-P] [--list-actions] [--cirrus]
[--config CONFIG_FILE [CONFIG_FILE ...] | --no-config]
[--save-config [SAVE_CONFIG]] [--github-actions] [-gitlab] [-i]
[--namespace NS1[.NS2]] [--no-pyproject] [--no-skeleton] [--no-tox]
[--pre-commit] [--venv [VENV]] [--venv-install PACKAGE [PACKAGE ...]]
PROJECT_PATH

like. look at all those flags. she's got range. πŸ¦‹


🌸 DESCRIPTION 🌸

PyScaffold is a tool for easily putting up the scaffold of a Python project.

that's it. that's the whole vibe. you point it at a path and it manifests a whole project structure out of thin air. no cap. ✨


πŸ’… OPTIONS πŸ’…

🫢 POSITIONAL ARGUMENTS

  • PROJECT_PATH β€” the path where you want to generate/update the project. this is the "where does the magic happen" slot, bestie.

πŸ”₯ OPTIONAL ARGUMENTS

  • -h, --help β€” shows you a help message and then dips (exits).
  • -n NAME, --name NAME β€” the installable name, like the one you'd use in pip install / on PyPI. default is the basename of PROJECT_PATH. so if you don't pick one, she'll just name it after the folder. lowkey iconic.
  • -p PACKAGE_NAME, --package PACKAGE_NAME β€” the package name, as in what you'd import. default is NAME.
  • -d TEXT, --description TEXT β€” package description. tell the world what this thing does, briefly.
  • -l LICENSE, --license LICENSE β€” the package license. the accepted girlies are: MIT, AGPL-3.0-or-later, AGPL-3.0-only, Apache-2.0, Artistic-2.0, 0BSD, BSD-2-Clause, BSD-3-Clause, CC0-1.0, EPL-1.0, GPL-2.0-or-later, GPL-2.0-only, GPL-3.0-or-later, GPL-3.0-only, ISC, LGPL-2.0-or-later, LGPL-2.0-only, LGPL-3.0-or-later, LGPL-3.0-only, MPL-2.0, Unlicense, Proprietary. default is MIT.
  • -u URL, --url URL β€” the main website/reference URL for the package. drop your link, queen. πŸ”—
  • -f, --force β€” forces overwriting an existing directory. ⚠️ yeah she will absolutely steamroll what's there if you ask her to. only say it if you mean it.
  • -U, --update β€” updates an existing project by replacing the most important files like setup.py etc. and if you also want every single scaffold file replaced, throw --force on top. combo move.
  • -V, --version β€” shows the program's version number and exits. quick lil flex.
  • -v, --verbose β€” shows additional information about current actions. she gets chatty.
  • -vv, --very-verbose β€” shows all available information about current actions. she gets extremely chatty. πŸ’€
  • -P, --pretend β€” does NOT create the project, but displays the log of all operations as if it had been created. dress rehearsal energy, we love her for it.
  • --list-actions β€” also does not create the project, but shows you a list of the planned actions instead.
  • --cirrus β€” adds a configuration file for Cirrus CI. this one includes --pre-commit. two birds, one flag. 🐦
  • --config CONFIG_FILE [CONFIG_FILE ...] β€” config file(s) to read PyScaffold's preferences from. (peep the --help output for the default, bestie, it's in there.)
  • --no-config β€” stops PyScaffold from reading its default config file. girl goes in blind.
  • --save-config [SAVE_CONFIG] β€” saves the given options into a config file. (again, --help output has the default.) so future-you doesn't have to type all this again. self care. 🫢
  • --github-actions β€” adds a configuration file for GitHub Actions. this one also includes --pre-commit.
  • --gitlab β€” generates GitLab CI configuration files.
  • -i, --interactive β€” interactively choose and configure PyScaffold's parameters. it's giving choose-your-own-adventure but for project setup. ✨
  • --namespace NS1[.NS2] β€” puts your project inside a namespace package. default is to use no namespace at all.
  • --no-pyproject β€” does not include a pyproject.toml file in the project root, and therefore avoids isolated builds as defined in PEP517 / 518. and listen, the manual itself says [not recommended]. she said it, not me. 😭
  • --no-skeleton β€” omits creation of skeleton.py and test_skeleton.py. no lil demo files for you.
  • --no-tox β€” prevents a tox configuration file from being created.
  • --pre-commit β€” generates a pre-commit configuration file.
  • --venv [VENV] β€” creates a virtual environment for the project (using virtualenv or stdlib's venv). default location is .venv. if virtualenv is available, it will be used, since it has some advantages over stdlib's venv (such as being faster, see https://virtualenv.pypa.io/en/stable/). and heads up: even though it's part of Python's stdlib, venv is not guaranteed to be installed β€” some OS/distributions (such as Ubuntu) require an explicit installation. if you have problems, try installing virtualenv with pip(1) and run the command again. 🧚
  • --venv-install PACKAGE [PACKAGE ...] β€” installs packages inside the created venv. the packages can have dependency ranges as if they would be written to a requirements.txt file, but remember to use quotes to avoid messing with the terminal. πŸ™ˆ quote it or regret it, bestie.

πŸ‘‘ SEE ALSO πŸ‘‘

  • pip(1), python(1)
  • pre-commit, tox, virtualenv
  • Cirrus CI, GitHub Actions, GitLab CI

and that's the whole page, no crumbs left. this manual came out of the User Commands section dated April 2022 β€” so like, shoutout to that era, she ate and left no notes. πŸ’œ

now go scaffold something cute. periodt. πŸŽ€βœ¨

πŸ“¦ where this page comes from