Skip to main content

Create multiple sub commands with [Click]

Create multiple sub commands with [Click]

Description

I'd like to create the script that includes some options such as the awscli. We can create it easy to use the Click library. So, I write a sample code about creating sub-command with Click.

Premise

Python : >= 3.7 Click : >= 7.0

Code

import click def main(): cmd() @click.group() def cmd(): """First layer sub-command group """ pass @cmd.group() def sub_command_1(): """Second layer sub-command group """ pass @cmd.group() def sub_command_2(): """Second layer sub-command group """ pass @sub_command_1.command() def sub_command_1_1(): print("Hello, subcommand 1 under the 1st layer subcommand 1") @sub_command_1.command() def sub_command_1_2(): print("Hello, subcommand 2 under the 1st layer subcommand 1") @sub_command_1.command() def sub_command_1_3(): print("Hello, subcommand 3 under the 1st layer subcommand 1") @sub_command_2.command() def sub_command_2_1(): print("Hello, subcommand 1 under the 1st layer subcommand 2") @sub_command_2.command() def sub_command_2_2(): print("Hello, subcommand 2 under the 1st layer subcommand 2") if __name__ == "__main__": main()

Sample of executing result

  • Execute with no argument
(env) ~>python sample.py Usage: sample.py [OPTIONS] COMMAND [ARGS]... First layer sub-command group Options: --help Show this message and exit. Commands: sub-command-1 Second layer sub-command group sub-command-2 Second layer sub-command group
  • Execute with 1st argument
(env) ~>python sample.py sub-command-2 Usage: sample.py sub-command-2 [OPTIONS] COMMAND [ARGS]... Second layer sub-command group Options: --help Show this message and exit. Commands: sub-command-2-1 sub-command-2-2
  • Execute with until 2nd argument
(env) ~>python sample.py sub-command-2 sub-command-2-1 Hello, subcommand 1 under the 1st layer subcommand 2

Popular posts from this blog

How to calculate the infinite product by SQL

How to calculate the infinite product by SQL Description I needed to calculate the infinite product in the creating ETL script. So I thought the solution to calculate it in the SQL. The following way is the solution I thought. Premise Use the standard SQL Code WITH sample_table AS ( SELECT 2 AS n1, 4 AS n2 UNION ALL SELECT 4 , 8 UNION ALL SELECT 10 , 20 UNION ALL SELECT 10 , 20 ) SELECT * FROM sample_table UNION ALL SELECT CAST ( EXP ( SUM ( LOG (n1))) AS INT64) AS inf_product1, CAST ( EXP ( SUM ( LOG (n2))) AS INT64) AS inf_product2 FROM sample_table The infinite product (∏) is able to convert to the total addition formula. ∏n1 ≒ e Σlog e n1 ∏n2 ≒ e Σlog e n2 Finally Actually, this calculated value is an approximation. So if you want an accurate number, this solution cannot use.

How to get the Phabricator's ticket No. by using the commit hash of `git`

How to get the Phabricator's ticket No. by using the commit hash of git Description Sometimes, we would like to check that the release branch has only completed task's commit. For example, we must prove to be not including unapproved commit in the release branch at IT audit. So, I write the operation to get the Phabricator's ticket No. Operations Get the commit-hash First of all, we get the difference of commits between the current branch and previous branch with git log command. git log --pretty=oneline $OLD_BRANCH..$NEW_BRANCH | awk '{print $1}' $OLD_BRANCH: Previous release branch $NEW_BRANCH: Current release branch Get the repository-ID Secondly, we need to get the repository's PHID to get the commit PHID. You can get it to use phid.lookup command. echo '{"names": ["$REPOSITORY_NAME"]}' | arc call-conduit --c...