def fetch_Blueprint_components(Blueprintname): #Parses Blueprint into 3 main components
	try:
		print'Importing Blueprint ',Blueprintname
		PY_DEPENDS=[]
		AQ_DEPENDS=[]
		Plugin=(Blueprintname.split('.'))[0]
		BPname=(Blueprintname.split('.'))[1]
	except Exception as err:
		print'Error! Blueprint format not recognized.'
		raise errors.Arg_Failure
	try:
		File=utils.read_file(os.getcwd()+utils.OSslash()+'Plugins'+utils.OSslash()+Plugin+utils.OSslash()+'Blueprints'+utils.OSslash()+BPname+utils.OSslash()+BPname+'.py')
	except:
		print'Error: File not Found'
		raise errors.Prog_Failure
	OBJECT=(utils.fetchSTR(File,'## object','## /object'))

	NCONT=[]
	Y=utils.fetchSTR(File,'## Py depend','## /Py depend').split('\n')#split
	for X in Y:
		PASS=True
		if X=="\n" or X=='\r\n\r\n' or X=='\n\n' or X=='\r\n' or X=='\r' or X=='': 
			PASS=False
		else:
			pass
		if PASS==True:
			NCONT.append(X)
	PY_DEPENDS=NCONT
		
	NCONT=[]
	Y=utils.fetchSTR(File,'## Aq depend','## /Aq depend').split('\n')#split
	for X in Y:
		PASS=True
		if X=="\n" or X=='\r\n\r\n' or X=='\n\n' or X=='\r\n' or X=='\r' or X=='': 
			PASS=False
		else:
			X=X[1:] #remove comment hash
		if PASS==True:
			NCONT.append(X)
	AQ_DEPENDS=NCONT
	
	print'Blueprint extraction complete'
	print''
	return (PY_DEPENDS,AQ_DEPENDS,OBJECT)
def fetch_Lib_components(Libs): #Parses Lib into 3 main components
	OBJECTS=[]
	PY_DEPENDS=[]
	AQ_DEPENDS=[]
	try:
		for F in Libs:
			if F.find('\r')> -1:
				F=F[:F.find('\r')]
			try:
				print'>Importing ',F
				S=F.split('.')
				Plugin=S[0]
				Lib=S[1]
			except Exception,e:
				print''
				print'Exception in Core.lib.getlib.fetch_Lib_components' 
				print'Library','"'+F+'"',' not proprely referrenced to a plugin'
				print 'Please review your Lib code'
				raise errors.Prog_Failure
			File=utils.read_file(os.getcwd()+utils.OSslash()+'Plugins'+utils.OSslash()+Plugin+utils.OSslash()+'Lib'+utils.OSslash()+Lib+utils.OSslash()+Lib+'.py')
			PY_DEPENDS.append(utils.fetchSTR(File,'## Py depend','## /Py depend'))
			AQ_DEPENDS.append(utils.fetchSTR(File,'## Aq depend','## /Aq depend'))
			OBJECTS.append(utils.fetchSTR(File,'## object','## /object'))
		return (PY_DEPENDS,AQ_DEPENDS,OBJECTS)