Package: templatepy
templatepyTemplate repo for python repositories & PyPi integrationVersion: "0.0.3"UsageChangefiles according to overview inTODObelowDeveloppackage...Installpackage: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 overviewGeneralLICENSE: license textREADME.md:Github-flavored markdownfiletemplatepy: placeholder folder for any python package that is configured for install viasetup.cfgandpyproject.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.cfgcriteriaexample.data.file.test-extension-yu48: a file to demonstrate data exclusion viasetup.pyPackaging systemMANIFEST.in:manifestfile describes included/excluded files for buildpyproject.toml:specifies build system: this replaces the usualsetup.pyarchitecture for setuptoolsconfig forblackcode formattersetup.cfg:package specification and install dependenciesconfig forbump2versionandflake8formatting (see pre-commit)setup.py: legacy file (see notes on new build-system below)Code maintenance (linting/formatting/github).pre-commit-config.yaml: usepre-committo run code formatting (e.g. withblackandflake8) and PEP compliance checksInstall pre-commit hook withpre-commit install(Note: only installs it in the current virtual environment)Run it manually withpre-commit run --allor 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 toolsTODO foradaptingtemplate to new projectChange package name:(1)templatepyfolder(2) README.md(3)nameargument insetup.cfg(4).github/workflowsfiles(5)setup.cfg:[bumpversion:file:templatepy/__init__.py]Change details about project author, etc. insetup.cfg,README.md, andtemplatepy/__init__.pyChange license holder inLICENSEChangeREADMEbadge paths at topVerify inclusions/exclusions of installable files/folders inMANIFEST.inandsetup.cfgCheck.gitignorecontains relevant criteriaAdd all version string locations tosetup.cfg/bump2version field.Use same syntax as for[bumpversion:file:PACKAGEFOLDER/__init__.py]line to describe how to find version on version incrementTo upload topypi: see below for workflowTo upload toZenodoif repo is a publication:(1) Connect Zenodo to Github account(2) Flip switch on zenodo view of repo -NOTE: Zenodo can only copy frompublicrepos(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 toREADMEfileWorkflow for (automatically) uploading package topypiortest.pypi(1) Onpypi, make new API key for repo or general(2) OnGithub, in repository settings add a newactions secretnamedTWINE_API_KEYand copy in the pypi API key(3) Create a newreleasemanually on github or by triggering the github workflow with a version without release extension (e.g.x.y.z)NotesNew(er) build system withpyproject.tomlandsetup.cfgpiptested withpip install .  --use-feature=in-tree-buildfor forward-compatibility withpip 21.3keeping emptysetup.pyfor enabling install in editable mode-eas this still requires such a fileaddedwheelas build-system dependency for compatibility with pip that does not implementPEP 517setup.cfg/setup.pymight be fully replaced withpyproject.toml.See this discussion.LicenseThis software is released under theBSD 3-Clause License