// Custom serializer for LocalDateTime object LocalDateTimeSerializer : KSerializer<LocalDateTime> { override val descriptor = PrimitiveSerialDescriptor("LocalDateTime", PrimitiveKind.STRING) override fun serialize(encoder: Encoder, value: LocalDateTime) = encoder.encodeString(value.toString()) override fun deserialize(decoder: Decoder): LocalDateTime = LocalDateTime.parse(decoder.decodeString(), DateTimeFormatter.ISO_DATE_TIME) }
plugins { kotlin("jvm") version "1.9.22" application } repositories { mavenCentral() } fabric-language-kotlin
Run:
// 2. Age distribution val ageGroups = users.groupBy { when (it.age) { in 18..25 -> "18-25" in 26..40 -> "26-40" in 41..60 -> "41-60" else -> "60+" } } println("\nAge distribution:") ageGroups.forEach { (group, list) -> println(" $group: ${list.size} users") } "18-25" in 26..40 ->
def generate_users(n: int, output_file: str = "users.json"): """Generate N synthetic users and save to JSON Lines format.""" with open(output_file, "w") as f: for _ in range(n): user = user_fabricator.generate() # Add a derived field user["days_since_last_login"] = ( datetime.now() - datetime.fromisoformat(user["last_login"].replace("Z", "+00:00")) ).days if user["last_login"] else None f.write(json.dumps(user) + "\n") print(f"Generated {n} users → {output_file}") "26-40" in 41..60 ->