Coder Social home page Coder Social logo

mlh-fellowship / click Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pallets/click

0.0 2.0 2.0 3.11 MB

Python composable command line interface toolkit

Home Page: https://click.palletsprojects.com/

License: BSD 3-Clause "New" or "Revised" License

Python 99.97% Shell 0.03%

click's Introduction

$ click_

Click is a Python package for creating beautiful command line interfaces in a composable way with as little code as necessary. It's the "Command Line Interface Creation Kit". It's highly configurable but comes with sensible defaults out of the box.

It aims to make the process of writing command line tools quick and fun while also preventing any frustration caused by the inability to implement an intended CLI API.

Click in three points:

  • Arbitrary nesting of commands
  • Automatic help page generation
  • Supports lazy loading of subcommands at runtime

A Simple Example

import click

@click.command()
@click.option("--count", default=1, help="Number of greetings.")
@click.option("--name", prompt="Your name", help="The person to greet.")
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for _ in range(count):
        click.echo(f"Hello, {name}!")

if __name__ == '__main__':
    hello()
$ python hello.py --count=3
Your name: Click
Hello, Click!
Hello, Click!
Hello, Click!

Donate

The Pallets organization develops and supports Click and other popular packages. In order to grow the community of contributors and users, and allow the maintainers to devote more time to the projects, please donate today.

click's People

Contributors

davidism avatar mitsuhiko avatar untitaker avatar dependabot-preview[bot] avatar dependabot[bot] avatar sirosen avatar pre-commit-ci[bot] avatar julen avatar ikeviny avatar jcrotts avatar zacbir avatar jab avatar jdufresne avatar amy-lei avatar saif807380 avatar epequeno avatar janluke avatar josiahdub avatar cataman avatar segevfiner avatar rsiemens avatar stopthatcow avatar yourun-proger avatar blueyed avatar slafs avatar sjagoe avatar smurfix avatar mjpieters avatar altendky avatar kporangehat avatar

Watchers

James Cloos avatar  avatar

click's Issues

Fix #1460: hide prompt input if hide_input is enabled

I've already created a PR from my account to the main project repository. Here's the link.

I'm creating this issue so I can add it to the board as a card (let me know if I'm doing it wrong, next time I think I'll create the PR on the MLH org so that it gets added more easily to the board).

Fix #1359: Raise a more descriptive exception when @command decorator isn't called

When doing pip install -e . decorating the main CLI function with click.command instead of click.command() will cause the following error to be raised:

Traceback (most recent call last):
  File "/Users/zev/.local/share/virtualenvs/myvirtualenvname-CI6hzx9c/bin/capture", line 11, in <module>
    load_entry_point('myvirtualenvname', 'console_scripts', 'my_module_name')()
TypeError: decorator() missing 1 required positional argument: 'f'

OP asks that a more informative exception be raised that refers to the decorator not having been called.

Original issue: pallets#1359

Fix #736: Implement a prompt_required for prompt options

Original Issue

Currently the user will always be prompted for a value, even if the option itself is not required. When the user includes the flag without a value, an error is raised Error: -p option requires an argument rather than prompting for a value. This as a result also causes the other args, if any, to fail as it shifts down by 1.

  • Prompt only if
    • flag passed as arg with no value following it
    • prompt_required=True
  • Make it available for password_option too (issue with testing though since it prompts twice and not sure if input takes multiple values)

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.