Skip to main content

Dinkin Flicka

a versatile cookiecutter template for python projects

PyPI Status Python Version License

Read the documentation at https://cookiecutter-dinkin-flicka.readthedocs.io/ Release Codecov

pre-commit Black

logo

Installation

  1. Install cookiecutter:

    pip install cookiecutter
    
  2. Generate a Python package structure using cookiecutter-dinkin-flicka:

    cookiecutter https://github.com/luizdesuo/cookiecutter-dinkin-flicka.git
    

Usage

Enter the settings:

  • project_name
  • friendly_name
  • package_short_description
  • python_version
  • package_version
  • copyright_year
  • author
  • email
  • github_user
  • license
    1. MIT
    2. Apache License 2.0
    3. GNU General Public License v3.0
    4. BSD 3-Clause
    5. Proprietary
    6. None
  • development_status
    1. Development Status :: 1 - Planning
    2. Development Status :: 2 - Pre-Alpha
    3. Development Status :: 3 - Alpha
    4. Development Status :: 4 - Beta
    5. Development Status :: 5 - Production/Stable
    6. Development Status :: 6 - Mature
    7. Development Status :: 7 - Inactive
    8. None
  • data_version_control: include dvc, pandas, pyjanitor and pandera
    1. false
    2. true
  • defensive_programming: include icontract, hypothesis, icontract-hypothesis
    1. false
    2. trueee
  • publish: include pypi and testpypi publishing into github workflow in addition to readthedocs mentions into documentation
    1. false
    2. true

The project structure will look similar to that shown below:

    project-name
    ├── bandit.yml
    ├── codecov.yml
    ├── CODE_OF_CONDUCT.md
    ├── CONTRIBUTING.md
    ├── .cookiecutter.json
    ├── .darglint
    ├── docs
    │   ├── codeofconduct.md
    │   ├── conf.py
    │   ├── contributing.md
    │   ├── index.md
    │   ├── license.md
    │   ├── requirements.txt
    │   └── usage.md
    ├── .editorconfig
    ├── .flake8
    ├── .gitattributes
    ├── .github
    │   ├── dependabot.yml
    │   └── workflows
    │       └── release.yml
    ├── .gitignore
    ├── LICENSE
    ├── noxfile.py
    ├── .pre-commit-config.yaml
    ├── pyproject.toml
    ├── README.md
    ├── .readthedocs.yml
    ├── src
    │   └── project_name
    │       ├── __init__.py
    │       ├── __main__.py
    │       ├── project_name.py
    │       └── py.typed
    └── tests
        ├── __init__.py
        ├── test_main.py
        └── test_project_name.py

After changing directory to project-name folder, install the project with:

poetry install

Start version control tracking:

git init
git add .
git commit -m "initial package setup"

Install the pre-commit hooks:

poetry run pre-commit install

Update the pre-commit hooks' versions:

poetry run pre-commit autoupdate

Finally, add to version control:

git add .pre-commit-config.yaml

And, commit:

git commit -m "build: update pre-commit hooks versions"

Automatic release

Setting on github:

    graph LR
        A[Settings] --> B[Actions]
        B --> C[General]
        C --> D[Workflow<br>permissions]
        D --> E[Read and write<br>permissions]
        E --> F[Save]

The python-semantic-release tool do the automated bumping based on the angular commit style

  • build/chore: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
  • ci: Changes to our CI configuration files and scripts (examples: CircleCi, SauceLabs)
  • docs: Documentation only changes
  • feat: A new feature
  • fix: A bug fix
  • perf: A code change that improves performance
  • refactor: A code change that neither fixes a bug nor adds a feature
  • test: Adding missing tests or correcting existing tests

Features

  • pre-commit hooks:
    • bandit
    • darglint
    • pycln
    • check-added-large-files
    • check-ast
    • check-byte-order-marker
    • check-builtin-literals
    • check-case-conflict
    • check-docstring-first
    • check-json
    • check-merge-conflict
    • check-symlinks
    • check-toml
    • check-vcs-permalinks
    • check-xml
    • check-yaml
    • debug-statements
    • destroyed-symlinks
    • detect-private-key
    • end-of-file-fixer
    • file-contents-sorter
    • fix-byte-order-marker
    • fix-encoding-pragma
    • forbid-new-submodules
    • mixed-line-ending
    • requirements-txt-fixer
    • sort-simple-yaml
    • trailing-whitespace
    • prettier
    • pyupgrade
    • isort
    • docformatter
    • black
    • blacken-docs
    • flake8
      • flake8-bugbear
      • flake8-docstrings
      • flake8-rst-docstrings
      • pep8-naming
    • mypy
  • click
  • python-semantic-release
  • nox
  • pytest
  • pytest-cov
  • safety
  • typeguard
  • xdoctest
  • pygments
  • jupyter
  • myst-parser
  • sphinx-autobuild
  • sphinx-autoapi
  • sphinx-copybutton
  • furo
  • sphinx-click
  • sphinx
  • sphinxcontrib-mermaid

Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the MIT license, Dinkin Flicka is free and open source software.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Credits

This project was generated from Dinkin Flicka Cookiecutter template.

Acknowledgements

Dinkin Flicka Cookiecutter was based on Hypermodern Python article series and Python Packages book.

Metadata

Release files for cookiecutter-dinkin-flicka 0.1.0

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

Source distribution (sdist)

Source distribution for cookiecutter-dinkin-flicka 0.1.0
File Size Uploaded Provenance
cookiecutter_dinkin_flicka-0.1.0.tar.gz 5.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for cookiecutter-dinkin-flicka 0.1.0
File Interpreter ABI Platform
cookiecutter_dinkin_flicka-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.8 kB

Release files / cookiecutter_dinkin_flicka-0.1.0.tar.gz

Download URL cookiecutter_dinkin_flicka-0.1.0.tar.gz
Size 5.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f642ba4158769f25c4da398699c21218a3db798ae6ee0dff289cb4ef0fafc78d
BLAKE2b-256 checksum
How to use checksums
8c4cec91696c022dccf52c1298a5393d1696d1328cc4a643c63fc55eeb786ce7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.4

Release files / cookiecutter_dinkin_flicka-0.1.0-py3-none-any.whl

Download URL cookiecutter_dinkin_flicka-0.1.0-py3-none-any.whl
Size 6.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09b49d86926c498bdd30aac20faf1602d189b77de75c5e12b7899f63999886d7
BLAKE2b-256 checksum
How to use checksums
991c6628804a460236afbfcfdaa89e59472a95cceaeb9f5b61e777dbad3d549d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.4

Security for cookiecutter-dinkin-flicka 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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