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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

""" Dictionary-to-filetree functions, to create test files for testing. 

http://nedbatchelder.com/code/cog 

 

Copyright 2004-2015, Ned Batchelder. 

""" 

 

from __future__ import absolute_import 

import os.path 

from .whiteutils import reindentBlock 

from .backward import string_types, bytes_types 

 

__version__ = '1.0.20040126' 

__all__ = ['makeFiles', 'removeFiles'] 

 

def makeFiles(d, basedir='.'): 

""" Create files from the dictionary `d`, in the directory named by `basedir`. 

""" 

for name, contents in d.items(): 

child = os.path.join(basedir, name) 

if isinstance(contents, string_types): 

mode = 'w' 

22 ↛ 24line 22 didn't jump to line 24, because the condition on line 22 was never false if isinstance(contents, bytes_types): 

mode += "b" 

f = open(child, mode) 

contents = reindentBlock(contents) 

f.write(contents) 

f.close() 

else: 

29 ↛ 31line 29 didn't jump to line 31, because the condition on line 29 was never false if not os.path.exists(child): 

os.mkdir(child) 

makeFiles(contents, child) 

 

def removeFiles(d, basedir='.'): 

""" Remove the files created by makeFiles. 

Directories are removed if they are empty. 

""" 

for name, contents in d.items(): 

child = os.path.join(basedir, name) 

if isinstance(contents, string_types): 

os.remove(child) 

else: 

removeFiles(contents, child) 

43 ↛ 37line 43 didn't jump to line 37, because the condition on line 43 was never false if not os.listdir(child): 

os.rmdir(child) 

 

if __name__ == '__main__': #pragma: no cover 

# Try it a little. 

d = { 

'test_makefiles': { 

'hey.txt': """\ 

This is hey.txt. 

It's very simple. 

""", 

'subdir': { 

'fooey': """\ 

# Fooey 

Kablooey 

Ew. 

""" 

} 

} 

} 

makeFiles(d)