Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

arbutus

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arbutus

Simplification of CLI construction in Python based on argparse: just add branches and arguments. CLI construction from yaml file also available.

  • 0.0.4
  • PyPI
  • Socket score

Maintainers
1


seedling

arbutus

Simplification of CLI construction in Python based on argparse: just add branches and arguments. CLI construction from yaml file also available.

If you are interested in participating, please feel free to contribute.

Explore the docs »

Report Bug Request Feature



Python

Contents

Getting Started

Requirements

  • Python 3.8 or above
    • argparse
    • logging

Installation

pip install arbutus

Usage

Once installed, the cli can be defined using a yaml file, using the keywords branches to define new branch names and arguments to define new arguments and it's characteristics. For example:

main:
  branches:
    sum:
      arguments:
        integers:
          type: float
          nargs: +
          help: list of integers to sum
          action:
            name: sum_
            source: sample
    store:
      arguments:
        something:
          type: str
          nargs: +
          help: string or strings to store
          action: store

The yaml above would imply that a module named sample includes the action sum_, and makes use of the store action. These actions can be defined using the @Arbutus.new_action wrapper. For example:

from arbutus import Arbutus

@Arbutus.new_action
def sum_(*args, **kwargs):
    total = 0
    for number in kwargs['values']:
        total += number
    print(total)

Finally, the CLI itself can be constructed by calling the from_yaml method:

import arbutus

if __name__ == '__main__':
    cli = arbutus.Arbutus()
    cli.from_yaml('sample/cli.yaml')
    cli.parse_args()

The CLI can then be called like:

# This would display general help about the CLI functionality
python3 sample/sample.py -h
# This would display general help about the sum test functionality
python3 sample/sample.py sum -h
# This would throw the result of running the sum function with the passed arguments
python3 sample/sample.py sum 12 25 3

Roadmap

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Alvaro U. Bravo - alvaroubravo@gmail.com

Project Links:

(back to top)

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc