MCPcopy Create free account
hub / github.com/aboutcode-org/scancode-toolkit / sort

Method sort

src/licensedcode/spans.py:235–260  ·  view source on GitHub ↗

Return a new sorted sequence of spans given a sequence of spans. The primary sort is on start. The secondary sort is on length. If two spans have the same start, the longer span will sort first. For example: >>> spans = [Span([5, 6, 7, 8, 9, 10]), Span([1, 2

(cls, spans)

Source from the content-addressed store, hash-verified

233
234 @classmethod
235 def sort(cls, spans):
236 """
237 Return a new sorted sequence of spans given a sequence of spans.
238 The primary sort is on start. The secondary sort is on length.
239 If two spans have the same start, the longer span will sort first.
240
241 For example:
242 >>> spans = [Span([5, 6, 7, 8, 9, 10]), Span([1, 2]), Span([3, 4, 5]), Span([3, 4, 5, 6]), Span([8, 9, 10])]
243 >>> Span.sort(spans)
244 [Span(1, 2), Span(3, 6), Span(3, 5), Span(5, 10), Span(8, 10)]
245
246 >>> spans = [Span([1, 2]), Span([3, 4, 5]), Span([3, 4, 5, 6]), Span([8, 9, 10])]
247 >>> Span.sort(spans)
248 [Span(1, 2), Span(3, 6), Span(3, 5), Span(8, 10)]
249
250 >>> spans = [Span([1, 2]), Span([4, 5]), Span([7, 8]), Span([11, 12])]
251 >>> Span.sort(spans)
252 [Span(1, 2), Span(4, 5), Span(7, 8), Span(11, 12)]
253
254 >>> spans = [Span([1, 2]), Span([7, 8]), Span([5, 6]), Span([12, 13])]
255 >>> Span.sort(spans)
256 [Span(1, 2), Span(5, 6), Span(7, 8), Span(12, 13)]
257
258 """
259 key = lambda s: (s.start, -len(s),)
260 return sorted(spans, key=key)
261
262 def magnitude(self):
263 """

Callers 15

clusterFunction · 0.45
bootstrap.min.jsFile · 0.45
jstree.min.jsFile · 0.45
LtFunction · 0.45
orFunction · 0.45
oiFunction · 0.45
d3.min.jsFile · 0.45
nFunction · 0.45
tFunction · 0.45
toJSTreeFormatFunction · 0.45
jquery.min.jsFile · 0.45
mbFunction · 0.45

Calls

no outgoing calls

Tested by 2

cleanup_scanFunction · 0.36