text: import sys
  import time
  import getopt
  import rdflib
  import codecs
  
  from rdfextras.utils.pathutils import guess_format
  
  def _help(): 
      sys.stderr.write("""
  program.py [-f <format>] [-o <output>] [files...]
  Read RDF files given on STDOUT - does something to the resulting graph
  If no files are given, read from stdin
  -o specifies file for output, if not given stdout is used
  -f specifies parser to use, if not given it is guessed from extension
  
  """)
      
  
  def main(target, _help=_help, options="", stdin=True): 
      """
      A main function for tools that read RDF from files given on commandline
      or from STDIN (if stdin parameter is true)
      """
  
      args, files=getopt.getopt(sys.argv[1:], "hf:o:"+options)
      dargs=dict(args)
  
      if "-h" in dargs: 
          _help()
          sys.exit(-1)
                       
      g=rdflib.Graph()
  
      if "-f" in dargs: 
          f=dargs["-f"]
      else: 
          f=None
  
      if "-o" in dargs: 
          sys.stderr.write("Output to %s\n"%dargs["-o"])
          out=codecs.open(dargs["-o"], "w","utf-8")
      else: 
          out=sys.stdout
  
      start=time.time()
      if len(files)==0 and stdin: 
          sys.stderr.write("Reading from stdin as %s..."%f)
          g.load(sys.stdin, format=f)
          sys.stderr.write("[done]\n")
      else: 
          size=0
          for x in files:
              if f==None: 
                  f=guess_format(x)
              start1=time.time()
              sys.stderr.write("Loading %s as %s... "%(x,f))
              g.load(x, format=f)
              sys.stderr.write("done.\t(%d triples\t%.2f seconds)\n"%(len(g)-size, time.time()-start1))
              size=len(g)
  
      sys.stderr.write("Loaded a total of %d triples in %.2f seconds.\n"%(len(g), time.time()-start))
      
      target(g,out,args)
  
  
  