Print

Print


I'd consider grouping similar functions under files (i.e. modules) and
import them.

For example:

import location_lib

@click.command()
@click.option('--delete')
@click.argument('location')
def location(delete, location):
    if delete:
        location_lib.delete(location)
    location_lib.location(location)

Treat your main click script as the entrypoint to your various
functions/libraries. FYI, I did not test what I've written above, it's
purely an example going off the documentation.

You might also be interested in taking a skim through https://clig.dev/
which has some nice best practices around building CLIs.

On Thu, Jul 29, 2021 at 3:42 PM Eric Lease Morgan <[log in to unmask]> wrote:

> On Jul 29, 2021, at 12:46 PM, Eric Lease Morgan <[log in to unmask]> wrote:
>
> > So far, Click has been working for me:
> https://click.palletsprojects.com/en/8.0.x/
>
>
> My Click script is coming along quite nicely, but now I have a Python
> noobie question. My script is getting longer and longer with various
> definitions looking something like this:
>
>   @click.command()
>   def config() :
>     # do cool stuff here
>
>   @click.command()
>   @click.argument( 'location' )
>   def list( location ) :
>     # do more cool stuff
>
>   @click.command()
>   @click.argument( 'carrel' )
>   def harvest( carrel ) :
>     # do even more cool stuff
>
> What is the technique I should use if I want to put each of these little
> functions into individual files? In the end, I'd like to have a whole set
> of little files where each one does a specific operation. I suppose I could
> create file full of functions, but then that file would be very long.
>
> --
> Eric "Sort Of Embarrassed" Morgan
>


-- 
Brian Wu
Email: [log in to unmask]