mirror of
https://github.com/LCPQ/QUESTDB_website.git
synced 2024-12-27 06:43:47 +01:00
42 lines
1.4 KiB
Python
Executable File
42 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import sys
|
|
import re
|
|
from enum import IntEnum,auto,unique
|
|
import numpy as np
|
|
from pathlib import Path
|
|
from lib import LaTeX,formats,dfbOptions
|
|
from lib.formats import getFormatHandlers
|
|
from TexSoup import TexSoup,TexNode,TexCmd,TexEnv
|
|
from lib.data import dataFileBase,DataType,state
|
|
from collections import defaultdict
|
|
import argparse
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('--file', type=argparse.FileType('r'))
|
|
parser.add_argument("--list","-l",action="store_true", help='List all available format')
|
|
parser.add_argument('--debug', action='store_true', help='Debug mode')
|
|
args = parser.parse_args()
|
|
if args.list:
|
|
print("The list of avalable formats are:")
|
|
for formatName,_ in getFormatHandlers():
|
|
print(formatName)
|
|
elif args.file!=None:
|
|
lines=args.file.readlines()
|
|
soup=TexSoup(lines)
|
|
opt=soup.dfbOptions
|
|
if type(opt) is TexNode and type(opt.expr) is TexEnv:
|
|
texOps=dfbOptions.readFromEnv(opt)
|
|
else:
|
|
texOps=dfbOptions()
|
|
commands=[LaTeX.newCommand(cmd) for cmd in soup.find_all("newcommand")]
|
|
dat=LaTeX.tabularToData(soup.tabular,commands)
|
|
scriptpath=Path(sys.argv[0]).resolve()
|
|
datapath=scriptpath.parents[1]/"static"/"data"
|
|
if args.debug:
|
|
datapath=datapath/"test"
|
|
if not datapath.exists():
|
|
datapath.mkdir()
|
|
datalst=dataFileBase.readFromTable(dat,texOps,commands=commands)
|
|
for data in datalst:
|
|
data.toFile(datapath,texOps.suffix)
|
|
else:
|
|
parser.print_help() |