Skip to content

Build systems

fblanchetNaN edited this page Apr 15, 2021 · 20 revisions

Build systems

Workflow for packaging and installing

python -m venv .env
source .env/bin/activate
python -m pip install --upgrade pip build
python -m build
python -m pip install --force-reinstall dist/test_package-0.0.1-py3-none-any.whl

Flit

pyproject.toml

[build-system]
requires = ["flit_core"]
build-backend = "flit_core.buildapi"

[project]
name = "test_package"
version = "0.0.1"
description = "Description"
readme = "README.md"
authors = [
  {name = "Tzu-Ping Chung", email = "[email protected]"}
]
maintainers = [
  {name = "Tzu-Ping Chung", email = "[email protected]"}
]
requires-python = ">=3.6"
license = {file = "LICENSE"}
classifiers = [
  "Development Status :: 1 - Planning",
  "Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
  "Programming Language :: Python",
  "Classifier: Programming Language :: Python :: 3.6",
  "Classifier: Programming Language :: Python :: 3.7",
  "Classifier: Programming Language :: Python :: 3.8",
  "Classifier: Programming Language :: Python :: 3.9",
  "Classifier: Programming Language :: Python :: 3.10"
]

[project.urls]
homepage = "example.com"
documentation = "readthedocs.org"
repository = "github.com"

Resulting test_package-0.0.1.dist-info/METADATA

Metadata-Version: 2.1
Name: test_package
Version: 0.0.1
Summary: Description
Author-email: Tzu-Ping Chung <[email protected]>
Maintainer-email: Tzu-Ping Chung <[email protected]>
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Classifier: Development Status :: 1 - Planning
Classifier: Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Classifier: Programming Language :: Python :: 3.6
Classifier: Classifier: Programming Language :: Python :: 3.7
Classifier: Classifier: Programming Language :: Python :: 3.8
Classifier: Classifier: Programming Language :: Python :: 3.9
Classifier: Classifier: Programming Language :: Python :: 3.10
Project-URL: documentation, readthedocs.org
Project-URL: homepage, example.com
Project-URL: repository, github.com

Content of README.md

Setuptools

pyproject.toml

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

setup.cfg

[metadata]
name = test_package
version = 0.0.1
description = Description
long_description = file: README.md
long_description_content_type = text/markdown
author_email = Tzu-Ping Chung <[email protected]>
maintainer_email = Tzu-Ping Chung <[email protected]> 
url = example.com
project_urls =
    Documentation = readthedocs.org
    Repository = github.com
license = GPL-3.0-only
classifiers =
    Development Status :: 1 - Planning
    Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
    Programming Language :: Python
    Classifier: Programming Language :: Python :: 3.6
    Classifier: Programming Language :: Python :: 3.7
    Classifier: Programming Language :: Python :: 3.8
    Classifier: Programming Language :: Python :: 3.9
    Classifier: Programming Language :: Python :: 3.10

[options]
packages = test_package
python_requires = >=3.6

[options.package_data]
* = data/*

Resulting test_package-0.0.1.dist-info/METADATA

Metadata-Version: 2.1
Name: test-package
Version: 0.0.1
Summary: Description
Home-page: example.com
Author-email: Tzu-Ping Chung <[email protected]>
Maintainer-email: Tzu-Ping Chung <[email protected]>
License: GPL-3.0-only
Project-URL: Documentation, readthedocs.org
Project-URL: Repository, github.com
Platform: UNKNOWN
Classifier: Development Status :: 1 - Planning
Classifier: Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Classifier: Programming Language :: Python :: 3.6
Classifier: Classifier: Programming Language :: Python :: 3.7
Classifier: Classifier: Programming Language :: Python :: 3.8
Classifier: Classifier: Programming Language :: Python :: 3.9
Classifier: Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.6
Description-Content-Type: text/markdown

Content of README.md

Poetry

pyproject.toml

[build-system]
requires = ["poetry_core"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "test_package"
version = "0.0.1"
description = "Description"
readme = "README.md"
authors = [
  "Tzu-Ping Chung <[email protected]>"
]
maintainers = [
  "Tzu-Ping Chung <[email protected]>"
]
homepage = "example.com"
documentation = "readthedocs.org"
repository = "github.com"
license = "GPL-3.0-only"
classifiers = [
  "Development Status :: 1 - Planning",
]

[tool.poetry.dependencies]
python = "^3.6"

Resulting test_package-0.0.1.dist-info/METADATA

Metadata-Version: 2.1
Name: test-package
Version: 0.0.1
Summary: Description
Home-page: example.com
License: GPL-3.0-only
Author: Tzu-Ping Chung
Author-email: [email protected]
Maintainer: Tzu-Ping Chung
Maintainer-email: [email protected]
Requires-Python: >=3.6,<4.0
Classifier: Development Status :: 1 - Planning
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Project-URL: Documentation, readthedocs.org
Project-URL: Repository, github.com
Description-Content-Type: text/markdown

Content of README.md
Clone this wiki locally