Spaces:
Build error
Build error
| #!/usr/bin/env python | |
| """Helper script to compare two argparse.Namespace objects.""" | |
| from argparse import Namespace # noqa | |
| def main(): | |
| ns1 = eval(input("Namespace 1: ")) | |
| ns2 = eval(input("Namespace 2: ")) | |
| def keys(ns): | |
| ks = set() | |
| for k in dir(ns): | |
| if not k.startswith("_"): | |
| ks.add(k) | |
| return ks | |
| k1 = keys(ns1) | |
| k2 = keys(ns2) | |
| def print_keys(ks, ns1, ns2=None): | |
| for k in ks: | |
| if ns2 is None: | |
| print("{}\t{}".format(k, getattr(ns1, k, None))) | |
| else: | |
| print( | |
| "{}\t{}\t{}".format(k, getattr(ns1, k, None), getattr(ns2, k, None)) | |
| ) | |
| print("Keys unique to namespace 1:") | |
| print_keys(k1 - k2, ns1) | |
| print() | |
| print("Keys unique to namespace 2:") | |
| print_keys(k2 - k1, ns2) | |
| print() | |
| print("Overlapping keys with different values:") | |
| ks = [k for k in k1 & k2 if getattr(ns1, k, "None") != getattr(ns2, k, "None")] | |
| print_keys(ks, ns1, ns2) | |
| print() | |
| if __name__ == "__main__": | |
| main() | |