summaryrefslogtreecommitdiff
path: root/python/helpers/pydev/pydev_imports.py
blob: 69804a871eaf255f683e230cbd021990442f8cbe (plain)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
from pydevd_constants import USE_LIB_COPY, izip


try:
    try:
        if USE_LIB_COPY:
            from _pydev_imps import _pydev_xmlrpclib as xmlrpclib
        else:
            import xmlrpclib
    except ImportError:
        import xmlrpc.client as xmlrpclib
except ImportError:
    from _pydev_imps import _pydev_xmlrpclib as xmlrpclib


try:
    try:
        if USE_LIB_COPY:
            from _pydev_imps._pydev_SimpleXMLRPCServer import SimpleXMLRPCServer
        else:
            from SimpleXMLRPCServer import SimpleXMLRPCServer
    except ImportError:
        from xmlrpc.server import SimpleXMLRPCServer
except ImportError:
    from _pydev_imps._pydev_SimpleXMLRPCServer import SimpleXMLRPCServer



try:
    from StringIO import StringIO
except ImportError:
    from io import StringIO


try:
    execfile=execfile #Not in Py3k
except NameError:
    from _pydev_imps._pydev_execfile import execfile


try:
    if USE_LIB_COPY:
        from _pydev_imps import _pydev_Queue as _queue
    else:
        import Queue as _queue
except:
    import queue as _queue #@UnresolvedImport


try:
    from pydevd_exec import Exec
except:
    from pydevd_exec2 import Exec

try:
    from urllib import quote
except:
    from urllib.parse import quote #@UnresolvedImport


import os
try:
    relpath = os.path.relpath
except:
    # Only there from 2.6 onwards... let's provide a replacement.
    def _split_path(path):
        parts = []
        loc = path

        while loc != os.curdir and loc != os.pardir:
            prev = loc
            loc, child = os.path.split(prev)
            if loc == prev:
                break

            parts.append(child)

        parts.append(loc)
        parts.reverse()
        return parts

    def relpath(path, start=None):
        if start is None:
            start = os.curdir
        origin = os.path.abspath(path)
        start = os.path.abspath(start)

        orig_list = _split_path(os.path.normcase(origin))
        dest_list = _split_path(start)

        if orig_list[0] != os.path.normcase(dest_list[0]):
            return start

        i = 0
        for start_seg, dest_seg in izip(orig_list, dest_list):
            if start_seg != os.path.normcase(dest_seg):
                break
            i += 1

        segments = [os.pardir] * (len(orig_list) - i)
        segments += dest_list[i:]
        if len(segments) == 0:
            return os.curdir
        else:
            return os.path.join(*segments)