yslt_noindent.yml2
author Edouard Tisserant <edouard@beremiz.fr>
Thu, 05 Dec 2024 13:56:59 +0100
changeset 4060 d2f5eb3c7d6e
parent 2638 f48dcd148209
permissions -rw-r--r--
py_ext: fix CSV Writer

fix POU logic :
- SAVE is a BOOL
- invocation of py_eval on rising edge of SAVE
- remove save python argument

fix python:
- use no encoding for file open (python2)
- re-use detected dialect if any
- use no "rt+" and truncate since no need to re-sniff dialect for output file
- return "OK" instead of "#SUCCESS", preventing POU logic to ACK result
- support creating new line if writing just after last line
- support appending data on short rows

fix example:
- use a HMI:Button to trigger CSV write instead of HMI:Input +1
- reload CSVs on on each new CSV opened in file browser
- add display of CSV write output
1936
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     1
include yslt.yml2
2630
4d5c5e5871ab yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Edouard Tisserant
parents: 2627
diff changeset
     2
!!
4d5c5e5871ab yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Edouard Tisserant
parents: 2627
diff changeset
     3
def indent(level):
4d5c5e5871ab yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Edouard Tisserant
parents: 2627
diff changeset
     4
    return ""
4d5c5e5871ab yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Edouard Tisserant
parents: 2627
diff changeset
     5
!!
1936
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     6
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     7
in xsl {
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     8
    decl istylesheet (
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     9
        *output="xml",
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    10
        version="1.0",
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    11
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform",
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    12
        xmlns:exsl='http://exslt.org/common',
2636
a0154a041148 More customizations to yslt
Edouard Tisserant
parents: 2630
diff changeset
    13
        xmlns:regexp="http://exslt.org/regular-expressions",
a0154a041148 More customizations to yslt
Edouard Tisserant
parents: 2630
diff changeset
    14
        xmlns:str="http://exslt.org/strings",
2638
f48dcd148209 Changed yslt_noindent.yml2 again
Edouard Tisserant
parents: 2636
diff changeset
    15
        xmlns:func="http://exslt.org/functions",
f48dcd148209 Changed yslt_noindent.yml2 again
Edouard Tisserant
parents: 2636
diff changeset
    16
        extension-element-prefixes='exsl regexp str func'
1936
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    17
    ) alias stylesheet {
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    18
        output *output;
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    19
        content;
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    20
    };
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    21
2630
4d5c5e5871ab yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Edouard Tisserant
parents: 2627
diff changeset
    22
    decl indent() alias -; 
4d5c5e5871ab yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Edouard Tisserant
parents: 2627
diff changeset
    23
1936
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    24
    decl template(match) {
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    25
        content;
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    26
    };
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    27
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    28
    decl function(name) alias template {
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    29
        content;
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    30
    };
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    31
   
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    32
    decl call(name) alias call-template {
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    33
        content;
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    34
    };
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    35
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    36
    decl apply(select) alias apply-templates {
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    37
        content;
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    38
    };
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    39
}
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    40
b85b13b1c2ec YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    41