コード例 #1
0
def handle_cmd_options():

    usage = """
    Usage: yam_sort -s file_one file_two    """

    hp = lambda prog: RawTextHelpFormatter(
        prog, max_help_position=50, width=120)
    parser = argparse.ArgumentParser(description=usage, formatter_class=hp)

    parser.add_argument(
        '-s',
        '--sync',
        nargs=2,
        metavar=('first', 'second'),
        help='sort the second of two YAML files by keys in first')
    parser.add_argument('-k',
                        '--keys',
                        nargs=2,
                        metavar=('first', 'second'),
                        help='diff two YAML files by keys only')
    parser.add_argument('-o',
                        '--overwrite',
                        action="store_true",
                        help='overwrite second file with re-sorted data')
    cmd_args = parser.parse_args()

    # You would think an empty argument list would *default* to printing help, but no...
    if len(sys.argv) == 1:
        parser.print_help()
        sys.exit(1)

    return cmd_args
コード例 #2
0
ファイル: app.py プロジェクト: sanic-org/sanic
 def __init__(self) -> None:
     width = shutil.get_terminal_size().columns
     self.parser = SanicArgumentParser(
         prog="sanic",
         description=self.DESCRIPTION,
         formatter_class=lambda prog: RawTextHelpFormatter(
             prog,
             max_help_position=36 if width > 96 else 24,
             indent_increment=4,
             width=None,
         ),
     )
     self.parser._positionals.title = "Required\n========\n  Positional"
     self.parser._optionals.title = "Optional\n========\n  General"
     self.main_process = (os.environ.get("SANIC_RELOADER_PROCESS", "") !=
                          "true")
     self.args: List[Any] = []
コード例 #3
0
ファイル: main.py プロジェクト: chenhaox/Panda3DCraft
def handle_cmd_options():

    usage = """
    Usage: Play around in a simple block-world, that bears a passing resemblance
    to Minecraft. You can:
     - select from one of *nine* different block-types
     - add/remove blocks
     - save/load a game
     - move around the world with the keyboard/mouse (mouse rotates view only)

    r = resets location/camera view - hit this at start of game, if view is empty
    m = toggles between movement (invisible mouse), and block-placement (visible mouse)
    b = toggles block-selection menu
    ESC = toggles pause/save-game screen

    a/s/d/w = moves around horizontally
    z/x = moves up/down (or was it down, then up?)
    """

    hp = lambda prog: RawTextHelpFormatter(prog, max_help_position=50, width=120)
    parser = argparse.ArgumentParser(description=usage, formatter_class=hp)

    parser.add_argument('-v', '--verbose', action="store_true", help='verbose debugging statements - TBD')
    parser.add_argument('-l', '--level', action="store_true", help='level the ground, no noisy-generation')
    parser.add_argument('-m', '--mini', action="store_true", help='use smaller blocks')
    parser.add_argument('-s', '--skybox', action="store_true", help='uses a simple SkyBox, mostly for testing')
    parser.add_argument('-b', '--block', default='grass', help='set block-type for initial terrain-generation')
    parser.add_argument('-p', '--play', action="store_true", help='play the game - any cmd-option will also play')
    cmd_args = parser.parse_args()

    # You would think an empty argument list would *default* to printing help, but no...
    if len(sys.argv) == 1:
        parser.print_help()
        sys.exit(1)

    return cmd_args
コード例 #4
0
        # Retrieve subparsers from parser
        subparsers_actions = [
            action for action in parser._actions
            if isinstance(action, argparse._SubParsersAction)
        ]

        for subparsers_action in subparsers_actions:
            # get all subparsers and print help
            for choice, subparser in subparsers_action.choices.items():
                print "Command '{}'".format(choice)
                print subparser.format_usage()
        parser.exit()


# Change the width of the output format
formatter_class = lambda prog: RawTextHelpFormatter(prog, max_help_position=50)

# Help parser for parsing subparsers in help
help_parser = ArgumentParser(
    description='Run Dataduct commands',
    add_help=False,
    formatter_class=formatter_class,
)
help_parser.add_argument(
    '-h',
    '--help',
    action=DataductHelpAction,
    help='Help message',
)

