Skip to content

Commit af628ee

Browse files
committed
refactor: more friendly api
1 parent 6e0acea commit af628ee

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

py_sourcemap/__init__.py

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,41 @@
1-
from .py_sourcemap import SourcemapParser
1+
from .py_sourcemap import SourcemapParser as InternalParser
22

33
name = 'py_sourcemap'
44

55
__all__ = ["SourcemapParser"]
6+
7+
8+
class Token:
9+
def __init__(self, src_line, src_col, source, name):
10+
self.src_line = src_line
11+
self.src_col = src_col
12+
self.source = source
13+
self.name = name
14+
15+
def to_tuple(self):
16+
return (self.source, self.src_line, self.src_col, self.name)
17+
18+
def to_dict(self):
19+
return {
20+
'source': self.source,
21+
'src_line': self.src_line,
22+
'src_col': self.src_col,
23+
'name': self.name,
24+
}
25+
26+
def __repr__(self):
27+
return '<Token: source={}, src_line={}, src_col={}, name={}>'.format(
28+
self.source, self.src_line, self.src_col, self.name,
29+
)
30+
31+
32+
class SourcemapParser:
33+
def __init__(self, map_path):
34+
self.parser = InternalParser(map_path)
35+
36+
def lookup(self, line, column):
37+
(src_line, src_col, source, name) = self.parser.original_location_for(line, column)
38+
return Token(src_line=src_line,
39+
src_col=src_col,
40+
source=source,
41+
name=name)

0 commit comments

Comments
 (0)