Propagate a default parameter of a function among several files
I would create a shared.py module somewhere (I'll let you handle the import directory tree). It would just contain

args = None

Import it in all your modules and assign args from argparser directly to it.
Now shared.args contains all the information (even device that you did not ask for :))

Of course this is not reentrant because of the shared global structure, but if you need reentrancy, you just have to pass 1 parameter: a fake args structure like argparse created (see the FakeArgs in syncfile.py)

And when you're ready to create one single python singleton object to avoid too much parameter passing, just yell :)

in auto code

#!/usr/bin/env python

import argparse
import shared
import project.sync.sync_file as logic_sync


def sync(args):
    shared.args = args
    logic_sync.main()

parser = argparse.ArgumentParser(description='Info on my project')
subparsers = parser.add_subparsers()

sync_parser = subparsers.add_parser('sync', help='synchronize')
sync_parser.add_argument('--device', default='nas', help='specify the device name')
sync_parser.add_argument('--verbose', action='store_true', help='increase the output verbose')
sync_parser.set_defaults(func=sync)  # set the default function to sync


if __name__ == '__main__':
    args = parser.parse_args()
    args.func(args)


sync_file.py code:

from .. import helper
import shared

def main():
    helper.play()

if __name__ == '__main__':
    #Test here the logic

    # we don't have argparse module creating the structure
    # for us ? what the heck? create a fake one

    class FakeArgs:
        def __init__(self):
           self.verbose = False
           self.device = 'omv'

    shared.args = FakeArgs()
    main()
    shared.args.verbose = True
    main()


helper.py code:

import shared
def play():
    if shared.args.verbose:
        print shared.args.device + " with verbose on"
    else:
        print shared.args.device + " verbose off"