问题标签 [scopt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - scopt:是否可以将单个 Config 重构为更小的 Config?
我一直在将 scopt 与单个案例类一起使用:
我现在有大量可能的论点,这使得课程难以阅读。参数可以在逻辑上分组为更小的组,例如,使用 Spark 处理的参数等。
是否可以将 single 重构Config
为更小Configs
,以允许以与使用单个 large 等效的方式处理单个命令行Config
?
scala - 如何禁用 Scopt 的“未知选项”异常?
我有一个基本配置案例类,它用作几个不同脚本的配置的公共部分。我希望能够停止为解析此基本配置的 OptionParsers 复制粘贴代码(例如,每个脚本都需要--cluster
,--port
因此我希望单个基本 OptionParser 始终处理该问题),并让最小的自定义 OptionParser注意每个脚本特有的选项(例如--asdf
)。
问题是,如果我要求基本解析器解析包含 的参数--asdf
,Scopt 会抱怨:
有没有办法让它忽略未知的论点?
scala - 在 Scala 中扩展 Scopt OptionParser
我正在尝试使用带有一些默认参数的基本选项解析器。
在其他项目中,我想用其他参数扩展选项解析器。
就像是:
我是新手,Scala
我不确定现在如何同时使用它们args
。
我正在使用Scala
2.10 和scopt_2.10
v3.3.0。
scala - scopt "not found: value" defining val with same name
For the following use of scopt:
I get the compilation error:
If I rename either the Config
parameter scripts
or the val scripts
then it compiles.
Can anyone enlighten me as to what's happening here? Is it a compiler issue, or am I missing some magic?
scala 2.11.8 / sbt 0.13.7 / scopt 3.5.0
scala - 仅使用 jar 运行 sbt 类
有没有办法只用一个 jar 而不是一个项目来运行 sbt 命令?
我在使用带有 java 或 scala 命令的 scopt 时遇到了问题,它似乎只适用于 sbt。
理想情况下像
scala - How can I accept an unlabeled argument in scopt?
I'm using scopt to process command line arguments and would like to accept a blind/unlabeled argument. Let's take a super-simplified, familiar 'ls' command as an example:
So examples of use could be:
The scopt library can handle the options easily and has something defined as a command (i.e. if ls had some kind of secondary mode), but I don't see how i can accept an optional string (the selector) w/o a preceding option label.
scala - 如何在 Scala Scopt 可选参数上进行模式匹配
我有一个简单的 Scops 解析器,看起来像
在我的驱动程序函数中,我想使用用户通过参数或其他默认值提供的参数来初始化参数。
我可以做类似的事情
但是,(i)我怀疑对空字符串进行测试是检查用户是否提供了可选参数的正确方法,并且(ii)在 Scala 中编写它看起来不太实用。
问题:有没有很好的功能性方法来做到这一点?我考虑了像下面这样的模式匹配,但 Scop 参数似乎没有作为 Option[String] 返回
scala - 类型列表接受类型参数
我有以下数据:
这里面的行数List
不是固定的。
我想将这些数据作为我的 Scala 对象的输入参数传递。
我该怎么做?目前,我定义String
,但它不正确。如果我使用List(String,String,String)
,那么它会说Type List takes type parameters
。
scala - spark submit-read 命令行参数,它是使用 Scop 和 ConfigFactory 的配置文件 [HOCON]
我有一个通过 spark-submit 运行的 jar,之前我使用 Argot 解析通过 ConfigFactory 解析的 HOCON 配置文件,然后我从那里读取。
不幸的是,Argot 现在是一个死项目,要升级到当前版本的 Scala,我必须开始使用 Scopt ,但我无法理解如何使用 Scopt 解析相同的配置文件并加载到 ConfigFactory 中,而无需进行太多更改。
尝试阅读文档,但找不到太多。
当前实施
然后像这样读
scala - 案例类继承另一个类/特征
我想让一个案例类扩展一个特征
以下是我的要求:
- 我需要为孩子使用案例类。这是一个硬性要求,因为 scopt ( https://github.com/scopt/scopt )
- 父母需要是一个特质。很抱歉之前不清楚
- 我希望孩子可以访问父特征的属性,并且最好在声明子案例类时不必再次指定它们。例如,如果父 trait 是:
trait ParentParams { var name: String = "Al" }
那么孩子不应该是case class ChildParams(id: String = "whatever", override val name: String = Parent.defaultName) extends Parent
。我宁愿把它作为case class Child(id: String) extends Parent
..copy()
但是,当我尝试第二种方法时,当我尝试对案例类对象执行操作时,我无法访问名称字段。作为一种解决方法,我可以name
通过childObj.name = "newName"
- 我应该(硬要求)能够覆盖子对象从父对象继承的属性值。现在这是可能的,因为我已将父属性声明为 a
var
而不是 val。但是,理想情况下,我想让它不可变并使用复制方法来更改值。
这就是我现在所拥有的,但我无法使用该.copy()
方法来更改继承属性的值。
.copy(name = "newName2")
对于上面的代码,我得到一个“无法解析符号名称” 。
拥有这种继承的原因是有一个函数接受一个子对象并期望它定义一个“名称”属性。例如,考虑一个将附加“先生”的函数。或“夫人” 给定一个具有 name 属性的 Child 对象。
正在发生的事情的总体背景:我正在使用 scopt 使用命令行输入值(进入案例类)填充配置。如果未提供任何值,则为该属性使用默认值。属性是指案例类中的数据成员。我有一个函数(我们称之为 dbReader),它接受案例类的对象并使用它来建立连接并从数据库中读取。我的项目中有许多不同的参数案例类,我希望这些参数中的每一个都实现一个共同的DatabaseConnectionParameters
特征,以便函数 dbReader 可以工作,而不管传递给它的参数案例类。