Você está na página 1de 2

from validate_docbr import CPF,CNPJ

import re
from datetime import datetime, timedelta

class data:
def __init__(self):
self.data = datetime.today()

def __str__(self):
return self.formata()

def formata(self):
data_mes = [

"janeiro","fevere","março","abrio","maio","junho","julho","agosto","setembro"
"outubro","novembro","dezembro"
]
data_m = self.data.month
data_m -=1
data_formatada = data_mes[data_m]
data_formatada = str(data_formatada)
return data_formatada
class Documento:

@staticmethod
def cria_documento(documento):
str(documento)
if len(documento) == 11 :
return Cpf(documento)
elif len(documento) == 14 :
return Cnpj(documento)
else:raise ValueError("documento invalido")

class Cpf:
def __init__(self,documento):
if self.valida(documento) :
self.cpf = documento
else: raise ValueError("documento invalido")

def __str__(self):
return self.mascara()

def valida(self,documento):
v = CPF()
return v.validate(documento)
def mascara(self):
data = datetime.today()
data = data.strftime("%d/%m/%Y")
m = CPF()
resposta = input("coloque o que que saber data ou cpf")
if resposta == "cpf":
return m.mask(self.cpf)
elif resposta == "data" :
return data
class Cnpj:
def __init__(self,documento):
if self.valida(documento):
self.cnpj = documento
else:
raise ValueError("documento invalido")

def __str__(self):
return self.mascara()

def valida(self, documento):


v = CNPJ()
return v.validate(documento)

def mascara(self):
m = CNPJ
return m.mask(self.cnpj)

class telefone:
def __init__(self,numero):
numero = str(numero)
if self.verifica(numero):
self.telefone = numero
else: raise ValueError("numero invalido")

def __str__(self):
return self.mascara()

def verifica(self,numero):
self.padrao = re.compile("([0-9]{2,3})?([0-9]{2})([0-9]{4,5})([0-9]{4})")
if self.padrao.search(numero):
return True
else: raise ValueError("numero nao bate com o padrao")

def mascara(self):
mascara = "+{}.{}-{}-{}".format(self.padrao.search(self.telefone).group(1),
self.padrao.search(self.telefone).group(2),
self.padrao.search(self.telefone).group(3),

self.padrao.search(self.telefone).group(4),)
return mascara

da = data()
c = Documento.cria_documento("01234567890")
d = Documento.cria_documento("35379838000112")
t = telefone(552212345678)
print(c)

Você também pode gostar