forked from jupyter/colaboratory
-
Notifications
You must be signed in to change notification settings - Fork 0
/
install_lib.py
49 lines (41 loc) · 1.03 KB
/
install_lib.py
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
import errno
import os
import shutil
COLAB_ROOT_PATH = os.path.dirname(os.path.realpath(__file__))
pjoin = os.path.join
def MakeDirectoryIfNotExist(path):
try:
os.makedirs(path)
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
def RemoveDirectoryIfExist(path):
try:
shutil.rmtree(path)
except OSError as exception:
if exception.errno != errno.ENOENT:
raise
def RemoveFileIfExist(path):
try:
os.remove(path)
except OSError as exception:
if exception.errno != errno.ENOENT:
raise
def RemoveFileOrDirectoryIfExist(path):
try:
RemoveDirectoryIfExist(path)
except OSError as exception:
if exception.errno == errno.ENOTDIR:
RemoveFileIfExist(path)
else:
raise
def CopyTreeRecursively(src, dest):
"""Roughly equivalent to cp -r src/* dest"""
MakeDirectoryIfNotExist(dest)
for entry in os.listdir(src):
s = pjoin(src, entry)
d = pjoin(dest, entry)
if os.path.isdir(s):
CopyTreeRecursively(s, d)
else:
shutil.copy(s, d)