เครื่องมือสำหรับการประมวลผลอัตโนมัติและการจัดรูปแบบรหัส PL/SQL
create ผลลัพธ์ของการประมวลผลไฟล์หลายวัตถุประสงค์ไม่สามารถคาดการณ์ได้ดังนั้นเครื่องมือทั้งหมด (ยกเว้น str_decoder ) จะยกข้อยกเว้น ฟังก์ชั่นเดียว decode_to_str พยายามตรวจจับการเข้ารหัสบรรทัดและกำหนดรหัสใหม่เป็น UTF-8 เพิ่ม ValueError หากการเข้ารหัสเป็นไปไม่ได้
decode_to_str(line, probables=None)
line - วัตถุ bytes ที่มีข้อความเพื่อถอดรหัสprobables - list ของ str ที่มีการเข้ารหัสหลักเพื่อตรวจสอบ ค่าเริ่มต้น: ['cp866', 'cp1251', 'koi8-r']str (ถอดรหัสและเข้ารหัสใหม่เป็น UTF-8 ) ถอดรหัสไฟล์ทั้งหมดไปยังไฟล์อื่น เรียกใช้สิ่งนี้เพื่อรับรายการอาร์กิวเมนต์:
python -m oc_sql_helpers.str_decoder --help
คลาส PLSQLWrapper เป็นเครื่องมือในการทำงานกับแหล่งที่ห่อด้วย Oracle
มีข้อกำหนดเพิ่มเติมใน การห่อ ไฟล์ โปรดทราบว่าวิธี UNWRAP นั้นทำงานได้หากไม่มี สิ่งเหล่านี้เกิดจากการใช้ยูทิลิตี้ wrap ดั้งเดิมจาก Oracle ซึ่งไม่รวมอยู่ในแพ็คเกจนี้เนื่องจากการละเมิดใบอนุญาต คุณต้องติดตั้งแยกต่างหาก
ORACLE_HOME จะถูกตั้งค่าอย่างถูกต้องwrap Binary จะถูกวางไว้ภายใต้ ${ORACLE_HOME}/bin และต้องได้รับอนุญาต ดำเนินการ สำหรับผู้ใช้ที่มีประสิทธิภาพ PLSQLWrapper() - เพื่อยกตัวอย่างวัตถุสำหรับคลาสนั้น
วิธีการ
wrap_path(path_in, write_to=None)path_in - วัตถุ str ที่มีเส้นทางสัมบูรณ์หรือเส้นทางที่สัมพันธ์เพื่อห่อwrite_to - หนึ่งใน:None - ผลการห่อจะถูกส่งคืนโดยวิธีนี้เป็นวัตถุ bytesfile - ผลลัพธ์จะถูกเขียนไปยังวัตถุที่มีลักษณะคล้ายไฟล์ที่ระบุไว้ที่นี่ ต้อง เปิดในโหมดไบนารีอ่าน-เขียน ( 'w+b' ) และสนับสนุนการดำเนินการ seekstr - พา ธ ไปยังไฟล์เอาต์พุตสัมบูรณ์หรือสัมพัทธ์ ผลลัพธ์จะถูกเขียนที่นั่น ต้อง มีส่วนขยาย - นี่คือ featrue ยูทิลิตี้ Oracle wrap มันต่อท้าย .plb คำต่อท้ายด้วยตัวเองหากละเว้นส่วนขยาย โปรดระบุส่วนขยายเสมอwrite_to ด้านบนwrap_buf(fl_in, write_to=None)fl_in - file หรือวัตถุ file-like เพื่อห่อข้อมูลจาก จะต้อง เปิดในโหมดไบนารีและสนับสนุนการดำเนินการ seek ( 'rb' )write_to - เหมือนกับ wrap_pathwrap_pathunwrap_path(path_in, write_to=None)path_in - วัตถุ str ที่มีเส้นทางสัมบูรณ์หรือเส้นทางที่สัมพันธ์ไปยังไฟล์เพื่อแกะwrite_to - หนึ่งใน:None - ผลการแกะจะถูกส่งคืนโดยวิธีนี้เป็นวัตถุ bytesfile - ผลลัพธ์จะถูกเขียนไปยังวัตถุที่มีลักษณะคล้ายไฟล์ที่ระบุไว้ที่นี่ ต้อง เปิดในโหมดไบนารีอ่าน-เขียน ( 'w+b' ) และสนับสนุนการดำเนินการ seekstr - พา ธ ไปยังไฟล์เอาต์พุตสัมบูรณ์หรือสัมพัทธ์ ผลลัพธ์จะถูกเขียนที่นั่นwrite_to ด้านบนunwrap_buf(fl_in, write_to=None)fl_in - file หรือวัตถุ file-like เพื่อห่อข้อมูลจาก จะต้อง เปิดในโหมดไบนารีและสนับสนุนการดำเนินการ seek ( 'rb' )write_to - เหมือนกับ unwrap_pathunwrap_path ห่อ/แกะไฟล์ทั้งหมดไปยังไฟล์อื่น เรียกใช้สิ่งนี้เพื่อรับรายการอาร์กิวเมนต์:
python -m oc_sql_helpers.wrapper --help
คลาส PLSQLNormalizer คือ การทำให้เป็นมาตรฐาน PL/SQL
การทำให้เป็นมาตรฐาน หมาย ถึงเกือบ จะเหมือนกับ สไตล์รหัส แต่น้อยกว่าอย่างเคร่งครัด ซึ่งหมายความว่าผลลัพธ์การทำให้เป็นมาตรฐานอาจใช้ไม่ได้แม้ว่าแหล่งที่มาจะถูกต้องจากมุมมอง PL/SQL
การทำให้เป็นมาตรฐานเริ่มต้น คือ:
CREATE ครั้งแรกจะถูกลบออกCREATE คำสั่งตัวเองได้รับคำสั่งให้บรรทัดแรกถึงโทเค็ AS (หรือ IS หรือ WRAPPED ) รวมถึงชื่อวัตถุประเภทและสคีมา อักขระและความคิดเห็นพื้นที่พิเศษจะถูกแทนที่ด้วยพื้นที่เดี่ยวCREATE ) เป็น upprcased รวมถึง สคีมา และชื่อ วัตถุ" แล้วคำสั่งสองเท่าเหล่านั้นจะถูกลบออกหากเป็นไปได้ตัวอย่าง: "schema"."name" จะเป็น SCHEMA.NAME หลังจากการทำให้เป็นมาตรฐานในขณะที่ "another.schema"."another.name" "ANOTHER.SCHEMA"."ANOTHER.NAME"ธงการทำให้เป็นมาตรฐานอื่น :
uppercase : lexemes ภาษาทั้งหมดในวัตถุวัตถุจะถูกเพิ่มขึ้นยกเว้นตัวอักษรno-comments : ความคิดเห็นทั้งหมดภายในร่างกายรวมถึงสัญญาณแสดงความคิดเห็นเองจะถูกแทนที่ด้วยพื้นที่เดี่ยวno-spaces : ตัวละครอวกาศที่ทำซ้ำทั้งหมด (Space เอง, Newline, Tabulation ... ) จะถูกแทนที่ด้วยพื้นที่เดี่ยวทั่วไป ตัวอย่าง: var := 'the value' จะถูกแปลเป็น var := 'the value' โปรดทราบว่าไม่มีการทดแทนใด ๆ ภายใน 'the value' ที่แท้จริง ธงนี้อาจไม่ได้ใช้ witout no-commentsno-literals : ค่าตัวอักษรสตริงทั้งหมดจะถูกแทนที่เป็นค่าที่ว่างเปล่า สัญญาณตัวอักษรตัวเองจะไม่เปลี่ยนแปลงcomments-only : ทิ้งเนื้อหาไฟล์ทั้งหมด แต่ความคิดเห็นรวมถึงสัญญาณความคิดเห็นด้วยตัวเอง แต่ละความคิดเห็นจะเริ่มต้นด้วยบรรทัดใหม่ ธงนี้ไม่สามารถใช้งานร่วมกับใครก็ได้ด้านบน PLSQLNormalizer() - เพื่อยกตัวอย่างวัตถุสำหรับคลาสนี้
วิธีการ
normalize_path(path, flags=None, lines=None, write_to=None)path - วัตถุ str ที่มีเส้นทางสัมบูรณ์หรือเส้นทางไปยังไฟล์เพื่อทำให้เป็นปกติflags - Flags Normalization, list จำนวนเต็มจาก PLSQLNormalizationFlags การแจงนับดูด้านล่าง None ค่าหมายถึงค่า เริ่มต้น ( CREATE นิยาม) การทำให้เป็นมาตรฐานเท่านั้นlines - int , จำกัด เส้นมาตรฐาน (นับจาก แหล่งที่มา ) ค่าเริ่มต้น : None หมายถึงแหล่งที่มาทั้งหมดwrite_to - หนึ่งใน:None - ผลการห่อจะถูกส่งคืนโดยวิธีนี้เป็นวัตถุ bytesfile - ผลลัพธ์จะถูกเขียนไปยังวัตถุที่มีลักษณะคล้ายไฟล์ที่ระบุไว้ที่นี่ ต้อง เปิดในโหมดไบนารีอ่าน-เขียน ( 'w+b' ) และสนับสนุนการดำเนินการ seekstr - พา ธ ไปยังไฟล์เอาต์พุตสัมบูรณ์หรือสัมพัทธ์ ผลลัพธ์จะถูกเขียนที่นั่น ต้อง มีส่วนขยาย - นี่คือ featrue ยูทิลิตี้ Oracle wrap มันต่อท้าย .plb คำต่อท้ายด้วยตัวเองหากละเว้นส่วนขยาย โปรดระบุส่วนขยายเสมอwrite_to ด้านบนnormalize(fl, flags, lines=None write_to=None)fl - หนึ่งใน:file หรือ file-like ไฟล์เพื่อทำให้ข้อมูลปกติจาก จะต้อง เปิดในโหมดไบนารีและสนับสนุนการดำเนินการ seek ( 'rb' )str - ข้อมูลสตริงเพื่อทำให้เป็นปกติbytes - ข้อมูล "ไบนารี" เพื่อทำให้เป็นปกติflags - เหมือนกับ normalize_pathlines - เหมือนกับสำหรับ normalize_pathwrite_to - เหมือนกับสำหรับ normalize_pathnormalize_pathis_sql(fl) - ตรวจสอบข้อมูลที่ได้รับการสนับสนุนรหัส PL/SQLfl - เหมือนกับ normalizebool , รหัส PL/SQL ที่ห่อหุ้มหรือไม่is_sql_path(path) - เหมือนกับ is_sql แต่อาร์กิวเมนต์ถือเป็นพา ธ ไปยังไฟล์ที่มีรหัสที่เป็นไปได้is_wrapped(fl) - ตรวจสอบข้อมูลที่ได้รับการสนับสนุนรหัส PL/SQL ที่ได้รับการสนับสนุนfl - เหมือนกับ normalizebool , รหัส PL/SQL ที่รองรับหรือไม่is_wrapped_path(path) - เหมือนกับ is_wrapped แต่อาร์กิวเมนต์ถือเป็นพา ธ ไปยังไฟล์ที่มีรหัสที่เป็นไปได้is_wrappable(fl) - ตรวจสอบข้อมูลที่ได้รับการสนับสนุนรหัส PL/SQL ที่ห่อหุ้มไว้fl - เหมือนกับ normalizebool , วัตถุ PL/SQL ที่ห่อหุ้มได้ในรหัสหรือไม่is_wrappable_path(path) - เหมือนกับ is_wrappable แต่อาร์กิวเมนต์ถือเป็นพา ธ ไปยังไฟล์ที่มีรหัสที่เป็นไปได้ PLSQLNormalizationFlags - การแจงนับของธง:
uppercaseno_commentsno_spacesno_literalscomments_onlyดูคำอธิบายโดยละเอียดด้านบนในบท การตั้งค่าสถานะปกติอื่น จากส่วน คำศัพท์การทำให้เป็นมาตรฐาน
ทำให้ไฟล์ทั้งหมดเป็นปกติไปยังไฟล์อื่น เรียกใช้สิ่งนี้เพื่อรับรายการอาร์กิวเมนต์:
python -m oc_sql_helpers.normalizer --help