Source code for mgnipy.cli
import argparse
import json
import sys
from mgnipy import MGnipy
from mgnipy._models.CONSTANTS import SupportedEndpoints
from mgnipy.V2.core import MGnifier
def _build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="MGnipy CLI")
subparsers = parser.add_subparsers(dest="command")
subparsers.add_parser("list-resources", help="Print supported API resources")
get = subparsers.add_parser("get", help="Get a resource")
get.add_argument(
"resource",
help="Resource name",
choices=[e.value for e in SupportedEndpoints],
)
get.add_argument("--limit", type=int, help="Maximum number of items to return")
get.add_argument(
"--page-size", type=int, help="Number of items per page", default=25
)
return parser
[docs]
def main(argv=None):
parser = _build_parser()
args = parser.parse_args(argv)
if args.command is None:
parser.print_help()
sys.exit(0)
client = MGnipy()
if args.command == "list-resources":
resources = client.list_resources()
print(json.dumps(resources, indent=2))
elif args.command == "get":
mg = MGnifier(resource=args.resource, params={"page_size": args.page_size})
print(type(args.limit))
mg.explain()
mg.get(limit=args.limit, safety=False)
records = mg.to_list() or []
print(json.dumps(records[: args.limit], indent=2, default=str))
if __name__ == "__main__":
main()