"""Passing of None as an array data-type
"""
REGISTRY_NAME = 'nones'
from OpenGL.arrays import formathandler

class NoneHandler( formathandler.FormatHandler ):
	"""Numpy-specific data-type handler for OpenGL"""
	HANDLED_TYPES = (type(None), )
	def from_param( self, value, typeCode=None  ):
		"""Convert to a ctypes pointer value"""
		return None
	def dataPointer( self, value ):
		"""return long for pointer value"""
		return None
	def voidDataPointer( cls, value ):
		"""Given value in a known data-pointer type, return void_p for pointer"""
		return None
	def asArray( self, value, typeCode=None ):
		"""Given a value, convert to array representation"""
		return None
	def arrayToGLType( self, value ):
		"""Given a value, guess OpenGL type of the corresponding pointer"""
		raise TypeError( """Can't guess type of a NULL pointer""" )
	def arraySize( self, value, typeCode = None ):
		"""Given a data-value, calculate dimensions for the array"""
		return 0
	def arrayByteCount( self, value, typeCode = None ):
		"""Given a data-value, calculate number of bytes required to represent"""
		return 0
	def zeros( self, shape, typeCode= None ):
		"""Create an array of given shape with given typeCode"""
		raise TypeError( """Can't create NULL pointer filled with values""" )
	def ones( self, shape, typeCode= None ):
		"""Create an array of given shape with given typeCode"""
		raise TypeError( """Can't create NULL pointer filled with values""" )
	def unitSize( self, value, typeCode=None ):
		"""Determine unit size of an array (if possible)"""
		raise TypeError( """Can't determine unit size of a null pointer""" )
	def dimensions( self, value, typeCode=None ):
		"""Determine dimensions of the passed array value (if possible)"""
		return (0,)
