Python Process Manager: Python process manager: Dispatch (ssh/bash) & control (zmq) detached (remote) processes
Project description
Python Process Manager
Python process manager: Dispatch (ssh/bash) & control (zmq) detached (remote) processes
Version: 0.0.2
Usage
- Change files according to overview in
TODO
below - Develop package...
- 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)
- static/normal install:
File overview
General
-
LICENSE
: license text -
README.md
: Github-flavored markdown file -
templatepy
: placeholder folder for any python package that is configured for install viasetup.cfg
andpyproject.toml
__init__.py
: contains basic package info and example function that is called by console entrypoint (seesetup.cfg
)example.data.file.config
: a file to demonstrate that data files are included based onsetup.cfg
criteriaexample.data.file.test-extension-yu48
: a file to demonstrate data exclusion viasetup.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
- specifies build system: this replaces the usual
-
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 andflake8
) 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!)
- Install pre-commit hook with
-
.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 insetup.cfg
- (4)
.github/workflows
files - (5)
setup.cfg
:[bumpversion:file:templatepy/__init__.py]
- (1)
- Change details about project author, etc. in
setup.cfg
,README.md
, andtemplatepy/__init__.py
- Change license holder in
LICENSE
- Change
README
badge paths at top - Verify inclusions/exclusions of installable files/folders in
MANIFEST.in
andsetup.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
- Use same syntax as for
- 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 withpip 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 implementPEP 517
- tested with
setup.cfg
/setup.py
might be fully replaced withpyproject.toml
. See this discussion about PEP-426, PEP-517, PEP-518
License
This software is released under the BSD 3-Clause License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for python_process_manager-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78b1d36e48504b7f199802722a9c3e3d0ee95de6e6515bd4d8323591db7b419a |
|
MD5 | a8b4af469d66a4e1197edcaeb416516c |
|
BLAKE2b-256 | fca89ee4c7c6e78bf9ab5224b6f4192a377f7cd71d5e36bb83bbd1f6a91907b4 |
Hashes for python_process_manager-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53c8539336901948b036876c2c3a4367eced4fa866b97e61f5cba2155cec30ee |
|
MD5 | ea4a7d547110c3cf6b56c9488060896a |
|
BLAKE2b-256 | 3c1437a27229987b978dc67fbb225c136c86ab3cf44a00e3492056096d6982b8 |