|
1 | 1 | import contextlib
|
2 | 2 | from os.path import exists, join
|
3 | 3 | from os import getcwd, chdir, makedirs, walk, uname
|
4 |
| -import io |
5 |
| -import json |
6 | 4 | import sh
|
7 | 5 | import shutil
|
8 | 6 | import sys
|
@@ -62,79 +60,6 @@ def ensure_dir(filename):
|
62 | 60 | makedirs(filename)
|
63 | 61 |
|
64 | 62 |
|
65 |
| -class JsonStore(object): |
66 |
| - """Replacement of shelve using json, needed for support python 2 and 3. |
67 |
| - """ |
68 |
| - |
69 |
| - def __init__(self, filename): |
70 |
| - super(JsonStore, self).__init__() |
71 |
| - self.filename = filename |
72 |
| - self.data = {} |
73 |
| - if exists(filename): |
74 |
| - try: |
75 |
| - with io.open(filename, encoding='utf-8') as fd: |
76 |
| - self.data = json.load(fd) |
77 |
| - except ValueError: |
78 |
| - print("Unable to read the state.db, content will be replaced.") |
79 |
| - |
80 |
| - def __getitem__(self, key): |
81 |
| - return self.data[key] |
82 |
| - |
83 |
| - def __setitem__(self, key, value): |
84 |
| - self.data[key] = value |
85 |
| - self.sync() |
86 |
| - |
87 |
| - def __delitem__(self, key): |
88 |
| - del self.data[key] |
89 |
| - self.sync() |
90 |
| - |
91 |
| - def __contains__(self, item): |
92 |
| - return item in self.data |
93 |
| - |
94 |
| - def get(self, item, default=None): |
95 |
| - return self.data.get(item, default) |
96 |
| - |
97 |
| - def keys(self): |
98 |
| - return self.data.keys() |
99 |
| - |
100 |
| - def remove_all(self, prefix): |
101 |
| - for key in self.data.keys()[:]: |
102 |
| - if not key.startswith(prefix): |
103 |
| - continue |
104 |
| - del self.data[key] |
105 |
| - self.sync() |
106 |
| - |
107 |
| - def sync(self): |
108 |
| - # http://stackoverflow.com/questions/12309269/write-json-data-to-file-in-python/14870531#14870531 |
109 |
| - if IS_PY3: |
110 |
| - with open(self.filename, 'w') as fd: |
111 |
| - json.dump(self.data, fd, ensure_ascii=False) |
112 |
| - else: |
113 |
| - with io.open(self.filename, 'w', encoding='utf-8') as fd: |
114 |
| - fd.write(unicode(json.dumps(self.data, ensure_ascii=False))) # noqa F821 |
115 |
| - |
116 |
| - |
117 |
| -def which(program, path_env): |
118 |
| - '''Locate an executable in the system.''' |
119 |
| - import os |
120 |
| - |
121 |
| - def is_exe(fpath): |
122 |
| - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) |
123 |
| - |
124 |
| - fpath, fname = os.path.split(program) |
125 |
| - if fpath: |
126 |
| - if is_exe(program): |
127 |
| - return program |
128 |
| - else: |
129 |
| - for path in path_env.split(os.pathsep): |
130 |
| - path = path.strip('"') |
131 |
| - exe_file = os.path.join(path, program) |
132 |
| - if is_exe(exe_file): |
133 |
| - return exe_file |
134 |
| - |
135 |
| - return None |
136 |
| - |
137 |
| - |
138 | 63 | def get_virtualenv_executable():
|
139 | 64 | virtualenv = None
|
140 | 65 | if virtualenv is None:
|
|
0 commit comments