@@ -730,26 +730,21 @@ def table(
730730
731731
732732def _sanitize_name (name : str ) -> str :
733- name = "" .join (c for c in unicodedata .normalize ("NFD" , name ) if unicodedata .category (c ) != "Mn" )
734- name = name .replace ("{" , "_" )
735- name = name .replace ("}" , "_" )
736- name = name .replace ("]" , "_" )
737- name = name .replace ("[" , "_" )
738- name = name .replace (")" , "_" )
739- name = name .replace ("(" , "_" )
740- name = name .replace (" " , "_" )
741- name = name .replace ("-" , "_" )
742- name = name .replace ("." , "_" )
743- name = re .sub ("(.)([A-Z][a-z]+)" , r"\1_\2" , name )
744- name = re .sub ("([a-z0-9])([A-Z])" , r"\1_\2" , name )
745- return name .lower ()
733+ name = "" .join (c for c in unicodedata .normalize ("NFD" , name ) if unicodedata .category (c ) != "Mn" ) # strip accents
734+ name = re .sub ("[^A-Za-z0-9_]+" , "_" , name ) # Removing non alphanumeric characters
735+ return re .sub ("([a-z0-9])([A-Z])" , r"\1_\2" , name ).lower () # Converting CamelCase to snake_case
746736
747737
748738def sanitize_column_name (column : str ) -> str :
749739 """Convert the column name to be compatible with Amazon Athena.
750740
751741 https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html
752742
743+ Possible transformations:
744+ - Strip accents
745+ - Remove non alphanumeric characters
746+ - Convert CamelCase to snake_case
747+
753748 Parameters
754749 ----------
755750 column : str
@@ -775,6 +770,11 @@ def sanitize_dataframe_columns_names(df: pd.DataFrame) -> pd.DataFrame:
775770
776771 https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html
777772
773+ Possible transformations:
774+ - Strip accents
775+ - Remove non alphanumeric characters
776+ - Convert CamelCase to snake_case
777+
778778 Parameters
779779 ----------
780780 df : pandas.DataFrame
@@ -800,6 +800,11 @@ def sanitize_table_name(table: str) -> str:
800800
801801 https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html
802802
803+ Possible transformations:
804+ - Strip accents
805+ - Remove non alphanumeric characters
806+ - Convert CamelCase to snake_case
807+
803808 Parameters
804809 ----------
805810 table : str
0 commit comments