@@ -26,6 +26,7 @@ class Pseudonymize:
2626 """
2727
2828 dataset : pl .DataFrame
29+ schema : pd .Series | pl .Schema
2930
3031 @staticmethod
3132 def from_pandas (dataframe : pd .DataFrame ) -> "Pseudonymize._Pseudonymizer" :
@@ -38,6 +39,7 @@ def from_pandas(dataframe: pd.DataFrame) -> "Pseudonymize._Pseudonymizer":
3839 _Pseudonymizer: An instance of the _Pseudonymizer class.
3940 """
4041 Pseudonymize .dataset = pl .from_pandas (dataframe )
42+ Pseudonymize .schema = dataframe .dtypes
4143 return Pseudonymize ._Pseudonymizer ()
4244
4345 @staticmethod
@@ -51,6 +53,7 @@ def from_polars(dataframe: pl.DataFrame) -> "Pseudonymize._Pseudonymizer":
5153 _Pseudonymizer: An instance of the _Pseudonymizer class.
5254 """
5355 Pseudonymize .dataset = dataframe
56+ Pseudonymize .schema = dataframe .schema
5457 return Pseudonymize ._Pseudonymizer ()
5558
5659 class _Pseudonymizer (_BasePseudonymizer ):
@@ -60,7 +63,9 @@ class _Pseudonymizer(_BasePseudonymizer):
6063 metadata : Datadoc | None = None
6164
6265 def __init__ (
63- self , rules : list [PseudoRule ] | None = None , metadata : Datadoc | None = None
66+ self ,
67+ rules : list [PseudoRule ] | None = None ,
68+ metadata : Datadoc | None = None ,
6469 ) -> None :
6570 """Initialize the class."""
6671 if rules is None :
@@ -109,14 +114,17 @@ def run(
109114 hierarchical = hierarchical ,
110115 user_provided_metadata = self .metadata ,
111116 )
112-
113117 result = super ()._execute_pseudo_operation (
114- self .rules , timeout , custom_keyset
118+ self .rules , timeout , custom_keyset , schema = Pseudonymize . schema
115119 )
116120 return result
117121
118122 class _PseudoFuncSelector (_BaseRuleConstructor ):
119- def __init__ (self , fields : list [str ], metadata : Datadoc | None ) -> None :
123+ def __init__ (
124+ self ,
125+ fields : list [str ],
126+ metadata : Datadoc | None ,
127+ ) -> None :
120128 self ._fields = fields
121129 self ._metadata = metadata
122130 super ().__init__ (fields )
0 commit comments