ladybug.cli package¶
Submodules¶
Module contents¶
Command Line Interface (CLI) entry point for ladybug and ladybug extensions.
Use this file only to add command related to ladybug-core. For adding extra commands from each extention see below.
Note
Do not import this module in your code directly unless you are extending the command
line interface. For running the commands execute them from the command line or as a
subprocess (e.g. subprocess.call(['ladybug', 'viz'])
)
Ladybug uses click (https://click.palletsprojects.com/en/7.x/) for creating the CLI. You can extend the command line interface from inside each extention by following these steps:
Create a
cli.py
file in your extension.Import the
main
function from thisladybug.cli
.Add your commands and command groups to main using add_command method.
Add
import [your-extention].cli
to__init__.py
file to the commands are added to the cli when the module is loaded.
The good practice is to group all your extention commands in a command group named after
the extension. This will make the commands organized under extension namespace. For
instance commands for ladybug-comfort will be called like
ladybug comfort [comfort-command]
.
import click
from ladybug.cli import main
@click.group()
def comfort():
pass
# add commands to comfort group
@comfort.command('utci-from-epw')
# ...
def utci_from_epw():
pass
# finally add the newly created commands to ladybug cli
main.add_command(comfort)
# do not forget to import this module in __init__.py otherwise it will not be added
# to ladybug commands.
Note
For extension with several commands you can use a folder structure instead of a single
file. Refer to ladybug-comfort
for an example.