pureconfig нет ручного импорта pureconfig.generic.auto._

Последние обновления pureconfig в 0.10.* серия отключена автоматическая настройка по умолчанию.

import pureconfig.generic.auto._

нужно импортировать вручную. Но у меня есть иерархия классов, где я не хочу импортировать ее каждый раз для дочернего класса.

import pureconfig.ConfigReader
abstract class SparkBaseRunner[T <: Product](implicit A: ConfigReader[T])extends App {}

уже ожидает configReader. При использовании этого базового класса:

object MyOperation extends SparkBaseRunner[MyCaseClass] {}

это терпит неудачу с:

could not find implicit value for parameter A: pureconfig.ConfigReader[foo.bar.my.Type]

если только вышеупомянутые входные данные не указаны вручную в каждом дочернем классе. Есть ли способ избежать этого дублирования кода? Попытка указать входные данные в абстрактном базовом классе не сработала для меня, поскольку для этого уже требуется объект ConfigReader.

редактировать

Попытка вручную получить доступ к читателю конфигурации внутри базового класса также не удалась:

implicit val configReader = deriveReader[T]
could not find implicit value for parameter A: pureconfig.ConfigReader[T]
could not find Lazy implicit value of type pureconfig.generic.DerivedConfigReader[T]

Моя версия Scala: 2.11.12

0 ответов

Я считаю, что конфигурация уже читается как одна операция, и есть несколько приложений, все из которых делают следующее:

object Ops extends SparkBaseRunner[MyCaseClass]

Я не вижу способа избежать дублирования, поскольку базовый класс не может вывести конфигурацию, поскольку все, что он имеет, является универсальным типом T,

Лучшее решение - не беспокоиться об этом и использовать auto._,

import pureconfig.generic.auto._
Другие вопросы по тегам