Skip to main content

A simple pyproject.toml initiator

Project description

tomifier

pyproject.toml is a modern way to create a python package. tomifier is CLI to initialize a simple Python pyproject.toml file and starting code. The starting code is itself a CLI that can launch a web application.

References:

Installation

pip install tomifier

Usage

Initialize on current Folder:

  • tomifier init

Initialize on target folder:

  • tomifier init -o target_folder/

Initialize with a project name and a target folder:

  • tomifier init --name myproject1 --output target_folder/

Created files

The CLI will create the following files and folder structure locally or at the target folder:

.
├── LICENSE
├── MANIFEST.in
├── README.md
├── build.sh
├── mypackage
│   ├── __init__.py
│   ├── cmd
│   │   ├── __init__.py
│   │   ├── root.py
│   │   └── static
│   │       └── index.html
│   └── version.py
├── pyproject.toml
└── setup.py

Sample Output from running the tool

tomifier init -n my-project1 -o project1
tomifier CLI
Description [My package]: Description for the project.
Author [Name]: 
Author email [name@email.com]: 
Homepage [https://github/usernane/repo]: 
Comma separated packages (space=None) [click, fastapi, unvicorn[standard]]: 
Creating package myproject1 in folder myproj1 with author Name and email name@email.com
Creating folder myproj1
New project iniatialize at: myproj1

Note: if you intend to deploy the package to pypi.org, make sure that the name is available. Even if it is available, the name could be too close to another name preventing posting. If you end up having to choose a different name, you will need to rename the package directory and the package name references in the README.md,pyproject.toml and MANIFIST.in files

Sample generated pyproject.toml file

[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"

[project]
name = "my-project1"
authors = [
  { name="Name", email="name@email.com" },
]
description = "Description for myproject1"
readme = "README.md"
license = { file="LICENSE" }
requires-python = ">=3.10, <3.12"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
]

dependencies = [
  "click",
  "fastapi",
  "uvicorn[standard]"
]

dynamic = ["version"]

[tool.setuptools]
include-package-data = true

[tool.setuptools.dynamic]
version = {attr = "myproject1.version.VERSION"}
readme = {file = ["README.md"]}

[tool.setuptools.packages.find]
include = ["myproject1*"]
exclude = ["*.tests*"]
namespaces = false

[tool.setuptools.package-data]
"myproject1" = ["*.*"]

[project.urls]
"Homepage" = "https://github/usernane/repo"

[project.scripts]
myproject1 = "myproject1.cmd.root:main"

Note: this is a starting pyproject.toml file. The contents of this file can be modified further to meet your needs.

build.sh

build.sh is a useful bash script to start the build process and deploy the package locally in editable mode.

To run it from a bash terminal type:

sh build.sh

Pushing the file to pypi.org

After building the package, to push the build to pypi.org using twine. Type:

pip install twine
# Make sure to get and install pypi.org token
twine upload dis/*

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

tomifier-0.0.3.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

tomifier-0.0.3-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file tomifier-0.0.3.tar.gz.

File metadata

  • Download URL: tomifier-0.0.3.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for tomifier-0.0.3.tar.gz
Algorithm Hash digest
SHA256 6801c4ae15ab6191dba1123b45c3564f34aa6ee0cf647a60ec96ba7752cb1b7f
MD5 73b122f00124f29df0f5611afdd9e0b3
BLAKE2b-256 ea73534e7ae1ace804482be41f63bfd1c736cea0e85e655c4a04d609dd60fdf1

See more details on using hashes here.

File details

Details for the file tomifier-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: tomifier-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for tomifier-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5fad99e7cc0864f7d8eedb12cdfd6d163d1596b8160c306a02b0a31482df1c51
MD5 4078a8a51a0bd7ec11789dbe62bb303e
BLAKE2b-256 9cf04284077a2e50703318f1e1cb11b8ae6d0b29b308ccd9d7863482630ab4d4

See more details on using hashes here.

Supported by

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