Giter Club home page Giter Club logo

whichcraft's Introduction

cookiecutter Logo

pypi python Build Status codecov discord docs Code Quality

Cookiecutter

Create projects swiftly from cookiecutters (project templates) with this command-line utility. Ideal for generating Python package projects and more.

Installation

Install cookiecutter using pip package manager:

# pipx is strongly recommended.
pipx install cookiecutter

# If pipx is not an option,
# you can install cookiecutter in your Python user directory.
python -m pip install --user cookiecutter

Features

  • Cross-Platform: Supports Windows, Mac, and Linux.
  • User-Friendly: No Python knowledge required.
  • Versatile: Compatible with Python 3.7 to 3.12.
  • Multi-Language Support: Use templates in any language or markup format.

For Users

Quick Start

The recommended way to use Cookiecutter as a command line utility is to run it with pipx, which can be installed with pip install pipx, but if you plan to use Cookiecutter programmatically, please run pip install cookiecutter.

Use a GitHub template

# You'll be prompted to enter values.
# Then it'll create your Python package in the current working directory,
# based on those values.
# For the sake of brevity, repos on GitHub can just use the 'gh' prefix
$ pipx run cookiecutter gh:audreyfeldroy/cookiecutter-pypackage

Use a local template

$ pipx run cookiecutter cookiecutter-pypackage/

Use it from Python

from cookiecutter.main import cookiecutter

# Create project from the cookiecutter-pypackage/ template
cookiecutter('cookiecutter-pypackage/')

# Create project from the cookiecutter-pypackage.git repo template
cookiecutter('gh:audreyfeldroy//cookiecutter-pypackage.git')

Detailed Usage

  • Generate projects from local or remote templates.
  • Customize projects with cookiecutter.json prompts.
  • Utilize pre-prompt, pre- and post-generate hooks.

Learn More

For Template Creators

  • Utilize unlimited directory nesting.
  • Employ Jinja2 for all templating needs.
  • Define template variables easily with cookiecutter.json.

Learn More

Available Templates

Discover a variety of ready-to-use templates on GitHub.

Special Templates

Community

Join the community, contribute, or seek assistance.

Support

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

Feedback

We value your feedback. Share your criticisms or complaints constructively to help us improve.

Waiting for a Response?

  • Be patient and consider reaching out to the community for assistance.
  • For urgent matters, contact @audreyfeldroy for consultation or custom development.

Code of Conduct

Adhere to the PyPA Code of Conduct during all interactions in the project's ecosystem.

Acknowledgements

Created and led by Audrey Roy Greenfeld, supported by a dedicated team of maintainers and contributors.

whichcraft's People

Contributors

edwardbetts avatar ncoghlan avatar nooby-newbie avatar pydanny avatar rooterkyberian avatar sobolevn avatar terrameijar avatar thatfloflo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

whichcraft's Issues

Unicode characters in README.rst breaks compilation with python-3.6

I've locally patched the FreeBSD port of py-whichcraft to avoid a compilation problem with python-3.6.x:

=======================<phase: configure      >============================
===>   py36-whichcraft-0.5.2 depends on package: py36-setuptools>0 - found
===>   py36-whichcraft-0.5.2 depends on file: /usr/local/bin/python3.6 - found
===>   py36-whichcraft-0.5.2 depends on file: /usr/local/bin/ccache - found
===>  Configuring for py36-whichcraft-0.5.2
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "setup.py", line 35, in <module>
    readme = open("README.rst").read()
  File "/usr/local/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 1067: ordinal not in range(128)
*** Error code 1

Stop.

Looks like some unicode characters sneaked into README.rst. The patch is available here:

https://svnweb.freebsd.org/ports/head/devel/py-whichcraft/files/patch-README.rst?revision=481787&view=co

I'd just paste it into this report, but I doubt the subtleties of the whitespace changes would survive the process.

error on windows

E:\Project\whichcraft>python test_whichcraft.py
============================= test session starts =============================
platform win32 -- Python 2.7.10, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
rootdir: E:\Project\whichcraft, inifile:
plugins: cov-2.2.1
collected 2 items

test_whichcraft.py F.

================================== FAILURES ===================================
____________________________ test_existing_command ____________________________

def test_existing_command():
cmd = which('date')
assert cmd
E assert None
test_whichcraft.py:9: AssertionError
===================== 1 failed, 1 passed in 0.17 seconds ======================

reference to cookiecutter/cookiecutter#703

This part fails on empty string

if any(cmd.lower().endswith(ext.lower()) for ext in pathext):

split on string that usually ends with ";" will generate empty string as last item.

As every string can end with empty string, this will always return plain version, not suffixed one

Please release new package w/correct whichcraft.__version__

Hi :)

I know, 465d532 fixed the mismatch of whichcraft.__version__, but the https://pypi.org/project/whichcraft/0.6.0 release still contains the wrong __version__ = "0.5.3" line

And this breaks my custom generalized dependency checks that I do in most of my projects, so I need to do hacky workarounds for whichcraft as requirement ;)

Can you please quickly make a new 0.6.1 release or so?

BTW, in case you don't know it: There is https://pypi.org/project/setuptools-scm , a nice official https://www.pypa.io tool for automatically determining project versions based on Git tags and passing them to setup() by using a simple setup entry point, also offering the feature of additionally writing the version into a Python module for keeping everything automatically consistent. I use it in all my Python projects, and even in some non-Python projects :)

Kind regards,
Stefan

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.