These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Generate the skeleton for cStringIO as an example of framer."""
 | |
| 
 | |
| from framer.bases import Module, Type
 | |
| from framer.member import member
 | |
| 
 | |
| class cStringIO(Module):
 | |
|     """A simple fast partial StringIO replacement.
 | |
| 
 | |
|     This module provides a simple useful replacement for the StringIO
 | |
|     module that is written in C.  It does not provide the full
 | |
|     generality of StringIO, but it provides enough for most
 | |
|     applications and is especially useful in conjunction with the
 | |
|     pickle module.
 | |
| 
 | |
|     Usage:
 | |
| 
 | |
|     from cStringIO import StringIO
 | |
| 
 | |
|     an_output_stream = StringIO()
 | |
|     an_output_stream.write(some_stuff)
 | |
|     ...
 | |
|     value = an_output_stream.getvalue()
 | |
| 
 | |
|     an_input_stream = StringIO(a_string)
 | |
|     spam = an_input_stream.readline()
 | |
|     spam = an_input_stream.read(5)
 | |
|     an_input_stream.seek(0)             # OK, start over
 | |
|     spam = an_input_stream.read()       # and read it all
 | |
|     """
 | |
| 
 | |
|     __file__ = "cStringIO.c"
 | |
| 
 | |
|     def StringIO(o):
 | |
|         """Return a StringIO-like stream for reading or writing"""
 | |
|     StringIO.pyarg = "|O"
 | |
| 
 | |
|     class InputType(Type):
 | |
|         "Simple type for treating strings as input file streams"
 | |
| 
 | |
|         abbrev = "input"
 | |
| 
 | |
|         struct = """\
 | |
|         typedef struct {
 | |
|                 PyObject_HEAD
 | |
|                 char *buf;
 | |
|                 int pos;
 | |
|                 int size;
 | |
|                 PyObject *pbuf;
 | |
|         } InputObject;
 | |
|         """
 | |
| 
 | |
|         def flush(self):
 | |
|             """Does nothing"""
 | |
| 
 | |
|         def getvalue(self):
 | |
|             """Get the string value.
 | |
| 
 | |
|             If use_pos is specified and is a true value, then the
 | |
|             string returned will include only the text up to the
 | |
|             current file position.
 | |
|             """
 | |
| 
 | |
|         def isatty(self):
 | |
|             """Always returns False"""
 | |
| 
 | |
|         def read(self, s):
 | |
|             """Return s characters or the rest of the string."""
 | |
|         read.pyarg = "|i"
 | |
| 
 | |
|         def readline(self):
 | |
|             """Read one line."""
 | |
| 
 | |
|         def readlines(self, hint):
 | |
|             """Read all lines."""
 | |
|         readlines.pyarg = "|i"
 | |
| 
 | |
|         def reset(self):
 | |
|             """Reset the file position to the beginning."""
 | |
| 
 | |
|         def tell(self):
 | |
|             """Get the current position."""
 | |
| 
 | |
|         def truncate(self, pos):
 | |
|             """Truncate the file at the current position."""
 | |
|         truncate.pyarg = "|i"
 | |
| 
 | |
|         def seek(self, position, mode=0):
 | |
|             """Set the current position.
 | |
| 
 | |
|             The optional mode argument can be 0 for absolute, 1 for relative,
 | |
|             and 2 for relative to EOF.  The default is absolute.
 | |
|             """
 | |
|         seek.pyarg = "i|i"
 | |
| 
 | |
|         def close(self):
 | |
|             pass
 | |
| 
 | |
|     class OutputType(InputType):
 | |
|         "Simple type for output strings."
 | |
| 
 | |
|         abbrev = "output"
 | |
| 
 | |
|         struct = """\
 | |
|         typedef struct {
 | |
|                 PyObject_HEAD
 | |
|                 char *buf;
 | |
|                 int pos;
 | |
|                 int size;
 | |
|                 int softspace;
 | |
|         } OutputObject;
 | |
|         """
 | |
| 
 | |
|         softspace = member()
 | |
| 
 | |
|         def close(self):
 | |
|             """Explicitly release resources."""
 | |
| 
 | |
|         def write(self, s):
 | |
|             """Write a string to the file."""
 | |
|             # XXX Hack: writing None resets the buffer
 | |
| 
 | |
|         def writelines(self, lines):
 | |
|             """Write each string in lines."""
 | |
| 
 | |
| 
 | |
| cStringIO.gen()
 |