code: def project_layout(proposal, user=None, repo=None, log=None):
      
  
      proposal = proposal.lower()
  
      #context_file = os.path.expanduser('~/.cookiecutters/cookiecutter-pypackage/cookiecutter.json')
      #context = generate_context(context_file)
  
      # os.chdir('..')
      # context['cookiecutter']['full_name'] = user.name
      # context['cookiecutter']['email'] = user.email
      # context['cookiecutter']['github_username'] = user.login
      # context['cookiecutter']['project_name'] = proposal
      # context['cookiecutter']['repo_name'] = proposal.lower()
  
      try:
          os.mkdir(proposal)
      except FileExistsError:
          log.info('Skip directory structure, as project seem to already exists')
  
      with open('.gitignore', 'w') as f:
          f.write('''
  *.pyc
  __pycache__
  /build/
  /dist/
  ''')
  
      with open( '/'.join([proposal, '__init__.py']), 'w') as f: 
          f.write('''
  """
  a simple package
  """
  
  
  __version__ = '0.0.1'
  
          ''')
  
  
      travis_yml()
  
      #generate_files(
      #        repo_dir=os.path.expanduser('~/.cookiecutters/cookiecutter-pypackage/'),
      #        context=context
      #    )
  
      log.info('Workig in %s', os.getcwd())
      os.listdir('.')
  
      subprocess.call(['git','add','.'], )
  
      subprocess.call(['git','commit',"-am'initial commit of %s'" % proposal])
  
      subprocess.call(['git', "push", "origin", "master:master"])
docs: generate the project template
  
      proposal is the name of the project, 
      user is an object containing some information about the user. 
          - full name, 
          - github username
          - email