简单脚本参数分析器

scription的Python项目详细描述


说明

用于增强命令行脚本的轻量级库;包括 指定数据类型的参数,参数检查,基本输入/输出 用户,支持suid[1],发送电子邮件,执行子程序,以及 脚本中的子命令

装饰工

  • Script: sets global variables and/or parameters for Commands; the decorated function will be called by Main/Run before any specified Command
  • Command: marks function as a subcommand for the script (e.g. add, delete, list, etc.); if no subcommand is specified on the command-line, scription will look for a Command with the same name as the script
  • Alias: registers other names for Commands (e.g. delete / remove / kill)

功能

  • Main: if the importing module’s __name__ is __main__, call Run() (this allows for importing the script as a module)
  • Run: unconditionally attempts to run the Script function (if any) and the Command found on the command-line

Main() or Run() should be the last thing in the script

课程

  • Spec: can be used when defining the command-line parameters (can also just use tuples)

帮助函数/类

  • abort: quits immediately by raising SystemExit
  • Execute: class for executing other programs; uses subprocess.Popen by default, but if pty=True is specified then pty.fork will be used (handy for programs that only accept input from a pty)
  • get_response: function for displaying text and getting feedback
  • help: quits immediately, but adds a reference to –help in the quit message
  • log_exception: logs an exception with logging.logger
  • mail: rudimentary mail sender
  • OrmFile: lightweight orm – supports str, int, float, date, time, datetime, bool, and path (which defaults to str); custom data types can also be specified
  • print: wrapper around print that adds a ‘verbose_level’ keyword (default: 1); default verbosity is 0 (so print does nothing), but can be increased using -v, -vv, –verbose, or –verbose=2 (in Python 2 the script must use ‘from __future__ import print_function’ to use scription’s print)
  • user_ids: context manager useful for suid scripts – all actions taken within the context are run as the user/group specified

功能

  • extra parameters defined by Script are global, and can be accessed from any function or Command
  • ‘module’ is a namespace inserted into the script
  • ‘script_command’ is the Command selected from the command line (useful when one needs to call the subcommand directly from a main() function)
  • ‘script_command_name’ is the name of the script_command
  • ‘script_verbosity’ is the level of verboseness selected (defaults to 0)
  • ‘script_name’ is the name of the script
  • builtin options are: –help, –verbose (-v or -vv), –version, –all-versions –version attempts to display the version of the main package in use –all-versions attempts to display the versions of any imported packages
  • command-line is decoded to unicode under Python 2 (Python 3 does this for us)

[1]我使用suid python程序,可在http://selliott.org/python/suid-python.c

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java客户端与服务器和JPA事务的对话   java Any DLL导入会抛出一个不满意的链接错误,尽管DLL似乎已加载   java如何获得只有他的电子邮件Firebase Realtime才知道的用户结构   PlayFramework2.0Java游戏!启动问题   java创建倒计时计时器   在java中按id排序Akka流   带有嵌入式Jetty静态资源的java Spring MVC   java如何避免Jackson获取标记为FetchType的字段。懒惰的   java Netbeans Ascii unicode字符不工作base64编码解码   JAVAME:对Java向量进行排序   适合java的设计模式   java ParDo函数未在Apache BEAM中等待窗口   从JNI调用main()入口点时,java new JFrame()崩溃   java试图理解JNI中的C函数调用。H   java如何在hibernate 5.3中使用键贡献类型   Javafx中屏幕之间的java参数   java将图像转换为SVG   java Read xls文件,API POI异常初始化记录0x203(NumberRecord),剩余4个字节尚待读取   swing将选项卡添加到jTabbedPane,其中每个选项卡都有一个名为java的文本区域   java While循环只在主体中运行一次