|
4 | 4 | # This module is part of GitPython and is released under |
5 | 5 | # the BSD License: http://www.opensource.org/licenses/bsd-license.php |
6 | 6 | """Module for general utility functions""" |
7 | | -from git.util import IterableList |
| 7 | +from git.util import ( |
| 8 | + IterableList, |
| 9 | + Actor |
| 10 | + ) |
8 | 11 |
|
9 | 12 | import re |
10 | 13 | from collections import deque as Deque |
11 | | -import platform |
12 | 14 |
|
13 | 15 | from string import digits |
14 | 16 | import time |
15 | 17 | import os |
16 | 18 |
|
17 | | -__all__ = ('get_object_type_by_name', 'get_user_id', 'parse_date', 'parse_actor_and_date', |
| 19 | +__all__ = ('get_object_type_by_name', 'parse_date', 'parse_actor_and_date', |
18 | 20 | 'ProcessStreamAdapter', 'Traversable', 'altz_to_utctz_str', 'utctz_to_altz', |
19 | | - 'verify_utctz') |
| 21 | + 'verify_utctz', 'Actor') |
20 | 22 |
|
21 | 23 | #{ Functions |
22 | 24 |
|
@@ -57,18 +59,6 @@ def get_object_type_by_name(object_type_name): |
57 | 59 | else: |
58 | 60 | raise ValueError("Cannot handle unknown object type: %s" % object_type_name) |
59 | 61 |
|
60 | | - |
61 | | -def get_user_id(): |
62 | | - """:return: string identifying the currently active system user as name@node |
63 | | - :note: user can be set with the 'USER' environment variable, usually set on windows""" |
64 | | - ukn = 'UNKNOWN' |
65 | | - username = os.environ.get('USER', os.environ.get('USERNAME', ukn)) |
66 | | - if username == ukn and hasattr(os, 'getlogin'): |
67 | | - username = os.getlogin() |
68 | | - # END get username from login |
69 | | - return "%s@%s" % (username, platform.node()) |
70 | | - |
71 | | - |
72 | 62 | def utctz_to_altz(utctz): |
73 | 63 | """we convert utctz to the timezone in seconds, it is the format time.altzone |
74 | 64 | returns. Git stores it as UTC timezone which has the opposite sign as well, |
@@ -193,58 +183,6 @@ def parse_actor_and_date(line): |
193 | 183 |
|
194 | 184 |
|
195 | 185 | #{ Classes |
196 | | - |
197 | | -class Actor(object): |
198 | | - """Actors hold information about a person acting on the repository. They |
199 | | - can be committers and authors or anything with a name and an email as |
200 | | - mentioned in the git log entries.""" |
201 | | - # precompiled regex |
202 | | - name_only_regex = re.compile( r'<(.+)>' ) |
203 | | - name_email_regex = re.compile( r'(.*) <(.+?)>' ) |
204 | | - |
205 | | - __slots__ = ('name', 'email') |
206 | | - |
207 | | - def __init__(self, name, email): |
208 | | - self.name = name |
209 | | - self.email = email |
210 | | - |
211 | | - def __eq__(self, other): |
212 | | - return self.name == other.name and self.email == other.email |
213 | | - |
214 | | - def __ne__(self, other): |
215 | | - return not (self == other) |
216 | | - |
217 | | - def __hash__(self): |
218 | | - return hash((self.name, self.email)) |
219 | | - |
220 | | - def __str__(self): |
221 | | - return self.name |
222 | | - |
223 | | - def __repr__(self): |
224 | | - return '<git.Actor "%s <%s>">' % (self.name, self.email) |
225 | | - |
226 | | - @classmethod |
227 | | - def _from_string(cls, string): |
228 | | - """Create an Actor from a string. |
229 | | - :param string: is the string, which is expected to be in regular git format |
230 | | -
|
231 | | - John Doe <jdoe@example.com> |
232 | | - |
233 | | - :return: Actor """ |
234 | | - m = cls.name_email_regex.search(string) |
235 | | - if m: |
236 | | - name, email = m.groups() |
237 | | - return Actor(name, email) |
238 | | - else: |
239 | | - m = cls.name_only_regex.search(string) |
240 | | - if m: |
241 | | - return Actor(m.group(1), None) |
242 | | - else: |
243 | | - # assume best and use the whole string as name |
244 | | - return Actor(string, None) |
245 | | - # END special case name |
246 | | - # END handle name/email matching |
247 | | - |
248 | 186 |
|
249 | 187 | class ProcessStreamAdapter(object): |
250 | 188 | """Class wireing all calls to the contained Process instance. |
|
0 commit comments