def show_options(
        self,
        selection: str | None = None,
        category_group: str | list | None = None,
        category: str | list | None = None,
        family: str | list | None = None,
        currency: str | list | None = None,
        exchange: str | list | None = None,
    ) -> dict | np.ndarray:
        """
        Retrieve all options for the specified selection.

        This method returns a series containing all available options for the specified
        selection, which can be one of the following: "currency", "category_group",
        "category", "family", "exchange".

        Args:
            selection (str | None): The selection you want to see the options for.
                Choose from "currency", "category_group", "category", "family", or "exchange".
                If None, returns all options for all categories.
            category_group (str | list | None): Specific category group to filter options.
                If not provided, returns data for all category groups.
            category (str | list | None): Specific category to filter options.
                If not provided, returns data for all categories.
            family (str | list | None): Specific family to filter options.
                If not provided, returns data for all families.
            currency (str | list | None): Specific currency to filter options.
                If not provided, returns data for all currencies.
            exchange (str | list | None): Specific exchange to filter options.
                If not provided, returns data for all exchanges.

        Raises:
            ValueError: If the selection variable provided is not valid. Choose from:
                "currency", "category_group", "category", "family", or "exchange".

        Returns:
            dict | np.ndarray: A dictionary or array with all options for the specified selection.
                If selection is None, returns a dictionary with unique values for all fields.
                If selection is specified, returns an array of unique values for that field.
        """
        selection_values = [
            "currency",
            "category_group",
            "category",
            "family",
            "exchange",
        ]
        if selection is not None and selection not in selection_values:
            raise ValueError(
                f"The selection variable provided is not valid, "
                f"choose from {', '.join(selection_values)}"
            )

        funds = self.select(
            category_group=category_group,
            category=category,
            family=family,
            currency=currency,
            exchange=exchange,
            only_primary_listing=False,
        )

        return (
            {
                column: funds[column].dropna().sort_values().unique()
                for column in selection_values
            }
            if selection is None
            else funds[selection].dropna().sort_values().unique()
        )

        Retrieve all options for the specified selection.

        This method returns a series containing all available options for the specified
        selection, which can be one of the following: "currency", "category_group",
        "category", "family", "exchange".

        Args:
            selection (str | None): The selection you want to see the options for.
                Choose from "currency", "category_group", "category", "family", or "exchange".
                If None, returns all options for all categories.
            category_group (str | list | None): Specific category group to filter options.
                If not provided, returns data for all category groups.
            category (str | list | None): Specific category to filter options.
                If not provided, returns data for all categories.
            family (str | list | None): Specific family to filter options.
                If not provided, returns data for all families.
            currency (str | list | None): Specific currency to filter options.
                If not provided, returns data for all currencies.
            exchange (str | list | None): Specific exchange to filter options.
                If not provided, returns data for all exchanges.

        Raises:
            ValueError: If the selection variable provided is not valid. Choose from:
                "currency", "category_group", "category", "family", or "exchange".

        Returns:
            dict | np.ndarray: A dictionary or array with all options for the specified selection.
                If selection is None, returns a dictionary with unique values for all fields.
                If selection is specified, returns an array of unique values for that field.
        
financedatabase/Funds.py