Skip to content

Commit

Permalink
refactor: extract for show logs
Browse files Browse the repository at this point in the history
  • Loading branch information
phodal committed Jan 8, 2024
1 parent 399be5d commit b1e1841
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 16 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<h1 align="center">UnitGen</h1>
<p align="center">
<img src="docs/logo.svg" width="100" height="100" alt="Chapi Logo">
<img src="docs/logo.svg" width="160px" height="160px" alt="UnitGen Logo">
</p>
<p align="center">
<a href="https://github.com/unit-mesh/unit-gen/actions/workflows/build.yml">
Expand Down
2 changes: 1 addition & 1 deletion docs/home.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ permalink: /

<h1 align="center">UnitGen</h1>
<p align="center">
<img src="docs/logo.svg" width="100" height="100" alt="Chapi Logo">
<img src="docs/logo.svg" width="160px" height="160px" alt="UnitGen Logo">
</p>
<p align="center">
<a href="https://github.com/unit-mesh/unit-gen/actions/workflows/build.yml">
Expand Down
11 changes: 10 additions & 1 deletion unit-picker/src/main/kotlin/cc/unitmesh/pick/threshold/Filter.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
package cc.unitmesh.pick.threshold

import kotlinx.serialization.Serializable

@Serializable
data class FilterResult(
val result: Boolean,
val reason: String = "",
val isCritical: Boolean = false,
)

interface Filter<T> {
fun filter(data: T): Boolean
fun filter(data: T): FilterResult
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,13 @@ class Pipeline<T> {
fun process(data: T): Boolean {
return filters.all {
val result = it.filter(data)
if (!result) {
logger.info("not met filter: ${it.javaClass.simpleName}")
if (!result.result) {
if (result.isCritical) {
logger.info("not met filter: ${it.javaClass.simpleName}, reason: ${result.reason}")
}
}
result

result.result
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,37 +67,46 @@ class ExtensionFilter(private val qualityThreshold: InsQualityThreshold) : Filte
language.getExtension(it.extension)
}.toSet()

override fun filter(data: FileSummary): Boolean {
return supportedExtensions.contains(data.extension)
override fun filter(data: FileSummary): FilterResult {
val ext = data.extension
return FilterResult(supportedExtensions.contains(ext), "extension not supported: $ext")
}
}

class ComplexityFilter(private val qualityThreshold: InsQualityThreshold) : Filter<FileSummary> {
override fun filter(data: FileSummary): Boolean {
return data.complexity <= qualityThreshold.complexity
override fun filter(data: FileSummary): FilterResult {
return FilterResult(
data.complexity <= qualityThreshold.complexity,
"complexity too high: ${data.complexity}",
true
)
}
}

class BinaryGeneratedMinifiedFilter(qualityThreshold: InsQualityThreshold) : Filter<FileSummary> {
override fun filter(data: FileSummary): Boolean {
return !(data.binary || data.generated || data.minified)
override fun filter(data: FileSummary): FilterResult {
return FilterResult(!(data.binary || data.generated || data.minified), "binary or generated or minified", true)
}
}

class SizeFilter(private val qualityThreshold: InsQualityThreshold) : Filter<FileSummary> {
override fun filter(data: FileSummary): Boolean {
return data.bytes <= qualityThreshold.fileSize
override fun filter(data: FileSummary): FilterResult {
return FilterResult(data.bytes <= qualityThreshold.fileSize, "file size too large: ${data.bytes}", true)
}
}

class TokenLengthFilter(private val qualityThreshold: InsQualityThreshold) : Filter<FileSummary> {
private var registry: EncodingRegistry = Encodings.newDefaultEncodingRegistry()
private var enc: Encoding = registry.getEncoding(EncodingType.CL100K_BASE)

override fun filter(data: FileSummary): Boolean {
override fun filter(data: FileSummary): FilterResult {
val encoded = enc.encode(data.content.toString())
val length = encoded.size
val codeWithBuffer = 1.25
return length <= qualityThreshold.maxTokenLength * codeWithBuffer
return FilterResult(
length <= qualityThreshold.maxTokenLength * codeWithBuffer,
"token length too long: $length",
true
)
}
}

0 comments on commit b1e1841

Please sign in to comment.