# Mode parser shared across all pipeline subparsers
コード例 #5
0
ファイル: __main__.py プロジェクト: wangjianweiwei/sanic
def main():
    parser = SanicArgumentParser(
        prog="sanic",
        description=BASE_LOGO,
        formatter_class=lambda prog: RawTextHelpFormatter(
            prog, max_help_position=33),
    )
    parser.add_argument(
        "-v",
        "--version",
        action="version",
        version=f"Sanic {__version__}; Routing {__routing_version__}",
    )
    parser.add_argument(
        "--factory",
        action="store_true",
        help=("Treat app as an application factory, "
              "i.e. a () -> <Sanic app> callable"),
    )
    parser.add_argument(
        "-s",
        "--simple",
        dest="simple",
        action="store_true",
        help="Run Sanic as a Simple Server (module arg should be a path)\n ",
    )
    parser.add_argument(
        "-H",
        "--host",
        dest="host",
        type=str,
        default="127.0.0.1",
        help="Host address [default 127.0.0.1]",
    )
    parser.add_argument(
        "-p",
        "--port",
        dest="port",
        type=int,
        default=8000,
        help="Port to serve on [default 8000]",
    )
    parser.add_argument(
        "-u",
        "--unix",
        dest="unix",
        type=str,
        default="",
        help="location of unix socket\n ",
    )
    parser.add_argument(
        "--cert",
        dest="cert",
        type=str,
        help="Location of fullchain.pem, bundle.crt or equivalent",
    )
    parser.add_argument(
        "--key",
        dest="key",
        type=str,
        help="Location of privkey.pem or equivalent .key file",
    )
    parser.add_argument(
        "--tls",
        metavar="DIR",
        type=str,
        action="append",
        help="TLS certificate folder with fullchain.pem and privkey.pem\n"
        "May be specified multiple times to choose of multiple certificates",
    )
    parser.add_argument(
        "--tls-strict-host",
        dest="tlshost",
        action="store_true",
        help="Only allow clients that send an SNI matching server certs\n ",
    )
    parser.add_bool_arguments("--access-logs",
                              dest="access_log",
                              help="display access logs")
    parser.add_argument(
        "-w",
        "--workers",
        dest="workers",
        type=int,
        default=1,
        help="number of worker processes [default 1]\n ",
    )
    parser.add_argument("-d", "--debug", dest="debug", action="store_true")
    parser.add_bool_arguments(
        "--noisy-exceptions",
        dest="noisy_exceptions",
        help="print stack traces for all exceptions",
    )
    parser.add_argument(
        "-r",
        "--reload",
        "--auto-reload",
        dest="auto_reload",
        action="store_true",
        help="Watch source directory for file changes and reload on changes",
    )
    parser.add_argument(
        "-R",
        "--reload-dir",
        dest="path",
        action="append",
        help="Extra directories to watch and reload on changes\n ",
    )
    parser.add_argument(
        "module",
        help=("Path to your Sanic app. Example: path.to.server:app\n"
              "If running a Simple Server, path to directory to serve. "
              "Example: ./\n"),
    )
    args = parser.parse_args()

    # Custom TLS mismatch handling for better diagnostics
    if (
            # one of cert/key missing
            bool(args.cert) != bool(args.key)
            # new and old style args used together
            or args.tls and args.cert
            # strict host checking without certs would always fail
            or args.tlshost and not args.tls and not args.cert):
        parser.print_usage(sys.stderr)
        error_logger.error(
            "sanic: error: TLS certificates must be specified by either of:\n"
            "  --cert certdir/fullchain.pem --key certdir/privkey.pem\n"
            "  --tls certdir  (equivalent to the above)")
        sys.exit(1)

    try:
        module_path = os.path.abspath(os.getcwd())
        if module_path not in sys.path:
            sys.path.append(module_path)

        if args.simple:
            path = Path(args.module)
            app = create_simple_server(path)
        else:
            delimiter = ":" if ":" in args.module else "."
            module_name, app_name = args.module.rsplit(delimiter, 1)

            if app_name.endswith("()"):
                args.factory = True
                app_name = app_name[:-2]

            module = import_module(module_name)
            app = getattr(module, app_name, None)
            if args.factory:
                app = app()

            app_type_name = type(app).__name__

            if not isinstance(app, Sanic):
                raise ValueError(
                    f"Module is not a Sanic app, it is a {app_type_name}.  "
                    f"Perhaps you meant {args.module}.app?")

        ssl: Union[None, dict, str, list] = []
        if args.tlshost:
            ssl.append(None)
        if args.cert is not None or args.key is not None:
            ssl.append(dict(cert=args.cert, key=args.key))
        if args.tls:
            ssl += args.tls
        if not ssl:
            ssl = None
        elif len(ssl) == 1 and ssl[0] is not None:
            # Use only one cert, no TLSSelector.
            ssl = ssl[0]
        kwargs = {
            "host": args.host,
            "port": args.port,
            "unix": args.unix,
            "workers": args.workers,
            "debug": args.debug,
            "access_log": args.access_log,
            "ssl": ssl,
            "noisy_exceptions": args.noisy_exceptions,
        }

        if args.auto_reload:
            kwargs["auto_reload"] = True

        if args.path:
            if args.auto_reload or args.debug:
                kwargs["reload_dir"] = args.path
            else:
                error_logger.warning(
                    "Ignoring '--reload-dir' since auto reloading was not "
                    "enabled. If you would like to watch directories for "
                    "changes, consider using --debug or --auto-reload.")

        app.run(**kwargs)
    except ImportError as e:
        if module_name.startswith(e.name):
            error_logger.error(
                f"No module named {e.name} found.\n"
                "  Example File: project/sanic_server.py -> app\n"
                "  Example Module: project.sanic_server.app")
        else:
            raise e
    except ValueError:
        error_logger.exception("Failed to run app")
