from .processors import *
from .readers import *
from .utils import AttributeDict, RangeMap

ALL_FILES = [
    'replay.initData',
    'replay.details',
    'replay.attributes.events',
    'replay.message.events',
    'replay.game.events'
]

files = AttributeDict(
    all=[
        'replay.initData',
        'replay.details',
        'replay.attributes.events',
        'replay.message.events',
        'replay.game.events'],

    partial=[
        'replay.initData',
        'replay.details',
        'replay.attributes.events',
        'replay.message.events',],

    basic=[
        'replay.initData',
        'replay.details',
        'replay.attributes.events'],

    minimal=[
        'replay.initData',],

    none=[]
)

default_options = AttributeDict(
    directory="",
    processors=[],
    debug=False,
    verbose=False,
    parse_events=True,
    include_regex=None,
    exclude_dirs=[],
    recursive=True,
    depth=-1,
    follow_symlinks=True,
    files=files.all,
    apply=False
)


readers = RangeMap()
readers.add_range(0, 16561, {
        'replay.initData': InitDataReader(),
        'replay.details': DetailsReader(),
        'replay.attributes.events': AttributeEventsReader(),
        'replay.message.events': MessageEventsReader(),
        'replay.game.events': GameEventsReader(),
    })

readers.add_range(16561, 17326, {
        'replay.initData': InitDataReader(),
        'replay.details': DetailsReader(),
        'replay.attributes.events': AttributeEventsReader(),
        'replay.message.events': MessageEventsReader(),
        'replay.game.events': GameEventsReader_16561(),
    })

readers.add_range(17326, 18574, {
        'replay.initData': InitDataReader(),
        'replay.details': DetailsReader(),
        'replay.attributes.events': AttributeEventsReader_17326(),
        'replay.message.events': MessageEventsReader(),
        'replay.game.events': GameEventsReader_16561(),
    })

readers.add_range(18574, 19595, {
        'replay.initData': InitDataReader(),
        'replay.details': DetailsReader(),
        'replay.attributes.events': AttributeEventsReader_17326(),
        'replay.message.events': MessageEventsReader(),
        'replay.game.events': GameEventsReader_18574(),
    })

readers.add_range(19595, None, {
        'replay.initData': InitDataReader(),
        'replay.details': DetailsReader(),
        'replay.attributes.events': AttributeEventsReader_17326(),
        'replay.message.events': MessageEventsReader(),
        'replay.game.events': GameEventsReader_19595(),
    })

@@ -2,50 +2,65 @@
 rom 
-.processors 
+__future__ import absolute_
 import
- *
+%0A
 %0Afrom 
-.
+sc2
 reader
-s
  import 
 *%0Afr
@@ -59,15 +59,35 @@
 ort 
-*%0Afrom 
+readers as r%0Afrom sc2reader
 .uti
@@ -1102,32 +1102,34 @@
 play.initData': 
+r.
 InitDataReader()
@@ -1148,32 +1148,34 @@
 eplay.details': 
+r.
 DetailsReader(),
@@ -1203,32 +1203,34 @@
 ibutes.events': 
+r.
 AttributeEventsR
@@ -1263,32 +1263,34 @@
 essage.events': 
+r.
 MessageEventsRea
@@ -1318,32 +1318,34 @@
 y.game.events': 
+r.
 GameEventsReader
@@ -1409,32 +1409,34 @@
 play.initData': 
+r.
 InitDataReader()
@@ -1455,32 +1455,34 @@
 eplay.details': 
+r.
 DetailsReader(),
@@ -1510,32 +1510,34 @@
 ibutes.events': 
+r.
 AttributeEventsR
@@ -1570,32 +1570,34 @@
 essage.events': 
+r.
 MessageEventsRea
@@ -1625,32 +1625,34 @@
 y.game.events': 
+r.
 GameEventsReader
@@ -1722,32 +1722,34 @@
 play.initData': 
+r.
 InitDataReader()
@@ -1768,32 +1768,34 @@
 eplay.details': 
+r.
 DetailsReader(),
@@ -1823,32 +1823,34 @@
 ibutes.events': 
+r.
 AttributeEventsR
@@ -1889,32 +1889,34 @@
 essage.events': 
+r.
 MessageEventsRea
@@ -1944,32 +1944,34 @@
 y.game.events': 
+r.
 GameEventsReader
@@ -2041,32 +2041,34 @@
 play.initData': 
+r.
 InitDataReader()
@@ -2087,32 +2087,34 @@
 eplay.details': 
+r.
 DetailsReader(),
@@ -2142,32 +2142,34 @@
 ibutes.events': 
+r.
 AttributeEventsR
@@ -2208,32 +2208,34 @@
 essage.events': 
+r.
 MessageEventsRea
@@ -2263,32 +2263,34 @@
 y.game.events': 
+r.
 GameEventsReader
@@ -2367,16 +2367,18 @@
 tData': 
+r.
 InitData
@@ -2413,16 +2413,18 @@
 tails': 
+r.
 DetailsR
@@ -2468,16 +2468,18 @@
 vents': 
+r.
 Attribut
@@ -2534,16 +2534,18 @@
 vents': 
+r.
 MessageE
@@ -2589,16 +2589,18 @@
 vents': 
+r.
 GameEven

Make the configuration use absolute_import as well