PY-71854 Jupyter(feat): Change FileLimiter to use several extensions

GitOrigin-RevId: 4746e60c597273ef5ed6dfab374ea1da1e412751
This commit is contained in:
Nikita.Ashihmin
2024-10-04 14:30:33 +04:00
committed by intellij-monorepo-bot
parent 0bb960d6cb
commit 31b379fb88

View File

@@ -12,7 +12,7 @@ import java.util.concurrent.atomic.AtomicReference
@Suppress("DEPRECATION")
@ApiStatus.Internal
interface FileSizeLimit {
val acceptableExtensions: String
val acceptableExtensions: List<String>
fun getLimits(): ExtensionSizeLimitInfo
@@ -77,15 +77,14 @@ interface FileSizeLimit {
private fun getLimits(): Map<String, ExtensionSizeLimitInfo> {
val extensions = EP.extensionsIfPointIsRegistered
val grouped = extensions.groupBy { it.acceptableExtensions }
grouped.forEach { (type, checkers) ->
if (checkers.size > 1) {
thisLogger().warn("For file type $type several limits from extensions: ${checkers.joinToString { it::class.java.name }}. " +
"IDE can work incorrectly")
}
}
val newLimits = grouped.map { it.key to it.value.first().getLimits() }.toMap()
val duplicates: Map<String, Int> = extensions.flatMap { it.acceptableExtensions }.groupingBy { it }.eachCount().filter { it.value > 1 }
duplicates.forEach {(element, count) ->
thisLogger().warn("For file type $element $count limits are registered. Extensions: ${extensions.joinToString {
"${it.javaClass.name}: ${it.acceptableExtensions.joinToString()}" }}")
}
val newLimits = extensions.flatMap { extension -> extension.acceptableExtensions.map { it to extension.getLimits() } }.toMap()
return newLimits
}