def _extract_bundle_id(args: Namespace) -> str:
    if args.bundle_id:
        return args.bundle_id
    values = []
    for value in vars(args).values():
        if isinstance(value, List):
            values.extend(value)
        else:
            values.append(value)
    for value in values:
        if (not isinstance(value, BundleWithPath)):
            continue
        bundle_id = value.bundle_id
        if (bundle_id is None):
            continue
        args.bundle_id = bundle_id
        return args.bundle_id
    raise NoBundleIdentifierProvidedException(f'No Bundle ID Provided in args {args}')
def _extract_bundle_id(args: Namespace) -> str:
    if args.bundle_id:
        return args.bundle_id
    values = []
    for value in vars(args).values():
        if isinstance(value, List):
            values.extend(value)
        else:
            values.append(value)
    for value in values:
        if (not isinstance(value, BundleWithPath)):
            continue
        bundle_id = value.bundle_id
        if (bundle_id is None):
            continue
        args.bundle_id = bundle_id
        return args.bundle_id
    raise NoBundleIdentifierProvidedException(f'No Bundle ID Provided in args {args}')