Opinionated default implementations of common tasks in scripts.
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
El issue no menciona archivos, pruebas ni puntos de entrada. Empieza por determinar si toolkit debería cubrir tareas comunes de lectura y escritura de archivos usando cats-effect IO y Resource, y después define las operaciones compatibles y los criterios de finalización antes de localizar el área relevante de la biblioteca.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Languages like python provide really fast and simple ways to perform most operations, which lends itself very well to scripting.
I think that Scala fails at this, while it's better than Java it's still not great. I don't think this is a problem for most situations.
I do however think it would be very nice if toolkit could provide default implementations of some common tasks in a referential transparent and resource-safe way. An example would be reading and writing files.
I'm pretty new to using CE so I ended up writing this, which I'm not even sure is the correct way to do this.
def fileWriter(path: String): Resource[IO, FileWriter] =
Resource.make(IO.blocking(new FileWriter(new File(name))))(file => IO.blocking(file.close()))
def openFile(path: String) : Resource[IO, Source] =
Resource.make(IO.blocking(Source.fromFile(path)))(file => IO.blocking(file.close()))
def writeToFile(path: String, content: String) =
fileWriter(path).use(writer => IO.blocking(writer.write(content)))
if instead similar operations were already implemented for me I think that would be really great. It would at least make it a lot easier to convince other people to use this :)
All of this might obviously be outside of the scope of toolkit as it's a collection of libraries, but it would certainly make it easier to pick up for people who just want something to write small tools with.
- Lenguaje dominante
- Scala
- Estrellas
- 101
- Forks
- 9
- Merge medio
- 13 min
- PR fusionados (30 d)
- 1
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de typelevel/toolkit
-
To-do list for 1.0 release? Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
-
SLF4J Logging Warnings Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
-
documentation good first issue
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
documentation good first issue help wanted
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
`@IO.main` Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de typelevel/toolkit
Issues similares
-
Area: Excel support
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
orbeon/orbeon-forms#7893 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
chipsalliance/rocket-chip#3833 ·
-
ShuffleManagerRegistry.register recursion guard is inverted, permits GlutenShuffleManager subclasses Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100