#!/usr/bin/env python
# coding: utf-8
# is_brId.py 20080218 AF
# atualizado 20080429 AF
import sys
def is_brId(value, force_cnpj=False):
def calcdv(numb):
result = int()
seq = reversed(((range(9, id_type[1], -1)*2)[:len(numb)]))
for digit, base in zip(numb, seq):
result += int(digit)*int(base)
dv = result % 11
return (dv < 10) and dv or 0
id_type = (len(value)>11 or force_cnpj) \
and ['CNPJ', 1] or ['CPF', -1]
numb, xdv = value[:-2], value[-2:]
dv1 = calcdv(numb)
dv2 = calcdv(numb + str(dv1))
return (('%d%d' % (dv1, dv2) == xdv and True or False), id_type[0])
if __name__ == '__main__':
try:
id = sys.argv[1]
except IndexError:
print 'use: %s [CPF|CNPJ]' % sys.argv[0]
else:
print is_brId(id)
Nenhum comentário:
Postar um comentário