flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-2017) Add predefined required parameters to ParameterTool
Date Mon, 26 Oct 2015 14:03:27 GMT

    [ https://issues.apache.org/jira/browse/FLINK-2017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14974232#comment-14974232

ASF GitHub Bot commented on FLINK-2017:

Github user fhueske commented on the pull request:

    Going through FLINK-2017, I interpreted the semantics of `check` and `checkAndPopulate`
as follows:
    - `check` verifies that all required parameters are provided and valid (type, choice,
    - `checkAndPopulate` copied the default values of the options into the `ParameterTool`
    I think a method that is called `checkAndPopulate` should perform the same checks as `check`
and do the *populate* in addition. Moreover, I do not see why `check` alone would be useful.
Why would somebody define required parameters with default values without enforcing them,
i.e., why you call `check` without `checkAndPopulate`.
    If we have a single method, we could also give it a simpler name such as `applyTo`.
    What do you think?

> Add predefined required parameters to ParameterTool
> ---------------------------------------------------
>                 Key: FLINK-2017
>                 URL: https://issues.apache.org/jira/browse/FLINK-2017
>             Project: Flink
>          Issue Type: Improvement
>    Affects Versions: 0.9
>            Reporter: Robert Metzger
>              Labels: starter
> In FLINK-1525 we've added the {{ParameterTool}}.
> During the PR review, there was a request for required parameters.
> This issue is about implementing a facility to define required parameters. The tool should
also be able to print a help menu with a list of all parameters.
> This test case shows my initial ideas how to design the API
> {code}
> 	@Test
> 	public void requiredParameters() {
> 		RequiredParameters required = new RequiredParameters();
> 		Option input = required.add("input").alt("i").help("Path to input file or directory");
// parameter with long and short variant
> 		required.add("output"); // parameter only with long variant
> 		Option parallelism = required.add("parallelism").alt("p").type(Integer.class); // parameter
with type
> 		Option spOption = required.add("sourceParallelism").alt("sp").defaultValue(12).help("Number
specifying the number of parallel data source instances"); // parameter with default value,
specifying the type.
> 		Option executionType = required.add("executionType").alt("et").defaultValue("pipelined").choices("pipelined",
> 		ParameterUtil parameter = ParameterUtil.fromArgs(new String[]{"-i", "someinput", "--output",
"someout", "-p", "15"});
> 		required.check(parameter);
> 		required.printHelp();
> 		required.checkAndPopulate(parameter);
> 		String inputString = input.get();
> 		int par = parallelism.getInteger();
> 		String output = parameter.get("output");
> 		int sourcePar = parameter.getInteger(spOption.getName());
> 	}
> {code}

This message was sent by Atlassian JIRA

View raw message