diff --git a/03.Code/geulbeot_업로드용/converters/pipeline/fmt_table_report.py b/03.Code/geulbeot_업로드용/converters/pipeline/fmt_table_report.py new file mode 100644 index 0000000..c79303c --- /dev/null +++ b/03.Code/geulbeot_업로드용/converters/pipeline/fmt_table_report.py @@ -0,0 +1 @@ +IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIiIiCmZtdF90YWJsZV9yZXBvcnQucHkg4oCUIO2RnCDspJHsi6wg67O06rOg7ISc7ZiVIO2VuOuTpOufrAotIOyhsOqxtDog7ZGc6rCAIO2OmOydtOyngCDrqbTsoIHsnZggNjAlIOydtOyDgQotIO2KueynlTog7ZGcIOugjOuNlOungSDspJHsi6wsIO2RnCDsoJzrqqko7KCc66qp7KSEKeydgCBzZWN0aW9u7Jy866GcIOyymOumrAoiIiIKCmltcG9ydCByZQpmcm9tIGZtdF9iYXNlIGltcG9ydCAoCiAgICBsb2csIFpXX1BBVFRFUk4sIE5PVEVfUEFUVEVSTiwgTEFCRUxfUEFUVEVSTiwKICAgIE5VTV9TRUNUSU9OX1BBVCwgQUxQSEFfQlVMTEVUX1BBVCwgREFTSF9TVUJfUEFULAogICAgZXh0cmFjdF90YWJsZXNfZnJvbV9wYWdlLCBjbGFzc2lmeV9wYXJhX3dpdGhfYWksCiAgICByZW5kZXJfcGFnZV9odG1sCikKCgpkZWYgY2x1c3Rlcl94cyh4cywgdG9sPTgpOgogICAgY2x1c3RlcnMgPSBbXQogICAgZm9yIHggaW4gc29ydGVkKHNldCh4cykpOgogICAgICAgIGlmIG5vdCBjbHVzdGVycyBvciB4LWNsdXN0ZXJzWy0xXT50b2w6IGNsdXN0ZXJzLmFwcGVuZCh4KQogICAgZGVmIGdldF9sZXZlbCh4KToKICAgICAgICBmb3IgaSxjIGluIGVudW1lcmF0ZShjbHVzdGVycyk6CiAgICAgICAgICAgIGlmIGFicyh4LWMpPD10b2w6IHJldHVybiBpCiAgICAgICAgcmV0dXJuIGxlbihjbHVzdGVycyktMQogICAgcmV0dXJuIGdldF9sZXZlbAoKCmRlZi BleHRyYWN0X3BhZ2UocGFnZSwgaGVhZGVyX3BhdHRlcm5zLCBmb290ZXJfcGF0dGVybnMpOgogICAgcGggPSBwYWdlLnJlY3QuaGVpZ2h0CiAgICB0YiA9IHBoICogMC44NQogICAgbm9ybWFsX3RhYmxlcywgc29sdXRpb25fYm94ZXMsIGJvdHRvbV9ib3hlcyA9IGV4dHJhY3RfdGFibGVzX2Zyb21fcGFnZShwYWdlKQogICAgYWxsX3RhYmxlX3JlY3RzID0gW3RbJ3JlY3QnXSBmb3IgdCBpbiBub3JtYWxfdGFibGVzXSArIFwKICAgICAgICAgICAgICAgICAgICAgIFt1bml0WydyZWN0J10gZm9yIHNiIGluIHNvbHV0aW9uX2JveGVzK2JvdHRvbV9ib3hlcyBpZiAncmVjdCcgaW4gc2IgaW4gW3NiXV0KCgogICAgZGVmIGluX3RhYmxlKHgsIHkpOgogICAgICAgIGZvciB0eDAsdHkwLHR4MSx0eTEgaW4gYWxsX3RhYmxlX3JlY3RzOgogICAgICAgICAgICBpWYgdHgwLTU8PXg8PXR4MSs1IGFuZCB0eTAtNTw9eTw9dHkxKzU6IHJldHVybiBUcnVlCiAgICAgICAgcmV0dXJuIEZhbHNlCgogICAgIyDtkZwg67CWIO2FjeyKpO2KuOunjCDstpTstpwgKOygnOuqqSwg7KO87ISdIOuTsSkKICAgIGxpbmVfaXRlbXMsIHkwID0gW10sIDAKICAgIGZvciBiIGluIHBhZ2UuZ2V0X3RleHQoImRpY3QiKVsiYmxvY2tzIl06CiAgICAgICAgaWYgYi5nZXQoInR5cGUiKSAhPSAwOiBjb250aW51ZQogICAgICAgIGZvciBsaW5lIGluIGIuZ2V0KCJsaW5lcyIsW10pOgogICAgICAgICAgICB4LCBwYXJ0cyA9IE5vbmUsIFtdCiAgICAgICAgICAgIGZvciBzIGluIGxpbmUuZ2V0KCJzcGFucyIsW10pOgogICAgICAgICAgICAgICAgdCA9IHJlLnN1YihyJ1tcdTAwMDAtXHUwMDFlXScsJycscy5nZXQoInRleHQiLCIiKSkKICAgICAgICAgICAgICAgIGlmIHQuc3RyaXAoKSBhbmQgeCBpcyBOb25lOiB4ID0gc1siYmJveCJdWzBdCiAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQodCkKICAgICAgICAgICAgdGV4dCA9ICcnLmpvaW4ocGFydHMpLnN0cmlwKCkKICAgICAgICAgICAgeDAseTAseDEseTEgPSBsaW5lWydiYm94J10KICAgICAgICAgICAgaWYgdGV4dCBhbmQgeCBpcyBub3QgTm9uZSBhbmQgeTA8dGI6CiAgICAgICAgICAgICAgICBpZiB0ZXh0IG5vdCBpbiBoZWFkZXJfcGF0dGVybnMgYW5kIHRleHQgbm90IGluIGZvb3Rlcl9wYXR0ZXJucyBhbmQgbm90IGluX3RhYmxlKHgsIHkwKToKICAgICAgICAgICAgICAgICAgICBsaW5lX2l0ZW1zLmFwcGVuZCh7J3gnOngsJ3knOnkwLCd0ZXh0Jzp0ZXh0fSkKCiAgICBpZiBsaW5lX2l0ZW1zOgogICAgICAgIGdldF9sZXZlbCA9IGNsdXN0ZXJfeHMoW2xpWyd4J10gZm9yIGxpIGluIGxpbmVfaXRlbXNdKQogICAgY2xhc3NpZmllZCA9IFtdCiAgICBmb3IgbGkgaW4gbGluZV9pdGVtczoKICAgICAgICB0ZXh0ID0gbGlbJ3RleHQnXQogICAgICAgIGxldmVsID0gZ2V0X2xldmVsKGxpWyd4J10pCiAgICAgICAgaWYgTEFCRUxfUEFUVEVSTiwgbWF0Y2godGV4dCk6CiAgICAgICAgICAgIGNsYXNzaWZpZWQuYXBwZW5kKHsndHlwZSc6J3BhZ2VfbGFiZWwnLCd0ZXh0Jzp0ZXh0LCd5JzpsaVsneSddfSkKICAgICAgICBlbGlmIE5PVEVfUEFUVEVSTi5tYXRjaCh0ZXh0KToKICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonub3RlJywndGV4dCc6dGV4dFsxOl0uc3RyaXAoKSwneSc6bGlbJ3knXX0pCiAgICAgICAgZWxpZiBOVU1fU0VDVElPTl9QQVQubWF0Y2godGV4dCk6CiAgICAgICAgICAgIGNsZWFuID0gcmUuc3ViKHInXlxkK1tcLlx1ZmYwZV1ccyonLCcnLHRleHQpCiAgICAgICAgICAgIGNsYXNzaWZpZWQuYXBwZW5kKHsndHlwZSc6J3NlY3Rpb24nLCd0ZXh0JzpjbGVhbiwneSc6bGlbJ3knXX0pCiAgICAgICAgZWxpZiBBTFBIQV9CVUxMRVRfUEFULm1hdGNoKHRleHQpOgogICAgICAgICAgICBjbGVhbiA9IHJlLnN1YihyJ15bYS16XVtcLlx1ZmYwZV1ccyonLCcnLHRleHQpCiAgICAgICAgICAgIGNsYXNzaWZpZWQuYXBwZW5kKHsndHlwZSc6J2J1bGxldCcsJ3RleHQnOmNsZWFuLCd5JzpsaVsneSddfSkKICAgICAgICBlbGlmIERBU0hfU1VCX1BBVC5tYXRjaCh0ZXh0KToKICAgICAgICAgICAgY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonc3ViJywndGV4dCc6cmUuc3ViKHInXi1ccyonLCcnLHRleHQpLCd5JzpsaVsneSddfSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBpZiBsZXZlbD09MDogY2xhc3NpZmllZC5hcHBlbmQoeyd0eXBlJzonc2VjdGlvbicsJ3RleHQnOnRleHQsJ3knOmxpWyd5J119KQogICAgICAgICAgICBlbHNlOiBjbGFzc2lmaWVkLmFwcGVuZCh7J3R5cGUnOidwYXJhJywndGV4dCc6dGV4dCwneSc6bGlbJ3knXX0pCgogICAgYWxsX2VsZW1lbnRzID0gY2xhc3NpZmllZCArIHNvbHV0aW9uX2JveGVzICsgYm90dG9tX2JveGVzICsgbm9ybWFsX3RhYmxlcwogICAgYWxsX2VsZW1lbnRzLnNvcnQoa2V5PWxhbWJkYSBlOiBlWyd5J10pCiAgICBwYWdlX2xhYmVsLCBmaW5hbF9lbGVtZW50cyA9IE5vbmUsIFtdCiAgICBmb3IgZWwgaW4gYWxsX2VsZW1lbnRzOgogICAgICAgIGlmIGVsWyd0eXBlJ109PSdwYWdlX2xhYmVsJyBhbmQgcGFnZV9sYWJlbCBpcyBOb25lOiBwYWdlX2xhYmVsPWVsWyd0ZXh0J10KICAgICAgICBlbHNlOiBmaW5hbF9lbGVtZW50cy5hcHBlbmQoZWwpCiAgICByZXR1cm4geydwYWdlX2xhYmVsJzpwYWdlX2xhYmVsLCdlbGVtZW50cyc6ZmluYWxfZWxlbWVudHN9CgoKZGVmIHByb2Nlc3MoZG9jLCBoZWFkZXJfcGF0dGVybnMsIGZvb3Rlcl9wYXR0ZXJucywgbWV0YSk6CiAgICBwYWdlc19odG1sID0gW10KICAgIGZvciBwYWdlX251bSBpbiByYW5nZShsZW4oZG9jKSk6CiAgICAgICAgcGFnZSA9IGRvY1twYWdlX251bV0KICAgICAgICBsb2coZiIgIHtwYWdlX251bSsxfXAgW+2RnOykkeyLrO2YlV0g7LKY66asIOykkS4uLiIpCiAgICAgICAgY29udGVudCA9IGV4dHJhY3RfcGFnZShwYWdlLCBoZWFkZXJfcGF0dGVybnMsIGZvb3Rlcl9wYXR0ZXJucykKICAgICAgICBpZiBub3QgY29udGVudFsnZWxlbWVudHMnXTogY29udGludWUKICAgICAgICBjb250ZW50WydlbGVtZW50cyddID0gY2xhc3NpZnlfcGFyYV93aXRoX2FpKGNvbnRlbnRbJ2VsZW1lbnRzJ10sIHBhZ2VfbnVtKzEpCiAgICAgICAgcGFnZXNfaHRtbC5hcHBlbmQocmVuZGVyX3BhZ2VfaHRtbChjb250ZW50LCBwYWdlX251bSsxLCBtZXRhLCBwYWdlX251bT09MCkpCiAgICByZXR1cm4gcGFnZXNfaHRtbAo= \ No newline at end of file