swh:1:snp:4e3e7077647a709f15b8c1b32ce7100175d0580b
Tip revision: 247917c7d2c510b9eb99d3fcbdc131565cd03ba7 authored by Jean Kossaifi on 23 December 2018, 23:37:01 UTC
TYPO
TYPO
Tip revision: 247917c
sorting.py
# -*- coding: utf-8 -*-
r"""
Sorters for Sphinx-Gallery subsections
======================================
Sorting key functions for gallery subsection folders
"""
# Created: Sun May 21 20:38:59 2017
# Author: Óscar Nájera
# License: 3-clause BSD
from __future__ import division, absolute_import, print_function
import os
import types
class ExplicitOrder(object):
"""Sorting key for all galleries subsections
This requires all folders to be listed otherwise an exception is raised
Parameters
----------
ordered_list : list, tuple, types.GeneratorType
Hold the paths of each galleries' subsections
Raises
------
ValueError
Wrong input type or Subgallery path missing
"""
def __init__(self, ordered_list):
if not isinstance(ordered_list, (list, tuple, types.GeneratorType)):
raise ValueError("ExplicitOrder sorting key takes a list, "
"tuple or Generator, which hold"
"the paths of each gallery subfolder")
self.ordered_list = list(os.path.normpath(path)
for path in ordered_list)
def __call__(self, item):
if item in self.ordered_list:
return self.ordered_list.index(item)
else:
raise ValueError('If you use an explicit folder ordering, you '
'must specify all folders. Explicit order not '
'found for {}'.format(item))