def METHOD_NAME(
    self,
    domain: Domain,
    variables: Optional[ParameterContainer] = None,
    parameters: Optional[Dict[str, ParameterContainer]] = None,
    runtime_configuration: Optional[dict] = None,
) -> Attributes:
    """
    Builds ParameterContainer object that holds ParameterNode objects with attribute name-value pairs and details.
    Returns:
        Attributes object, containing computed parameter values and parameter computation details metadata.
    """
    fully_qualified_column_values_nonnull_count_metric_parameter_builder_name: str = f"{RAW_PARAMETER_KEY}{self._column_values_nonnull_count_metric_single_batch_parameter_builder_config.name}"
    # Obtain "column_values.nonnull.count" from "rule state" (i.e., variables and parameters); from instance variable otherwise.
    column_values_nonnull_count_parameter_node: ParameterNode = get_parameter_value_and_validate_return_type(
        domain=domain,
        parameter_reference=fully_qualified_column_values_nonnull_count_metric_parameter_builder_name,
        expected_return_type=None,
        variables=variables,
        parameters=parameters,
    )
    fully_qualified_column_value_counts_metric_single_batch_parameter_builder_name: str = f"{RAW_PARAMETER_KEY}{self._column_value_counts_metric_single_batch_parameter_builder_config.name}"
    # Obtain "column.value_counts" from "rule state" (i.e., variables and parameters); from instance variable otherwise.
    column_value_counts_parameter_node: ParameterNode = get_parameter_value_and_validate_return_type(
        domain=domain,
        parameter_reference=fully_qualified_column_value_counts_metric_single_batch_parameter_builder_name,
        expected_return_type=None,
        variables=variables,
        parameters=parameters,
    )
    values: list = list(
        column_value_counts_parameter_node[
            FULLY_QUALIFIED_PARAMETER_NAME_VALUE_KEY
        ].index
    )
    weights: np.ndarray = np.asarray(
        column_value_counts_parameter_node[FULLY_QUALIFIED_PARAMETER_NAME_VALUE_KEY]
    ) / (
        column_values_nonnull_count_parameter_node[
            FULLY_QUALIFIED_PARAMETER_NAME_VALUE_KEY
        ]
        + NP_EPSILON
    )
    partition_object: dict = {
        "values": values,
        "weights": weights.tolist(),
    }
    details: dict = column_value_counts_parameter_node[
        FULLY_QUALIFIED_PARAMETER_NAME_METADATA_KEY
    ]
    return Attributes(
        {
            FULLY_QUALIFIED_PARAMETER_NAME_VALUE_KEY: partition_object,
            FULLY_QUALIFIED_PARAMETER_NAME_METADATA_KEY: details,
        }
    )