Giter Site home page Giter Site logo

jake-aft / cookiecutter-poetry Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fpgmaas/cookiecutter-poetry

0.0 0.0 0.0 2.36 MB

A modern cookiecutter template for Python projects that use Poetry for dependency management

Home Page: https://fpgmaas.github.io/cookiecutter-poetry/

License: MIT License

Python 53.19% Makefile 43.01% Dockerfile 3.79%

cookiecutter-poetry's Introduction

BLX CookieCutter Poetry

This is a modern Cookiecutter template that can be used to initiate a Python project with all the necessary tools for development, testing, and deployment. We have taken inspiration from the following project: fpgmaas/cookiecutter-poetry

It supports the following features:

Template features:

  • Poetry for dependency management
  • CI/CD with GitHub Actions
    • TODO: REPLACE with Space Automation
  • Pre-commit hooks with:
  • Code quality with:
    • black
      • TODO: Initial formatting of code with black
    • ruff Ruff is an extremely fast Python linter, written in Rust.
      • โšก๏ธ 10-100x faster than existing linters
      • ๐Ÿ› ๏ธ pyproject.toml support
      • ๐Ÿค Python 3.11 compatibility
      • ๐Ÿ“ฆ Built-in caching, to avoid re-analyzing unchanged files
      • ๐Ÿ”ง Autofix support, for automatic error correction (e.g., automatically remove unused imports)
      • ๐Ÿ“ Over 500 built-in rules
      • โš–๏ธ Near-parity with the built-in Flake8 rule set
      • ๐Ÿ”Œ Native re-implementations of dozens of Flake8 plugins, like flake8-bugbear
      • โŒจ๏ธ First-party editor integrations for VS Code and more
      • ๐ŸŒŽ Monorepo-friendly, with hierarchical and cascading configuration
      • mypy
      • deptry
  • TODO: Publishing to Biolexis Space Package Repo
  • Testing and coverage with:
  • Documentation with
  • Compatibility testing for multiple versions of Python with:
  • Containerization with:

Documentation \ - Example - Biolexis Space Python Package


Quickstart

On your local machine, navigate to the directory in which you want to create a project directory, and run the following two commands:

TODO: Install from BLX space package reop

# pip install blx-cookiecutter-poetry
# ccp

Install cookiecutter and directly pass the URL to this Space repository to the cookiecutter command:

pip install cookiecutter
cookiecutter https://biolexistx.jetbrains.space/p/blx-cc/repositories/blx-cookiecutter-poetry

Create your new project

Create a repository on GitHub, and then run the following commands, replacing <project-name>, with the name that you gave the Github repository and <github_author_handle> with your Github username.

cd <project_name>
git init -b main
git add .
git commit -m "Init commit"
git remote add origin [email protected]/biolexistx/blx-cc/<project_name>.git
git push -u origin main

Finally, install the environment and the pre-commit hooks with

make install

Check out what you can do with the Makefile

make help

You are now ready to start development on your project! The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.

To finalize the set-up for publishing to PyPi or Artifactory, see here. For activating the automatic documentation with MkDocs, see here. To enable the code coverage reports, see here.

Acknowledgements

This project is partially based on FPgmaas cookiecutter project which acknowledges - Audrey Feldroy's's great cookiecutter-pypackage repository.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.