Name | pkgcreator JSON |
Version |
0.1.0.post1
JSON |
| download |
home_page | None |
Summary | Create python package structure, necessary files with content, git repository and venv. |
upload_time | 2025-07-29 18:06:21 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | BSD 3-Clause License
Copyright (c) 2025, Philipp Meder
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
keywords |
python
packaging
project-setup
cli
automation
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<h1 align="center">
<img src="https://raw.githubusercontent.com/PhilippMeder/pkgcreator/main/docs/figs/pkgcreator_logo.svg" width="300">
</h1>
[](https://pypi.org/project/pkgcreator/)
[](https://pypi.org/project/pkgcreator/)
[](https://github.com/PhilippMeder/pkgcreator/blob/main/LICENSE)
[](https://github.com/PhilippMeder/pkgcreator/actions/workflows/test-python-package.yml)
[](https://github.com/PhilippMeder/pkgcreator/issues)
`pkgcreator` is a Python CLI tool that helps you quickly set up a new Python package with a recommended folder structure, a virtual environment, license file, Git repository, and pre-filled configuration files like `pyproject.toml` and `README.md`.
It supports interactive prompts, smart defaults (e.g. from your Git config), and includes additional utilities like a GitHub folder downloader, CLI/formatter helpers, and virtual environment management.
Whether you're preparing a new project or just want a clean setup for your next internal tool — `pkgcreator` automates the boilerplate and saves you time.
Developed and maintained by [Philipp Meder](https://github.com/PhilippMeder).
- **Source code**: https://github.com/PhilippMeder/pkgcreator.git
- **Report bugs**: https://github.com/PhilippMeder/pkgcreator/issues
Quick overview:
1. [Quick Start](#quick-start)
2. [License](#license)
3. [Features](#features) **(most interesting part)**
4. [Requirements and Dependencies](#requirements-and-dependencies)
## Quick Start
Install this package (replace `pkgcreator` with `pkgcreator[full]` to install all optional dependencies on Python packages):
```bash
pip install pkgcreator
```
Create a new package structure, initialise Git, create a virtual environment, and include the *MIT license*:
```bash
pkgcreator create mypackage --git --venv --license MIT
```
For a detailed list of available options, see the section [Package Structure Creator](#package-structure-creator).
## License
Distributed under the [BSD 3-Clause License](./LICENSE).
## Features
Following features are covered here, with focus on the main feature **[Package Structure Creator](#package-structure-creator)**.
1. [Package Structure Creator](#package-structure-creator)
1. [Creating the package structure](#creating-the-package-structure)
2. [Configuring the creation process and adding Git/venv](#configuring-the-creation-process-and-adding-gitvenv)
3. [Configuring project settings](#configuring-project-settings)
4. [Using preselections and suggestions](#using-preselections-and-suggestions)
2. [Accessing Git with Python](#accessing-git-with-python)
3. [GitHub Downloader](#github-downloader)
1. [Python version](#python-version)
2. [Bash version](#bash-version)
4. [Creating and Managing Virtual Environments](#creating-and-managing-virtual-environments)
5. [Tools](#tools)
1. [Logging tools](#logging-tools)
2. [CLI tools](#cli-tools)
To use the core features, you may directly call one of the two following lines:
```bash
pkgcreator [OPTIONS]
python -m pkgcreator [OPTIONS]
```
For a list of available options, see the next sections or run:
```bash
pkgcreator --help
```
### Package Structure Creator
Create a typical file structure for a python package with the necessary files and their content.
#### Creating the package structure
Running `pkgcreator create <NAME>` will create the following package structure as officially recommended:
- `NAME`
- `src/NAME`
- `__init__.py`
- `__main__.py` (if the `--script` option is used)
- `.gitignore` (with some presets)
- `LICENSE` (with content if the `-l, --license>` option is used)
- `pyproject.toml` (with content according to the options used, see `--help`)
- `README.md` (with content according to the options used, see `--help`)
For a list of available options, read the next sections or run:
```bash
pkgcreator create --help
```
#### Configuring the creation process and adding Git/venv
There are several important options you may consider when creating the package structure:
- Adding a license text with `--license <LICENSE>`:
Using the `-l, --license <LICENSE>` option allows you to add the text of `<LICENSE>` if this is a valid identifier. To list all available identifiers, use `--list-licenses`. This option requires the python package `requests` and will fail if it is not installed.
- Initialising a Git repository with `--git`:
If `Git` is available on your system, using the `--git` option automatically initialises a Git repository and commits all created files.
- Creating a virtual environment with `--venv`:
Using the `--venv` option automatically creates a virtual environment in `NAME/.venv` (ignored by `Git`) and installs the created package in editable mode so you can run it as `python -m <NAME>` or import it with `import <NAME>` inside the activated environment.
- Providing the package as a script with `--script`:
Using the `--script` option will create a `__main__.py` with function `main()` that is called whenever you run the package as a module (`python -m <NAME>`). In addition, the `pyproject.toml` registers the terminal command `<NAME>` that will also call this function.
#### Using preselections and suggestions
If not explicitly set, some arguments will suggest values based on context:
- `--github-repositoryname` may suggest using the package name
- `--author-name` may suggest using `user.name` from `git config`, if available
- `--author-mail` may suggest using `user.email` from `git config`, if available
- `--git` may ask whether to initialise a Git repository
- `--venv` may ask whether to initialise a virtual environment and install the package in editable mode
Use the `-m, --prompt-mode` option to control whether these suggestions are shown or automatically handled:
| Option | `yes` | `auto` | `no` |
|--------------------------|:-----:|:------:|:-----:|
| `--github-repositoryname`| ✅ | ✅ | ❌ |
| `--author-name` | ✅ | ✅ | ❌ |
| `--author-mail` | ✅ | ✅ | ❌ |
| `--git` | ✅ | ❌ | ❌ |
| `--venv` | ✅ | ❌ | ❌ |
- `yes`: Automatically accept all suggestions
- `no`: Skip all prompts and use defaults or leave unset
- `auto`: Accept safe suggestions only (e.g., use Git info, but skip Git initialisation)
- `ask` *(default)*: Prompt interactively for each case, and ask again before creating the project structure
#### Configuring project settings
There are a bunch of variables that are used for the creation of the `pyproject.toml`, `README.md`, and `LICENSE` (if `-l` is used).
**These can be changed later in the mentioned files.**
Available options are (the names are self-explanatory):
| Option | Notes |
|--------|------------|
| `--description` | |
| `--author-name` | suggests `git config user.name` if not set |
| `--author-mail` | suggests `git config user.email` if not set |
| `--github-username` | used for various project URLs (if not provided) |
| `--github-repositoryname` | used for various project URLs (if not provided), suggests the package name if not set |
In addition, a typical package also links to some of its online resources.
If not set, each of them will link to a subpage of the github repository defined by `--github-username` and `--github-repositoryname`.
- `--changelog`
- `--documentation`
- `--download`
- `--funding`
- `--homepage`
- `--issues`
- `--releasenotes`
- `--source`
If some dependencies, optional dependencies or classifiers (for PyPI) are already known, they can be set with the following commands:
- `--dependencies package1 package2 ...`
- `--optional-dependencies package1 package2 ...` (available as a `[full]` option during package installation)
- `--classifiers classifier1 classifier2 ...` (for a full list see [PyPI classifier](https://pypi.org/classifiers/))
### Accessing Git with Python
This feature is provided for completeness since it is used as a handy tool during the package structure creation process.
You may run
```bash
pkgcreator git --help
```
to list the available options.
However, **running Git directly** is usually more flexible and preferred.
### GitHub Downloader
Download a specific folder (or the entire contents) from a public GitHub repository using the GitHub API.
#### Python version
**Features:**
* Downloads a subfolder or the full repository
* Supports branch selection
* Recursive or non-recursive download
**Usage:**
To download the repository contents (default branch `main`), run:
```bash
pkgcreator github-download <OWNER> <REPOSITORY> [OPTIONS]
```
Available options are (run `pkgcreator github-download --help` for a full list):
- `-b, --branch` Selects the branch name (default: *main*).
- `-s, --subfolder` If not provided, download the full repository. If set to a subdirectory of the repository, download this subdirectory. If set to a single file, only download this file.
- `-d, --destination` Local directory where the files should be downloaded to (default: *./downloaded_<REPOSITORY>*).
- `-n, --no-recursive` Do not download folders recursively.
- `--list` List the content of the repository (or the given subfolder) and exit.
**Note:** The GitHub API limits the number of requests per time period. For more information see the [Rate limits for the REST API](https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api).
#### Bash version
For completeness, a bash version is provided.
Located in: [`github_download.sh`](./scripts/github_download.sh)
**Features:**
* Uses `git sparse-checkout` to efficiently fetch only a folder
* Minimal download size, ideal for large repositories
**Usage:**
```bash
./github_download.sh ExampleOwner example_repo main ./target_folder subdir/in/repo
```
Arguments:
```text
<owner> <repo> [branch=main] [target_dir=<repo>_sparse] [folder=None]
```
If no folder is specified, the full repository is checked out.
### Creating and Managing Virtual Environments
The command
```bash
pkgcreator venv [OPTIONS]
```
can create a virtual environment and install packages in this environment.
Available options are (run `pkgcreator github-download --help` for a full list):
- `-d, --destination` Directory where the venv folder will be created (default: current working directory).
- `-c, --create` Create the virtual environment.
- `-i, --install` List of packages to install (via pip).
- `-e, --editable` List of packages/local package paths to install in editable mode (-e).
- `--name` Name of the virtual environment folder (default: .venv).
- `--version-suffix` Append Python major/minor version to the venv folder name.
### Tools
In addition to the main features, also some useful tools that were written for the functionality of this package are available.
#### Logging tools
- `LoggerFormatter` provides a formatter that is a subclass of the standard library's `logging.Formatter`. The logger messages will be color coded and start with `[Error], [Warning], [Info]` depending on the message type.
- `logged_subprocess_run` provides a wrapper around `subprocess.run` where the output feed of the process is streamed live to the given logger.
To use these features and understand their parameters, run:
```python
from pkgcreator.logging_tools import LoggerFormatter, logged_subprocess_run
help(LoggerFormatter)
help(logged_subprocess_run)
```
#### CLI tools
- `ConsistentFormatter` provides an `argparse.HelpFormatter` that aims at a consistent appearance. It enforces capitalization and periods where needed.
- `generate_parser_template` generates a template Python function that consistently creates an `argparse.Argparser` that is either a standalone or a subparser.
To use these features and understand their parameters, run:
```python
from pkgcreator.cli_tools import ConsistentFormatter, generate_parser_template
help(ConsistentFormatter)
help(generate_parser_template)
```
## Requirements and Dependencies
Following **requirements** must be satisfied:
* `Python 3.10+` (developed with `Python 3.13`, tested with `Python 3.10+`, lower version are not working due to the use of `match ... case` and `Union`)
Following **optional dependencies** are recommended, but not required:
* `requests` library (for Python GitHub downloader and license selection/download)
* `Git` (for sparse-checkout Bash script or if you want to initialise a Git repository when creating a Python package)
To install Python dependencies you may either use
```bash
pip install DEPENDENCY
```
or directly specify that you want to install all optional dependencies when installing this package with:
```bash
pip install pkgcreator[full]
```
Raw data
{
"_id": null,
"home_page": null,
"name": "pkgcreator",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Philipp Meder <148459685+PhilippMeder@users.noreply.github.com>",
"keywords": "python, packaging, project-setup, cli, automation",
"author": null,
"author_email": "Philipp Meder <148459685+PhilippMeder@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/6c/6c/1520f5e8d858c06ab3aa33f98ca16a3d4c364c85bcd047f4527d78bd7fc2/pkgcreator-0.1.0.post1.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">\n<img src=\"https://raw.githubusercontent.com/PhilippMeder/pkgcreator/main/docs/figs/pkgcreator_logo.svg\" width=\"300\">\n</h1>\n\n[](https://pypi.org/project/pkgcreator/)\n[](https://pypi.org/project/pkgcreator/)\n[](https://github.com/PhilippMeder/pkgcreator/blob/main/LICENSE)\n[](https://github.com/PhilippMeder/pkgcreator/actions/workflows/test-python-package.yml)\n[](https://github.com/PhilippMeder/pkgcreator/issues)\n\n`pkgcreator` is a Python CLI tool that helps you quickly set up a new Python package with a recommended folder structure, a virtual environment, license file, Git repository, and pre-filled configuration files like `pyproject.toml` and `README.md`.\n\nIt supports interactive prompts, smart defaults (e.g. from your Git config), and includes additional utilities like a GitHub folder downloader, CLI/formatter helpers, and virtual environment management.\n\nWhether you're preparing a new project or just want a clean setup for your next internal tool \u2014 `pkgcreator` automates the boilerplate and saves you time.\n\nDeveloped and maintained by [Philipp Meder](https://github.com/PhilippMeder).\n\n- **Source code**: https://github.com/PhilippMeder/pkgcreator.git\n- **Report bugs**: https://github.com/PhilippMeder/pkgcreator/issues\n\nQuick overview:\n\n1. [Quick Start](#quick-start)\n2. [License](#license)\n3. [Features](#features) **(most interesting part)**\n4. [Requirements and Dependencies](#requirements-and-dependencies)\n\n## Quick Start\n\nInstall this package (replace `pkgcreator` with `pkgcreator[full]` to install all optional dependencies on Python packages):\n\n```bash\npip install pkgcreator\n```\n\nCreate a new package structure, initialise Git, create a virtual environment, and include the *MIT license*:\n\n```bash\npkgcreator create mypackage --git --venv --license MIT\n```\n\nFor a detailed list of available options, see the section [Package Structure Creator](#package-structure-creator).\n\n## License\n\nDistributed under the [BSD 3-Clause License](./LICENSE).\n\n## Features\n\nFollowing features are covered here, with focus on the main feature **[Package Structure Creator](#package-structure-creator)**.\n\n1. [Package Structure Creator](#package-structure-creator)\n 1. [Creating the package structure](#creating-the-package-structure)\n 2. [Configuring the creation process and adding Git/venv](#configuring-the-creation-process-and-adding-gitvenv)\n 3. [Configuring project settings](#configuring-project-settings)\n 4. [Using preselections and suggestions](#using-preselections-and-suggestions)\n2. [Accessing Git with Python](#accessing-git-with-python)\n3. [GitHub Downloader](#github-downloader)\n 1. [Python version](#python-version)\n 2. [Bash version](#bash-version)\n4. [Creating and Managing Virtual Environments](#creating-and-managing-virtual-environments)\n5. [Tools](#tools)\n 1. [Logging tools](#logging-tools)\n 2. [CLI tools](#cli-tools)\n\nTo use the core features, you may directly call one of the two following lines:\n\n```bash\npkgcreator [OPTIONS]\npython -m pkgcreator [OPTIONS]\n```\n\nFor a list of available options, see the next sections or run:\n\n```bash\npkgcreator --help\n```\n\n### Package Structure Creator\n\nCreate a typical file structure for a python package with the necessary files and their content.\n\n#### Creating the package structure\n\nRunning `pkgcreator create <NAME>` will create the following package structure as officially recommended:\n\n- `NAME`\n - `src/NAME`\n - `__init__.py`\n - `__main__.py` (if the `--script` option is used)\n - `.gitignore` (with some presets)\n - `LICENSE` (with content if the `-l, --license>` option is used)\n - `pyproject.toml` (with content according to the options used, see `--help`)\n - `README.md` (with content according to the options used, see `--help`)\n\nFor a list of available options, read the next sections or run:\n\n```bash\npkgcreator create --help\n```\n\n#### Configuring the creation process and adding Git/venv\n\nThere are several important options you may consider when creating the package structure:\n\n- Adding a license text with `--license <LICENSE>`:\n\n Using the `-l, --license <LICENSE>` option allows you to add the text of `<LICENSE>` if this is a valid identifier. To list all available identifiers, use `--list-licenses`. This option requires the python package `requests` and will fail if it is not installed.\n\n- Initialising a Git repository with `--git`:\n\n If `Git` is available on your system, using the `--git` option automatically initialises a Git repository and commits all created files.\n\n- Creating a virtual environment with `--venv`:\n\n Using the `--venv` option automatically creates a virtual environment in `NAME/.venv` (ignored by `Git`) and installs the created package in editable mode so you can run it as `python -m <NAME>` or import it with `import <NAME>` inside the activated environment.\n\n- Providing the package as a script with `--script`:\n\n Using the `--script` option will create a `__main__.py` with function `main()` that is called whenever you run the package as a module (`python -m <NAME>`). In addition, the `pyproject.toml` registers the terminal command `<NAME>` that will also call this function.\n\n#### Using preselections and suggestions\n\nIf not explicitly set, some arguments will suggest values based on context:\n\n- `--github-repositoryname` may suggest using the package name\n- `--author-name` may suggest using `user.name` from `git config`, if available\n- `--author-mail` may suggest using `user.email` from `git config`, if available\n- `--git` may ask whether to initialise a Git repository\n- `--venv` may ask whether to initialise a virtual environment and install the package in editable mode\n\nUse the `-m, --prompt-mode` option to control whether these suggestions are shown or automatically handled:\n\n| Option | `yes` | `auto` | `no` |\n|--------------------------|:-----:|:------:|:-----:|\n| `--github-repositoryname`| \u2705 | \u2705 | \u274c |\n| `--author-name` | \u2705 | \u2705 | \u274c |\n| `--author-mail` | \u2705 | \u2705 | \u274c |\n| `--git` | \u2705 | \u274c | \u274c |\n| `--venv` | \u2705 | \u274c | \u274c |\n\n- `yes`: Automatically accept all suggestions\n- `no`: Skip all prompts and use defaults or leave unset\n- `auto`: Accept safe suggestions only (e.g., use Git info, but skip Git initialisation)\n- `ask` *(default)*: Prompt interactively for each case, and ask again before creating the project structure\n\n#### Configuring project settings\n\nThere are a bunch of variables that are used for the creation of the `pyproject.toml`, `README.md`, and `LICENSE` (if `-l` is used).\n\n**These can be changed later in the mentioned files.**\n\nAvailable options are (the names are self-explanatory):\n\n| Option | Notes |\n|--------|------------|\n| `--description` | |\n| `--author-name` | suggests `git config user.name` if not set |\n| `--author-mail` | suggests `git config user.email` if not set |\n| `--github-username` | used for various project URLs (if not provided) |\n| `--github-repositoryname` | used for various project URLs (if not provided), suggests the package name if not set |\n\nIn addition, a typical package also links to some of its online resources.\nIf not set, each of them will link to a subpage of the github repository defined by `--github-username` and `--github-repositoryname`.\n\n- `--changelog`\n- `--documentation`\n- `--download`\n- `--funding`\n- `--homepage`\n- `--issues`\n- `--releasenotes`\n- `--source`\n\nIf some dependencies, optional dependencies or classifiers (for PyPI) are already known, they can be set with the following commands:\n\n- `--dependencies package1 package2 ...`\n- `--optional-dependencies package1 package2 ...` (available as a `[full]` option during package installation)\n- `--classifiers classifier1 classifier2 ...` (for a full list see [PyPI classifier](https://pypi.org/classifiers/))\n\n### Accessing Git with Python\n\nThis feature is provided for completeness since it is used as a handy tool during the package structure creation process.\nYou may run\n\n```bash\npkgcreator git --help\n```\n\nto list the available options.\nHowever, **running Git directly** is usually more flexible and preferred.\n\n### GitHub Downloader\n\nDownload a specific folder (or the entire contents) from a public GitHub repository using the GitHub API.\n\n#### Python version\n\n**Features:**\n\n* Downloads a subfolder or the full repository\n* Supports branch selection\n* Recursive or non-recursive download\n\n**Usage:**\n\nTo download the repository contents (default branch `main`), run:\n\n```bash\npkgcreator github-download <OWNER> <REPOSITORY> [OPTIONS]\n```\n\nAvailable options are (run `pkgcreator github-download --help` for a full list):\n\n- `-b, --branch` Selects the branch name (default: *main*).\n- `-s, --subfolder` If not provided, download the full repository. If set to a subdirectory of the repository, download this subdirectory. If set to a single file, only download this file.\n- `-d, --destination` Local directory where the files should be downloaded to (default: *./downloaded_<REPOSITORY>*).\n- `-n, --no-recursive` Do not download folders recursively.\n- `--list` List the content of the repository (or the given subfolder) and exit.\n\n**Note:** The GitHub API limits the number of requests per time period. For more information see the [Rate limits for the REST API](https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api).\n\n#### Bash version\n\nFor completeness, a bash version is provided.\n\nLocated in: [`github_download.sh`](./scripts/github_download.sh)\n\n**Features:**\n\n* Uses `git sparse-checkout` to efficiently fetch only a folder\n* Minimal download size, ideal for large repositories\n\n**Usage:**\n\n```bash\n./github_download.sh ExampleOwner example_repo main ./target_folder subdir/in/repo\n```\n\nArguments:\n\n```text\n<owner> <repo> [branch=main] [target_dir=<repo>_sparse] [folder=None]\n```\n\nIf no folder is specified, the full repository is checked out.\n\n### Creating and Managing Virtual Environments\n\nThe command\n\n```bash\npkgcreator venv [OPTIONS]\n```\n\ncan create a virtual environment and install packages in this environment.\nAvailable options are (run `pkgcreator github-download --help` for a full list):\n\n- `-d, --destination` Directory where the venv folder will be created (default: current working directory).\n- `-c, --create` Create the virtual environment.\n- `-i, --install` List of packages to install (via pip).\n- `-e, --editable` List of packages/local package paths to install in editable mode (-e).\n- `--name` Name of the virtual environment folder (default: .venv).\n- `--version-suffix` Append Python major/minor version to the venv folder name.\n\n### Tools\n\nIn addition to the main features, also some useful tools that were written for the functionality of this package are available.\n\n#### Logging tools\n\n- `LoggerFormatter` provides a formatter that is a subclass of the standard library's `logging.Formatter`. The logger messages will be color coded and start with `[Error], [Warning], [Info]` depending on the message type.\n- `logged_subprocess_run` provides a wrapper around `subprocess.run` where the output feed of the process is streamed live to the given logger.\n\nTo use these features and understand their parameters, run:\n\n```python\nfrom pkgcreator.logging_tools import LoggerFormatter, logged_subprocess_run\n\nhelp(LoggerFormatter)\nhelp(logged_subprocess_run)\n```\n\n#### CLI tools\n\n- `ConsistentFormatter` provides an `argparse.HelpFormatter` that aims at a consistent appearance. It enforces capitalization and periods where needed.\n- `generate_parser_template` generates a template Python function that consistently creates an `argparse.Argparser` that is either a standalone or a subparser.\n\nTo use these features and understand their parameters, run:\n\n```python\nfrom pkgcreator.cli_tools import ConsistentFormatter, generate_parser_template\n\nhelp(ConsistentFormatter)\nhelp(generate_parser_template)\n```\n\n## Requirements and Dependencies\n\nFollowing **requirements** must be satisfied:\n\n* `Python 3.10+` (developed with `Python 3.13`, tested with `Python 3.10+`, lower version are not working due to the use of `match ... case` and `Union`)\n\nFollowing **optional dependencies** are recommended, but not required:\n\n* `requests` library (for Python GitHub downloader and license selection/download)\n* `Git` (for sparse-checkout Bash script or if you want to initialise a Git repository when creating a Python package)\n\nTo install Python dependencies you may either use\n\n```bash\npip install DEPENDENCY\n```\n\nor directly specify that you want to install all optional dependencies when installing this package with:\n\n```bash\npip install pkgcreator[full]\n```\n",
"bugtrack_url": null,
"license": "BSD 3-Clause License\n \n Copyright (c) 2025, Philipp Meder\n \n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n \n 1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n \n 2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n \n 3. Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n ",
"summary": "Create python package structure, necessary files with content, git repository and venv.",
"version": "0.1.0.post1",
"project_urls": {
"Changelog": "https://github.com/PhilippMeder/pkgcreator/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/PhilippMeder/pkgcreator#readme",
"Download": "https://github.com/PhilippMeder/pkgcreator",
"Homepage": "https://github.com/PhilippMeder/pkgcreator",
"Issues": "https://github.com/PhilippMeder/pkgcreator/issues",
"Releasenotes": "https://github.com/PhilippMeder/pkgcreator/releases",
"Source": "https://github.com/PhilippMeder/pkgcreator.git"
},
"split_keywords": [
"python",
" packaging",
" project-setup",
" cli",
" automation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "58b8f32e28ee65ba5fb1279da94c1c6b87403b9029f06b64d37f78b0d9d29f4a",
"md5": "93c3e1b7bd7dcdfd7698e0b7ad7e3e8a",
"sha256": "c3a197aef4e41dfd1c3e82ed8fa82f860911673c787ed6a2301b0d100d4ee18c"
},
"downloads": -1,
"filename": "pkgcreator-0.1.0.post1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "93c3e1b7bd7dcdfd7698e0b7ad7e3e8a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 37315,
"upload_time": "2025-07-29T18:06:20",
"upload_time_iso_8601": "2025-07-29T18:06:20.153205Z",
"url": "https://files.pythonhosted.org/packages/58/b8/f32e28ee65ba5fb1279da94c1c6b87403b9029f06b64d37f78b0d9d29f4a/pkgcreator-0.1.0.post1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6c6c1520f5e8d858c06ab3aa33f98ca16a3d4c364c85bcd047f4527d78bd7fc2",
"md5": "3d931e1af8368a1bc7c37e2a75546bca",
"sha256": "46a2e72d25dcad45fa70221f74abea4d5515cb274a218c0c67a75cb98a44144d"
},
"downloads": -1,
"filename": "pkgcreator-0.1.0.post1.tar.gz",
"has_sig": false,
"md5_digest": "3d931e1af8368a1bc7c37e2a75546bca",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 39993,
"upload_time": "2025-07-29T18:06:21",
"upload_time_iso_8601": "2025-07-29T18:06:21.714198Z",
"url": "https://files.pythonhosted.org/packages/6c/6c/1520f5e8d858c06ab3aa33f98ca16a3d4c364c85bcd047f4527d78bd7fc2/pkgcreator-0.1.0.post1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-29 18:06:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PhilippMeder",
"github_project": "pkgcreator",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pkgcreator"
}