Skip to content

TannerBurns/clickutils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClickUtils

Extra utils for click library

Examples

Loading click groups and commands from filepath or directory

Directory structure
_ cwd
 |_ __init__.py (contains code below)
 |_ plugins/
   |_ group_or_command_folder
     |_ *groups (this folder must exists to find click groups or commands)
       |_ __init__.py (any click groups or commands will be pulled from this location)
   ...
import os
import click

from clickutils import click_loader


@click.group()
@click.option('--verbose', '-v', type=bool, is_flag=True, default=False,
    help='Print more verbose output')
def cli(verbose: bool):
    '''click_plugins'''
    click_loader.load(plugins_group, os.path.dirname(os.path.abspath(__file__)), verbose=verbose)

@click.group()
def plugins_group():
    '''click_plugins test plugins'''
    pass

cli.add_command(plugins_group, name='plugins')


if __name__ == '__main__':
    cli()

Same example using decorator

import os
import click

from clickutils import click_loader


@click.group()
def cli(verbose: bool):
    '''click_plugins'''

@click_loader.group(os.path.dirname(os.path.abspath(__file__)), name='plugins')
def plugins_group():
    '''click_plugins test plugins'''
    pass

cli.add_command(plugins_group)


if __name__ == '__main__':
    cli()

About

Extra utils for click library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages