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( 

20 os.path.normpath( 

21 os.path.join( 

22 this, '..', '..', '..', '..', 'notebooks', subfolder))), 

23 os.path.abspath( 

24 os.path.normpath( 

25 os.path.join( 

26 this, '..', '..', '..', '_doc', 'notebooks', subfolder)))] 

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

28 if len(nb_) == 0: 

29 raise FileNotFoundError( # pragma: no cover 

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

31 nb = nb_[0] 

32 

33 name_ = name 

34 if name is not None: 

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

36 if contains is not None: 

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

38 if len(names) == 0: 

39 raise FileNotFoundError( # pragma: no cover 

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

41 return names 

42 

43 

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

45 """ 

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

47 

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

49 @param name préfixe à chercher 

50 @param contains extrait à chercher 

51 @return liste des liens 

52 """ 

53 names = list_notebooks(subfolder, name, contains) 

54 return [':ref:`{0}rst`'.format( 

55 os.path.splitext(os.path.split(name)[1])[0].replace('_', '')) 

56 for name in names]