Skip to main content

simple CLI framework

Project description

https://img.shields.io/pypi/v/wisepy2.svg

Wisepy2

Since we found that the capabilities/features doesn’t attract people into using wisepy, thus we go to an extreme, making the simplest command line tool for Python, but also capable of covering the regular use cases.

Two examples are given in the root directory of this project.

from wisepy2 import *


def add(left: int, right: int):
    """
    add up two numbers.
    """
    print(left + right)
    return 0

if __name__ == '__main__':
    wise(add)()
https://raw.githubusercontent.com/Xython/wisepy2/master/example-add2.png
@wise
class Cmd:
    class Int:
        @staticmethod
        def add(a: int, b: int):
            print(a + b)

    class Str:
        @staticmethod
        def concat(a: str, b: str):
            print(a + b)

    @staticmethod
    def repeat(a: str, b: int):
        print(a * b)

if __name__ == '__main__':
    wise(add)()

shell> python xxx.py Int add 1 2 # 3
shell> python xxx.py Str concat 1 2 # 12
shell> python xxx.py repeat 1 2 # 11

Usage

Wisepy2 converts a function into a command, where following components of python functions correspond to the command components. Here’re the mapping rules:

  • variadic args: a positional argument that accepts variable number of arguments, like nargs="*" in argparse.

  • annotations: an annotation will be transformed to the help doc of an argument. If it’s a type, the argument is automatically converted to the type you expect.

  • default argument: default value will be equivalent to specifying default in argparse.

  • keyword argument: keyword only or postional_or_keyword arguments with default values can be passed by --arg value.

  • arguments that’re annotated bool and have True or False default arguments: these arguments can changed as the opposite of its default value by giving --arg.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wisepy2-1.4.1-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file wisepy2-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: wisepy2-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for wisepy2-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 522f68f1a2be0657548e6431fcb6e20a819fad1054d010a7dcc0b1a7e7adc7d3
MD5 0149192f54878dc3757d94094cf2fb04
BLAKE2b-256 3e621ab672ce622c41452fb2a6a3d6e71d9050809426c2f82aa6786f90e6a535

See more details on using hashes here.

Supported by

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