def show_options(
        self,
        selection: str | None = None,
        currency: str | list | None = None,
        family: str | list | None = None,
    ) -> dict | np.ndarray:
        """
        Show available options for the specified selection.

        Args:
            selection (str, optional): The category to show options for.
                Choose from: "currency" or "family". Default is None.
            currency (str | list, optional): Filter by currency.
                Default is None, which returns all currencies.
            family (str | list, optional): Filter by family.
                Default is None, which returns all families.

        Raises:
            ValueError: If the specified selection is not valid.
                Choose from: "currency" or "family".

        Returns:
            dict | np.ndarray: A dictionary containing the available options for the specified selection.
                If selection is None, returns all available options for both currency and family.
                If selection is "currency" or "family", returns the unique values for that selection.
        """
        selection_values = ["currency", "family"]

        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)}"
            )

        moneymarkets = self.select(currency=currency, family=family)

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

        Show available options for the specified selection.

        Args:
            selection (str, optional): The category to show options for.
                Choose from: "currency" or "family". Default is None.
            currency (str | list, optional): Filter by currency.
                Default is None, which returns all currencies.
            family (str | list, optional): Filter by family.
                Default is None, which returns all families.

        Raises:
            ValueError: If the specified selection is not valid.
                Choose from: "currency" or "family".

        Returns:
            dict | np.ndarray: A dictionary containing the available options for the specified selection.
                If selection is None, returns all available options for both currency and family.
                If selection is "currency" or "family", returns the unique values for that selection.
        
financedatabase/Moneymarkets.py