- 3.0.1 core module.
upload Namespace Reference

Classes

class  AbstractRpcServer
 
class  ClientLoginError
 
class  GitVCS
 
class  HttpRpcServer
 elif e.code >= 500 and e.code < 600:

Server Error - try again.

More...
 
class  MercurialVCS
 
class  SubversionVCS
 
class  VersionControlSystem
 

Functions

def GetEmail (prompt)
 
def StatusUpdate (msg)
 
def ErrorExit (msg)
 
def GetRpcServer (options)
 
def EncodeMultipartFormData (fields, files)
 
def GetContentType (filename)
 
def RunShellWithReturnCode (command, print_output=False, universal_newlines=True)
 
def RunShell (command, silent_ok=False, universal_newlines=True, print_output=False)
 
def SplitPatch (data)
 
def UploadSeparatePatches (issue, rpc_server, patchset, data, options)
 
def GuessVCS (options)
 
def RealMain (argv, data=None)
 
def main ()
 

Variables

int verbosity = 1
 
int MAX_UPLOAD_SIZE = 900
 
 parser = optparse.OptionParser(usage="%prog [options] [-- diff_options]")
 
 action
 
 dest
 
 default
 
 help
 
 group = parser.add_option_group("Logging options")
 
 const
 
 metavar
 
 type
 
 use_shell = sys.platform.startswith("win")
 

Function Documentation

def upload.GetEmail (   prompt)
Prompts the user for their email address and returns it.

The last used email address is saved to a file and offered up as a suggestion
to the user. If the user presses enter without typing in anything the last
used email address is used. If the user enters a new address, it is saved
for next time we prompt.

Referenced by GetRpcServer(), and upload.AbstractRpcServer.Send().

def upload.StatusUpdate (   msg)
Print a status message to stdout.

If 'verbosity' is greater than 0, print the message.

Args:
  msg: The string to print.

Referenced by upload.SubversionVCS.GetBaseFile(), upload.MercurialVCS.GetBaseFile(), main(), RealMain(), upload.AbstractRpcServer.Send(), upload.VersionControlSystem.UploadBaseFiles(), and UploadSeparatePatches().

def upload.GetRpcServer (   options)
Returns an instance of an AbstractRpcServer.

Returns:
  A new AbstractRpcServer, on which RPC calls can be made.

References GetEmail().

Referenced by upload.MercurialVCS.GetBaseFile(), RealMain(), and upload.AbstractRpcServer.Send().

def upload.EncodeMultipartFormData (   fields,
  files 
)
Encode form fields for multipart/form-data.

Args:
  fields: A sequence of (name, value) elements for regular form fields.
  files: A sequence of (name, filename, value) elements for data to be
         uploaded as files.
Returns:
  (content_type, body) ready for httplib.HTTP instance.

Source:
  https://web.archive.org/web/20160116052001/code.activestate.com/recipes/146306

References GetContentType().

Referenced by upload.MercurialVCS.GetBaseFile(), RealMain(), upload.AbstractRpcServer.Send(), upload.VersionControlSystem.UploadBaseFiles(), and UploadSeparatePatches().

def upload.GetContentType (   filename)
Helper to guess the content-type from the filename.

Referenced by EncodeMultipartFormData(), and upload.AbstractRpcServer.Send().

def upload.RunShellWithReturnCode (   command,
  print_output = False,
  universal_newlines = True 
)
Executes a command and returns the output from stdout and the return code.

Args:
  command: Command to execute.
  print_output: If True, the output is printed to stdout.
                If False, both stdout and stderr are ignored.
  universal_newlines: Use universal_newlines flag (default: True).

Returns:
  Tuple (output, return code)

References RunShell().

Referenced by upload.SubversionVCS.GetBaseFile(), upload.GitVCS.GetBaseFile(), upload.MercurialVCS.GetBaseFile(), upload.SubversionVCS.GetStatus(), GuessVCS(), RunShell(), and upload.AbstractRpcServer.Send().

def upload.SplitPatch (   data)
Splits a patch into separate pieces for each file.

Args:
  data: A string containing the output of svn diff.

Returns:
  A list of 2-tuple (filename, text) where text is the svn diff output
    pertaining to filename.

Referenced by upload.MercurialVCS.GetBaseFile(), and UploadSeparatePatches().

def upload.UploadSeparatePatches (   issue,
  rpc_server,
  patchset,
  data,
  options 
)
Uploads a separate patch for each file in the diff output.

Returns a list of [patch_key, filename] for each file.

References EncodeMultipartFormData(), SplitPatch(), and StatusUpdate().

Referenced by upload.MercurialVCS.GetBaseFile(), and RealMain().

def upload.GuessVCS (   options)
Helper to guess the version control system.

This examines the current directory, guesses which VersionControlSystem
we're using, and returns an instance of the appropriate class.  Exit with an
error if we can't figure it out.

Returns:
  A VersionControlSystem instance. Exits if the VCS can't be guessed.

References ErrorExit(), and RunShellWithReturnCode().

Referenced by upload.MercurialVCS.GetBaseFile(), and RealMain().

def upload.RealMain (   argv,
  data = None 
)
The real main function.

Args:
  argv: Command line arguments.
  data: Diff contents. If None (default) the diff is generated by
    the VersionControlSystem implementation returned by GuessVCS().

Returns:
  A 2-tuple (issue id, patchset id).
  The patchset id is None if the base files are not uploaded by this
  script (applies only to SVN checkouts).

References count, EncodeMultipartFormData(), ErrorExit(), GetRpcServer(), GuessVCS(), StatusUpdate(), and UploadSeparatePatches().

Referenced by upload.MercurialVCS.GetBaseFile(), and main().

def upload.main ( )

Variable Documentation

int upload.verbosity = 1
int upload.MAX_UPLOAD_SIZE = 900
upload.parser = optparse.OptionParser(usage="%prog [options] [-- diff_options]")
upload.default
upload.help
upload.group = parser.add_option_group("Logging options")
upload.const
upload.metavar
upload.use_shell = sys.platform.startswith("win")