Skip to content

Commit 44e407e

Browse files
committed
Merge branch 'develop' of https://github.com/CPJKU/partitura into develop
2 parents fcef2ec + 7ce5df1 commit 44e407e

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

partitura/directions.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,16 +327,26 @@ def regularize_form(children):
327327
return " ".join(unabbreviate(ch.lower()) for ch in children)
328328

329329

330+
def check_tree(tree, col_name="column"):
331+
meta = getattr(tree, "meta", None)
332+
col = getattr(meta, col_name, None)
333+
return col
334+
335+
330336
def create_directions(tree, string, start=None, end=None):
331337
"""
332338
Recursively walk the parse tree of `string` to create a `score.Direction`
333339
or `score.Words` instance.
334340
335341
"""
336342
if start is None:
337-
start = tree.column - 1
343+
col = check_tree(tree, "column")
344+
if col is not None:
345+
start = col - 1
338346
if end is None:
339-
end = tree.end_column - 1
347+
col = check_tree(tree, "end_column")
348+
if col is not None:
349+
end = col - 1
340350

341351
if tree.data == "conj":
342352
return create_directions(tree.children[0], string) + create_directions(

partitura/io/importdcml.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import partitura.score as spt
55
from partitura.score import process_local_key
66
from 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

810
try:
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

Comments
 (0)