morbin.template

1from morbin import Morbin, Output
2
3
4class Name(Morbin):
5    @property
6    def program(self) -> str:
7        return "name"
class Name(morbin.morbin.Morbin):
5class Name(Morbin):
6    @property
7    def program(self) -> str:
8        return "name"

Base class for creating python bindings for cli programs.

At a minimum, any subclass must implement a program property that returns the name used to invoke the cli.

The run function can then be used to build bindings.

>>> class Pip(Morbin):
>>>     @property
>>>     def program(self)->str:
>>>         return 'pip'
>>>
>>>     def install(self, package:str, *args:str)->Output:
>>>         return self.run("install", package, *args)
>>>
>>>     def upgrade(self, package:str)->Output:
>>>         return self.install(package, "--upgrade")
>>>
>>>     def install_requirements(self)->Output:
>>>         return self.install("-r", "requirements.txt")
>>>
>>> pip = Pip()
>>> pip.upgrade("morbin")
program: str

The name used to invoke the program from the command line.