Skip to main content

Click Command Loader, permit to load Click command from a given folder.

Project description

Click Command Loader (CCL)

Click Command Loader

Click Command Loader (Referred as CCL) is an additional package for Click to load Click commands from a folder.

As such, by having the following folder structure:

my_project/
├─ commands/
│  ├─ create.py
│  ├─ delete.py
│  ├─ list.py
├─ __init__.py

The commands create, delete and list will be registered in your Click app!

Installation

I'm a package that is available on PyPi!

With Pip

pip install clickloader

With Poetry

poetry add clickloader

Example

Let's consider you have the following commands structure:

my_project/
├─ commands/
│  ├─ create.py
│  ├─ delete.py
│  ├─ list.py
├─ cli.py

Inside your cli.py, you should have your base logic for your CLI app. Originally, this is where all your commands would be registered, but CCL will help you leverage the work here.

Here's is what the content of the cli.py would be:

import click
import ccl
import pathlib


path_to_commands = pathlib.Path(__file__, "..", "commands")

my_cli = click.Group("MyCLI")
ccl.register_commands(my_cli, path_to_commands)

if __name__ == "__main__":
    my_cli()

And voilà! All commands inside your "commands" folder have been registered!

Behind the scene

When registering commands, CCL will do the following:

  1. List files and folder inside the given source.

  2. Iterate over directory, if a file is found, go to step 3, if a folder is found, go to step 2.1

    2.1. If folder, see if a __init__.py exist, if it exist, attempt to export a function that contains a click decorator (MUST BE A GROUP). If not found, create a click group, then continue to step 3 using the indicated group.

  3. If file, attempt to export a function that contains a click decorator (MUST BE A COMMAND), then add it to the given group.

  4. Continue until all files/folder have been scanned.

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

clickloader-0.2.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

clickloader-0.2.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file clickloader-0.2.0.tar.gz.

File metadata

  • Download URL: clickloader-0.2.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.2.0-1011-azure

File hashes

Hashes for clickloader-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ab2adedc698f253077e644de4146ef783eb21cd64abfaba31a1b182125577d49
MD5 3702e7c185bc74777f7eda8448d752eb
BLAKE2b-256 a8b2d015ee91e1d7cf88b1bc1717e6c13d8456572403b14f4436f77a739446c4

See more details on using hashes here.

File details

Details for the file clickloader-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: clickloader-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/6.2.0-1011-azure

File hashes

Hashes for clickloader-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 afe10548b98711d14e2283f3d4e4c188d7dff814c6ef08ba502ab60d5302360b
MD5 2322f435ce22468aab352eaebc0e2741
BLAKE2b-256 a4c70598b0fb6d1a45abdd49799db1615f25576c12e151b96e6409937eea4237

See more details on using hashes here.

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