コード例 #6
0
def less_indent_formatter(prog):
    return RawTextHelpFormatter(prog, max_help_position=8, width=80)
コード例 #7
0
def main():

	print(swarmcg.shared.styling.header_package(
		'                Module: Model bonded terms assessment\n'))

	formatter = lambda prog: RawTextHelpFormatter(prog, width=135, max_help_position=52)
	args_parser = ArgumentParser(
		description=EVALUATE_DESCR,
		formatter_class=formatter,
		add_help=False,
		usage=SUPPRESS
	)

	all_args_header = swarmcg.shared.styling.sep_close + '\n|                                 REQUIRED/OPTIONAL ARGUMENTS                                 |\n' + swarmcg.shared.styling.sep_close
	bullet = ' '

	required_args = args_parser.add_argument_group(
		all_args_header + '\n\n' + bullet + 'MODELS FILES')
	required_args.add_argument('-aa_tpr', dest='aa_tpr_filename', help=config.help_aa_tpr, type=str,
							   default=config.metavar_aa_tpr,
							   metavar='     ' + scg.par_wrap(config.metavar_aa_tpr))
	required_args.add_argument('-aa_traj', dest='aa_traj_filename', help=config.help_aa_traj,
							   type=str, default=config.metavar_aa_traj,
							   metavar='     ' + scg.par_wrap(config.metavar_aa_traj))
	required_args.add_argument('-cg_map', dest='cg_map_filename', help=config.help_cg_map, type=str,
							   default=config.metavar_cg_map,
							   metavar='       ' + scg.par_wrap(config.metavar_cg_map))
	required_args.add_argument('-mapping', dest='mapping_type', help=config.help_mapping_type, type=str,
							   default='COM', metavar='             (COM)')
	required_args.add_argument('-cg_itp', dest='cg_itp_filename',
							   help='ITP file of the CG model to evaluate', type=str,
							   default=config.metavar_cg_itp,
							   metavar='     ' + scg.par_wrap(config.metavar_cg_itp))
	required_args.add_argument('-cg_tpr', dest='cg_tpr_filename',
							   help='TPR file of your CG simulation (omit for solo AA inspection)',
							   type=str, default=config.metavar_cg_tpr,
							   metavar='     ' + scg.par_wrap(config.metavar_cg_tpr))
	required_args.add_argument('-cg_traj', dest='cg_traj_filename',
							   help='XTC file of your CG trajectory (omit for solo AA inspection)',
							   type=str, default=config.metavar_cg_traj,
							   metavar='     ' + scg.par_wrap(config.metavar_cg_traj))

	optional_args = args_parser.add_argument_group(bullet + 'CG MODEL SCALING')
	# optional_args.add_argument('-nb_threads', dest='nb_threads', help='number of threads to use', type=int, default=1, metavar='1') # TODO: does NOT work properly -- modif MDAnalysis code with OpenMP num_threads(n) in the pragma
	optional_args.add_argument('-bonds_scaling', dest='bonds_scaling',
							   help=config.help_bonds_scaling, type=float,
							   default=config.bonds_scaling,
							   metavar='       ' + scg.par_wrap(config.bonds_scaling))
	optional_args.add_argument('-bonds_scaling_str', dest='bonds_scaling_str',
							   help=config.help_bonds_scaling_str, type=str,
							   default=config.bonds_scaling_str, metavar='')
	optional_args.add_argument('-min_bonds_length', dest='min_bonds_length',
							   help=config.help_min_bonds_length, type=float,
							   default=config.min_bonds_length,
							   metavar='    ' + scg.par_wrap(config.min_bonds_length))
	optional_args.add_argument('-b2a_score_fact', dest='bonds2angles_scoring_factor',
							   help=config.help_bonds2angles_scoring_factor, type=float,
							   default=config.bonds2angles_scoring_factor,
							   metavar='      ' + scg.par_wrap(config.bonds2angles_scoring_factor))

	graphical_args = args_parser.add_argument_group(bullet + 'FIGURE DISPLAY')
	graphical_args.add_argument('-mismatch_ordering', dest='mismatch_order',
								help='Enables ordering of bonds/angles/dihedrals by mismatch score\nbetween pairwise AA-mapped/CG distributions (can help diagnosis)',
								default=False, action='store_true')
	graphical_args.add_argument('-bw_constraints', dest='bw_constraints',
								help=config.help_bw_constraints, type=float,
								default=config.bw_constraints,
								metavar='    ' + scg.par_wrap(config.bw_constraints))
	graphical_args.add_argument('-bw_bonds', dest='bw_bonds', help=config.help_bw_bonds, type=float,
								default=config.bw_bonds,
								metavar='           ' + scg.par_wrap(config.bw_bonds))
	graphical_args.add_argument('-bw_angles', dest='bw_angles', help=config.help_bw_angles,
								type=float, default=config.bw_angles,
								metavar='           ' + scg.par_wrap(config.bw_angles))
	graphical_args.add_argument('-bw_dihedrals', dest='bw_dihedrals', help=config.help_bw_dihedrals,
								type=float, default=config.bw_dihedrals,
								metavar='        ' + scg.par_wrap(config.bw_dihedrals))
	graphical_args.add_argument('-disable_x_scaling', dest='row_x_scaling',
								help='Disable auto-scaling of X axis across each row of the plot',
								default=True, action='store_false')
	graphical_args.add_argument('-disable_y_scaling', dest='row_y_scaling',
								help='Disable auto-scaling of Y axis across each row of the plot',
								default=True, action='store_false')
	graphical_args.add_argument('-bonds_max_range', dest='bonded_max_range',
								help=config.help_bonds_max_range, type=float,
								default=config.bonds_max_range,
								metavar='      ' + scg.par_wrap(config.bonds_max_range))
	graphical_args.add_argument('-ncols', dest='ncols_max',
								help='Max. nb of columns displayed in figure', type=int, default=0,
								metavar='')  # TODO: make this a line return in plot instead of ignoring groups

	optional_args2 = args_parser.add_argument_group(bullet + 'OTHERS')
	optional_args2.add_argument('-o', dest='plot_filename',
								help='Filename for the output plot (extension/format can be one of:\neps, pdf, pgf, png, ps, raw, rgba, svg, svgz)',
								type=str, default='distributions.png', metavar='     (distributions.png)')
	optional_args2.add_argument('-h', '--help', action='help',
								help='Show this help message and exit')
	optional_args2.add_argument('-v', '--verbose', dest='verbose', help=config.help_verbose,
								action='store_true', default=False)

	# arguments handling, display command line if help or no arguments provided
	ns = args_parser.parse_args()
	input_cmdline = ' '.join(map(cmd_quote, sys.argv))
	print('Working directory:', os.getcwd())
	print('Command line:', input_cmdline)

	run(ns)
