Skip to main content

No project description provided

Project description

Mate: Extremely pluggable and modular shell

build pypi codecov Vulnerabilities

Features

  • Easy plugin creation using setuptools
  • Manage group of plugins better by mate --shells
  • Built-in auto complete
  • Forced modularity in plugins
  • Dope looking shell
  • Provides command output redirect to embedded ipython
  • Supports batch executions by mate --exec and JSON formatted output

Installation

Using pypi

pip3 install mate-shell

Using git

git clone https://github.com/twisted-fun/mate.git
cd mate
pip3 install -e .

Usage

Hope this asciinema will help.

Plugins

Commands can be added into mate shell as plugins. And it's super easy!

Writing a plugin

# demo_plugin.py
from mate import add_plugins, command


def sxor(s1, s2):
    return "".join(chr(ord(a) ^ ord(b)) for a, b in zip(s1, s2))


@command(option="xor")
def bitwise_string_xor(self, str1, str2):
    """A bitwise xor operation for two strings."""
    return {"result": sxor(str1, str2).__repr__()}


add_plugins(modules=[bitwise_string_xor])
# setup.py
from setuptools import setup

setup(
    name="mate-demo-plugin",
    install_requires="mate-shell",
    entry_points={"mate": ["bitwise_str_xor = demo_plugin"]},
    py_modules=["demo_plugin"],
)

Installing the plugin

pip3 install -e .

Accessing the plugin

Check out this asciinema.

More? Example Plugins

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mate-shell-0.0.5.tar.gz (27.1 kB view details)

Uploaded Source

File details

Details for the file mate-shell-0.0.5.tar.gz.

File metadata

  • Download URL: mate-shell-0.0.5.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/57.4.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for mate-shell-0.0.5.tar.gz
Algorithm Hash digest
SHA256 760fff45ff2603315400af899c0b5faaea76e9f1b7cbc970e72e2f1bb901bdff
MD5 c0641ee44bcdd02209c8673b855d3b9f
BLAKE2b-256 a6d72de512c09786f1b265f7e5bd06fa7a364e02d45981c204cc1a3b52babedb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page