Python
El paquete de Python lee la misma configuración .tdc y, con la misma semilla,
produce la misma salida que las implementaciones de TypeScript, Java, C# y Rust: esa
garantía entre lenguajes es una promesa central de TDC.
Cómo obtenerlo
pip install tdcv2
Eso le da la biblioteca y el comando tdcv2, con un juego inicial de paquetes de datos
dentro del wheel. El panorama completo está en
Instalación.
Cómo usarlo
from tdcv2 import TDC
data = TDC(config_file="users.tdc")
print(data)
for row in data:
print(row["Gender"])
data.write_file("users.csv")
La salida completa es str(data), las filas son lo que se recorre, una fila es
data[3] y cuántas hay es len(data): el objeto se comporta como el Python que ya
escribe.
Junto a eso, el paquete responde a los nombres que comparten todas las implementaciones
— to_string, to_array, iterate, get_at, to_columns, write_file, seed_info,
preflight — de modo que un ejemplo escrito en otro lenguaje se lee aquí sin traducir.
Véase los mismos nombres en todas partes. Los propios to_list,
rows, uses_http, diagnostics, count y engine de Python no se ven afectados ni
quedan obsoletos.
Para leer los diagnósticos conviene el CLI: tdcv2 check
imprime los mismos errores señalando el lugar exacto en la configuración.
Un valor sin configuración
El paquete exporta además tdc, que sortea un solo valor desde los mismos paquetes de
datos que lee una configuración: sin archivo, sin <env>, una llamada.
from tdcv2 import tdc
tdc.person.lastName() # Jones
tdc.country.usa.docs.ssn() # 699209702, con sus dígitos de control reales
tdc.person.lastName.many(5) # cinco de ellos
tdc.seed("demo").locale("ru").person.lastName() # fijado y en ruso
Aquí los segmentos siguen en camelCase, al contrario que los nombres de métodos de
arriba. Son direcciones que los paquetes ya traen, no identificadores que este paquete
eligiera, y person.lastName tiene que leerse igual en una configuración, en la
referencia y en las otras cuatro implementaciones. Toda la superficie está en Un valor
a la vez.