name: betterclaws description: Use this skill when working with the betterclaws library. Triggers when user mentions betterclaws or imports from it.
Betterclaws
What this is
Betterclaws is a Python library designed to simplify the process of building and managing command-line interfaces. It provides an intuitive API for creating commands, handling arguments, and managing output. With betterclaws, developers can focus on writing functional code rather than boilerplate.
Installation
pip install betterclaws
Key concepts
The most important APIs in betterclaws include the Command class, which represents a single command, and the Argument class, which defines a command's arguments. For example:
from betterclaws import Command, Argument
class MyCommand(Command):
def __init__(self):
super().__init__("my_command")
self.add_argument(Argument("foo", help="The foo argument"))
self.add_argument(Argument("bar", help="The bar argument"))
def execute(self, args):
print(f"Foo: {args.foo}, Bar: {args.bar}")
Correct usage patterns
To use betterclaws, create a Command subclass and define its arguments using the add_argument method. Then, override the execute method to handle the command's logic. For example:
from betterclaws import Command, Argument
class MyCommand(Command):
def __init__(self):
super().__init__("my_command")
self.add_argument(Argument("foo", help="The foo argument"))
self.add_argument(Argument("bar", help="The bar argument"))
def execute(self, args):
print(f"Foo: {args.foo}, Bar: {args.bar}")
if __name__ == "__main__":
MyCommand().run()
Common mistakes to avoid
One common mistake when using betterclaws is forgetting to call the super().__init__ method in the Command subclass's __init__ method. Another mistake is not overriding the execute method, which will result in a default implementation being used.
File and folder conventions
Betterclaws projects typically have a commands folder containing Python files, each defining a single Command subclass. The main entry point of the application should be a Python file that imports and runs the desired command. For example:
# commands/my_command.py
from betterclaws import Command, Argument
class MyCommand(Command):
# ...
# main.py
from commands.my_command import MyCommand
if __name__ == "__main__":
MyCommand().run()