@@ -128,7 +128,7 @@ def mark_binning(
128128 if has_dependency or self .settings .auto_mark_dep :
129129 self .handle_dependency_mark (item , has_order , dep_marks , aliases )
130130 if has_order :
131- self .handle_order_mark (item )
131+ self .handle_order_marks (item )
132132
133133 def handle_dependency_mark (
134134 self ,
@@ -160,8 +160,12 @@ def handle_dependency_mark(
160160 name_mark = item .node_id
161161 aliases [name_mark ] = item
162162
163- def handle_order_mark (self , item : Item ) -> None :
164- mark = cast (Mark , item .item .get_closest_marker ("order" ))
163+ def handle_order_marks (self , item : Item ) -> None :
164+ marks = item .item .iter_markers ("order" )
165+ for mark in marks :
166+ self .handle_order_mark (item , mark )
167+
168+ def handle_order_mark (self , item : Item , mark : Mark ) -> None :
165169 order = mark .args [0 ] if mark .args else mark .kwargs .get ("index" )
166170 if order is not None :
167171 if isinstance (order , int ):
@@ -171,7 +175,8 @@ def handle_order_mark(self, item: Item) -> None:
171175 else :
172176 warn ("Unknown order attribute:'{}'" .format (order ))
173177 order = None
174- item .order = order
178+ if item .order is None :
179+ item .order = order
175180 self .handle_relative_marks (item , mark )
176181 if order is not None :
177182 item .nr_rel_items = 0
0 commit comments