CLI ToolΒΆ
A self-contained command-line script that prints a fake address or IBAN.
# smartfaker_cli.py
import argparse
import json
import sys
from smartfaker import Faker
def main(argv=None):
parser = argparse.ArgumentParser(prog="smartfaker", description="Generate fake addresses & IBANs.")
sub = parser.add_subparsers(dest="cmd", required=True)
p_addr = sub.add_parser("address", help="Generate fake address(es)")
p_addr.add_argument("country")
p_addr.add_argument("-n", "--amount", type=int, default=1)
p_addr.add_argument("-f", "--field", action="append", help="Field to keep (repeat).")
p_iban = sub.add_parser("iban", help="Generate fake IBAN(s)")
p_iban.add_argument("country")
p_iban.add_argument("-n", "--amount", type=int, default=1)
sub.add_parser("countries", help="List supported address countries")
sub.add_parser("iban-countries", help="List supported IBAN countries")
args = parser.parse_args(argv)
faker = Faker()
if args.cmd == "address":
result = faker.address(args.country, amount=args.amount, fields=args.field)
elif args.cmd == "iban":
result = faker.iban(args.country, amount=args.amount)
elif args.cmd == "countries":
result = faker.countries()
elif args.cmd == "iban-countries":
result = faker.iban_countries()
else: # pragma: no cover
parser.error("unknown command")
json.dump(result, sys.stdout, indent=2, ensure_ascii=False)
sys.stdout.write("\n")
if __name__ == "__main__":
main()
Usage:
python smartfaker_cli.py address us -n 3
python smartfaker_cli.py iban DE -n 5
python smartfaker_cli.py countries