44import partitura .score as spt
55from partitura .score import process_local_key
66from partitura .utils .music import estimate_symbolic_duration
7+ from pandas .api .types import is_object_dtype
8+ from pandas .api .types import is_string_dtype
79
810try :
911 import pandas as pd
@@ -19,8 +21,8 @@ def read_note_tsv(note_tsv_path, metadata=None):
1921 data = data [~ data ["quarterbeats" ].isna ()]
2022 data ["quarterbeats" ] = (
2123 data ["quarterbeats" ].apply (eval )
22- if data .dtypes ["quarterbeats" ] == "string"
23- or data .dtypes ["quarterbeats" ] == "object"
24+ if is_string_dtype ( data .dtypes ["quarterbeats" ])
25+ or is_object_dtype ( data .dtypes ["quarterbeats" ])
2426 else data ["quarterbeats" ]
2527 )
2628 unique_durations = data ["duration" ].unique ()
@@ -205,8 +207,8 @@ def read_measure_tsv(measure_tsv_path, part):
205207 data = data [~ data ["quarterbeats" ].isna ()]
206208 data ["quarterbeats" ] = (
207209 data ["quarterbeats" ].apply (eval )
208- if data .dtypes ["quarterbeats" ] == "string"
209- or data .dtypes ["quarterbeats" ] == "object"
210+ if is_string_dtype ( data .dtypes ["quarterbeats" ])
211+ or is_object_dtype ( data .dtypes ["quarterbeats" ])
210212 else data ["quarterbeats" ]
211213 )
212214 data ["onset_div" ] = np .array ([int (qd * qdivs ) for qd in data ["quarterbeats" ]])
@@ -241,8 +243,8 @@ def read_harmony_tsv(beat_tsv_path, part):
241243 data = data [~ data ["quarterbeats" ].isna ()]
242244 data ["quarterbeats" ] = (
243245 data ["quarterbeats" ].apply (eval )
244- if data .dtypes ["quarterbeats" ] == "string"
245- or data .dtypes ["quarterbeats" ] == "object"
246+ if is_string_dtype ( data .dtypes ["quarterbeats" ])
247+ or is_object_dtype ( data .dtypes ["quarterbeats" ])
246248 else data ["quarterbeats" ]
247249 )
248250 data ["onset_div" ] = np .array ([int (qd * qdivs ) for qd in data ["quarterbeats" ]])
0 commit comments