import itertools
from uu import decode

from sklearn.compose import ColumnTransformer
# from sqlalchemy import desc
# from tblib import Traceback

from .enc_dec import EncDec
import numpy as np
import copy

from sklearn.preprocessing import OneHotEncoder, FunctionTransformer, OrdinalEncoder
from typing import List, Union
import spacy

from ...utils import Concept

__all__ = ["IdenticalEnc"]


class IdenticalEnc(EncDec):
    """
    It provides an interface to access One Hot enconding (https://en.wikipedia.org/wiki/One-hot) functions. 
    It relies on OneHotEncoder class from sklearn
    """
    
    encoded_descriptor = None
    type = 'concept'

    def __init__(self):
        super().__init__({})
    
    def encode(self, X):
        return X.copy()

    
    def decode(self, Z):
        return Z.copy()
    
    def decode_target_class(self, Z):
        return Z.copy()
    
    def encode_target_class(self, X):
        return X.copy()