diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 84469d4..aa0b350 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,8 +14,8 @@ Moderation For any questions, concerns, or moderation requests, please contact us on [Gitter channel](https://gitter.im/fingo-spata/community) or directly per email: -- [Robert Marek](mailto:robert.marek@fingo.info), -- [Piotr Chowaniec](mailto:piotr.chowaniec@fingo.info). +- [Robert Marek](mailto:robert@marek.net), +- [Kacper Korban](mailto:kacper.f.korban@gmail.com). Domain ------ diff --git a/build.sbt b/build.sbt index abe99c6..2d626e8 100644 --- a/build.sbt +++ b/build.sbt @@ -1,8 +1,7 @@ lazy val basicSettings = Seq( - organization := "info.fingo", - organizationName := "FINGO sp. z o.o.", - organizationHomepage := Some(url("http://fingo.info")), - homepage := Some(url("https://github.com/fingo/spata")), + organization := "dev.sovt", + organizationName := "sovt", + homepage := Some(url("https://github.com/sovt/spata")), startYear := Some(2020), name := "spata", description := "Functional, stream based CSV processor for Scala", @@ -27,8 +26,6 @@ lazy val root = (project in file(".")) .configs(PerformanceTest) .settings( versionScheme := Some("semver-spec"), - headerLicenseStyle := HeaderLicenseStyle.SpdxSyntax, - headerEmptyLine := false, libraryDependencies ++= Seq( "org.typelevel" %% "cats-effect" % "3.6.0", "co.fs2" %% "fs2-core" % "3.12.0", @@ -50,13 +47,23 @@ lazy val root = (project in file(".")) scalacOptions ++= scalacSettings, Compile / console / scalacOptions --= Seq("-Xfatal-warnings"), Test / scalacOptions --= Seq("-Wnonunit-statement"), - mimaPreviousArtifacts := Set("info.fingo" %% "spata" % "3.2.0"), + mimaPreviousArtifacts := Set.empty, semanticdbEnabled := true, autoAPIMappings := true ) lazy val licenseSettings = Seq( licenses += ("Apache-2.0", new URI("https://www.apache.org/licenses/LICENSE-2.0.txt").toURL), + headerLicense := Some( + HeaderLicense.Custom( + """|Copyright 2020-2025 FINGO sp. z o.o. + |Copyright 2025 sovt contributors + | + |SPDX-License-Identifier: Apache-2.0 + |""".stripMargin + ) + ), + headerEmptyLine := false, licenseCheckAllow := Seq( LicenseCategory.Apache, LicenseCategory.BouncyCastle, @@ -67,7 +74,7 @@ lazy val licenseSettings = Seq( LicenseCategory.JSON, LicenseCategory.Unicode ), - developers := List(Developer("susuro", "Robert Marek", "robert.marek@fingo.info", url("https://github.com/susuro"))) + developers := List(Developer("susuro", "Robert Marek", "robert@marek.net", url("https://github.com/susuro"))) ) lazy val scalacSettings = Seq( diff --git a/contributing.md b/contributing.md index 91bcc81..2371a6c 100644 --- a/contributing.md +++ b/contributing.md @@ -7,7 +7,7 @@ How to help ----------- Different kinds of contributions are welcome, including, but not limited to: -* improvements in the documentation - scope, accuracy, clarity and language, +* improvements in the documentation - scope, accuracy, clarity and language, * providing additional examples on how to use the library, * reporting and fixing bugs, * refactoring existing code and enhancing tests, @@ -20,7 +20,7 @@ Proposing and submitting a change If you would like to make any changes to the project, please: -* let us know about this by commenting on an existing [issue](https://github.com/fingo/spata/issues) +* let us know about this by commenting on an existing [issue](https://github.com/sovt/spata/issues) or creating a new one and describing your idea, * fork and build the project, @@ -31,7 +31,7 @@ If you would like to make any changes to the project, please: * submit a [pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork). -spata follows a standard [fork and pull](https://guides.github.com/activities/forking/) model for contributions. +spata follows a standard [fork and pull](https://guides.github.com/activities/forking/) model for contributions. ### Building the project @@ -68,7 +68,7 @@ sbt -mem 2048 clean check doc test mimaReportBinaryIssues perf:test Grant of license ---------------- -spata is licensed under [Apache-2.0](https://github.com/fingo/spata/blob/master/LICENSE). +spata is licensed under [Apache-2.0](https://github.com/sovt/spata/blob/master/LICENSE). Opening a pull request implies your consent to license your contribution under Apache License 2.0. Attributions diff --git a/migration.md b/migration.md index d4c15b7..3428bd7 100644 --- a/migration.md +++ b/migration.md @@ -1,52 +1,45 @@ Migration notes =============== -This file described changes to be made while upgrading **spata** between incompatible versions. +This file described changes to be made while upgrading **spata** between incompatible versions. -Upgrading to 2.x from 1.x +Upgrading to 4.x from 3.x ------------------------- -**spata 2** introduces rendering functionality. -Some changes to API were required to keep parsing and rendering in pair with each other. -Others were made to improve the API taking the opportunity of already broken compatibility. +**spata** has been transferred from `FINGO` to `sovt` organization, causing changes in package namespace and sbt coordinates. +License and contribution information have been updated accordingly -### Configuration +### sbt build file adjustment -* Call `parser[F]` instead of `get[F]()` to create parser for given configuration. -* Omit parentheses in calls to `noHeader` and `stripSpaces` methods. - -E.g. instead of -```scala -val parser = CSVConfig().noHeader().get[IO]() +Replace +```sbt +libraryDependencies += "info.fingo" %% "spata" % "" ``` -write -```scala -val parser = CSVConfig().noHeader.parser[IO] +with +```sbt +libraryDependencies += "dev.sovt" %% "spata" % "" ``` +The latest version may be found on the badge in the readme file. -### Parsing - -* Omit parentheses while calling `CSVParser.apply` (e.g. `CSVParser[IO]`). - -### Reading data +### Import changes -* Replace `io.reader` object with `io.Reader`. -* Omit parentheses in calls to `apply`, `plain`, and `shifting`. - -E.g. instead of -```scala -val stream = reader[IO]().read(Paths.get("source.csv")) +All imports +```Scala +import info.fingo.spata.Foo ``` -write -```scala -val stream = Reader[IO].read(Paths.get("source.csv")) +have to be changed to +```Scala +import dev.sovt.spata.Foo ``` -### Miscellaneous +### License and Attribution Considerations -* Methods with arity-0 have been stripped of parentheses where feasible because they do not have side effects. -* Many classes and traits have been declared final or sealed. -* `Reader` trait has been moved from `reader` object into `io` package. +The license text remains unchanged, but attribution should reflect the new maintainers: + +```text +Copyright 2020–2025 FINGO sp. z o.o. +Copyright 2025 sovt contributors +``` Upgrading to 3.x from 2.x ------------------------- @@ -62,7 +55,7 @@ Second, Cats Effect 3 introduced breaking changes, which in turn made FS2 v3 inc This required changes in the areas involving effect handling, concurrency and io. spata 3 has been fully ported to Scala 3, adapting new constructs and braceless style. -spata 2 is being maintained on [seprate branch](https://github.com/fingo/spata/tree/spata2). +spata 2 is being maintained on [seprate branch](https://github.com/sovt/spata/tree/spata2). ### Record conversion @@ -105,7 +98,7 @@ Thread pool assigment for blocking io is handled by runtime based on information For more information about new threading model for io and the ways to control this behavior see [Cats Effect 3 migration guide](https://typelevel.org/cats-effect/docs/migration-guide#blocker). -This removal simplifies the `Reader.Shifting` and `Writer.Shifting` APIs - +This removal simplifies the `Reader.Shifting` and `Writer.Shifting` APIs - no blocker is provided as a parameter anymore. Instead of ```scala Stream.resource(Blocker[IO]).flatMap { blocker => @@ -135,3 +128,48 @@ as in this case this modified default behaviour may negatively influnce performa * As a consequence of replacing `implicit` with `given`/`using`, if any implicit method argument is provided explicitly, it has to be preceded by `using` keyword. + +Upgrading to 2.x from 1.x +------------------------- + +**spata 2** introduces rendering functionality. +Some changes to API were required to keep parsing and rendering in pair with each other. +Others were made to improve the API taking the opportunity of already broken compatibility. + +### Configuration + +* Call `parser[F]` instead of `get[F]()` to create parser for given configuration. +* Omit parentheses in calls to `noHeader` and `stripSpaces` methods. + +E.g. instead of +```scala +val parser = CSVConfig().noHeader().get[IO]() +``` +write +```scala +val parser = CSVConfig().noHeader.parser[IO] +``` + +### Parsing + +* Omit parentheses while calling `CSVParser.apply` (e.g. `CSVParser[IO]`). + +### Reading data + +* Replace `io.reader` object with `io.Reader`. +* Omit parentheses in calls to `apply`, `plain`, and `shifting`. + +E.g. instead of +```scala +val stream = reader[IO]().read(Paths.get("source.csv")) +``` +write +```scala +val stream = Reader[IO].read(Paths.get("source.csv")) +``` + +### Miscellaneous + +* Methods with arity-0 have been stripped of parentheses where feasible because they do not have side effects. +* Many classes and traits have been declared final or sealed. +* `Reader` trait has been moved from `reader` object into `io` package. diff --git a/publishing.md b/publishing.md index faf8e22..a8f1a37 100644 --- a/publishing.md +++ b/publishing.md @@ -14,7 +14,7 @@ Preparations * Create personal Sonatype repository account through [Sonatype Central](https://central.sonatype.com/api/auth/login). -* Claim access to `fingo.info` domain through [Publish Settings](https://central.sonatype.com/publishing/namespaces). +* Claim access to `sovt.dev` domain through [Publish Settings](https://central.sonatype.com/publishing/namespaces). * Create a user toke through [Account](https://central.sonatype.com/account). @@ -24,7 +24,7 @@ Preparations * Generate a key pair: `gpg --gen-key`: * provide `spata bot` as name, - * provide your personal email (optimally in `fingo.info` domain). + * provide your personal email (optimally in `sovt.dev` domain). * Note the key id for later use. @@ -36,17 +36,17 @@ Preparations ### Configure Github Actions * Add Sonatype token (`SONATYPE_USERNAME` and `SONATYPE_PASSWORD`) to - [Github repository secrets](https://github.com/fingo/spata/settings/secrets/actions) + [Github repository secrets](https://github.com/sovt/spata/settings/secrets/actions) * Retrieve the PGP key: `gpg --armor --export-secret-keys | base64 | pbcopy` (this is MacOS specific command, for other platforms see [Library Author Guide](https://docs.scala-lang.org/overviews/contributors/index.html#export-your-pgp-key-pair)) * Add PGP key (`PGP_SECRET`) to - [Github repository secrets](https://github.com/fingo/spata/settings/secrets/actions) + [Github repository secrets](https://github.com/sovt/spata/settings/secrets/actions) * Add PGP key passphrase (`PGP_PASSPHRASE`) to - [Github repository secrets](https://github.com/fingo/spata/settings/secrets/actions) + [Github repository secrets](https://github.com/sovt/spata/settings/secrets/actions) Cutting a release ----------------- @@ -55,7 +55,7 @@ A release process uses [sbt-dynver](https://github.com/dwijnand/sbt-dynver) and * Set a tag: `git tag -a v -m `. * Push it: `git push --tags`. -After this, draft a new release in [GitHub](https://github.com/fingo/spata/releases). +After this, draft a new release in [GitHub](https://github.com/sovt/spata/releases). Revoking keys ------------- diff --git a/readme.md b/readme.md index 401c271..7420afc 100644 --- a/readme.md +++ b/readme.md @@ -1,22 +1,25 @@ spata ===== -[![Build Status](https://github.com/fingo/spata/actions/workflows/ci.yaml/badge.svg)](https://github.com/fingo/spata/actions/workflows/ci.yaml) -[![Code Coverage](https://codecov.io/gh/fingo/spata/branch/master/graph/badge.svg)](https://codecov.io/gh/fingo/spata) +[![Build Status](https://github.com/sovt/spata/actions/workflows/ci.yaml/badge.svg)](https://github.com/sovt/spata/actions/workflows/ci.yaml) +[![Code Coverage](https://codecov.io/gh/sovt/spata/branch/master/graph/badge.svg)](https://codecov.io/gh/sovt/spata) [![Maven Central](https://img.shields.io/maven-central/v/info.fingo/spata_3.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22info.fingo%22%20AND%20a:%22spata_3%22) [![Scala Doc](https://javadoc.io/badge2/info.fingo/spata_3/javadoc.svg)](https://javadoc.io/doc/info.fingo/spata_3/latest/info/fingo/spata/index.html) [![Gitter](https://badges.gitter.im/fingo-spata/community.svg)](https://gitter.im/fingo-spata/community) > [!IMPORTANT] -> This project was previously maintained by **FINGO** and has been transferred to **sovt** as of 01.07.2025. -> Future development and maintenance will be handled by **sovt contributors**. -> Changes in the base package and published artifacts will follow with the next major release. +> This library has been transferred from `FINGO` to `sovt` organization as of 01.07.2025. +> Future development and maintenance will be handled by **sovt contributors** +> under `dev.sovt.spata` package namespace and sbt coordinates. +> +> Please update your imports and build configuration accordingly. +> See [migration.md](./migration.md) for full migration instructions. **spata** is a functional tabular data (`CSV`) processor for Scala. The library is backed by [FS2 - Functional Streams for Scala](https://github.com/functional-streams-for-scala/fs2). > **spata 3** supports Scala 3 only. -> Scala 2 support is still available in [**spata 2**](https://github.com/fingo/spata/tree/spata2). +> Scala 2 support is still available in [**spata 2**](https://github.com/sovt/spata/tree/spata2). The main goal of the library is to provide handy, functional, stream-based API with easy conversion between records and case classes, completed with precise information about possible flaws @@ -41,7 +44,7 @@ spata 3 is available for Scala 3.x and requires at least Java 11. To use spata you have to add this single dependency to your `build.sbt`: ```sbt -libraryDependencies += "info.fingo" %% "spata" % "" +libraryDependencies += "dev.sovt" %% "spata" % "" ``` The latest version may be found on the badge above. @@ -56,8 +59,8 @@ import cats.syntax.traverse.given // to get list.sequence import cats.effect.IO import cats.effect.unsafe.implicits.global // default IORuntime import fs2.Stream -import info.fingo.spata.CSVParser -import info.fingo.spata.io.Reader +import dev.sovt.spata.CSVParser +import dev.sovt.spata.io.Reader case class Data(item: String, value: Double) val records = Stream @@ -79,8 +82,8 @@ import java.nio.file.Paths import scala.io.Codec import cats.effect.{IO, IOApp} import fs2.Stream -import info.fingo.spata.{CSVParser, CSVRenderer} -import info.fingo.spata.io.{Reader, Writer} +import dev.sovt.spata.{CSVParser, CSVRenderer} +import dev.sovt.spata.io.{Reader, Writer} object Converter extends IOApp.Simple: @@ -102,7 +105,7 @@ object Converter extends IOApp.Simple: Modified versions of this sample may be found in [error handling](#error-handling) and [schema validation](#schema-validation) parts of the tutorial. -More examples of how to use the library may be found in `src/test/scala/info/fingo/sample/spata`. +More examples of how to use the library may be found in `src/test/scala/dev/sovt/sample/spata`. Tutorial -------- @@ -280,7 +283,7 @@ val renderer = CSVRenderer.config.fieldDelimiter(';').noHeader.renderer[IO] ``` Individual configuration parameters are described in -`CSVConfig`'s [Scaladoc](https://javadoc.io/doc/info.fingo/spata_3/latest/info/fingo/spata/CSVConfig.html). +`CSVConfig`'s [Scaladoc](https://javadoc.io/doc/dev.sovt/spata_3/latest/dev/sovt/spata/CSVConfig.html). A specific setting is the header mapping, available through `CSVConfig.mapHeader`. It allows replacing original header values with more convenient ones or even defining header if no one is present. @@ -592,7 +595,7 @@ val value = record("melting") // returns Some("13.99") This approach relies on `StringRenderer` for data formatting as well. It may be used even more comfortably by calling a method directly on case class: ```scala -import info.fingo.spata.Record.ProductOps +import dev.sovt.spata.Record.ProductOps val nf = NumberFormat.getInstance(new Locale("pl", "PL")) given StringRenderer[Double] = (v: Double) => nf.format(v) case class Element(symbol: String, melting: Double, boiling: Double) @@ -894,7 +897,7 @@ Nevertheless, the validation is run independently for each field defined by the The returned `InvalidRecord` contains error information from all incorrect fields. The validators are defined in terms of typed (already correctly parsed) values. -A bunch of typical ones is available as part of `info.fingo.spata.schema.validator` package. +A bunch of typical ones is available as part of `dev.sovt.spata.schema.validator` package. Additional ones may be provided by implementing the `schema.validator.Validator` trait. The converter example presented in [Basic usage](#basic-usage) may be improved to take advantage of schema validation: @@ -904,9 +907,9 @@ import java.time.LocalDate import scala.io.Codec import cats.effect.{IO, IOApp} import fs2.Stream -import info.fingo.spata.{CSVParser, CSVRenderer, Record} -import info.fingo.spata.io.{Reader, Writer} -import info.fingo.spata.schema.CSVSchema +import dev.sovt.spata.{CSVParser, CSVRenderer, Record} +import dev.sovt.spata.io.{Reader, Writer} +import dev.sovt.spata.schema.CSVSchema object Converter extends IOApp.Simple: @@ -982,8 +985,8 @@ import scala.util.Try import cats.data.Validated.{Invalid, Valid} import cats.effect.{ExitCode, IO, IOApp} import fs2.Stream -import info.fingo.spata.{CSVParser, CSVRenderer, Record} -import info.fingo.spata.io.{Reader, Writer} +import dev.sovt.spata.{CSVParser, CSVRenderer, Record} +import dev.sovt.spata.io.{Reader, Writer} object Converter extends IOApp: diff --git a/src/main/scala/info/fingo/spata/CSVConfig.scala b/src/main/scala/dev/sovt/spata/CSVConfig.scala similarity index 98% rename from src/main/scala/info/fingo/spata/CSVConfig.scala rename to src/main/scala/dev/sovt/spata/CSVConfig.scala index f6eb28e..5d3f846 100644 --- a/src/main/scala/info/fingo/spata/CSVConfig.scala +++ b/src/main/scala/dev/sovt/spata/CSVConfig.scala @@ -1,12 +1,13 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata import cats.effect.Sync -import info.fingo.spata.util.Logger +import dev.sovt.spata.util.Logger import scala.annotation.targetName diff --git a/src/main/scala/info/fingo/spata/CSVParser.scala b/src/main/scala/dev/sovt/spata/CSVParser.scala similarity index 96% rename from src/main/scala/info/fingo/spata/CSVParser.scala rename to src/main/scala/dev/sovt/spata/CSVParser.scala index bd09c8a..d7e2dfe 100644 --- a/src/main/scala/info/fingo/spata/CSVParser.scala +++ b/src/main/scala/dev/sovt/spata/CSVParser.scala @@ -1,25 +1,26 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata import cats.effect.Async as CEAsync import cats.effect.Sync +import dev.sovt.spata.CSVParser.Callback +import dev.sovt.spata.error.CSVException +import dev.sovt.spata.error.ParsingErrorCode +import dev.sovt.spata.error.StructureException +import dev.sovt.spata.parser.CharParser +import dev.sovt.spata.parser.FieldParser +import dev.sovt.spata.parser.RecordParser +import dev.sovt.spata.parser.RecordParser.RecordResult +import dev.sovt.spata.util.Logger import fs2.Pipe import fs2.Pull import fs2.Stream import fs2.text -import info.fingo.spata.CSVParser.Callback -import info.fingo.spata.error.CSVException -import info.fingo.spata.error.ParsingErrorCode -import info.fingo.spata.error.StructureException -import info.fingo.spata.parser.CharParser -import info.fingo.spata.parser.FieldParser -import info.fingo.spata.parser.RecordParser -import info.fingo.spata.parser.RecordParser.RecordResult -import info.fingo.spata.util.Logger import scala.util.Try diff --git a/src/main/scala/info/fingo/spata/CSVRenderer.scala b/src/main/scala/dev/sovt/spata/CSVRenderer.scala similarity index 98% rename from src/main/scala/info/fingo/spata/CSVRenderer.scala rename to src/main/scala/dev/sovt/spata/CSVRenderer.scala index 54ca2d9..27f9dcb 100644 --- a/src/main/scala/info/fingo/spata/CSVRenderer.scala +++ b/src/main/scala/dev/sovt/spata/CSVRenderer.scala @@ -1,18 +1,19 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata +import dev.sovt.spata.error.FieldInfo +import dev.sovt.spata.error.HeaderError import fs2.Chunk import fs2.Pipe import fs2.Pull import fs2.RaiseThrowable import fs2.Stream import fs2.text -import info.fingo.spata.error.FieldInfo -import info.fingo.spata.error.HeaderError /** A utility for rendering data to CSV representation. * diff --git a/src/main/scala/info/fingo/spata/Content.scala b/src/main/scala/dev/sovt/spata/Content.scala similarity index 91% rename from src/main/scala/info/fingo/spata/Content.scala rename to src/main/scala/dev/sovt/spata/Content.scala index 370fadb..becb8f8 100644 --- a/src/main/scala/info/fingo/spata/Content.scala +++ b/src/main/scala/dev/sovt/spata/Content.scala @@ -1,16 +1,17 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata import cats.effect.Sync +import dev.sovt.spata.error.FieldInfo +import dev.sovt.spata.error.StructureException +import dev.sovt.spata.parser.RecordParser.* +import dev.sovt.spata.util.Logger import fs2.Stream -import info.fingo.spata.error.FieldInfo -import info.fingo.spata.error.StructureException -import info.fingo.spata.parser.RecordParser.* -import info.fingo.spata.util.Logger /* Intermediate entity used to converter raw records into key-values indexed by header. * It converts additionally CSV parsing failures into stream error by raising StructureException. diff --git a/src/main/scala/info/fingo/spata/Header.scala b/src/main/scala/dev/sovt/spata/Header.scala similarity index 95% rename from src/main/scala/info/fingo/spata/Header.scala rename to src/main/scala/dev/sovt/spata/Header.scala index 3e7c367..35cb0a8 100644 --- a/src/main/scala/info/fingo/spata/Header.scala +++ b/src/main/scala/dev/sovt/spata/Header.scala @@ -1,13 +1,14 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata -import info.fingo.spata.error.FieldInfo -import info.fingo.spata.error.ParsingErrorCode -import info.fingo.spata.error.StructureException +import dev.sovt.spata.error.FieldInfo +import dev.sovt.spata.error.ParsingErrorCode +import dev.sovt.spata.error.StructureException /** CSV header with names of each field. * @@ -20,7 +21,7 @@ import info.fingo.spata.error.StructureException */ final class Header private (val names: IndexedSeq[String]): - import info.fingo.spata.Header.generate + import dev.sovt.spata.Header.generate /** Size of header. */ val size: Int = names.size diff --git a/src/main/scala/info/fingo/spata/Position.scala b/src/main/scala/dev/sovt/spata/Position.scala similarity index 91% rename from src/main/scala/info/fingo/spata/Position.scala rename to src/main/scala/dev/sovt/spata/Position.scala index a294680..b7ba1b3 100644 --- a/src/main/scala/info/fingo/spata/Position.scala +++ b/src/main/scala/dev/sovt/spata/Position.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata /** Representation of location of record in source data. * diff --git a/src/main/scala/info/fingo/spata/Record.scala b/src/main/scala/dev/sovt/spata/Record.scala similarity index 98% rename from src/main/scala/info/fingo/spata/Record.scala rename to src/main/scala/dev/sovt/spata/Record.scala index f8c2e74..22f2720 100644 --- a/src/main/scala/info/fingo/spata/Record.scala +++ b/src/main/scala/dev/sovt/spata/Record.scala @@ -1,19 +1,20 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata - -import info.fingo.spata.converter.FromProduct -import info.fingo.spata.converter.FromTuple -import info.fingo.spata.converter.ToProduct -import info.fingo.spata.converter.ToTuple -import info.fingo.spata.error.* -import info.fingo.spata.text.FormattedStringParser -import info.fingo.spata.text.ParseResult -import info.fingo.spata.text.StringParser -import info.fingo.spata.text.StringRenderer +package dev.sovt.spata + +import dev.sovt.spata.converter.FromProduct +import dev.sovt.spata.converter.FromTuple +import dev.sovt.spata.converter.ToProduct +import dev.sovt.spata.converter.ToTuple +import dev.sovt.spata.error.* +import dev.sovt.spata.text.FormattedStringParser +import dev.sovt.spata.text.ParseResult +import dev.sovt.spata.text.StringParser +import dev.sovt.spata.text.StringRenderer import java.util.NoSuchElementException diff --git a/src/main/scala/info/fingo/spata/converter/FromProduct.scala b/src/main/scala/dev/sovt/spata/converter/FromProduct.scala similarity index 90% rename from src/main/scala/info/fingo/spata/converter/FromProduct.scala rename to src/main/scala/dev/sovt/spata/converter/FromProduct.scala index cf63a4e..42f17e9 100644 --- a/src/main/scala/info/fingo/spata/converter/FromProduct.scala +++ b/src/main/scala/dev/sovt/spata/converter/FromProduct.scala @@ -1,13 +1,14 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.converter +package dev.sovt.spata.converter -import info.fingo.spata.Header -import info.fingo.spata.Record -import info.fingo.spata.text.StringRenderer +import dev.sovt.spata.Header +import dev.sovt.spata.Record +import dev.sovt.spata.text.StringRenderer import scala.deriving.Mirror diff --git a/src/main/scala/info/fingo/spata/converter/ToProduct.scala b/src/main/scala/dev/sovt/spata/converter/ToProduct.scala similarity index 94% rename from src/main/scala/info/fingo/spata/converter/ToProduct.scala rename to src/main/scala/dev/sovt/spata/converter/ToProduct.scala index 5de2575..8164f6d 100644 --- a/src/main/scala/info/fingo/spata/converter/ToProduct.scala +++ b/src/main/scala/dev/sovt/spata/converter/ToProduct.scala @@ -1,13 +1,14 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.converter +package dev.sovt.spata.converter -import info.fingo.spata.Decoded -import info.fingo.spata.Record -import info.fingo.spata.text.StringParser +import dev.sovt.spata.Decoded +import dev.sovt.spata.Record +import dev.sovt.spata.text.StringParser import scala.compiletime.constValue import scala.compiletime.erasedValue diff --git a/src/main/scala/info/fingo/spata/error/CSVException.scala b/src/main/scala/dev/sovt/spata/error/CSVException.scala similarity index 97% rename from src/main/scala/info/fingo/spata/error/CSVException.scala rename to src/main/scala/dev/sovt/spata/error/CSVException.scala index 79717c9..57d05ed 100644 --- a/src/main/scala/info/fingo/spata/error/CSVException.scala +++ b/src/main/scala/dev/sovt/spata/error/CSVException.scala @@ -1,12 +1,13 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.error +package dev.sovt.spata.error -import info.fingo.spata.Position -import info.fingo.spata.text.StringParser +import dev.sovt.spata.Position +import dev.sovt.spata.text.StringParser import java.util.NoSuchElementException diff --git a/src/main/scala/info/fingo/spata/error/FieldInfo.scala b/src/main/scala/dev/sovt/spata/error/FieldInfo.scala similarity index 94% rename from src/main/scala/info/fingo/spata/error/FieldInfo.scala rename to src/main/scala/dev/sovt/spata/error/FieldInfo.scala index 0658956..f89d9ce 100644 --- a/src/main/scala/info/fingo/spata/error/FieldInfo.scala +++ b/src/main/scala/dev/sovt/spata/error/FieldInfo.scala @@ -1,11 +1,12 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.error +package dev.sovt.spata.error -import info.fingo.spata.Header +import dev.sovt.spata.Header /** Field information provided in case of error. * diff --git a/src/main/scala/info/fingo/spata/error/ParsingErrorCode.scala b/src/main/scala/dev/sovt/spata/error/ParsingErrorCode.scala similarity index 86% rename from src/main/scala/info/fingo/spata/error/ParsingErrorCode.scala rename to src/main/scala/dev/sovt/spata/error/ParsingErrorCode.scala index 002b767..8181732 100644 --- a/src/main/scala/info/fingo/spata/error/ParsingErrorCode.scala +++ b/src/main/scala/dev/sovt/spata/error/ParsingErrorCode.scala @@ -1,11 +1,12 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.error +package dev.sovt.spata.error -import info.fingo.spata.util.classLabel +import dev.sovt.spata.util.classLabel /* Error codes provided by parsing functions. */ private[spata] object ParsingErrorCode: diff --git a/src/main/scala/info/fingo/spata/io/Reader.scala b/src/main/scala/dev/sovt/spata/io/Reader.scala similarity index 99% rename from src/main/scala/info/fingo/spata/io/Reader.scala rename to src/main/scala/dev/sovt/spata/io/Reader.scala index 7a08e60..1065181 100644 --- a/src/main/scala/info/fingo/spata/io/Reader.scala +++ b/src/main/scala/dev/sovt/spata/io/Reader.scala @@ -1,13 +1,15 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.io +package dev.sovt.spata.io import cats.effect.Async import cats.effect.Sync import cats.syntax.all.* +import dev.sovt.spata.util.Logger import fs2.Pipe import fs2.RaiseThrowable import fs2.Stream @@ -16,7 +18,6 @@ import fs2.io.file.Files as FFiles import fs2.io.file.Flags import fs2.io.file.Path as FPath import fs2.text -import info.fingo.spata.util.Logger import java.io.InputStream import java.nio.file.Files diff --git a/src/main/scala/info/fingo/spata/io/Writer.scala b/src/main/scala/dev/sovt/spata/io/Writer.scala similarity index 98% rename from src/main/scala/info/fingo/spata/io/Writer.scala rename to src/main/scala/dev/sovt/spata/io/Writer.scala index 067d364..4531835 100644 --- a/src/main/scala/info/fingo/spata/io/Writer.scala +++ b/src/main/scala/dev/sovt/spata/io/Writer.scala @@ -1,13 +1,15 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.io +package dev.sovt.spata.io import cats.effect.Async import cats.effect.Sync import cats.syntax.all.* +import dev.sovt.spata.util.Logger import fs2.Chunk import fs2.Pipe import fs2.Stream @@ -16,7 +18,6 @@ import fs2.io.file.Files as FFiles import fs2.io.file.Flags import fs2.io.file.Path as FPath import fs2.text -import info.fingo.spata.util.Logger import java.io.OutputStream import java.nio.file.Files diff --git a/src/main/scala/info/fingo/spata/parser/CharParser.scala b/src/main/scala/dev/sovt/spata/parser/CharParser.scala similarity index 97% rename from src/main/scala/info/fingo/spata/parser/CharParser.scala rename to src/main/scala/dev/sovt/spata/parser/CharParser.scala index fc22e3e..09ef8b7 100644 --- a/src/main/scala/info/fingo/spata/parser/CharParser.scala +++ b/src/main/scala/dev/sovt/spata/parser/CharParser.scala @@ -1,15 +1,16 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.parser +package dev.sovt.spata.parser +import dev.sovt.spata.error.ParsingErrorCode.* import fs2.Chunk import fs2.Pipe import fs2.Pull import fs2.Stream -import info.fingo.spata.error.ParsingErrorCode.* /* A finite-state transducer to converter plain source characters into context-dependent symbols, * taking into consideration special meaning of some characters (e.g. separators), quoting and escaping. diff --git a/src/main/scala/info/fingo/spata/parser/ChunkAwareParser.scala b/src/main/scala/dev/sovt/spata/parser/ChunkAwareParser.scala similarity index 93% rename from src/main/scala/info/fingo/spata/parser/ChunkAwareParser.scala rename to src/main/scala/dev/sovt/spata/parser/ChunkAwareParser.scala index f9fbbe4..7976da5 100644 --- a/src/main/scala/info/fingo/spata/parser/ChunkAwareParser.scala +++ b/src/main/scala/dev/sovt/spata/parser/ChunkAwareParser.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.parser +package dev.sovt.spata.parser import fs2.Chunk import fs2.Pipe diff --git a/src/main/scala/info/fingo/spata/parser/FieldParser.scala b/src/main/scala/dev/sovt/spata/parser/FieldParser.scala similarity index 96% rename from src/main/scala/info/fingo/spata/parser/FieldParser.scala rename to src/main/scala/dev/sovt/spata/parser/FieldParser.scala index bbbcb70..84f0760 100644 --- a/src/main/scala/info/fingo/spata/parser/FieldParser.scala +++ b/src/main/scala/dev/sovt/spata/parser/FieldParser.scala @@ -1,13 +1,14 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.parser +package dev.sovt.spata.parser +import dev.sovt.spata.error.ParsingErrorCode.* import fs2.Chunk import fs2.Pipe -import info.fingo.spata.error.ParsingErrorCode.* import scala.annotation.tailrec diff --git a/src/main/scala/info/fingo/spata/parser/Location.scala b/src/main/scala/dev/sovt/spata/parser/Location.scala similarity index 83% rename from src/main/scala/info/fingo/spata/parser/Location.scala rename to src/main/scala/dev/sovt/spata/parser/Location.scala index 11677bb..7031b21 100644 --- a/src/main/scala/info/fingo/spata/parser/Location.scala +++ b/src/main/scala/dev/sovt/spata/parser/Location.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.parser +package dev.sovt.spata.parser /* Location of read source data (character), used mainly to report place of failure. * position is the number of character at given line. It starts with 0, meaning "before first character". diff --git a/src/main/scala/info/fingo/spata/parser/RecordParser.scala b/src/main/scala/dev/sovt/spata/parser/RecordParser.scala similarity index 93% rename from src/main/scala/info/fingo/spata/parser/RecordParser.scala rename to src/main/scala/dev/sovt/spata/parser/RecordParser.scala index ccc99a2..8d39c98 100644 --- a/src/main/scala/info/fingo/spata/parser/RecordParser.scala +++ b/src/main/scala/dev/sovt/spata/parser/RecordParser.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.parser +package dev.sovt.spata.parser import fs2.Chunk import fs2.Pipe @@ -52,7 +53,7 @@ final private[spata] class RecordParser[F[_]] extends ChunkAwareParser[F, FieldR private[spata] object RecordParser: - import info.fingo.spata.error.ParsingErrorCode.* + import dev.sovt.spata.error.ParsingErrorCode.* sealed trait RecordResult: def location: Location diff --git a/src/main/scala/info/fingo/spata/schema/CSVSchema.scala b/src/main/scala/dev/sovt/spata/schema/CSVSchema.scala similarity index 97% rename from src/main/scala/info/fingo/spata/schema/CSVSchema.scala rename to src/main/scala/dev/sovt/spata/schema/CSVSchema.scala index 66eee6a..35b3374 100644 --- a/src/main/scala/info/fingo/spata/schema/CSVSchema.scala +++ b/src/main/scala/dev/sovt/spata/schema/CSVSchema.scala @@ -1,21 +1,22 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema +package dev.sovt.spata.schema import cats.data.NonEmptyList import cats.data.Validated import cats.data.Validated.Invalid import cats.data.Validated.Valid +import dev.sovt.spata.Record +import dev.sovt.spata.schema.error.TypeError +import dev.sovt.spata.schema.validator.Validator +import dev.sovt.spata.text.StringParser +import dev.sovt.spata.util.Logger import fs2.Pipe import fs2.Stream -import info.fingo.spata.Record -import info.fingo.spata.schema.error.TypeError -import info.fingo.spata.schema.validator.Validator -import info.fingo.spata.text.StringParser -import info.fingo.spata.util.Logger import scala.annotation.unused import scala.reflect.ClassTag diff --git a/src/main/scala/info/fingo/spata/schema/InvalidRecord.scala b/src/main/scala/dev/sovt/spata/schema/InvalidRecord.scala similarity index 84% rename from src/main/scala/info/fingo/spata/schema/InvalidRecord.scala rename to src/main/scala/dev/sovt/spata/schema/InvalidRecord.scala index 0b0a12c..ebc4b21 100644 --- a/src/main/scala/info/fingo/spata/schema/InvalidRecord.scala +++ b/src/main/scala/dev/sovt/spata/schema/InvalidRecord.scala @@ -1,13 +1,14 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema +package dev.sovt.spata.schema import cats.data.NonEmptyList -import info.fingo.spata.Record -import info.fingo.spata.schema.error.SchemaError +import dev.sovt.spata.Record +import dev.sovt.spata.schema.error.SchemaError /** CSV record which has not passed validation against schema. * diff --git a/src/main/scala/info/fingo/spata/schema/Key.scala b/src/main/scala/dev/sovt/spata/schema/Key.scala similarity index 54% rename from src/main/scala/info/fingo/spata/schema/Key.scala rename to src/main/scala/dev/sovt/spata/schema/Key.scala index bc75dd9..82d5757 100644 --- a/src/main/scala/info/fingo/spata/schema/Key.scala +++ b/src/main/scala/dev/sovt/spata/schema/Key.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema +package dev.sovt.spata.schema /** Type alias for typed record field name. */ type Key = String & Singleton diff --git a/src/main/scala/info/fingo/spata/schema/TypedRecord.scala b/src/main/scala/dev/sovt/spata/schema/TypedRecord.scala similarity index 97% rename from src/main/scala/info/fingo/spata/schema/TypedRecord.scala rename to src/main/scala/dev/sovt/spata/schema/TypedRecord.scala index 5ba0668..a43b17a 100644 --- a/src/main/scala/info/fingo/spata/schema/TypedRecord.scala +++ b/src/main/scala/dev/sovt/spata/schema/TypedRecord.scala @@ -1,12 +1,13 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema +package dev.sovt.spata.schema -import info.fingo.spata.converter.ToProduct -import info.fingo.spata.schema.TypedRecord.* +import dev.sovt.spata.converter.ToProduct +import dev.sovt.spata.schema.TypedRecord.* import scala.annotation.unused import scala.compiletime.constValue diff --git a/src/main/scala/info/fingo/spata/schema/error/SchemaError.scala b/src/main/scala/dev/sovt/spata/schema/error/SchemaError.scala similarity index 79% rename from src/main/scala/info/fingo/spata/schema/error/SchemaError.scala rename to src/main/scala/dev/sovt/spata/schema/error/SchemaError.scala index 5619852..7f8dca6 100644 --- a/src/main/scala/info/fingo/spata/schema/error/SchemaError.scala +++ b/src/main/scala/dev/sovt/spata/schema/error/SchemaError.scala @@ -1,14 +1,15 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema.error +package dev.sovt.spata.schema.error -import info.fingo.spata.error.ContentError -import info.fingo.spata.error.DataError -import info.fingo.spata.error.HeaderError -import info.fingo.spata.error.IndexError +import dev.sovt.spata.error.ContentError +import dev.sovt.spata.error.DataError +import dev.sovt.spata.error.HeaderError +import dev.sovt.spata.error.IndexError /** Error for schema validation. */ sealed trait SchemaError: diff --git a/src/main/scala/info/fingo/spata/schema/validator/Validator.scala b/src/main/scala/dev/sovt/spata/schema/validator/Validator.scala similarity index 97% rename from src/main/scala/info/fingo/spata/schema/validator/Validator.scala rename to src/main/scala/dev/sovt/spata/schema/validator/Validator.scala index 1eba745..da308e6 100644 --- a/src/main/scala/info/fingo/spata/schema/validator/Validator.scala +++ b/src/main/scala/dev/sovt/spata/schema/validator/Validator.scala @@ -1,15 +1,16 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema.validator +package dev.sovt.spata.schema.validator import cats.data.Validated import cats.data.Validated.Invalid import cats.data.Validated.Valid -import info.fingo.spata.schema.error.ValidationError -import info.fingo.spata.util.classLabel +import dev.sovt.spata.schema.error.ValidationError +import dev.sovt.spata.util.classLabel import scala.util.matching.Regex diff --git a/src/main/scala/info/fingo/spata/text/BooleanFormatter.scala b/src/main/scala/dev/sovt/spata/text/BooleanFormatter.scala similarity index 95% rename from src/main/scala/info/fingo/spata/text/BooleanFormatter.scala rename to src/main/scala/dev/sovt/spata/text/BooleanFormatter.scala index e2cd2eb..cc70133 100644 --- a/src/main/scala/info/fingo/spata/text/BooleanFormatter.scala +++ b/src/main/scala/dev/sovt/spata/text/BooleanFormatter.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.text +package dev.sovt.spata.text import java.util.Locale diff --git a/src/main/scala/info/fingo/spata/text/ParseError.scala b/src/main/scala/dev/sovt/spata/text/ParseError.scala similarity index 90% rename from src/main/scala/info/fingo/spata/text/ParseError.scala rename to src/main/scala/dev/sovt/spata/text/ParseError.scala index 866818a..ec71760 100644 --- a/src/main/scala/info/fingo/spata/text/ParseError.scala +++ b/src/main/scala/dev/sovt/spata/text/ParseError.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.text +package dev.sovt.spata.text /** Exception for string parsing errors. * diff --git a/src/main/scala/info/fingo/spata/text/StringParser.scala b/src/main/scala/dev/sovt/spata/text/StringParser.scala similarity index 98% rename from src/main/scala/info/fingo/spata/text/StringParser.scala rename to src/main/scala/dev/sovt/spata/text/StringParser.scala index 1f80183..5da989b 100644 --- a/src/main/scala/info/fingo/spata/text/StringParser.scala +++ b/src/main/scala/dev/sovt/spata/text/StringParser.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.text +package dev.sovt.spata.text import java.text.DecimalFormat import java.text.NumberFormat @@ -120,7 +121,7 @@ object StringParser: * * @example * ``` - * import info.fingo.spata.text.StringParser.* + * import dev.sovt.spata.text.StringParser.* * val x = parse[Double]("123.45").getOrElse(Double.NaN) * val y = parse[Option[Double]]("123.45").map(_.getOrElse(0.0)).getOrElse(Double.NaN) * ``` diff --git a/src/main/scala/info/fingo/spata/text/StringRenderer.scala b/src/main/scala/dev/sovt/spata/text/StringRenderer.scala similarity index 97% rename from src/main/scala/info/fingo/spata/text/StringRenderer.scala rename to src/main/scala/dev/sovt/spata/text/StringRenderer.scala index 53d3239..d68e395 100644 --- a/src/main/scala/info/fingo/spata/text/StringRenderer.scala +++ b/src/main/scala/dev/sovt/spata/text/StringRenderer.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.text +package dev.sovt.spata.text import java.text.DecimalFormat import java.text.NumberFormat @@ -75,7 +76,7 @@ object StringRenderer: * * @example * ``` - * import info.fingo.spata.text.StringRenderer.* + * import dev.sovt.spata.text.StringRenderer.* * val x = render(123.45) * val y = render(Some(123.45)) * ``` diff --git a/src/main/scala/info/fingo/spata/text/types.scala b/src/main/scala/dev/sovt/spata/text/types.scala similarity index 53% rename from src/main/scala/info/fingo/spata/text/types.scala rename to src/main/scala/dev/sovt/spata/text/types.scala index aba6f6b..8739600 100644 --- a/src/main/scala/info/fingo/spata/text/types.scala +++ b/src/main/scala/dev/sovt/spata/text/types.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.text +package dev.sovt.spata.text /** Convenience type. */ type ParseResult[A] = Either[ParseError, A] diff --git a/src/main/scala/info/fingo/spata/types.scala b/src/main/scala/dev/sovt/spata/types.scala similarity index 67% rename from src/main/scala/info/fingo/spata/types.scala rename to src/main/scala/dev/sovt/spata/types.scala index 4b7c2dc..43f7220 100644 --- a/src/main/scala/info/fingo/spata/types.scala +++ b/src/main/scala/dev/sovt/spata/types.scala @@ -1,11 +1,12 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata -import info.fingo.spata.error.ContentError +import dev.sovt.spata.error.ContentError /** Convenience type representing result of decoding record data. */ type Decoded[A] = Either[ContentError, A] diff --git a/src/main/scala/info/fingo/spata/util/Logger.scala b/src/main/scala/dev/sovt/spata/util/Logger.scala similarity index 94% rename from src/main/scala/info/fingo/spata/util/Logger.scala rename to src/main/scala/dev/sovt/spata/util/Logger.scala index 65b24ce..b077453 100644 --- a/src/main/scala/info/fingo/spata/util/Logger.scala +++ b/src/main/scala/dev/sovt/spata/util/Logger.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.util +package dev.sovt.spata.util import cats.effect.Sync import fs2.Stream diff --git a/src/main/scala/info/fingo/spata/util/label.scala b/src/main/scala/dev/sovt/spata/util/label.scala similarity index 82% rename from src/main/scala/info/fingo/spata/util/label.scala rename to src/main/scala/dev/sovt/spata/util/label.scala index 83871d6..e6c35c8 100644 --- a/src/main/scala/info/fingo/spata/util/label.scala +++ b/src/main/scala/dev/sovt/spata/util/label.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.util +package dev.sovt.spata.util /* Gets short class identifier. Used e.g. for error codes. */ private[spata] def classLabel(obj: AnyRef): String = diff --git a/src/test/scala/info/fingo/sample/spata/ConsoleITS.scala b/src/test/scala/dev/sovt/sample/spata/ConsoleITS.scala similarity index 92% rename from src/test/scala/info/fingo/sample/spata/ConsoleITS.scala rename to src/test/scala/dev/sovt/sample/spata/ConsoleITS.scala index 81a7fab..2ff8e40 100644 --- a/src/test/scala/info/fingo/sample/spata/ConsoleITS.scala +++ b/src/test/scala/dev/sovt/sample/spata/ConsoleITS.scala @@ -1,20 +1,25 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.sample.spata +package dev.sovt.sample.spata -import java.time.LocalDate -import scala.util.{Failure, Success, Try} import cats.effect.IO import cats.effect.unsafe.implicits.global import cats.implicits.* +import dev.sovt.spata.CSVParser +import dev.sovt.spata.Record +import dev.sovt.spata.io.Reader import fs2.Stream -import info.fingo.spata.io.Reader -import info.fingo.spata.{CSVParser, Record} import org.scalatest.funsuite.AnyFunSuite +import java.time.LocalDate +import scala.util.Failure +import scala.util.Success +import scala.util.Try + /* Samples which use console to output CSV processing results */ class ConsoleITS extends AnyFunSuite: diff --git a/src/test/scala/info/fingo/sample/spata/ConvertITS.scala b/src/test/scala/dev/sovt/sample/spata/ConvertITS.scala similarity index 89% rename from src/test/scala/info/fingo/sample/spata/ConvertITS.scala rename to src/test/scala/dev/sovt/sample/spata/ConvertITS.scala index 7b200ab..109f6bb 100644 --- a/src/test/scala/info/fingo/sample/spata/ConvertITS.scala +++ b/src/test/scala/dev/sovt/sample/spata/ConvertITS.scala @@ -1,18 +1,20 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.sample.spata +package dev.sovt.sample.spata -import java.time.LocalDate import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.CSVConfig +import dev.sovt.spata.io.Reader import fs2.Stream -import info.fingo.spata.CSVConfig -import info.fingo.spata.io.Reader import org.scalatest.funsuite.AnyFunSuite +import java.time.LocalDate + /* Sample which converts CSV records to case classes. */ class ConvertITS extends AnyFunSuite: diff --git a/src/test/scala/info/fingo/sample/spata/ErrorITS.scala b/src/test/scala/dev/sovt/sample/spata/ErrorITS.scala similarity index 88% rename from src/test/scala/info/fingo/sample/spata/ErrorITS.scala rename to src/test/scala/dev/sovt/sample/spata/ErrorITS.scala index 74cdb91..ad2259b 100644 --- a/src/test/scala/info/fingo/sample/spata/ErrorITS.scala +++ b/src/test/scala/dev/sovt/sample/spata/ErrorITS.scala @@ -1,20 +1,26 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.sample.spata +package dev.sovt.sample.spata -import java.io.IOException import cats.effect.IO import cats.effect.unsafe.implicits.global -import fs2.{Pipe, Stream} -import info.fingo.spata.error.CSVException -import info.fingo.spata.io.Reader -import info.fingo.spata.{CSVParser, CSVRenderer, Header, Record} +import dev.sovt.spata.CSVParser +import dev.sovt.spata.CSVRenderer +import dev.sovt.spata.Header +import dev.sovt.spata.Record +import dev.sovt.spata.error.CSVException +import dev.sovt.spata.io.Reader +import fs2.Pipe +import fs2.Stream import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks +import java.io.IOException + class ErrorITS extends AnyFunSuite with TableDrivenPropertyChecks: case class Book(author: String, title: String, year: Int) diff --git a/src/test/scala/info/fingo/sample/spata/FileITS.scala b/src/test/scala/dev/sovt/sample/spata/FileITS.scala similarity index 89% rename from src/test/scala/info/fingo/sample/spata/FileITS.scala rename to src/test/scala/dev/sovt/sample/spata/FileITS.scala index 9dd1335..7618465 100644 --- a/src/test/scala/info/fingo/sample/spata/FileITS.scala +++ b/src/test/scala/dev/sovt/sample/spata/FileITS.scala @@ -1,18 +1,24 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.sample.spata +package dev.sovt.sample.spata -import java.io.{File, FileOutputStream} import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.CSVParser +import dev.sovt.spata.CSVRenderer +import dev.sovt.spata.Record +import dev.sovt.spata.io.Reader +import dev.sovt.spata.io.Writer import fs2.Stream -import info.fingo.spata.io.{Reader, Writer} -import info.fingo.spata.{CSVParser, CSVRenderer, Record} import org.scalatest.funsuite.AnyFunSuite +import java.io.File +import java.io.FileOutputStream + /* Samples which write processing results to another CSV file */ class FileITS extends AnyFunSuite: @@ -49,8 +55,7 @@ class FileITS extends AnyFunSuite: val checkAndClean = Stream .eval(IO: assert(outFile.length > 16000) - outFile.delete() - ) + outFile.delete()) .drain // run output.append(checkAndClean).compile.drain.unsafeRunSync() @@ -74,8 +79,7 @@ class FileITS extends AnyFunSuite: val checkAndClean = Stream .eval(IO: assert(outFile.length > 16000) - outFile.delete() - ) + outFile.delete()) .drain // run outcome.append(checkAndClean).compile.drain.unsafeRunSync() diff --git a/src/test/scala/info/fingo/sample/spata/LoggingITS.scala b/src/test/scala/dev/sovt/sample/spata/LoggingITS.scala similarity index 90% rename from src/test/scala/info/fingo/sample/spata/LoggingITS.scala rename to src/test/scala/dev/sovt/sample/spata/LoggingITS.scala index 218396a..c3a7a2a 100644 --- a/src/test/scala/info/fingo/sample/spata/LoggingITS.scala +++ b/src/test/scala/dev/sovt/sample/spata/LoggingITS.scala @@ -1,23 +1,27 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.sample.spata +package dev.sovt.sample.spata -import java.nio.file.{Files, Paths} -import java.time.LocalDate -import org.slf4j.LoggerFactory import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.CSVConfig +import dev.sovt.spata.CSVParser +import dev.sovt.spata.io.Reader +import dev.sovt.spata.schema.CSVSchema +import dev.sovt.spata.schema.validator.FiniteValidator +import dev.sovt.spata.util.Logger import fs2.Stream -import info.fingo.spata.io.Reader -import info.fingo.spata.schema.CSVSchema -import info.fingo.spata.schema.validator.FiniteValidator -import info.fingo.spata.util.Logger -import info.fingo.spata.{CSVConfig, CSVParser} import org.scalatest.BeforeAndAfter import org.scalatest.funsuite.AnyFunSuite +import org.slf4j.LoggerFactory + +import java.nio.file.Files +import java.nio.file.Paths +import java.time.LocalDate /* Sample which show logging configuration and usage */ class LoggingITS extends AnyFunSuite with BeforeAndAfter: diff --git a/src/test/scala/info/fingo/sample/spata/SampleITS.scala b/src/test/scala/dev/sovt/sample/spata/SampleITS.scala similarity index 87% rename from src/test/scala/info/fingo/sample/spata/SampleITS.scala rename to src/test/scala/dev/sovt/sample/spata/SampleITS.scala index 0963bf7..0897255 100644 --- a/src/test/scala/info/fingo/sample/spata/SampleITS.scala +++ b/src/test/scala/dev/sovt/sample/spata/SampleITS.scala @@ -1,19 +1,23 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.sample.spata +package dev.sovt.sample.spata -import java.nio.file.Files -import scala.io.Codec import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.CSVParser +import dev.sovt.spata.CSVRenderer +import dev.sovt.spata.io.Reader +import dev.sovt.spata.io.Writer import fs2.Stream -import info.fingo.spata.io.{Reader, Writer} -import info.fingo.spata.{CSVParser, CSVRenderer} import org.scalatest.funsuite.AnyFunSuite +import java.nio.file.Files +import scala.io.Codec + // Sample from readme (fahrenheit to celsius conversion), in form of test class SampleITS extends AnyFunSuite: diff --git a/src/test/scala/info/fingo/sample/spata/SampleTH.scala b/src/test/scala/dev/sovt/sample/spata/SampleTH.scala similarity index 84% rename from src/test/scala/info/fingo/sample/spata/SampleTH.scala rename to src/test/scala/dev/sovt/sample/spata/SampleTH.scala index dc0b1a0..852693a 100644 --- a/src/test/scala/info/fingo/sample/spata/SampleTH.scala +++ b/src/test/scala/dev/sovt/sample/spata/SampleTH.scala @@ -1,11 +1,14 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.sample.spata +package dev.sovt.sample.spata -import java.io.{Closeable, File, FileNotFoundException} +import java.io.Closeable +import java.io.File +import java.io.FileNotFoundException import scala.io.Source /* Helper class for samples with shared functions */ diff --git a/src/test/scala/info/fingo/sample/spata/ThreadITS.scala b/src/test/scala/dev/sovt/sample/spata/ThreadITS.scala similarity index 88% rename from src/test/scala/info/fingo/sample/spata/ThreadITS.scala rename to src/test/scala/dev/sovt/sample/spata/ThreadITS.scala index ba31e23..77f3d91 100644 --- a/src/test/scala/info/fingo/sample/spata/ThreadITS.scala +++ b/src/test/scala/dev/sovt/sample/spata/ThreadITS.scala @@ -1,21 +1,26 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.sample.spata +package dev.sovt.sample.spata -import java.time.{LocalDate, Month} -import java.util.concurrent.atomic.LongAdder -import java.util.concurrent.{CountDownLatch, TimeUnit} import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.CSVConfig +import dev.sovt.spata.CSVParser +import dev.sovt.spata.CSVParser.Callback +import dev.sovt.spata.io.Reader import fs2.Stream -import info.fingo.spata.CSVParser.Callback -import info.fingo.spata.io.Reader -import info.fingo.spata.{CSVConfig, CSVParser} import org.scalatest.funsuite.AnyFunSuite +import java.time.LocalDate +import java.time.Month +import java.util.concurrent.CountDownLatch +import java.util.concurrent.TimeUnit +import java.util.concurrent.atomic.LongAdder + /* Samples which process the data asynchronously or using blocking context */ class ThreadITS extends AnyFunSuite: diff --git a/src/test/scala/info/fingo/sample/spata/ValidateITS.scala b/src/test/scala/dev/sovt/sample/spata/ValidateITS.scala similarity index 87% rename from src/test/scala/info/fingo/sample/spata/ValidateITS.scala rename to src/test/scala/dev/sovt/sample/spata/ValidateITS.scala index e3faac7..f4ef8ec 100644 --- a/src/test/scala/info/fingo/sample/spata/ValidateITS.scala +++ b/src/test/scala/dev/sovt/sample/spata/ValidateITS.scala @@ -1,20 +1,22 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.sample.spata +package dev.sovt.sample.spata -import java.time.LocalDate -import org.slf4j.LoggerFactory import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.CSVConfig +import dev.sovt.spata.io.Reader +import dev.sovt.spata.schema.CSVSchema +import dev.sovt.spata.schema.validator.FiniteValidator import fs2.Stream -import info.fingo.spata.CSVConfig -import info.fingo.spata.io.Reader -import info.fingo.spata.schema.CSVSchema -import info.fingo.spata.schema.validator.FiniteValidator import org.scalatest.funsuite.AnyFunSuite +import org.slf4j.LoggerFactory + +import java.time.LocalDate /* Sample which validates CSV and provides typed records. */ class ValidateITS extends AnyFunSuite: diff --git a/src/test/scala/info/fingo/spata/CSVConfigTS.scala b/src/test/scala/dev/sovt/spata/CSVConfigTS.scala similarity index 95% rename from src/test/scala/info/fingo/spata/CSVConfigTS.scala rename to src/test/scala/dev/sovt/spata/CSVConfigTS.scala index 0f4aa90..aa8e0cb 100644 --- a/src/test/scala/info/fingo/spata/CSVConfigTS.scala +++ b/src/test/scala/dev/sovt/spata/CSVConfigTS.scala @@ -1,16 +1,18 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata -import scala.io.Source import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.io.Reader import fs2.Stream import org.scalatest.funsuite.AnyFunSuite -import info.fingo.spata.io.Reader + +import scala.io.Source class CSVConfigTS extends AnyFunSuite: diff --git a/src/test/scala/info/fingo/spata/CSVParserPTS.scala b/src/test/scala/dev/sovt/spata/CSVParserPTS.scala similarity index 76% rename from src/test/scala/info/fingo/spata/CSVParserPTS.scala rename to src/test/scala/dev/sovt/spata/CSVParserPTS.scala index fcec505..2ae706e 100644 --- a/src/test/scala/info/fingo/spata/CSVParserPTS.scala +++ b/src/test/scala/dev/sovt/spata/CSVParserPTS.scala @@ -1,16 +1,21 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata import cats.effect.IO import cats.effect.unsafe.implicits.global -import info.fingo.spata.io.Reader -import org.scalameter.{Bench, Gen} +import dev.sovt.spata.PerformanceTH.MarsWeather +import dev.sovt.spata.PerformanceTH.input +import dev.sovt.spata.PerformanceTH.parser +import dev.sovt.spata.PerformanceTH.testSource +import dev.sovt.spata.io.Reader +import org.scalameter.Bench +import org.scalameter.Gen import org.scalameter.Key.exec -import info.fingo.spata.PerformanceTH.{input, parser, testSource, MarsWeather} /* Check performance of parser. * It would be good to have regression for it but ScalaMeter somehow refused to work in this mode. diff --git a/src/test/scala/info/fingo/spata/CSVParserTS.scala b/src/test/scala/dev/sovt/spata/CSVParserTS.scala similarity index 97% rename from src/test/scala/info/fingo/spata/CSVParserTS.scala rename to src/test/scala/dev/sovt/spata/CSVParserTS.scala index 11b77d2..cc86fa8 100644 --- a/src/test/scala/info/fingo/spata/CSVParserTS.scala +++ b/src/test/scala/dev/sovt/spata/CSVParserTS.scala @@ -1,28 +1,37 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata -import java.io.{ByteArrayInputStream, InputStream, IOException} +import cats.effect.IO +import cats.effect.unsafe.implicits.global +import dev.sovt.spata.CSVParser.Callback +import dev.sovt.spata.error.FieldInfo +import dev.sovt.spata.error.StructureException +import dev.sovt.spata.io.Reader +import dev.sovt.spata.text.StringParser +import fs2.Stream +import fs2.io +import fs2.text +import org.scalatest.Assertion +import org.scalatest.funsuite.AnyFunSuite +import org.scalatest.prop.TableDrivenPropertyChecks + +import java.io.ByteArrayInputStream +import java.io.IOException +import java.io.InputStream import java.nio.charset.Charset import java.time.LocalDate import java.time.format.DateTimeFormatter -import java.util.concurrent.{CountDownLatch, TimeUnit} +import java.util.concurrent.CountDownLatch +import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.LongAdder -import scala.io.{BufferedSource, Source} import scala.collection.mutable -import cats.effect.IO -import cats.effect.unsafe.implicits.global -import fs2.{io, Stream, text} -import org.scalatest.funsuite.AnyFunSuite -import org.scalatest.prop.TableDrivenPropertyChecks -import info.fingo.spata.CSVParser.Callback -import info.fingo.spata.error.{FieldInfo, StructureException} -import info.fingo.spata.io.Reader -import info.fingo.spata.text.StringParser -import org.scalatest.Assertion +import scala.io.BufferedSource +import scala.io.Source class CSVParserTS extends AnyFunSuite with TableDrivenPropertyChecks: diff --git a/src/test/scala/info/fingo/spata/CSVRendererPTS.scala b/src/test/scala/dev/sovt/spata/CSVRendererPTS.scala similarity index 70% rename from src/test/scala/info/fingo/spata/CSVRendererPTS.scala rename to src/test/scala/dev/sovt/spata/CSVRendererPTS.scala index 6dcebce..a802537 100644 --- a/src/test/scala/info/fingo/spata/CSVRendererPTS.scala +++ b/src/test/scala/dev/sovt/spata/CSVRendererPTS.scala @@ -1,15 +1,20 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata import cats.effect.unsafe.implicits.global -import info.fingo.spata.Record.ProductOps -import org.scalameter.{Bench, Gen} +import dev.sovt.spata.PerformanceTH.mwHeader +import dev.sovt.spata.PerformanceTH.renderer +import dev.sovt.spata.PerformanceTH.testMarsWeather +import dev.sovt.spata.PerformanceTH.testRecords +import dev.sovt.spata.Record.ProductOps +import org.scalameter.Bench +import org.scalameter.Gen import org.scalameter.Key.exec -import info.fingo.spata.PerformanceTH.{mwHeader, renderer, testMarsWeather, testRecords} /* Check performance of parser. */ class CSVRendererPTS extends Bench.LocalTime: diff --git a/src/test/scala/info/fingo/spata/CSVRendererTS.scala b/src/test/scala/dev/sovt/spata/CSVRendererTS.scala similarity index 96% rename from src/test/scala/info/fingo/spata/CSVRendererTS.scala rename to src/test/scala/dev/sovt/spata/CSVRendererTS.scala index d1ac4ad..53c237c 100644 --- a/src/test/scala/info/fingo/spata/CSVRendererTS.scala +++ b/src/test/scala/dev/sovt/spata/CSVRendererTS.scala @@ -1,24 +1,33 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata -import java.io.{ByteArrayOutputStream, OutputStream} -import java.nio.charset.Charset -import java.time.LocalDate -import java.time.format.DateTimeFormatter -import scala.io.Codec import cats.effect.IO import cats.effect.unsafe.implicits.global -import fs2.{io, Pipe, Stream, text} -import info.fingo.spata.CSVConfig.{EscapeAll, EscapeMode, EscapeRequired, EscapeSpaces} -import info.fingo.spata.io.Writer -import info.fingo.spata.text.StringRenderer +import dev.sovt.spata.CSVConfig.EscapeAll +import dev.sovt.spata.CSVConfig.EscapeMode +import dev.sovt.spata.CSVConfig.EscapeRequired +import dev.sovt.spata.CSVConfig.EscapeSpaces +import dev.sovt.spata.io.Writer +import dev.sovt.spata.text.StringRenderer +import fs2.Pipe +import fs2.Stream +import fs2.io +import fs2.text import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks +import java.io.ByteArrayOutputStream +import java.io.OutputStream +import java.nio.charset.Charset +import java.time.LocalDate +import java.time.format.DateTimeFormatter +import scala.io.Codec + class CSVRendererTS extends AnyFunSuite with TableDrivenPropertyChecks: type StreamErrorHandler = Throwable => Stream[IO, Char] @@ -117,7 +126,8 @@ class CSVRendererTS extends AnyFunSuite with TableDrivenPropertyChecks: val recs = records(contentCase, separator, hdr) val renderer = config(separator, escapeMode, headerMode).renderer[IO] val stream = Stream(recs*).covaryAll[IO, Record] - val out = stream.through(renderS(renderer, hdr, headerMode)) + val out = stream + .through(renderS(renderer, hdr, headerMode)) .through(text.encode(charset)) .through(io.writeOutputStream(IO[OutputStream](os))) out.compile.drain.unsafeRunSync() // run diff --git a/src/test/scala/info/fingo/spata/PerformanceTH.scala b/src/test/scala/dev/sovt/spata/PerformanceTH.scala similarity index 93% rename from src/test/scala/info/fingo/spata/PerformanceTH.scala rename to src/test/scala/dev/sovt/spata/PerformanceTH.scala index 93d5ddc..40d19fb 100644 --- a/src/test/scala/info/fingo/spata/PerformanceTH.scala +++ b/src/test/scala/dev/sovt/spata/PerformanceTH.scala @@ -1,16 +1,19 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata + +import cats.effect.IO +import fs2.Stream import java.io.File -import java.nio.file.{Path, Paths} +import java.nio.file.Path +import java.nio.file.Paths import java.time.LocalDate import scala.io.Source -import cats.effect.IO -import fs2.Stream /* Helper classes and variables for performance tests */ object PerformanceTH: diff --git a/src/test/scala/info/fingo/spata/RecordPTS.scala b/src/test/scala/dev/sovt/spata/RecordPTS.scala similarity index 98% rename from src/test/scala/info/fingo/spata/RecordPTS.scala rename to src/test/scala/dev/sovt/spata/RecordPTS.scala index 3e6d66c..be86746 100644 --- a/src/test/scala/info/fingo/spata/RecordPTS.scala +++ b/src/test/scala/dev/sovt/spata/RecordPTS.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata import java.text.NumberFormat import java.time.LocalDate @@ -50,6 +51,7 @@ object RecordPTS extends Bench.LocalTime: private val wideValues = (1 to sampleSize).map(s => makeValues(s, wideRecordSize)) private val wideRecords = wideValues.map(vs => Record(vs*)(wideHeader)) + // format: off performance .of("record") .config(exec.maxWarmupRuns := 1, exec.benchRuns := 3) in: @@ -158,6 +160,7 @@ object RecordPTS extends Bench.LocalTime: case "typed_wide" => val key = s"header-key-${wideRecordSize / 2 + 1}" (1 to amount).map(i => wideRecords(i % sampleSize).get[Int](key)).foreach(identity) + // format: on private def effect(r: Record) = r(0) diff --git a/src/test/scala/info/fingo/spata/RecordTS.scala b/src/test/scala/dev/sovt/spata/RecordTS.scala similarity index 97% rename from src/test/scala/info/fingo/spata/RecordTS.scala rename to src/test/scala/dev/sovt/spata/RecordTS.scala index 1f83cdb..2aea88f 100644 --- a/src/test/scala/info/fingo/spata/RecordTS.scala +++ b/src/test/scala/dev/sovt/spata/RecordTS.scala @@ -1,20 +1,26 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata +package dev.sovt.spata -import java.text.{DecimalFormat, DecimalFormatSymbols, NumberFormat} -import java.time.LocalDate -import java.time.format.{DateTimeFormatter, FormatStyle} -import java.util.Locale -import info.fingo.spata.Record.ProductOps -import info.fingo.spata.error.DataError -import info.fingo.spata.text.{StringParser, StringRenderer} +import dev.sovt.spata.Record.ProductOps +import dev.sovt.spata.error.DataError +import dev.sovt.spata.text.StringParser +import dev.sovt.spata.text.StringRenderer import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks +import java.text.DecimalFormat +import java.text.DecimalFormatSymbols +import java.text.NumberFormat +import java.time.LocalDate +import java.time.format.DateTimeFormatter +import java.time.format.FormatStyle +import java.util.Locale + class RecordTS extends AnyFunSuite with TableDrivenPropertyChecks: private val locale = new Locale("pl", "PL") diff --git a/src/test/scala/info/fingo/spata/error/CSVExceptionTS.scala b/src/test/scala/dev/sovt/spata/error/CSVExceptionTS.scala similarity index 88% rename from src/test/scala/info/fingo/spata/error/CSVExceptionTS.scala rename to src/test/scala/dev/sovt/spata/error/CSVExceptionTS.scala index 2af8503..f83ee1d 100644 --- a/src/test/scala/info/fingo/spata/error/CSVExceptionTS.scala +++ b/src/test/scala/dev/sovt/spata/error/CSVExceptionTS.scala @@ -1,14 +1,16 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.error +package dev.sovt.spata.error -import java.time.format.DateTimeParseException -import info.fingo.spata.Position +import dev.sovt.spata.Position import org.scalatest.funsuite.AnyFunSuite +import java.time.format.DateTimeParseException + class CSVExceptionTS extends AnyFunSuite: test("CSV structure exception provides useful error message"): diff --git a/src/test/scala/info/fingo/spata/io/ReaderPTS.scala b/src/test/scala/dev/sovt/spata/io/ReaderPTS.scala similarity index 84% rename from src/test/scala/info/fingo/spata/io/ReaderPTS.scala rename to src/test/scala/dev/sovt/spata/io/ReaderPTS.scala index c26d3ac..ae1066f 100644 --- a/src/test/scala/info/fingo/spata/io/ReaderPTS.scala +++ b/src/test/scala/dev/sovt/spata/io/ReaderPTS.scala @@ -1,19 +1,25 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.io +package dev.sovt.spata.io -import java.nio.file.{Files, Path, StandardOpenOption} -import scala.io.Source import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.PerformanceTH.input +import dev.sovt.spata.PerformanceTH.parser import fs2.Stream -import org.scalameter.{Bench, Gen} +import org.scalameter.Bench +import org.scalameter.Gen import org.scalameter.Key.exec import org.scalameter.picklers.noPickler.* -import info.fingo.spata.PerformanceTH.{input, parser} + +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.StandardOpenOption +import scala.io.Source /* Check performance of Reader using different implementations. * It would be good to have regression for it but ScalaMeter somehow refused to work in this mode. diff --git a/src/test/scala/info/fingo/spata/io/ReaderTS.scala b/src/test/scala/dev/sovt/spata/io/ReaderTS.scala similarity index 91% rename from src/test/scala/info/fingo/spata/io/ReaderTS.scala rename to src/test/scala/dev/sovt/spata/io/ReaderTS.scala index b7724f8..ecf695b 100644 --- a/src/test/scala/info/fingo/spata/io/ReaderTS.scala +++ b/src/test/scala/dev/sovt/spata/io/ReaderTS.scala @@ -1,20 +1,28 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.io +package dev.sovt.spata.io -import java.io.{ByteArrayInputStream, IOException} -import java.nio.charset.{Charset, StandardCharsets} -import java.nio.file.{Files, Paths, StandardOpenOption} -import scala.io.{BufferedSource, Codec, Source} import cats.effect.IO import cats.effect.unsafe.implicits.global import fs2.Stream import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks +import java.io.ByteArrayInputStream +import java.io.IOException +import java.nio.charset.Charset +import java.nio.charset.StandardCharsets +import java.nio.file.Files +import java.nio.file.Paths +import java.nio.file.StandardOpenOption +import scala.io.BufferedSource +import scala.io.Codec +import scala.io.Source + class ReaderTS extends AnyFunSuite with TableDrivenPropertyChecks: // use smaller chunk size than the default one is some tests to avoid having all data in single chunk diff --git a/src/test/scala/info/fingo/spata/io/WriterPTS.scala b/src/test/scala/dev/sovt/spata/io/WriterPTS.scala similarity index 82% rename from src/test/scala/info/fingo/spata/io/WriterPTS.scala rename to src/test/scala/dev/sovt/spata/io/WriterPTS.scala index dd81d59..b9b6d4a 100644 --- a/src/test/scala/info/fingo/spata/io/WriterPTS.scala +++ b/src/test/scala/dev/sovt/spata/io/WriterPTS.scala @@ -1,18 +1,26 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.io +package dev.sovt.spata.io -import java.nio.file.{Files, Path, StandardOpenOption} import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.PerformanceTH.output +import dev.sovt.spata.PerformanceTH.renderer +import dev.sovt.spata.PerformanceTH.testRecords +import dev.sovt.spata.PerformanceTH.testSource import fs2.Stream +import org.scalameter.Bench +import org.scalameter.Gen import org.scalameter.Key.exec import org.scalameter.picklers.noPickler.* -import org.scalameter.{Bench, Gen} -import info.fingo.spata.PerformanceTH.{output, renderer, testRecords, testSource} + +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.StandardOpenOption /* Check performance of Reader using different implementations. */ object WriterPTS extends Bench.LocalTime: diff --git a/src/test/scala/info/fingo/spata/io/WriterTS.scala b/src/test/scala/dev/sovt/spata/io/WriterTS.scala similarity index 91% rename from src/test/scala/info/fingo/spata/io/WriterTS.scala rename to src/test/scala/dev/sovt/spata/io/WriterTS.scala index fa81529..78cd91d 100644 --- a/src/test/scala/info/fingo/spata/io/WriterTS.scala +++ b/src/test/scala/dev/sovt/spata/io/WriterTS.scala @@ -1,20 +1,28 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.io +package dev.sovt.spata.io -import java.io.{ByteArrayOutputStream, File, IOException, OutputStream} -import java.nio.charset.{Charset, StandardCharsets} -import java.nio.file.{Files, Path} -import scala.io.Codec -import fs2.{Stream, text} import cats.effect.IO import cats.effect.unsafe.implicits.global +import fs2.Stream +import fs2.text import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks +import java.io.ByteArrayOutputStream +import java.io.File +import java.io.IOException +import java.io.OutputStream +import java.nio.charset.Charset +import java.nio.charset.StandardCharsets +import java.nio.file.Files +import java.nio.file.Path +import scala.io.Codec + class WriterTS extends AnyFunSuite with TableDrivenPropertyChecks: private val defaultCharset = StandardCharsets.UTF_8 @@ -51,7 +59,7 @@ class WriterTS extends AnyFunSuite with TableDrivenPropertyChecks: test("writer should properly write to OutputSteam with non-UTF encoding"): val charset = Charset.forName("windows-1250") given codec: Codec(charset) - val relevantCases = testCases.filter(_(0) != "extended chars") // not supported by encoding + val relevantCases = testCases.filter(_(0) != "extended chars") // not supported by encoding forAll(relevantCases): (testCase: String, data: String) => forAll(writers): (_: String, writer: Writer[IO]) => val os = new ByteArrayOutputStream() diff --git a/src/test/scala/info/fingo/spata/parser/CharParserTS.scala b/src/test/scala/dev/sovt/spata/parser/CharParserTS.scala similarity index 98% rename from src/test/scala/info/fingo/spata/parser/CharParserTS.scala rename to src/test/scala/dev/sovt/spata/parser/CharParserTS.scala index d2ec1ae..3c5e610 100644 --- a/src/test/scala/info/fingo/spata/parser/CharParserTS.scala +++ b/src/test/scala/dev/sovt/spata/parser/CharParserTS.scala @@ -1,15 +1,17 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.parser +package dev.sovt.spata.parser import cats.effect.IO import cats.effect.unsafe.implicits.global import fs2.Stream import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks + import Config.* import CharStates.* import CharFailures.* diff --git a/src/test/scala/info/fingo/spata/parser/FieldParserTS.scala b/src/test/scala/dev/sovt/spata/parser/FieldParserTS.scala similarity index 97% rename from src/test/scala/info/fingo/spata/parser/FieldParserTS.scala rename to src/test/scala/dev/sovt/spata/parser/FieldParserTS.scala index f5a5ec0..b83ed31 100644 --- a/src/test/scala/info/fingo/spata/parser/FieldParserTS.scala +++ b/src/test/scala/dev/sovt/spata/parser/FieldParserTS.scala @@ -1,16 +1,18 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.parser +package dev.sovt.spata.parser import cats.effect.IO import cats.effect.unsafe.implicits.global import fs2.Stream -import CharParser.CharResult import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks + +import CharParser.CharResult import Config.* import CharStates.* import CharFailures.* diff --git a/src/test/scala/info/fingo/spata/parser/ParserTH.scala b/src/test/scala/dev/sovt/spata/parser/ParserTH.scala similarity index 93% rename from src/test/scala/info/fingo/spata/parser/ParserTH.scala rename to src/test/scala/dev/sovt/spata/parser/ParserTH.scala index e0aab8a..7dd19e2 100644 --- a/src/test/scala/info/fingo/spata/parser/ParserTH.scala +++ b/src/test/scala/dev/sovt/spata/parser/ParserTH.scala @@ -1,15 +1,17 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.parser +package dev.sovt.spata.parser + +import dev.sovt.spata.error.ParsingErrorCode.* import CharParser.{CharFailure, CharState} import CharParser.CharPosition.* import FieldParser.{FieldFailure, RawField} import RecordParser.{RawRecord, RecordFailure} -import info.fingo.spata.error.ParsingErrorCode.* object Config: val sep = ',' diff --git a/src/test/scala/info/fingo/spata/parser/RecordParserTS.scala b/src/test/scala/dev/sovt/spata/parser/RecordParserTS.scala similarity index 93% rename from src/test/scala/info/fingo/spata/parser/RecordParserTS.scala rename to src/test/scala/dev/sovt/spata/parser/RecordParserTS.scala index b2758d5..f4739b0 100644 --- a/src/test/scala/info/fingo/spata/parser/RecordParserTS.scala +++ b/src/test/scala/dev/sovt/spata/parser/RecordParserTS.scala @@ -1,17 +1,19 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.parser +package dev.sovt.spata.parser import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.error.ParsingErrorCode.* import fs2.Stream -import info.fingo.spata.error.ParsingErrorCode.* -import FieldParser.FieldResult import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks + +import FieldParser.FieldResult import Config.* import RawFields.* import FieldFailures.* diff --git a/src/test/scala/info/fingo/spata/schema/CSVSchemaPTS.scala b/src/test/scala/dev/sovt/spata/schema/CSVSchemaPTS.scala similarity index 81% rename from src/test/scala/info/fingo/spata/schema/CSVSchemaPTS.scala rename to src/test/scala/dev/sovt/spata/schema/CSVSchemaPTS.scala index 3c9face..7bc5b58 100644 --- a/src/test/scala/info/fingo/spata/schema/CSVSchemaPTS.scala +++ b/src/test/scala/dev/sovt/spata/schema/CSVSchemaPTS.scala @@ -1,18 +1,24 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema +package dev.sovt.spata.schema -import java.time.LocalDate import cats.effect.IO import cats.effect.unsafe.implicits.global -import info.fingo.spata.io.Reader -import info.fingo.spata.schema.validator.RangeValidator -import org.scalameter.{Bench, Gen} +import dev.sovt.spata.PerformanceTH.MarsWeather +import dev.sovt.spata.PerformanceTH.TestSource +import dev.sovt.spata.PerformanceTH.input +import dev.sovt.spata.PerformanceTH.parser +import dev.sovt.spata.io.Reader +import dev.sovt.spata.schema.validator.RangeValidator +import org.scalameter.Bench +import org.scalameter.Gen import org.scalameter.Key.exec -import info.fingo.spata.PerformanceTH.{input, parser, MarsWeather, TestSource} + +import java.time.LocalDate /* Check performance of schema validation. * It would be good to have regression for it but ScalaMeter somehow refused to work in this mode. diff --git a/src/test/scala/info/fingo/spata/schema/CSVSchemaTS.scala b/src/test/scala/dev/sovt/spata/schema/CSVSchemaTS.scala similarity index 96% rename from src/test/scala/info/fingo/spata/schema/CSVSchemaTS.scala rename to src/test/scala/dev/sovt/spata/schema/CSVSchemaTS.scala index 83c6cc7..dc5d6e6 100644 --- a/src/test/scala/info/fingo/spata/schema/CSVSchemaTS.scala +++ b/src/test/scala/dev/sovt/spata/schema/CSVSchemaTS.scala @@ -1,21 +1,24 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema +package dev.sovt.spata.schema -import java.time.LocalDate -import java.time.format.DateTimeFormatter -import scala.io.Source import cats.effect.IO import cats.effect.unsafe.implicits.global +import dev.sovt.spata.CSVParser +import dev.sovt.spata.io.Reader +import dev.sovt.spata.schema.validator.* +import dev.sovt.spata.text.StringParser import org.scalatest.funsuite.AnyFunSuite -import org.scalatest.prop.{TableDrivenPropertyChecks, TableFor7} -import info.fingo.spata.io.Reader -import info.fingo.spata.CSVParser -import info.fingo.spata.schema.validator.* -import info.fingo.spata.text.StringParser +import org.scalatest.prop.TableDrivenPropertyChecks +import org.scalatest.prop.TableFor7 + +import java.time.LocalDate +import java.time.format.DateTimeFormatter +import scala.io.Source class CSVSchemaTS extends AnyFunSuite with TableDrivenPropertyChecks: diff --git a/src/test/scala/info/fingo/spata/schema/TypedRecordTS.scala b/src/test/scala/dev/sovt/spata/schema/TypedRecordTS.scala similarity index 96% rename from src/test/scala/info/fingo/spata/schema/TypedRecordTS.scala rename to src/test/scala/dev/sovt/spata/schema/TypedRecordTS.scala index 5818b6d..35ebfdf 100644 --- a/src/test/scala/info/fingo/spata/schema/TypedRecordTS.scala +++ b/src/test/scala/dev/sovt/spata/schema/TypedRecordTS.scala @@ -1,13 +1,15 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema +package dev.sovt.spata.schema -import scala.annotation.unused import org.scalatest.funsuite.AnyFunSuite +import scala.annotation.unused + class TypedRecordTS extends AnyFunSuite: test("Typed record allows type-safe access to its values"): diff --git a/src/test/scala/info/fingo/spata/schema/validator/ValidatorTS.scala b/src/test/scala/dev/sovt/spata/schema/validator/ValidatorTS.scala similarity index 98% rename from src/test/scala/info/fingo/spata/schema/validator/ValidatorTS.scala rename to src/test/scala/dev/sovt/spata/schema/validator/ValidatorTS.scala index e8372df..4e445bc 100644 --- a/src/test/scala/info/fingo/spata/schema/validator/ValidatorTS.scala +++ b/src/test/scala/dev/sovt/spata/schema/validator/ValidatorTS.scala @@ -1,14 +1,16 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.schema.validator +package dev.sovt.spata.schema.validator -import java.time.LocalDate import org.scalatest.Assertion import org.scalatest.funsuite.AnyFunSuite +import java.time.LocalDate + class ValidatorTS extends AnyFunSuite: test("it is possible to validate if value is exactly as expected"): diff --git a/src/test/scala/info/fingo/spata/text/BooleanFormatterTS.scala b/src/test/scala/dev/sovt/spata/text/BooleanFormatterTS.scala similarity index 93% rename from src/test/scala/info/fingo/spata/text/BooleanFormatterTS.scala rename to src/test/scala/dev/sovt/spata/text/BooleanFormatterTS.scala index abf51fc..7e36f8b 100644 --- a/src/test/scala/info/fingo/spata/text/BooleanFormatterTS.scala +++ b/src/test/scala/dev/sovt/spata/text/BooleanFormatterTS.scala @@ -1,14 +1,16 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.text +package dev.sovt.spata.text -import java.util.Locale import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks +import java.util.Locale + class BooleanFormatterTS extends AnyFunSuite with TableDrivenPropertyChecks: private val locale = new Locale("pl", "PL") diff --git a/src/test/scala/info/fingo/spata/text/StringParserTS.scala b/src/test/scala/dev/sovt/spata/text/StringParserTS.scala similarity index 95% rename from src/test/scala/info/fingo/spata/text/StringParserTS.scala rename to src/test/scala/dev/sovt/spata/text/StringParserTS.scala index 1515bca..24936c1 100644 --- a/src/test/scala/info/fingo/spata/text/StringParserTS.scala +++ b/src/test/scala/dev/sovt/spata/text/StringParserTS.scala @@ -1,17 +1,24 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.text +package dev.sovt.spata.text -import java.text.{DecimalFormat, NumberFormat} -import java.time.format.{DateTimeFormatter, DateTimeParseException, FormatStyle} -import java.time.{LocalDate, LocalDateTime, LocalTime} -import java.util.Locale import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks +import java.text.DecimalFormat +import java.text.NumberFormat +import java.time.LocalDate +import java.time.LocalDateTime +import java.time.LocalTime +import java.time.format.DateTimeFormatter +import java.time.format.DateTimeParseException +import java.time.format.FormatStyle +import java.util.Locale + class StringParserTS extends AnyFunSuite with TableDrivenPropertyChecks: import StringParser.* diff --git a/src/test/scala/info/fingo/spata/text/StringRendererTS.scala b/src/test/scala/dev/sovt/spata/text/StringRendererTS.scala similarity index 94% rename from src/test/scala/info/fingo/spata/text/StringRendererTS.scala rename to src/test/scala/dev/sovt/spata/text/StringRendererTS.scala index 6a3b63b..9dab8c0 100644 --- a/src/test/scala/info/fingo/spata/text/StringRendererTS.scala +++ b/src/test/scala/dev/sovt/spata/text/StringRendererTS.scala @@ -1,17 +1,23 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.text +package dev.sovt.spata.text -import java.util.Locale -import java.text.{DecimalFormat, NumberFormat} -import java.time.{LocalDate, LocalDateTime, LocalTime} -import java.time.format.{DateTimeFormatter, FormatStyle} import org.scalatest.funsuite.AnyFunSuite import org.scalatest.prop.TableDrivenPropertyChecks +import java.text.DecimalFormat +import java.text.NumberFormat +import java.time.LocalDate +import java.time.LocalDateTime +import java.time.LocalTime +import java.time.format.DateTimeFormatter +import java.time.format.FormatStyle +import java.util.Locale + class StringRendererTS extends AnyFunSuite with TableDrivenPropertyChecks: import StringRenderer.* diff --git a/src/test/scala/info/fingo/spata/util/LabelTS.scala b/src/test/scala/dev/sovt/spata/util/LabelTS.scala similarity index 87% rename from src/test/scala/info/fingo/spata/util/LabelTS.scala rename to src/test/scala/dev/sovt/spata/util/LabelTS.scala index 99b5ce2..0d1c1b1 100644 --- a/src/test/scala/info/fingo/spata/util/LabelTS.scala +++ b/src/test/scala/dev/sovt/spata/util/LabelTS.scala @@ -1,9 +1,10 @@ /* - * Copyright 2020 FINGO sp. z o.o. + * Copyright 2020-2025 FINGO sp. z o.o. + * Copyright 2025 sovt contributors * * SPDX-License-Identifier: Apache-2.0 */ -package info.fingo.spata.util +package dev.sovt.spata.util import org.scalatest.funsuite.AnyFunSuite