import json
import sys
from trp.trp2 import TDocumentSchema
from trp.t_pipeline import order_blocks_by_geo, add_page_orientation
import argparse
from enum import Enum, auto

class TPipelineComponents(Enum):
    order_blocks_by_geo = auto()
    add_page_orientation = auto()




parser = argparse.ArgumentParser()
parser.add_argument("--components", nargs='+', choices=[TPipelineComponents.add_page_orientation.name, TPipelineComponents.order_blocks_by_geo.name], help="define which components to call", required=True)

args = parser.parse_args()
components = [TPipelineComponents[x] for x in args.components]


doc_json = json.load(sys.stdin)
t_doc = TDocumentSchema().load(doc_json)
if TPipelineComponents.order_blocks_by_geo in components:
    t_doc = order_blocks_by_geo(t_doc)
if TPipelineComponents.add_page_orientation in components:
    t_doc = add_page_orientation(t_doc)

print(TDocumentSchema().dumps(t_doc))

