protected final @Nullable PyPackage parsePackaging(@NotNull @NonNls String line,
                                                     @NotNull @NonNls String separator,
                                                     boolean useLocation,
                                                     @NotNull @Nls String errorMessage,
                                                     @NotNull @NonNls String command) throws PyExecutionException {
    List<String> fields = StringUtil.split(line, separator);
    if (fields.size() < 3) {
      throw new PyExecutionException(errorMessage, command, List.of());
    }

    final String name = fields.get(0);

    // TODO does it has to be parsed regardless the name?
    List<PyRequirement> requirements = fields.size() >= 4 ?
                                       parseRequirements(toMultilineString(fields.get(3))) :
                                       List.of();

    return "Python".equals(name) ?
           null :
           new PyPackage(name,
                         fields.get(1),
                         useLocation ? fields.get(2) : "",
                         requirements);
  }
protected final @Nullable PyPackage parsePackaging(@NotNull @NonNls String line,
                                                     @NotNull @NonNls String separator,
                                                     boolean useLocation,
                                                     @NotNull @Nls String errorMessage,
                                                     @NotNull @NonNls String command)