Compare commits

...

2 Commits

Author SHA1 Message Date
Timo Bryant d62aadb95f move ProgressBarFactory to core api 2023-12-27 16:28:51 +01:00
Timo Bryant f777669dfa 7 Add TUI module 2023-12-27 16:16:34 +01:00
12 changed files with 41 additions and 14 deletions

View File

@ -24,4 +24,9 @@ Abstraction about reading/writing to resources (filesystem, http, s3, etc pp)
<def title="core-api">
Defines the core interfaces
</def>
<def title="tui">
Provides tui capabilities. When applied as koin modules
the resources will automatically print a read/write progressbar
on terminal.
</def>
</deflist>

View File

@ -7,7 +7,7 @@ import com.github.ajalt.clikt.parameters.options.required
import com.github.ajalt.clikt.parameters.types.enum
import com.github.ajalt.clikt.parameters.types.file
import de.itkl.core_api.coreApiModule
import de.itkl.fileprocessing.ProgressBarFactory
import de.itkl.core_api.interfaces.ProgressBarFactory
import de.itkl.textprocessing.textProcessingModule
import de.itkl.tfidf.Language
import de.itkl.tfidf.TerminalProgressBarFactory

View File

@ -1,6 +1,4 @@
package de.itkl.fileprocessing
import de.itkl.core_api.interfaces.Resource
package de.itkl.core_api.interfaces
interface ProgressBarFactory {
fun new(resource: Resource): ProgressBar

View File

@ -1,6 +1,7 @@
package de.itkl.fileprocessing
import de.itkl.core_api.interfaces.FileProcessor
import de.itkl.core_api.interfaces.ProgressBarFactory
import io.github.oshai.kotlinlogging.KotlinLogging
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View File

@ -1,5 +1,6 @@
package de.itkl.fileprocessing
import de.itkl.core_api.interfaces.ProgressBar
import java.io.InputStream
/**
@ -11,7 +12,8 @@ import java.io.InputStream
*/
class ProgressInputStream(
private val inputStream: InputStream,
private val progressBar: ProgressBar) : InputStream() {
private val progressBar: ProgressBar
) : InputStream() {
@Volatile
var bytesRead: Long = 0
private set(value) {

View File

@ -1,13 +1,8 @@
package de.itkl.fileprocessing
import de.itkl.core_api.interfaces.AbstractResource
import de.itkl.core_api.interfaces.ProgressBarFactory
import de.itkl.core_api.interfaces.Resource
import io.ktor.http.*
import java.io.File
import java.io.InputStream
import java.nio.file.Files
import java.nio.file.Path
import kotlin.io.path.name
class ProgressResource(
private val resource: Resource,

View File

@ -3,7 +3,7 @@ package de.itkl.tfidf
import com.github.doyaaaaaken.kotlincsv.dsl.csvWriter
import de.itkl.core_api.interfaces.FileProcessor
import de.itkl.core_api.interfaces.Resource
import de.itkl.fileprocessing.ProgressBarFactory
import de.itkl.core_api.interfaces.ProgressBarFactory
import de.itkl.textprocessing.HistogramCsvStorage
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View File

@ -4,8 +4,8 @@ import com.github.ajalt.mordant.animation.ProgressAnimation
import com.github.ajalt.mordant.animation.progressAnimation
import com.github.ajalt.mordant.terminal.Terminal
import de.itkl.core_api.interfaces.Resource
import de.itkl.fileprocessing.ProgressBar
import de.itkl.fileprocessing.ProgressBarFactory
import de.itkl.core_api.interfaces.ProgressBar
import de.itkl.core_api.interfaces.ProgressBarFactory
class TerminalProgressBarFactory : ProgressBarFactory {
private val terminal = Terminal()

View File

@ -0,0 +1,4 @@
dependencies {
api(project(":libraries:core-api"))
implementation("com.github.ajalt.mordant:mordant:2.2.0")
}

View File

@ -0,0 +1,4 @@
package de.itkl.tui.implementation
class TerminalDataTableReporter {
}

View File

@ -0,0 +1,10 @@
package de.itkl.tui.implementation
import de.itkl.core_api.interfaces.ResourceReadDecorator
import java.io.InputStream
class TerminalProgressBar : ResourceReadDecorator {
override fun decorate(length: Long, inputStream: InputStream): InputStream {
TODO("Not yet implemented")
}
}

View File

@ -0,0 +1,8 @@
package de.itkl.tui
import org.koin.dsl.module
/**
* Add terminal ui capabilities
*/
val tuiModule = module { }