Fix: Formateo PEP8 (79 cols) y limpieza flake8 en tests y examples

- Líneas >79 cols reajustadas (asserts, strings CUDE/CUDS, comentarios)
- Elimina imports y variables muertas (F401/F841), E712 (== False -> is False)
- Reordena imports en docs/conf.py
This commit is contained in:
2026-08-12 19:56:33 -05:00
parent 4a7c2e2947
commit c4a29e4a6f
13 changed files with 518 additions and 271 deletions

View File

@@ -11,13 +11,18 @@ from facho.fe import form_xml
from facho.fe import fe
# importar otras necesarias
from datetime import datetime, date
from datetime import datetime
# Datos del fomulario del SET de pruebas
INVOICE_AUTHORIZATION = '181360000001' # Número suministrado por la Dian en el momento de la creación del SET de Pruebas
ID_SOFTWARE = '57bcb6d1-c591-5a90-b80a-cb030ec91440' #Id suministrado por la Dian en el momento de la creación del SET de Pruebas
PIN = '19642' #Número creado por la empresa para poder crear el SET de pruebas
CLAVE_TECNICA = 'fc9eac422eba16e21ffd8c5f94b3f30a6e38162d' ##Id suministrado por la Dian en el momento de la creación del SET de Pruebas
# Número suministrado por la Dian en el momento de la creación del SET de
# Pruebas
INVOICE_AUTHORIZATION = '181360000001'
# Id suministrado por la Dian en el momento de la creación del SET de Pruebas
ID_SOFTWARE = '57bcb6d1-c591-5a90-b80a-cb030ec91440'
# Número creado por la empresa para poder crear el SET de pruebas
PIN = '19642'
# Id suministrado por la Dian en el momento de la creación del SET de Pruebas
CLAVE_TECNICA = 'fc9eac422eba16e21ffd8c5f94b3f30a6e38162d'
# callback que retonar las extensiones XML necesarias
@@ -26,15 +31,24 @@ CLAVE_TECNICA = 'fc9eac422eba16e21ffd8c5f94b3f30a6e38162d' ##Id suministrado por
# muchos de los valores usados son obtenidos
# del servicio web de la DIAN.
def extensions(inv):
security_code = fe.DianXMLExtensionSoftwareSecurityCode(ID_SOFTWARE, PIN, inv.invoice_ident)
security_code = fe.DianXMLExtensionSoftwareSecurityCode(
ID_SOFTWARE, PIN, inv.invoice_ident)
authorization_provider = fe.DianXMLExtensionAuthorizationProvider()
cufe = fe.DianXMLExtensionCUFE(inv, CLAVE_TECNICA, fe.AMBIENTE_PRUEBAS)
software_provider = fe.DianXMLExtensionSoftwareProvider('nit_empresa', 'dígito_verificación', ID_SOFTWARE)
inv_authorization = fe.DianXMLExtensionInvoiceAuthorization(INVOICE_AUTHORIZATION,
datetime(2019, 1, 19),#Datos toamdos de
datetime(2030, 1, 19),#la configuración
'SETP', 990000000, 995000000)#del SET de pruebas
return [security_code, authorization_provider, cufe, software_provider, inv_authorization]
software_provider = fe.DianXMLExtensionSoftwareProvider(
'nit_empresa', 'dígito_verificación', ID_SOFTWARE)
inv_authorization = fe.DianXMLExtensionInvoiceAuthorization(
INVOICE_AUTHORIZATION,
# Datos tomados de la configuración
datetime(2019, 1, 19),
datetime(2030, 1, 19),
'SETP', 990000000, 995000000) # del SET de pruebas
return [
security_code,
authorization_provider,
cufe,
software_provider,
inv_authorization]
def invoice():
@@ -49,7 +63,7 @@ def invoice():
# asignar tipo de operacion ver DIAN:6.1.5
inv.set_operation_type('10')
inv.set_supplier(form.Party(
legal_name = 'Nombre registrado de la empresa',
legal_name='Nombre registrado de la empresa',
name='Nombre comercial o él mismo nombre registrado',
ident=form.PartyIdentification(
'nit_empresa', 'digito_verificación', '31'),
@@ -65,22 +79,22 @@ def invoice():
form.Country('CO', 'Colombia'),
form.CountrySubentity('05', 'Antioquia')),
))
#Tercero a quien se le factura
# Tercero a quien se le factura
inv.set_customer(form.Party(
legal_name = 'consumidor final',
name = 'consumidor final',
ident = form.PartyIdentification('222222222222', '', '13'),
responsability_code = form.Responsability(['R-99-PN']),
responsability_regime_code = '49',
organization_code = '2',
email = "consumidor_final0final.final",
address = form.Address(
legal_name='consumidor final',
name='consumidor final',
ident=form.PartyIdentification('222222222222', '', '13'),
responsability_code=form.Responsability(['R-99-PN']),
responsability_regime_code='49',
organization_code='2',
email="consumidor_final0final.final",
address=form.Address(
'', '', form.City('05001', 'Medellín'),
form.Country('CO', 'Colombia'),
form.CountrySubentity('05', 'Antioquia')),
# tax_scheme = form.TaxScheme('01', 'IVA')
))
# asignar metodo de pago
# asignar metodo de pago
inv.set_payment_mean(form.PaymentMean(
# metodo de pago ver DIAN:3.4.1
id='1',

View File

@@ -1,26 +1,28 @@
from facho import fe
def extensions(nomina):
return []
def nomina():
nomina = fe.nomina.DIANNominaIndividual()
nomina.asignar_metadata(fe.nomina.Metadata(
secuencia=fe.nomina.NumeroSecuencia(
numero = 'N00001',
numero='N00001',
consecutivo=232
),
lugar_generacion=fe.nomina.Lugar(
pais = fe.nomina.Pais(
code = 'CO'
pais=fe.nomina.Pais(
code='CO'
),
departamento = fe.nomina.Departamento(
code = '05'
departamento=fe.nomina.Departamento(
code='05'
),
municipio = fe.nomina.Municipio(
code = '05001'
municipio=fe.nomina.Municipio(
code='05001'
),
),
proveedor=fe.nomina.Proveedor(
@@ -32,62 +34,62 @@ def nomina():
))
nomina.asignar_informacion_general(fe.nomina.InformacionGeneral(
fecha_generacion = '2020-01-16',
hora_generacion = '1053:10-05:00',
tipo_ambiente = fe.nomina.InformacionGeneral.AMBIENTE_PRODUCCION,
software_pin = '693',
periodo_nomina = fe.nomina.PeriodoNomina(code='1'),
tipo_moneda = fe.nomina.TipoMoneda(code='COP')
fecha_generacion='2020-01-16',
hora_generacion='1053:10-05:00',
tipo_ambiente=fe.nomina.InformacionGeneral.AMBIENTE_PRODUCCION,
software_pin='693',
periodo_nomina=fe.nomina.PeriodoNomina(code='1'),
tipo_moneda=fe.nomina.TipoMoneda(code='COP')
))
nomina.asignar_empleador(fe.nomina.Empleador(
nit = '700085371',
dv = '1',
pais = fe.nomina.Pais(
code = 'CO'
nit='700085371',
dv='1',
pais=fe.nomina.Pais(
code='CO'
),
departamento = fe.nomina.Departamento(
code = '05'
departamento=fe.nomina.Departamento(
code='05'
),
municipio = fe.nomina.Municipio(
code = '05001'
municipio=fe.nomina.Municipio(
code='05001'
),
direccion = 'calle etrivial'
direccion='calle etrivial'
))
nomina.asignar_trabajador(fe.nomina.Trabajador(
tipo_contrato = fe.nomina.TipoContrato(
code = '1'
tipo_contrato=fe.nomina.TipoContrato(
code='1'
),
alto_riesgo = False,
tipo_documento = fe.nomina.TipoDocumento(
code = '11'
alto_riesgo=False,
tipo_documento=fe.nomina.TipoDocumento(
code='11'
),
primer_apellido = 'gnu',
segundo_apellido = 'emacs',
primer_nombre = 'facho',
lugar_trabajo = fe.nomina.LugarTrabajo(
pais = fe.nomina.Pais(code='CO'),
departamento = fe.nomina.Departamento(code='05'),
municipio = fe.nomina.Municipio(code='05001'),
direccion = 'calle facho'
primer_apellido='gnu',
segundo_apellido='emacs',
primer_nombre='facho',
lugar_trabajo=fe.nomina.LugarTrabajo(
pais=fe.nomina.Pais(code='CO'),
departamento=fe.nomina.Departamento(code='05'),
municipio=fe.nomina.Municipio(code='05001'),
direccion='calle facho'
),
numero_documento = '800199436',
tipo = fe.nomina.TipoTrabajador(
code = '01'
numero_documento='800199436',
tipo=fe.nomina.TipoTrabajador(
code='01'
),
salario_integral = True,
sueldo = fe.nomina.Amount(1_500_000)
salario_integral=True,
sueldo=fe.nomina.Amount(1_500_000)
))
nomina.adicionar_devengado(fe.nomina.DevengadoBasico(
dias_trabajados = 60,
sueldo_trabajado = fe.nomina.Amount(3_500_000)
dias_trabajados=60,
sueldo_trabajado=fe.nomina.Amount(3_500_000)
))
nomina.adicionar_deduccion(fe.nomina.DeduccionSalud(
porcentaje = fe.nomina.Amount(19),
deduccion = fe.nomina.Amount(1_000_000)
porcentaje=fe.nomina.Amount(19),
deduccion=fe.nomina.Amount(1_000_000)
))
return nomina