#encoding: UTF-8
import re

def formata_CPF(cpf):
	# se houver, retiro a formatacao
	cpf = re.sub(ur'[^0-9]', '', cpf).zfill(11)
	# agora coloco a formatacao
	cpf = re.sub(ur'([0-9]{3})([0-9]{3})([0-9]{3})([0-9]{2})', '\\1.\\2.\\3-\\4', cpf)
	return cpf

def retira_acentos(texto, passar_para_caixa_alta = False):

	if not texto:
		return None

	if type(texto) == str:
		texto = unicode(texto, "latin1")

	if passar_para_caixa_alta:
		texto = texto.upper()

	resultado = re.sub(ur"[Ç]", "C", 
		re.sub(ur"[ÜÚÙÛÜ]", "U", 
			re.sub(ur"[ÖÓÒÕÔ]", "O", 
				re.sub(ur"[ÏÍÌÎ]", "I", 
					re.sub(ur"[ËÉÈÊ]", "E", 
						re.sub(ur"[ÄÁÃÀÂ]", "A", texto))))))

	if not passar_para_caixa_alta:
		resultado = re.sub(ur"[ç]", "c", 
			re.sub(ur"[üúùûü]", "u", 
				re.sub(ur"[öóòõô]", "o", 
					re.sub(ur"[ïíìî]", "i", 
						re.sub(ur"[ëéèê]", "e", 
							re.sub(ur"[äáãàâ]", "a", texto))))))

	return resultado

def compara_sem_acentos(texto1, texto2):
	texto1 = retira_acentos(texto1, True)
	texto2 = retira_acentos(texto2, True)

	if texto1 < texto2:
		return -1
	elif texto1 > texto2:
		return 1
	else:
		return 0

def remove_codigos(texto):
	if not texto:
		return texto

	if type(texto) == str:
		texto = unicode(texto, "latin1")		

	texto = re.sub(ur"\([^\)]*\)?", "", texto)
	texto = texto.strip()

	return texto

def RG_nao_eh_zeros(rg):
	if not rg:
		return False

	aux = re.sub(ur"[0]+", "", rg)

	return aux != ""


if __name__ == "__main__":
	texto = u"(30203) Médio claro"
	print remove_codigos(texto)

	rg = "00000000000"
	if RG_nao_eh_zeros(rg):
		print "Opa nao eh zero!!"
	else:
		print "Xi, eh zero"


