mirror of
https://github.com/iluvcapra/ptulsconv.git
synced 2025-12-31 08:50:48 +00:00
More reorganizing in here
This commit is contained in:
@@ -3,15 +3,13 @@ import os.path
|
|||||||
import pathlib
|
import pathlib
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
import glob
|
||||||
import ptulsconv as ptulsconv
|
|
||||||
|
|
||||||
from xml.etree.ElementTree import TreeBuilder, tostring
|
|
||||||
|
|
||||||
import io
|
|
||||||
|
|
||||||
|
|
||||||
def fmp_dump(data, input_file_name, output, adr_field_map):
|
def fmp_dump(data, input_file_name, output, adr_field_map):
|
||||||
|
from xml.etree.ElementTree import TreeBuilder, tostring
|
||||||
|
import ptulsconv
|
||||||
|
|
||||||
doc = TreeBuilder(element_factory=None)
|
doc = TreeBuilder(element_factory=None)
|
||||||
|
|
||||||
doc.start('FMPXMLRESULT', {'xmlns': 'http://www.filemaker.com/fmpxmlresult'})
|
doc.start('FMPXMLRESULT', {'xmlns': 'http://www.filemaker.com/fmpxmlresult'})
|
||||||
@@ -58,37 +56,38 @@ def fmp_dump(data, input_file_name, output, adr_field_map):
|
|||||||
xmlstr = tostring(docelem, encoding='unicode', method='xml')
|
xmlstr = tostring(docelem, encoding='unicode', method='xml')
|
||||||
output.write(xmlstr)
|
output.write(xmlstr)
|
||||||
|
|
||||||
|
|
||||||
import glob
|
|
||||||
|
|
||||||
xslt_path = os.path.join(pathlib.Path(__file__).parent.absolute(), 'xslt')
|
xslt_path = os.path.join(pathlib.Path(__file__).parent.absolute(), 'xslt')
|
||||||
|
|
||||||
|
|
||||||
def xform_options():
|
def xform_options():
|
||||||
return glob.glob(os.path.join(xslt_path, "*.xsl"))
|
return glob.glob(os.path.join(xslt_path, "*.xsl"))
|
||||||
|
|
||||||
|
|
||||||
def dump_xform_options(output=sys.stdout):
|
def dump_xform_options(output=sys.stdout):
|
||||||
print("# Available transforms:", file=output)
|
print("# Available transforms:", file=output)
|
||||||
print("# Transform dir: %s" % (xslt_path), file=output)
|
print("# Transform dir: %s" % xslt_path, file=output)
|
||||||
for f in xform_options():
|
for f in xform_options():
|
||||||
base = os.path.basename(f)
|
base = os.path.basename(f)
|
||||||
name, _ = os.path.splitext(base)
|
name, _ = os.path.splitext(base)
|
||||||
print("# " + name, file=output)
|
print("# " + name, file=output)
|
||||||
|
|
||||||
|
|
||||||
def fmp_transformed_dump(data, input_file, xsl_name, output):
|
def fmp_transformed_dump(data, input_file, xsl_name, output, adr_field_map):
|
||||||
from ptulsconv.reporting import print_status_style
|
from ptulsconv.reporting import print_status_style
|
||||||
|
import io
|
||||||
|
|
||||||
pipe = io.StringIO()
|
pipe = io.StringIO()
|
||||||
|
|
||||||
print_status_style("Generating base XML")
|
print_status_style("Generating base XML")
|
||||||
fmp_dump(data, input_file, pipe)
|
fmp_dump(data, input_file, pipe, adr_field_map)
|
||||||
|
|
||||||
strdata = pipe.getvalue()
|
str_data = pipe.getvalue()
|
||||||
print_status_style("Base XML size %i" % (len(strdata)))
|
print_status_style("Base XML size %i" % (len(str_data)))
|
||||||
|
|
||||||
print_status_style("Running xsltproc")
|
print_status_style("Running xsltproc")
|
||||||
|
|
||||||
xsl_path = os.path.join(pathlib.Path(__file__).parent.absolute(), 'xslt', xsl_name + ".xsl")
|
xsl_path = os.path.join(pathlib.Path(__file__).parent.absolute(), 'xslt', xsl_name + ".xsl")
|
||||||
print_status_style("Using xsl: %s" % (xsl_path))
|
print_status_style("Using xsl: %s" % xsl_path)
|
||||||
subprocess.run(['xsltproc', xsl_path, '-'], input=strdata, text=True,
|
subprocess.run(['xsltproc', xsl_path, '-'],
|
||||||
|
input=str_data, text=True,
|
||||||
stdout=output, shell=False, check=True)
|
stdout=output, shell=False, check=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user