コード例 #8
0
def main():
    parser = SanicArgumentParser(
        prog="sanic",
        description=BASE_LOGO,
        formatter_class=lambda prog: RawTextHelpFormatter(
            prog, max_help_position=33),
    )
    parser.add_argument(
        "-v",
        "--version",
        action="version",
        version=f"Sanic {__version__}; Routing {__routing_version__}",
    )
    parser.add_argument(
        "--factory",
        action="store_true",
        help=("Treat app as an application factory, "
              "i.e. a () -> <Sanic app> callable"),
    )
    parser.add_argument(
        "-s",
        "--simple",
        dest="simple",
        action="store_true",
        help="Run Sanic as a Simple Server (module arg should be a path)\n ",
    )
    parser.add_argument(
        "-H",
        "--host",
        dest="host",
        type=str,
        default="127.0.0.1",
        help="Host address [default 127.0.0.1]",
    )
    parser.add_argument(
        "-p",
        "--port",
        dest="port",
        type=int,
        default=8000,
        help="Port to serve on [default 8000]",
    )
    parser.add_argument(
        "-u",
        "--unix",
        dest="unix",
        type=str,
        default="",
        help="location of unix socket\n ",
    )
    parser.add_argument("--cert",
                        dest="cert",
                        type=str,
                        help="Location of certificate for SSL")
    parser.add_argument("--key",
                        dest="key",
                        type=str,
                        help="location of keyfile for SSL\n ")
    parser.add_bool_arguments("--access-logs",
                              dest="access_log",
                              help="display access logs")
    parser.add_argument(
        "-w",
        "--workers",
        dest="workers",
        type=int,
        default=1,
        help="number of worker processes [default 1]\n ",
    )
    parser.add_argument("-d", "--debug", dest="debug", action="store_true")
    parser.add_argument(
        "-r",
        "--reload",
        "--auto-reload",
        dest="auto_reload",
        action="store_true",
        help="Watch source directory for file changes and reload on changes",
    )
    parser.add_argument(
        "-R",
        "--reload-dir",
        dest="path",
        action="append",
        help="Extra directories to watch and reload on changes\n ",
    )
    parser.add_argument(
        "module",
        help=("Path to your Sanic app. Example: path.to.server:app\n"
              "If running a Simple Server, path to directory to serve. "
              "Example: ./\n"),
    )
    args = parser.parse_args()

    try:
        module_path = os.path.abspath(os.getcwd())
        if module_path not in sys.path:
            sys.path.append(module_path)

        if args.simple:
            path = Path(args.module)
            app = create_simple_server(path)
        else:
            delimiter = ":" if ":" in args.module else "."
            module_name, app_name = args.module.rsplit(delimiter, 1)

            if app_name.endswith("()"):
                args.factory = True
                app_name = app_name[:-2]

            module = import_module(module_name)
            app = getattr(module, app_name, None)
            if args.factory:
                app = app()

            app_type_name = type(app).__name__

            if not isinstance(app, Sanic):
                raise ValueError(
                    f"Module is not a Sanic app, it is a {app_type_name}.  "
                    f"Perhaps you meant {args.module}.app?")
        if args.cert is not None or args.key is not None:
            ssl: Optional[Dict[str, Any]] = {
                "cert": args.cert,
                "key": args.key,
            }
        else:
            ssl = None

        kwargs = {
            "host": args.host,
            "port": args.port,
            "unix": args.unix,
            "workers": args.workers,
            "debug": args.debug,
            "access_log": args.access_log,
            "ssl": ssl,
        }
        if args.auto_reload:
            kwargs["auto_reload"] = True

        if args.path:
            if args.auto_reload or args.debug:
                kwargs["reload_dir"] = args.path
            else:
                error_logger.warning(
                    "Ignoring '--reload-dir' since auto reloading was not "
                    "enabled. If you would like to watch directories for "
                    "changes, consider using --debug or --auto-reload.")

        app.run(**kwargs)
    except ImportError as e:
        if module_name.startswith(e.name):
            error_logger.error(
                f"No module named {e.name} found.\n"
                "  Example File: project/sanic_server.py -> app\n"
                "  Example Module: project.sanic_server.app")
        else:
            raise e
    except ValueError:
        error_logger.exception("Failed to run app")
