Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1# -*- coding: utf-8 -*- 

2""" 

3@file 

4@brief Automatatisation de certaines parties de la documentation. 

5""" 

6import os 

7 

8 

9def list_notebooks(subfolder, name=None, contains=None): 

10 """ 

11 Retourne les notebooks qui contiennent *name* dans leur nom. 

12 

13 @param subfolder sous-répertoire où chercher 

14 @param name préfixe à chercher 

15 @param contains extrait à chercher 

16 @return liste des notebooks (sans répertoire) 

17 """ 

18 this = os.path.dirname(__file__) 

19 nbs = [os.path.abspath(os.path.normpath(os.path.join(this, '..', '..', '..', '..', 

20 'notebooks', subfolder))), 

21 os.path.abspath(os.path.normpath(os.path.join(this, '..', '..', '..', 

22 '_doc', 'notebooks', subfolder)))] 

23 nb_ = list(filter(os.path.exists, nbs)) 

24 if len(nb_) == 0: 

25 raise FileNotFoundError( 

26 "Unable to find notebooks in\n{0}".format('\n'.join(nbs))) 

27 nb = nb_[0] 

28 

29 name_ = name 

30 if name is not None: 

31 names = [_ for _ in os.listdir(nb) if _.startswith(name_)] 

32 if contains is not None: 

33 names = [_ for _ in os.listdir(nb) if contains in _] 

34 if len(names) == 0: 

35 raise FileNotFoundError( 

36 "Unable to find any notebook in '{0}'.".format(nb)) 

37 return names 

38 

39 

40def list_notebooks_rst_links(subfolder, name=None, contains=None): 

41 """ 

42 Retourne une liste de notebooks au format :epkg:`rst`. 

43 

44 @param subfolder sous-répertoire où chercher 

45 @param name préfixe à chercher 

46 @param contains extrait à chercher 

47 @return liste des liens 

48 """ 

49 names = list_notebooks(subfolder, name, contains) 

50 return [':ref:`{0}rst`'.format(os.path.splitext(os.path.split(name)[1])[0].replace('_', '')) for name in names]