## Change Log
+### 18.3a1
+
+* fixed invalid spacing of dots in relative imports (#6, #13)
+
+
### 18.3a0
* first published version, Happy 🍰 Day 2018!
from blib2to3.pgen2 import driver, token
from blib2to3.pgen2.parse import ParseError
-__version__ = "18.3a0"
+__version__ = "18.3a1"
DEFAULT_LINE_LENGTH = 88
# types
syms = pygram.python_symbols
DOUBLESPACE = ' '
t = leaf.type
p = leaf.parent
+ v = leaf.value
if t == token.COLON:
return NO
return NO
prevp = preceding_leaf(p)
- if not prevp or prevp.type == token.AT:
+ if not prevp or prevp.type == token.AT or prevp.type == token.DOT:
return NO
elif p.type == syms.classdef:
elif t == token.NAME or t == token.NUMBER:
return NO
- elif p.type == syms.import_from and t == token.NAME:
- prev = leaf.prev_sibling
- if prev and prev.type == token.DOT:
- return NO
+ elif p.type == syms.import_from:
+ if t == token.DOT:
+ prev = leaf.prev_sibling
+ if prev and prev.type == token.DOT:
+ return NO
+
+ elif t == token.NAME:
+ if v == 'import':
+ return SPACE
+
+ prev = leaf.prev_sibling
+ if prev and prev.type == token.DOT:
+ return NO
elif p.type == syms.sliceop:
return NO
from .locks import * # comment here
from .protocols import *
-from .runners import * # comment here
-from .queues import *
-from .streams import *
+from ..runners import * # comment here
+from ..queues import *
+from ..streams import *
-from .subprocess import *
-from .tasks import *
-from .transports import *
+from .a.b.c.subprocess import *
+from . import tasks
__all__ = (
base_events.__all__ +
runners.__all__ +
queues.__all__ +
streams.__all__ +
- subprocess.__all__ +
- tasks.__all__ +
- transports.__all__
+ tasks.__all__
)
from .locks import * # comment here
from .protocols import *
-from .runners import * # comment here
-from .queues import *
-from .streams import *
+from ..runners import * # comment here
+from ..queues import *
+from ..streams import *
-from .subprocess import *
-from .tasks import *
-from .transports import *
+from .a.b.c.subprocess import *
+from . import tasks
__all__ = (
base_events.__all__ +
runners.__all__ +
queues.__all__ +
streams.__all__ +
- subprocess.__all__ +
- tasks.__all__ +
- transports.__all__
+ tasks.__all__
)