Skip to main content

[bump2version]: (https://github.com/c4urself/bump2version [pre-commit]: https://pre-commit.com [black]: https://github.com/psf/black

DOI Website PyPI Wheel CI Code style: black

Python Process Manager

Python process manager: Dispatch (ssh/bash) & control (zmq) detached (remote) processes

Version: 0.0.2

Usage

  1. Change files according to overview in TODO below
  2. Develop package...
  3. Install package:
    • static/normal install: pip install .
    • editable install:pip install -e .
    • dev install: pip install -e .[dev] (some terminals require to escape brackets with \ as \[, esp. zsh)

File overview

General

  • LICENSE: license text

  • README.md: Github-flavored markdown file

  • templatepy: placeholder folder for any python package that is configured for install via setup.cfg and pyproject.toml

    • __init__.py: contains basic package info and example function that is called by console entrypoint (see setup.cfg)
    • example.data.file.config: a file to demonstrate that data files are included based on setup.cfg criteria
    • example.data.file.test-extension-yu48: a file to demonstrate data exclusion via setup.py

Packaging system (see: packaging and setup.cfg)

  • MANIFEST.in: manifest file describes included/excluded files for build

  • pyproject.toml:

    • specifies build system: this replaces the usual setup.py architecture for setuptools
    • config for [black] code formatter
  • setup.cfg:

    • package specification and install dependencies
    • config for [bump2version] and flake8 formatting (see pre-commit)
  • setup.py: legacy file (see notes on new build-system below)

Code maintenance (linting/formatting/github)

  • .pre-commit-config.yaml: use [pre-commit] to run code formatting (e.g. with [black] and flake8) and PEP compliance checks

    • Install pre-commit hook with pre-commit install (Note: only installs it in the current virtual environment)
    • Run it manually with pre-commit run --all or leave it to run on commit (requires to re-stage changed files!)
  • .github: folder that contains github automation workflows and issues templates

  • .gitignore: ignored files/folders in git tools

TODO for adapting template to new project

  • Change package name:
    • (1) templatepy folder
    • (2) README.md
    • (3) name argument in setup.cfg
    • (4) .github/workflows files
    • (5) setup.cfg: [bumpversion:file:templatepy/__init__.py]
  • Change details about project author, etc. in setup.cfg, README.md, and templatepy/__init__.py
  • Change license holder in LICENSE
  • Change README badge paths at top
  • Verify inclusions/exclusions of installable files/folders in MANIFEST.in and setup.cfg
  • Check .gitignore contains relevant criteria
  • Add all version string locations to setup.cfg/bump2version field.
    • Use same syntax as for [bumpversion:file:PACKAGEFOLDER/__init__.py] line to describe how to find version on version increment
  • To upload to pypi: see below for workflow
  • To upload to Zenodo if repo is a publication:
    • (1) Connect Zenodo to Github account
    • (2) Flip switch on zenodo view of repo - NOTE: Zenodo can only copy from public repos
    • (3) Create new release version of github repo (manual or via .github/workflows/CI.yaml)
    • (4) Wait! Zenodo view with DOI assignment should update within about a minute
    • (5) Add DOI badge to README file

Workflow for (automatically) uploading package to pypi or test.pypi

  • (1) On pypi, make new API key for repo or general
  • (2) On Github, in repository settings add a new actions secret named TWINE_API_KEY and copy in the pypi API key
  • (3) Create a new release manually on github or by triggering the github workflow with a version without release extension (e.g. x.y.z)

Notes

New(er) build system with pyproject.toml and setup.cfg

  • pip
    • tested with pip install . --use-feature=in-tree-build for forward-compatibility with pip 21.3
    • keeping empty setup.py for enabling install in editable mode -e as this still requires such a file
    • added wheel as build-system dependency for compatibility with pip that does not implement PEP 517
  • setup.cfg/setup.py might be fully replaced with pyproject.toml. See this discussion about PEP-426, PEP-517, PEP-518

License

This software is released under the BSD 3-Clause License

Metadata

Release files for python-process-manager 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-process-manager 0.0.2
File Size Uploaded
python_process_manager-0.0.2.tar.gz 7.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-process-manager 0.0.2
File Interpreter ABI Platform
python_process_manager-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 12.5 kB

Release files / python_process_manager-0.0.2.tar.gz

Download URL python_process_manager-0.0.2.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
78b1d36e48504b7f199802722a9c3e3d0ee95de6e6515bd4d8323591db7b419a
BLAKE2b-256 checksum
How to use checksums
fca89ee4c7c6e78bf9ab5224b6f4192a377f7cd71d5e36bb83bbd1f6a91907b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / python_process_manager-0.0.2-py3-none-any.whl

Download URL python_process_manager-0.0.2-py3-none-any.whl
Size 5.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53c8539336901948b036876c2c3a4367eced4fa866b97e61f5cba2155cec30ee
BLAKE2b-256 checksum
How to use checksums
3c1437a27229987b978dc67fbb225c136c86ab3cf44a00e3492056096d6982b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page