コード例 #9
0
ファイル: __main__.py プロジェクト: fagan2888/minet
def custom_formatter(prog):
    return RawTextHelpFormatter(prog,
                                max_help_position=50,
                                width=terminal_size.columns)
コード例 #10
0
ファイル: cli.py プロジェクト: CrawfishPress/psp_scan
 def hp(**kwargs):
     return RawTextHelpFormatter(max_help_position=50, width=120, **kwargs)
コード例 #11
0
def parseCmdLine():
    """Parse command line arguments"""

    parser = ArgumentParser(
        description="Connection and Auth example",
        formatter_class=lambda prog: RawTextHelpFormatter(prog, width=99))
    defaultUser = AuthUser.createWithLogonName()
    defaultAuthOptions = AuthOptions.createWithUser(defaultUser)

    parser.add_argument("--auth",
                        dest="auth",
                        help="authentication option: "
                        "user|none|app=<app>|userapp=<app>|dir=<property>|"
                        "manual=<app,ip,user>"
                        " (default: user)\n"
                        "'none' is applicable to Desktop API product "
                        "that requires Bloomberg Professional service "
                        "to be installed locally.",
                        metavar="option",
                        action=AuthOptionsAction,
                        default=defaultAuthOptions)

    parser.add_argument("--host",
                        dest="host",
                        help="server name or IP, and port <ipAddress:port>"
                        "(default 'localhost:8194')",
                        metavar="<ipAddress:port>",
                        action=HostAction)

    parser.add_argument("--retries",
                        dest="retries",
                        help="number of connection retries "
                        "(default: number of hosts)",
                        metavar="option",
                        type=int,
                        action=AuthOptionsAction)

    # TLS Options
    parser.add_argument("--tls-client-credentials",
                        dest="tls_client_credentials",
                        help="name a PKCS#12 file to use as a source of "
                        "client credentials",
                        metavar="option")
    parser.add_argument("--tls-client-credentials-password",
                        dest="tls_client_credentials_password",
                        help="specify password for accessing"
                        " client credentials",
                        metavar="option",
                        default="")
    parser.add_argument("--tls-trust-material",
                        dest="tls_trust_material",
                        help="name a PKCS#7 file to use as a source of trusted"
                        " certificates",
                        metavar="option")
    parser.add_argument(
        "--read-certificate-files",
        dest="read_certificate_files",
        help="(optional) read the TLS files and pass the blobs",
        action="store_true")

    args = parser.parse_args()

    args.tlsOptions = getTlsOptions(args)

    if not args.host:
        args.host = [["localhost", 8194]]

    if args.retries is None:
        args.retries = len(args.host)

    return args
