Skip to main content

Cookiecutter template for a Python package

Project description

CI Python Versions Package Version License Discord

logo_scicookie.png

SciCookie is a project template designed to simplify scientific Python project creation. It provides an initial structure with recommended tools, workflows, and industry best practices, saving developers time and effort. Built upon the PyOpenSci recommendations, it offers a foundation that adheres to scientific Python standards while remaining customizable to specific project needs.

Key Features:

  • Project Structure: Choose between "src" (code in a subdirectory) and "flat" (all files in the top-level directory) layouts.
  • Packaging & Dependencies: Supports Poetry, Flit, meson-python, setuptools, PDM, Hatch, Maturin, scikit-build-core, Pixi, or setuptools + pybind11 for flexible build systems.
  • Testing & Linting: Integrates with pytest, hypothesis, black (auto-formatting), bandit (security), pydocstyle (documentation style), vulture (unused code detection), and McCabe (cyclomatic complexity analysis) for a robust development environment.
  • Version Control & Automation: Includes initial git integration, conda (base environment) support, pre-commit hooks, continuous integration with GitHub Actions, and release workflows with semantic-release.
  • Documentation: Offers options for mkdocs, sphinx-rst, sphinx-myst, jupyter-book or quarto documentation generation.
  • Containerization: Provides the ability to add initial files for running and managing containers using Docker or Podman.

Benefits:

  • Reduces boilerplate code: SciCookie eliminates the need to write repetitive project setup code, allowing developers to focus on core functionality.
  • Ensures consistency: Enforces a standardized structure, promoting code maintainability and collaboration.
  • Adheres to best practices: Leverages PyOpenSci recommendations for efficient scientific Python development.
  • Improves code quality: Integrates with various testing and linting tools for better code hygiene.
  • Automates workflows: Streamlines processes like documentation generation, version control, and continuous integration.

Getting Started:

Prerequisites

  • Python: Make sure you have Python installed on your system. You can check by running python --version or python3 --version in your terminal. If you don't have it, download it from here.

Installation

  • Install Cookiecutter (if not already installed): Open your terminal and run the following command: pip install scicookie

Project Creation

  1. Navigate to your desired project directory: Use the cd command to navigate to the directory where you want to create your new Python package project. For example: cd ~/dev/my-python-projects (Replace ~/dev/my-python-projects with your preferred directory path.)

  2. Generate the project using SciCookie: Once you're in your desired directory, run the following command to generate a new Python package project using SciCookie: scicookie

(SciCookie will create a new directory structure for your project, including files and folders commonly used in scientific Python projects. You can now start editing and customizing your project to fit your specific needs.)

Alternatively
  • Generate the project using SciCookie (with optional OSL profile): scicookie --profile osl

(The --profile osl flag allows you to generate the project with the OSL recommended configuration. If omitted, the default SciCookie profile will be used.)

Community:

Support:

  • Star us on GitHub.
  • Stay tuned for upcoming support options.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scicookie-0.10.0.tar.gz (100.1 kB view details)

Uploaded Source

Built Distribution

scicookie-0.10.0-py3-none-any.whl (136.7 kB view details)

Uploaded Python 3

File details

Details for the file scicookie-0.10.0.tar.gz.

File metadata

  • Download URL: scicookie-0.10.0.tar.gz
  • Upload date:
  • Size: 100.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.10 Linux/6.8.0-1015-azure

File hashes

Hashes for scicookie-0.10.0.tar.gz
Algorithm Hash digest
SHA256 e68c430396ab77e6896a30cefc2bd6928970d75c03078daabef7ba587ab0ac2b
MD5 043d6c79526f8b1a8791a780c9e4d258
BLAKE2b-256 dff19896f7a7d93838aee19f420a24875d8d68c1e2336eeb4abeaeeb430b27fc

See more details on using hashes here.

Provenance

File details

Details for the file scicookie-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: scicookie-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 136.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.10 Linux/6.8.0-1015-azure

File hashes

Hashes for scicookie-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 37db5432fe16fcada3e6ba9d56614c21d39d4d718e282ef7c7cb1ac21031775b
MD5 0b5fdebc1fc39c9eda2102c943856fd6
BLAKE2b-256 2fdade369a33d4a4609eaf8b90b7529eeb9e2a782646f7d4101b8a7fd9583a57

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page