https://github.com/arup-group/pypackage-template

Python Package Copier template

https://github.com/arup-group/pypackage-template

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Python Package Copier template

Basic Info
  • Host: GitHub
  • Owner: arup-group
  • License: mit
  • Language: Jinja
  • Default Branch: main
  • Size: 723 KB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog Contributing License

README.md

Arup Python Package Template

Daily CI Build Documentation

Copier template for an Arup Python package.

This template was originally based on @audreyfeldroy's original cookiecutter template. It has been updated to use latest Python Package best practices, to align with Arup's City Modelling Lab Python projects, and to use the Copier template manager.

Features

  • Testing setup with pytest.
  • Markdown based documentation, using mkdocs, ready for generation with GitHub pages.
  • Project metadata and plugin configuration specified in a pyproject.toml file, according to the latest standards.
  • Auto-release to your private conda channel when you create a new release on GitHub (optional).
  • Command line interface using click.

Quickstart

First, install the latest version of Copier:

bash conda create -n copier-env copier conda activate copier-env

Generate a local Python package project in a directory of your choice (change my-repositories to the relevant location on your device):

bash cd my-repositories copier copy https://github.com/arup-group/pypackage-template <repository-name>

<repository-name> should be the name for your repository that you will use locally (usually, the same as you plan your repository name to be on GitHub!).

Then:

  • Add the packages you will need for your project and their versions to requirements/base.txt. You can remove zipp and the commented lines in the process.
  • initialise your project as a git repository and link it to an online repository.

For more details, see the tutorial.

Keeping your project up-to-date

We may make changes to this template that you want to pull into your project after you have created it. Copier allows you to do this, and one of your project's CI workflows will verify whether there are new template updates that you might like to merge in.

To check if there are updates:

sh copier update --pretend

To apply updates:

sh copier update

Not Exactly What You Want?

Don't worry, you have options:

Other Arup templates

Other Templates

Cookiecutter is another template engine, for which there are a number of Python project templates linked on the parent template repository: audreyfeldroy/cookiecutter-pypackage.

Fork This / Create Your Own

If you have differences in your preferred setup, you can fork this to create your own version. Or you create your own; it doesn't strictly have to be a fork.

  • Once you have your own version working, add it to the "other Arup templates" list above with a brief description.
  • It's up to you whether or not to rename your fork/own version. Do whatever you think sounds good.

Or Submit a Pull Request

We also accept pull requests on this repository, if they're small!

Owner

  • Name: Arup
  • Login: arup-group
  • Kind: organization
  • Email: media@arup.com

We Shape a Better World

GitHub Events

Total
  • Issues event: 11
  • Delete event: 2
  • Issue comment event: 1
  • Public event: 1
  • Push event: 8
  • Pull request event: 3
  • Pull request review event: 2
  • Fork event: 1
  • Create event: 3
Last Year
  • Issues event: 11
  • Delete event: 2
  • Issue comment event: 1
  • Public event: 1
  • Push event: 8
  • Pull request event: 3
  • Pull request review event: 2
  • Fork event: 1
  • Create event: 3

Dependencies

.github/workflows/commit-ci.yml actions
.github/workflows/daily-scheduled-ci.yml actions
.github/workflows/docs.yml actions
.github/workflows/pr-ci.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/upload-artifact v4 composite
  • mamba-org/setup-micromamba v1 composite
  • pre-commit/action v3.0.1 composite
.github/workflows/release.yml actions
pyproject.toml pypi
requirements/base.txt pypi
  • copier *
requirements/dev.txt pypi
  • ipython >=8 development
  • mike >=2 development
  • mkdocs >1.3 development
  • mkdocs-autorefs >=0.5 development
  • mkdocs-material >=9.4 development
  • pre-commit >=3 development
  • pytest >=8 development
  • pytest-xdist <4 development
  • pyyaml >=6 development
template/requirements/base.txt pypi
  • zipp *