コード例 #12
0
def main(argv):
    """
    'Ring in the New Year' puzzle solution: string encoding/decoding utility.

    Individually processes a list of 'passwords', decoding those containining
    a 'marker' character and encoding the rest, using an algorithm implemented
    to solve the above-named puzzle.

    HINT: Enclose each password in single quotes when running from a shell.
    """
    parser = ArgumentParser(
        description=dedent(main.__doc__),
        formatter_class=lambda prog: RawTextHelpFormatter(prog, max_help_position=30))
    parser.add_argument('passwords', nargs='*', type=str, metavar='password',
                        help="List of strings to encode/decode.")
    parser.add_argument('-v', '--verbose', action='store_true', help='Show verbose output (intermediate states)')
    parser.add_argument('-m', '--marker', type=str, default='$', help="Marker character [default: '$']")
    args = parser.parse_args(argv)

    log = logging.getLogger()
    log.setLevel(logging.DEBUG if args.verbose else logging.INFO)

    if len(args.marker) != 1:
        log.warn(f"{parser.prog}: Provided marker must be a single character.")
        parser.print_help()
        return 2

    if len(args.passwords) == 0:
        log.warn("No password(s) provided to encode/decode!\n")
        parser.print_help()
        log.info(
            "\nPreviewing encoder/decoder with default examples...\n" +
            "$ ./ritny.py 'anagram' "
            f"'endrtednedd:/os....cp.rnnn.rhhps/.tt{args.marker}sfeaiaaofd.ow.otooapa.asu./thhse'"
        )
        args.passwords = [
            'anagram',
            f'endrtednedd:/os....cp.rnnn.rhhps/.tt{args.marker}sfeaiaaofd.ow.otooapa.asu./thhse'
        ]

    log.debug(f"Using marker: '{args.marker}'...\n")
    outputs = []
    for password in args.passwords:
        if args.marker in password:
            log.debug(f"Decoding:\n {password}")
            output = decode(password, args.marker)
            outputs.append(output)
            log.debug(f"Decoded:\n {output}\n")

        else:
            log.debug(f"Encoding:\n {password}")

            rotation_table = mark_and_rotate(password, args.marker)
            rotation_display = '\n '.join(s for s in rotation_table)
            log.debug(f"Rotation table:\n {rotation_display}")

            sorted_table = sort(rotation_table, args.marker)
            sort_display = '\n '.join(s for s in sorted_table)
            log.debug(f"Sort table:\n {sort_display}")

            output = last_chars(sorted_table)
            log.debug(f"Encoded:\n {output}\n")
            outputs.append(output)

    log.info(' '.join(o for o in outputs))
コード例 #13
0
 def _split_lines(self, text, width):
     return RawTextHelpFormatter._split_lines(self, text, width)
コード例 #14
0
 def my_formatter(prog):
     return RawTextHelpFormatter(prog=prog,
                                 max_help_position=90,
                                 width=None)
コード例 #15
0
ファイル: args.py プロジェクト: mpsym/mpsym_tool
 def formatter_class(prog):
     return RawTextHelpFormatter(prog,
                                 max_help_position=max_help_position)