Skip to main content

No project description provided

Project description

# click-anno

use annotation to create click app.

## Compare with click api

### Basic Arguments

``` py
# click
import click

@click.command()
@click.argument('filename')
def touch(filename):
click.echo(filename)

# click_anno
import click
import click_anno

@click.command
def touch(filename):
click.echo(filename)
```

### Variadic Arguments

``` py
# click
import click

@click.command()
@click.argument('src', nargs=-1)
@click.argument('dst', nargs=1)
def copy(src, dst):
for fn in src:
click.echo('move %s to folder %s' % (fn, dst))

# click_anno
import click
import click_anno

@command
def copy(src: tuple, dst):
for fn in src:
click.echo('move %s to folder %s' % (fn, dst))
```

### Basic Value Options

``` py
# click
import click

@click.command()
@click.option('--n', default=1)
def dots(n):
click.echo('.' * n)

# click_anno
import click
import click_anno

@command
def dots(n=1):
click.echo('.' * n)
```

### Required Value Options

``` py
# click
import click

@click.command()
@click.option('--n', required=True, type=int)
def dots(n):
click.echo('.' * n)

# click_anno
import click
import click_anno

@command
def dots(*, n: int):
click.echo('.' * n)
```

### Multi Value Options

``` py
# click
import click

@click.command()
@click.option('--pos', nargs=2, type=float)
def findme(pos):
click.echo('%s / %s' % pos)

# click_anno
from typing import Tuple
import click
import click_anno

@command
def findme(*, pos: Tuple[float, float]):
click.echo('%s / %s' % pos)
```

### Tuples as Multi Value Options

``` py
# click
import click

@click.command()
@click.option('--item', type=(str, int))
def putitem(item):
click.echo('name=%s id=%d' % item)

# click_anno
from typing import Tuple
import click
import click_anno

@command
def putitem(*, item: (str, int)):
click.echo('name=%s id=%d' % item)
```


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

click_anno-0.0.1.tar.gz (3.1 kB view hashes)

Uploaded Source

Built Distribution

click_anno-0.0.1-py3-none-any.whl (4.3 kB view hashes)

Uploaded Python 3

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