Pārlūkot izejas kodu

支持中职解析,更新入库参数

莺声燕语 1 gadu atpakaļ
vecāks
revīzija
47af7b2e15

+ 343 - 211
.idea/workspace.xml

@@ -3,13 +3,13 @@
   <component name="ChangeListManager">
     <list default="true" id="264b59ce-0122-420f-a5d3-3ffa8b015ccb" name="Default Changelist" comment="">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/configs.py" beforeDir="false" afterPath="$PROJECT_DIR$/configs.py" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/structure/ans_structure.py" beforeDir="false" afterPath="$PROJECT_DIR$/structure/ans_structure.py" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/structure/danti_structure.py" beforeDir="false" afterPath="$PROJECT_DIR$/structure/danti_structure.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/server.py" beforeDir="false" afterPath="$PROJECT_DIR$/server.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/structure/stems_structure.py" beforeDir="false" afterPath="$PROJECT_DIR$/structure/stems_structure.py" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/structure/three_parse_structure.py" beforeDir="false" afterPath="$PROJECT_DIR$/structure/three_parse_structure.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/structure/structure_main.py" beforeDir="false" afterPath="$PROJECT_DIR$/structure/structure_main.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/test.py" beforeDir="false" afterPath="$PROJECT_DIR$/test.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/utils/field_eq2latex.py" beforeDir="false" afterPath="$PROJECT_DIR$/utils/field_eq2latex.py" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/utils/insert_keywords.py" beforeDir="false" afterPath="$PROJECT_DIR$/utils/insert_keywords.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/utils/item_type_line.py" beforeDir="false" afterPath="$PROJECT_DIR$/utils/item_type_line.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/utils/qcloud_bucket.py" beforeDir="false" afterPath="$PROJECT_DIR$/utils/qcloud_bucket.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/utils/ruku_opera.py" beforeDir="false" afterPath="$PROJECT_DIR$/utils/ruku_opera.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/utils/topic_no.py" beforeDir="false" afterPath="$PROJECT_DIR$/utils/topic_no.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/utils/washutil.py" beforeDir="false" afterPath="$PROJECT_DIR$/utils/washutil.py" afterDir="false" />
@@ -41,8 +41,8 @@
       <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/structure/structure_main.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-1639">
-              <caret line="175" column="17" lean-forward="true" selection-start-line="175" selection-start-column="17" selection-end-line="175" selection-end-column="17" />
+            <state relative-caret-position="502">
+              <caret line="204" column="73" selection-start-line="204" selection-start-column="49" selection-end-line="204" selection-end-column="73" />
               <folding>
                 <element signature="e#47#72#0" expanded="true" />
                 <element signature="e#4704#4745#0" />
@@ -53,24 +53,111 @@
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/configs.py">
+        <entry file="file://$PROJECT_DIR$/utils/washutil.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="5474">
-              <caret line="165" column="5" selection-start-line="165" selection-start-column="5" selection-end-line="165" selection-end-column="5" />
+            <state relative-caret-position="85">
+              <caret line="189" selection-start-line="189" selection-end-line="189" />
               <folding>
-                <element signature="e#46#60#0" expanded="true" />
+                <element signature="e#138#153#0" expanded="true" />
+                <element signature="e#1800#4219#0" />
+                <element signature="e#5250#7021#0" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/server.py">
+        <entry file="file://$PROJECT_DIR$/structure/ans_structure1.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="210">
-              <caret line="78" column="65" lean-forward="true" selection-start-line="78" selection-start-column="65" selection-end-line="78" selection-end-column="65" />
+            <state relative-caret-position="423">
+              <caret line="46" column="33" lean-forward="true" selection-start-line="46" selection-start-column="33" selection-end-line="46" selection-end-column="33" />
               <folding>
-                <element signature="e#105#118#0" expanded="true" />
+                <element signature="e#2572#2642#0" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/structure/final_structure.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="170">
+              <caret line="71" column="36" lean-forward="true" selection-start-line="71" selection-start-column="36" selection-end-line="71" selection-end-column="36" />
+              <folding>
+                <element signature="e#11#20#0" expanded="true" />
+                <element signature="e#5542#5587#0" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/structure/option.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="238">
+              <caret line="129" column="41" lean-forward="true" selection-start-line="129" selection-start-column="41" selection-end-line="129" selection-end-column="41" />
+              <folding>
+                <element signature="e#46#59#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/structure/ans_structure.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-89">
+              <caret line="111" selection-start-line="111" selection-end-line="111" />
+              <folding>
+                <element signature="e#47#56#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/structure/stems_structure.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="519">
+              <caret line="242" selection-start-line="242" selection-end-line="242" />
+              <folding>
+                <element signature="e#46#55#0" expanded="true" />
+                <element signature="e#2453#3213#0" />
+                <element signature="e#3569#3576#0" />
+                <element signature="e#8259#8324#0" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/utils/topic_no.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-1836">
+              <caret line="124" column="4" selection-start-line="124" selection-start-column="4" selection-end-line="124" selection-end-column="4" />
+              <folding>
+                <element signature="e#46#55#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/utils/item_type_line.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="312">
+              <caret line="52" column="43" lean-forward="true" selection-start-line="52" selection-start-column="43" selection-end-line="52" selection-end-column="43" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/structure/three_parse_structure.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="41">
+              <caret line="53" column="24" selection-start-line="53" selection-start-column="24" selection-end-line="53" selection-end-column="24" />
+              <folding>
+                <element signature="e#241#278#0" expanded="true" />
               </folding>
             </state>
           </provider>
@@ -87,36 +174,36 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>入库失败</find>
-      <find>answer_type</find>
-      <find>subject</find>
-      <find>判断题</find>
-      <find>12</find>
-      <find>正确</find>
-      <find>data</find>
-      <find>9f</find>
-      <find>post</find>
-      <find>ut</find>
-      <find>fe</find>
-      <find>[\</find>
-      <find>slave2regroup</find>
-      <find>2222222222222222</find>
-      <find>get_diff</find>
-      <find>33333333333</find>
-      <find>自动</find>
-      <find>kps_auto</find>
-      <find>kps_label_time</find>
-      <find>repeat_check</find>
-      <find>callback_user</find>
-      <find>print</find>
-      <find>auto_mark_result</find>
-      <find>svg2png</find>
-      <find>urllib</find>
-      <find>&lt;img src</find>
-      <find>判断</find>
       <find>Hmath_kps</find>
-      <find>get_kps_auto</find>
       <find>1-4</find>
+      <find>get_kps_auto</find>
+      <find>sub</find>
+      <find>6419746d11a1cdad550f5502.html</find>
+      <find>没有题型行或题目和答案的题型个数不一致或第一次解析失败</find>
+      <find>&amp;lt;</find>
+      <find>table</find>
+      <find>图片太小</find>
+      <find>PIL</find>
+      <find>Image</find>
+      <find>size</find>
+      <find>configs.IMG_FOLDER</find>
+      <find>tr</find>
+      <find>external_ip</find>
+      <find>subject_id</find>
+      <find>self.subject</find>
+      <find>answer_type</find>
+      <find>太小</find>
+      <find>slave2regroup</find>
+      <find>小</find>
+      <find>图片</find>
+      <find>res_xbk</find>
+      <find>649809dba3693ef35281fba0</find>
+      <find>self.callback_err</find>
+      <find>第一种题号切分方案</find>
+      <find>答案个数有问题</find>
+      <find>title_type_num</find>
+      <find>right_type</find>
+      <find>item_type_num</find>
     </findStrings>
     <replaceStrings>
       <replace>cur_type</replace>
@@ -170,9 +257,7 @@
         <option value="$PROJECT_DIR$/ruku_test.py" />
         <option value="$PROJECT_DIR$/app_test.py" />
         <option value="$PROJECT_DIR$/utils/equation_extract.py" />
-        <option value="$PROJECT_DIR$/test.py" />
         <option value="$PROJECT_DIR$/utils/xuanzuoti2slave.py" />
-        <option value="$PROJECT_DIR$/utils/qcloud_bucket.py" />
         <option value="$PROJECT_DIR$/utils/ruku2.py" />
         <option value="$PROJECT_DIR$/utils/stem_ans_split.py" />
         <option value="$PROJECT_DIR$/svg_data1.pickle" />
@@ -180,24 +265,26 @@
         <option value="$PROJECT_DIR$/utils/ruku_opera2.py" />
         <option value="$PROJECT_DIR$/utils/ruku_test.py" />
         <option value="$PROJECT_DIR$/utils/pic_pos_judge.py" />
-        <option value="$PROJECT_DIR$/utils/item_type_line.py" />
         <option value="$PROJECT_DIR$/structure/option.py" />
         <option value="$PROJECT_DIR$/structure/dati2slave.py" />
-        <option value="$PROJECT_DIR$/structure/structure_main.py" />
         <option value="$PROJECT_DIR$/utils/html_again_parse.py" />
-        <option value="$PROJECT_DIR$/server.py" />
         <option value="$PROJECT_DIR$/ceshi.py" />
         <option value="$PROJECT_DIR$/utils/image_convert.py" />
         <option value="$PROJECT_DIR$/structure/final_structure.py" />
-        <option value="$PROJECT_DIR$/utils/field_eq2latex.py" />
-        <option value="$PROJECT_DIR$/utils/ruku_opera.py" />
         <option value="$PROJECT_DIR$/configs.py" />
-        <option value="$PROJECT_DIR$/utils/washutil.py" />
         <option value="$PROJECT_DIR$/structure/danti_structure.py" />
         <option value="$PROJECT_DIR$/utils/insert_keywords.py" />
-        <option value="$PROJECT_DIR$/utils/topic_no.py" />
         <option value="$PROJECT_DIR$/structure/ans_structure.py" />
+        <option value="$PROJECT_DIR$/test.py" />
+        <option value="$PROJECT_DIR$/utils/washutil.py" />
+        <option value="$PROJECT_DIR$/utils/field_eq2latex.py" />
+        <option value="$PROJECT_DIR$/utils/topic_no.py" />
+        <option value="$PROJECT_DIR$/utils/qcloud_bucket.py" />
+        <option value="$PROJECT_DIR$/utils/ruku_opera.py" />
+        <option value="$PROJECT_DIR$/server.py" />
+        <option value="$PROJECT_DIR$/structure/structure_main.py" />
         <option value="$PROJECT_DIR$/structure/three_parse_structure.py" />
+        <option value="$PROJECT_DIR$/utils/item_type_line.py" />
         <option value="$PROJECT_DIR$/structure/stems_structure.py" />
       </list>
     </option>
@@ -248,7 +335,7 @@
     <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="ignore_missing_gitignore" value="true" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/../../parse_online58" />
+    <property name="last_opened_file_path" value="F:/shuxue_jiegouhua/word_py_823_online" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
     <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
@@ -275,8 +362,8 @@
       </list>
     </option>
   </component>
-  <component name="RunManager" selected="Python.server">
-    <configuration name="ceshi" type="PythonConfigurationType" factoryName="Python" temporary="true">
+  <component name="RunManager" selected="Python.structure_main">
+    <configuration name="field_eq2latex" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <module name="parse_online58" />
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
@@ -284,11 +371,11 @@
         <env name="PYTHONUNBUFFERED" value="1" />
       </envs>
       <option name="SDK_HOME" value="" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/utils" />
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/ceshi.py" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/utils/field_eq2latex.py" />
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
@@ -297,7 +384,7 @@
       <option name="INPUT_FILE" value="" />
       <method v="2" />
     </configuration>
-    <configuration name="field_eq2latex" type="PythonConfigurationType" factoryName="Python" temporary="true">
+    <configuration name="image_convert" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <module name="parse_online58" />
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
@@ -309,7 +396,7 @@
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/utils/field_eq2latex.py" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/utils/image_convert.py" />
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
@@ -318,7 +405,7 @@
       <option name="INPUT_FILE" value="" />
       <method v="2" />
     </configuration>
-    <configuration name="image_convert" type="PythonConfigurationType" factoryName="Python" temporary="true">
+    <configuration name="server" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <module name="parse_online58" />
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
@@ -326,11 +413,11 @@
         <env name="PYTHONUNBUFFERED" value="1" />
       </envs>
       <option name="SDK_HOME" value="" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/utils" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/utils/image_convert.py" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/server.py" />
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
@@ -339,7 +426,7 @@
       <option name="INPUT_FILE" value="" />
       <method v="2" />
     </configuration>
-    <configuration name="server" type="PythonConfigurationType" factoryName="Python" temporary="true">
+    <configuration name="structure_main" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <module name="parse_online58" />
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
@@ -347,11 +434,11 @@
         <env name="PYTHONUNBUFFERED" value="1" />
       </envs>
       <option name="SDK_HOME" value="" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/structure" />
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/server.py" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/structure/structure_main.py" />
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
@@ -360,7 +447,7 @@
       <option name="INPUT_FILE" value="" />
       <method v="2" />
     </configuration>
-    <configuration name="structure_main" type="PythonConfigurationType" factoryName="Python" temporary="true">
+    <configuration name="test" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <module name="parse_online58" />
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
@@ -368,11 +455,11 @@
         <env name="PYTHONUNBUFFERED" value="1" />
       </envs>
       <option name="SDK_HOME" value="" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/structure" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/structure/structure_main.py" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/test.py" />
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
@@ -398,18 +485,18 @@
     </configuration>
     <list>
       <item itemvalue="Python.server" />
-      <item itemvalue="Python.structure_main" />
-      <item itemvalue="Python.ceshi" />
       <item itemvalue="Python.field_eq2latex" />
       <item itemvalue="Python.image_convert" />
+      <item itemvalue="Python.test" />
+      <item itemvalue="Python.structure_main" />
     </list>
     <recent_temporary>
       <list>
+        <item itemvalue="Python.structure_main" />
         <item itemvalue="Python.server" />
+        <item itemvalue="Python.test" />
         <item itemvalue="Python.field_eq2latex" />
         <item itemvalue="Python.image_convert" />
-        <item itemvalue="Python.ceshi" />
-        <item itemvalue="Python.structure_main" />
       </list>
     </recent_temporary>
   </component>
@@ -718,7 +805,14 @@
       <option name="project" value="LOCAL" />
       <updated>1669811072980</updated>
     </task>
-    <option name="localTasksCounter" value="43" />
+    <task id="LOCAL-00043" summary="将题型限制相关改为99题">
+      <created>1676889553412</created>
+      <option name="number" value="00043" />
+      <option name="presentableId" value="LOCAL-00043" />
+      <option name="project" value="LOCAL" />
+      <updated>1676889553412</updated>
+    </task>
+    <option name="localTasksCounter" value="44" />
     <servers />
   </component>
   <component name="TodoView">
@@ -731,17 +825,17 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
+    <frame x="-8" y="-8" width="1936" height="1056" extended-state="7" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4985591" visible="true" weight="0.17800212" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.4985591" visible="true" weight="0.17215727" />
       <window_info id="Structure" order="1" sideWeight="0.50144094" side_tool="true" weight="0.15773447" />
       <window_info id="Favorites" order="2" sideWeight="0.50144094" side_tool="true" weight="0.15773447" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.499391" visible="true" weight="0.25738916" />
-      <window_info anchor="bottom" id="Terminal" order="3" weight="0.13423645" />
-      <window_info anchor="bottom" id="Debug" order="4" sideWeight="0.499391" weight="0.34852216" />
+      <window_info anchor="bottom" id="Run" order="2" sideWeight="0.499391" weight="0.35591134" />
+      <window_info anchor="bottom" id="Terminal" order="3" weight="0.48768473" />
+      <window_info anchor="bottom" id="Debug" order="4" sideWeight="0.499391" weight="0.32635468" />
       <window_info anchor="bottom" id="Cvs" order="5" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="6" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="7" weight="0.32881773" />
@@ -757,14 +851,14 @@
       <window_info anchor="right" id="Database" order="4" />
     </layout>
     <layout-to-restore>
-      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4985591" visible="true" weight="0.21360256" />
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.4985591" visible="true" weight="0.17215727" />
       <window_info id="Structure" order="1" sideWeight="0.50144094" side_tool="true" weight="0.15773447" />
       <window_info id="Favorites" order="2" sideWeight="0.50144094" side_tool="true" weight="0.15773447" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.499391" visible="true" weight="0.432266" />
-      <window_info anchor="bottom" id="Terminal" order="3" weight="0.13423645" />
-      <window_info anchor="bottom" id="Debug" order="4" sideWeight="0.499391" weight="0.34852216" />
+      <window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.499391" visible="true" weight="0.35591134" />
+      <window_info anchor="bottom" id="Terminal" order="3" weight="0.48768473" />
+      <window_info anchor="bottom" id="Debug" order="4" sideWeight="0.499391" weight="0.32635468" />
       <window_info anchor="bottom" id="Cvs" order="5" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="6" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="7" weight="0.32881773" />
@@ -784,7 +878,6 @@
     <option name="version" value="1" />
   </component>
   <component name="VcsManagerConfiguration">
-    <MESSAGE value="导致渲染问题的公式规范化处理及&amp;amp;符号处理" />
     <MESSAGE value="渲染问题公式规范化处理及&amp;amp;符号处理" />
     <MESSAGE value="更新" />
     <MESSAGE value="更新latex_wash" />
@@ -809,19 +902,20 @@
     <MESSAGE value="保存入库回调带上请求头" />
     <MESSAGE value="保存入库时调大svg2png的分辨率并对分式的latex调大尺寸" />
     <MESSAGE value="保存入库时重新调整svg2png的图片尺寸&#10;选择题题干去掉换行" />
-    <option name="LAST_COMMIT_MESSAGE" value="保存入库时重新调整svg2png的图片尺寸&#10;选择题题干去掉换行" />
+    <MESSAGE value="将题型限制相关改为99题" />
+    <option name="LAST_COMMIT_MESSAGE" value="将题型限制相关改为99题" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
       <breakpoints>
         <line-breakpoint suspend="THREAD" type="python-line">
           <url>file://$PROJECT_DIR$/utils/field_eq2latex.py</url>
-          <line>375</line>
+          <line>376</line>
           <option name="timeStamp" value="118" />
         </line-breakpoint>
         <line-breakpoint suspend="THREAD" type="python-line">
           <url>file://$PROJECT_DIR$/utils/ruku_opera.py</url>
-          <line>892</line>
+          <line>897</line>
           <option name="timeStamp" value="131" />
         </line-breakpoint>
         <line-breakpoint suspend="THREAD" type="python-line">
@@ -891,7 +985,7 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
           <url>file://$PROJECT_DIR$/utils/ruku_opera.py</url>
-          <line>902</line>
+          <line>907</line>
           <option name="timeStamp" value="197" />
         </line-breakpoint>
         <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
@@ -929,11 +1023,6 @@
           <line>41</line>
           <option name="timeStamp" value="237" />
         </line-breakpoint>
-        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
-          <url>file://$PROJECT_DIR$/utils/washutil.py</url>
-          <line>189</line>
-          <option name="timeStamp" value="238" />
-        </line-breakpoint>
         <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
           <url>file://$PROJECT_DIR$/utils/html_again_parse.py</url>
           <line>82</line>
@@ -941,9 +1030,39 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
           <url>file://$PROJECT_DIR$/utils/ruku_opera.py</url>
-          <line>603</line>
+          <line>607</line>
           <option name="timeStamp" value="241" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/structure/three_parse_structure.py</url>
+          <line>105</line>
+          <option name="timeStamp" value="242" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/structure/three_parse_structure.py</url>
+          <line>114</line>
+          <option name="timeStamp" value="243" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/structure/ans_structure.py</url>
+          <line>473</line>
+          <option name="timeStamp" value="244" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/structure/stems_structure.py</url>
+          <line>94</line>
+          <option name="timeStamp" value="246" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/structure/ans_structure.py</url>
+          <line>44</line>
+          <option name="timeStamp" value="247" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/structure/stems_structure.py</url>
+          <line>170</line>
+          <option name="timeStamp" value="248" />
+        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
     <watches-manager>
@@ -967,9 +1086,6 @@
     </expressions>
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/res_folder/10-28.json">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
     <entry file="file://$PROJECT_DIR$/res_folder/8d1ba9ffe85469040f6fd011b7a43336__2021_04_02_15_59_36.json">
       <provider selected="true" editor-type-id="text-editor">
         <state>
@@ -1052,16 +1168,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/qcloud_bucket.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="476">
-          <caret line="14" column="14" lean-forward="true" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
-          <folding>
-            <element signature="e#132#147#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/svg_data1.pickle">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="34">
@@ -1137,212 +1243,247 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test.py">
+    <entry file="file://$PROJECT_DIR$/logs/structure_log.txt">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/logs/parse_log.log">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/utils/pic_pos_judge.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="890">
-          <caret line="265" selection-start-line="265" selection-end-line="265" />
+        <state relative-caret-position="2176">
+          <caret line="64" selection-start-line="64" selection-end-line="64" />
           <folding>
-            <element signature="e#45#60#0" expanded="true" />
+            <marker date="1655779633177" expanded="true" signature="95:100" ph="..." />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/structure/ans_structure.py">
+    <entry file="file://$PROJECT_DIR$/utils/ruku_test.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="339">
-          <caret line="371" column="41" selection-start-line="371" selection-start-column="41" selection-end-line="371" selection-end-column="41" />
+        <state relative-caret-position="27540">
+          <caret line="859" column="41" selection-start-line="859" selection-start-column="41" selection-end-line="859" selection-end-column="41" />
           <folding>
-            <element signature="e#47#56#0" expanded="true" />
+            <element signature="e#24#46#0" expanded="true" />
+            <element signature="e#1334#4074#0" />
+            <element signature="e#2169#2246#0" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/ruku_test.py">
+    <entry file="file://C:/Anaconda3/Lib/site-packages/wand/image.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-378">
-          <caret line="36" column="17" selection-start-line="36" selection-start-column="17" selection-end-line="36" selection-end-column="17" />
+        <state relative-caret-position="805">
+          <caret line="9050" column="8" selection-start-line="9050" selection-start-column="8" selection-end-line="9050" selection-end-column="8" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/utils/diffi_label.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="204">
+          <caret line="9" column="4" selection-start-line="9" selection-start-column="4" selection-end-line="9" selection-end-column="4" />
           <folding>
-            <element signature="e#1#10#0" expanded="true" />
+            <element signature="e#0#11#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/item_type_line.py">
+    <entry file="file://$PROJECT_DIR$/utils/image_convert.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="191">
-          <caret line="27" column="69" selection-start-line="27" selection-start-column="69" selection-end-line="27" selection-end-column="69" />
+        <state relative-caret-position="224">
+          <caret line="18" column="4" selection-start-line="18" selection-start-column="4" selection-end-line="18" selection-end-column="4" />
+          <folding>
+            <element signature="e#0#36#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/logs/structure_log.txt">
-      <provider selected="true" editor-type-id="text-editor" />
+    <entry file="file://$PROJECT_DIR$/utils/insert_keywords.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-2563">
+          <caret line="29" column="58" selection-start-line="29" selection-start-column="58" selection-end-line="29" selection-end-column="58" />
+        </state>
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/logs/parse_log.log">
-      <provider selected="true" editor-type-id="text-editor" />
+    <entry file="file://$PROJECT_DIR$/structure/dati2slave.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="204">
+          <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" />
+          <folding>
+            <element signature="e#46#55#0" expanded="true" />
+            <element signature="e#5987#6021#0" />
+          </folding>
+        </state>
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/pic_pos_judge.py">
+    <entry file="file://$PROJECT_DIR$/ruku_test.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2176">
-          <caret line="64" selection-start-line="64" selection-end-line="64" />
+        <state relative-caret-position="121">
+          <caret line="36" column="17" selection-start-line="36" selection-start-column="17" selection-end-line="36" selection-end-column="17" />
           <folding>
-            <marker date="1655779633177" expanded="true" signature="95:100" ph="..." />
+            <element signature="e#1#10#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/html_again_parse.py">
+    <entry file="file://$PROJECT_DIR$/ceshi.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="5338">
-          <caret line="160" selection-start-line="160" selection-end-line="160" />
+        <state relative-caret-position="325">
+          <caret line="234" selection-start-line="234" selection-end-line="234" />
           <folding>
-            <element signature="e#24#33#0" expanded="true" />
+            <element signature="e#47#96#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/structure/dati2slave.py">
+    <entry file="file://$PROJECT_DIR$/test.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="102">
-          <caret line="3" column="9" selection-start-line="3" selection-start-column="9" selection-end-line="3" selection-end-column="9" />
+        <state relative-caret-position="11764">
+          <caret line="283" column="14" selection-start-line="283" selection-start-column="14" selection-end-line="283" selection-end-column="14" />
           <folding>
-            <element signature="e#5987#6021#0" />
+            <element signature="e#45#60#0" expanded="true" />
+            <marker date="1677118749358" expanded="true" signature="44817:45052" ph="..." />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/ruku_test.py">
+    <entry file="file://$PROJECT_DIR$/structure/danti_structure.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="27540">
-          <caret line="859" column="41" selection-start-line="859" selection-start-column="41" selection-end-line="859" selection-end-column="41" />
+        <state relative-caret-position="1156">
+          <caret line="41" column="21" selection-start-line="41" selection-start-column="21" selection-end-line="41" selection-end-column="21" />
           <folding>
-            <element signature="e#24#46#0" expanded="true" />
-            <element signature="e#1334#4074#0" />
-            <element signature="e#2169#2246#0" />
+            <element signature="e#64#73#0" expanded="true" />
+            <element signature="e#499#538#0" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://C:/Anaconda3/Lib/site-packages/wand/image.py">
+    <entry file="file://$PROJECT_DIR$/utils/field_eq2latex.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="805">
-          <caret line="9050" column="8" selection-start-line="9050" selection-start-column="8" selection-end-line="9050" selection-end-column="8" />
+        <state relative-caret-position="1224">
+          <caret line="40" selection-start-line="40" selection-end-line="40" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/diffi_label.py">
+    <entry file="file://$PROJECT_DIR$/configs.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="204">
-          <caret line="9" column="4" selection-start-line="9" selection-start-column="4" selection-end-line="9" selection-end-column="4" />
+        <state relative-caret-position="149">
+          <caret line="133" column="38" selection-start-line="133" selection-start-column="38" selection-end-line="133" selection-end-column="38" />
           <folding>
-            <element signature="e#0#11#0" expanded="true" />
+            <element signature="e#46#60#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/image_convert.py">
+    <entry file="file://$PROJECT_DIR$/utils/qcloud_bucket.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="224">
-          <caret line="18" column="4" selection-start-line="18" selection-start-column="4" selection-end-line="18" selection-end-column="4" />
+        <state relative-caret-position="225">
+          <caret line="24" column="41" selection-start-line="24" selection-start-column="40" selection-end-line="24" selection-end-column="41" />
           <folding>
-            <element signature="e#0#36#0" expanded="true" />
+            <element signature="e#132#147#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/ruku_opera.py">
+    <entry file="file://$PROJECT_DIR$/utils/html_again_parse.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="20672">
-          <caret line="621" column="64" selection-start-line="621" selection-start-column="64" selection-end-line="621" selection-end-column="64" />
+        <state relative-caret-position="-678">
+          <caret line="43" column="4" selection-start-line="43" selection-start-column="4" selection-end-line="43" selection-end-column="4" />
           <folding>
-            <element signature="e#24#46#0" expanded="true" />
+            <element signature="e#24#33#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/structure/final_structure.py">
+    <entry file="file://$PROJECT_DIR$/server.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2312">
-          <caret line="71" column="36" selection-start-line="71" selection-start-column="36" selection-end-line="71" selection-end-column="36" />
+        <state relative-caret-position="-724">
+          <caret line="185" column="49" lean-forward="true" selection-start-line="185" selection-start-column="49" selection-end-line="185" selection-end-column="49" />
           <folding>
-            <element signature="e#11#20#0" expanded="true" />
+            <element signature="e#105#118#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/ceshi.py">
+    <entry file="file://$PROJECT_DIR$/utils/ruku_opera.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="7820">
-          <caret line="234" selection-start-line="234" selection-end-line="234" />
+        <state relative-caret-position="38">
+          <caret line="155" column="21" lean-forward="true" selection-start-line="155" selection-start-column="21" selection-end-line="155" selection-end-column="21" />
           <folding>
-            <element signature="e#47#96#0" expanded="true" />
+            <element signature="e#24#46#0" expanded="true" />
+            <element signature="e#657#945#0" />
+            <element signature="e#20882#20927#0" />
+            <element signature="e#33633#33639#0" />
+            <element signature="e#36003#38066#0" />
+            <element signature="e#38118#38760#0" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/structure/option.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2788">
-          <caret line="86" column="26" selection-start-line="86" selection-start-column="26" selection-end-line="86" selection-end-column="26" />
+        <state relative-caret-position="238">
+          <caret line="129" column="41" lean-forward="true" selection-start-line="129" selection-start-column="41" selection-end-line="129" selection-end-column="41" />
           <folding>
             <element signature="e#46#59#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/configs.py">
+    <entry file="file://$PROJECT_DIR$/structure/final_structure.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="5474">
-          <caret line="165" column="5" selection-start-line="165" selection-start-column="5" selection-end-line="165" selection-end-column="5" />
+        <state relative-caret-position="170">
+          <caret line="71" column="36" lean-forward="true" selection-start-line="71" selection-start-column="36" selection-end-line="71" selection-end-column="36" />
           <folding>
-            <element signature="e#46#60#0" expanded="true" />
+            <element signature="e#11#20#0" expanded="true" />
+            <element signature="e#5542#5587#0" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/server.py">
+    <entry file="file://$PROJECT_DIR$/structure/ans_structure1.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="210">
-          <caret line="78" column="65" lean-forward="true" selection-start-line="78" selection-start-column="65" selection-end-line="78" selection-end-column="65" />
+        <state relative-caret-position="423">
+          <caret line="46" column="33" lean-forward="true" selection-start-line="46" selection-start-column="33" selection-end-line="46" selection-end-column="33" />
           <folding>
-            <element signature="e#105#118#0" expanded="true" />
+            <element signature="e#2572#2642#0" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/utils/washutil.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-14848">
-          <caret line="301" column="54" lean-forward="true" selection-start-line="301" selection-start-column="54" selection-end-line="301" selection-end-column="54" />
+        <state relative-caret-position="85">
+          <caret line="189" selection-start-line="189" selection-end-line="189" />
           <folding>
             <element signature="e#138#153#0" expanded="true" />
             <element signature="e#1800#4219#0" />
-            <element signature="e#36470#36532#0" />
-            <element signature="e#36922#36996#0" />
+            <element signature="e#5250#7021#0" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/insert_keywords.py">
+    <entry file="file://$PROJECT_DIR$/structure/ans_structure.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-2563">
-          <caret line="29" column="58" selection-start-line="29" selection-start-column="58" selection-end-line="29" selection-end-column="58" />
+        <state relative-caret-position="-89">
+          <caret line="111" selection-start-line="111" selection-end-line="111" />
+          <folding>
+            <element signature="e#47#56#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/structure/stems_structure.py">
+    <entry file="file://$PROJECT_DIR$/utils/item_type_line.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="468">
-          <caret line="20" column="11" selection-start-line="20" selection-start-column="11" selection-end-line="20" selection-end-column="11" />
-          <folding>
-            <element signature="e#3569#3576#0" />
-          </folding>
+        <state relative-caret-position="312">
+          <caret line="52" column="43" lean-forward="true" selection-start-line="52" selection-start-column="43" selection-end-line="52" selection-end-column="43" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/structure/three_parse_structure.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="3432">
-          <caret line="132" column="4" selection-start-line="132" selection-start-column="4" selection-end-line="132" selection-end-column="4" />
+        <state relative-caret-position="41">
+          <caret line="53" column="24" selection-start-line="53" selection-start-column="24" selection-end-line="53" selection-end-column="24" />
           <folding>
             <element signature="e#241#278#0" expanded="true" />
           </folding>
@@ -1351,40 +1492,31 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/utils/topic_no.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-7412">
-          <caret line="84" lean-forward="true" selection-start-line="84" selection-end-line="84" />
+        <state relative-caret-position="-1836">
+          <caret line="124" column="4" selection-start-line="124" selection-start-column="4" selection-end-line="124" selection-end-column="4" />
           <folding>
             <element signature="e#46#55#0" expanded="true" />
-            <element signature="e#9944#9957#0" />
-            <element signature="e#11002#11066#0" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/utils/field_eq2latex.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="9856">
-          <caret line="356" column="9" selection-start-line="356" selection-start-column="9" selection-end-line="356" selection-end-column="9" />
-          <folding>
-            <element signature="e#16205#16289#0" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/structure/danti_structure.py">
+    <entry file="file://$PROJECT_DIR$/structure/stems_structure.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-2201">
-          <caret line="40" column="50" selection-start-line="40" selection-start-column="50" selection-end-line="40" selection-end-column="50" />
+        <state relative-caret-position="519">
+          <caret line="242" selection-start-line="242" selection-end-line="242" />
           <folding>
-            <element signature="e#64#73#0" expanded="true" />
+            <element signature="e#46#55#0" expanded="true" />
+            <element signature="e#2453#3213#0" />
+            <element signature="e#3569#3576#0" />
+            <element signature="e#8259#8324#0" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/structure/structure_main.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-1639">
-          <caret line="175" column="17" lean-forward="true" selection-start-line="175" selection-start-column="17" selection-end-line="175" selection-end-column="17" />
+        <state relative-caret-position="502">
+          <caret line="204" column="73" selection-start-line="204" selection-start-column="49" selection-end-line="204" selection-end-column="73" />
           <folding>
             <element signature="e#47#72#0" expanded="true" />
             <element signature="e#4704#4745#0" />

+ 1 - 1
server.py

@@ -175,7 +175,7 @@ def danti_structure():
 @app.route('/ruku', methods=["POST"])
 def ruku():
     wordid = request.json.get("paper_id", "")
-    subject = request.json.get("subject", "")
+    subject = request.json.get("subject", "")  # 实际传的subject_id(int型)
     items_list = request.json.get("structured_items", "")  # 结构化试题
     ocr_html_data = request.json.get("html_data", "")  # 文本原始内容
     svg_data = request.json.get("svgs", {"svg_html_data": "", "svg_path": ""})  # mathjax的相关文本

+ 6 - 2
structure/stems_structure.py

@@ -225,9 +225,13 @@ def stems_structure_byno(stem_con):
             for idx, type_num in enumerate(item_type_num):
                 if type_num[1] == title_type_num[idx][1] > 0:  # 同一题型是否题量一致
                     right_type.append((idx, type_num[0]))
-                elif title_type_num[idx][1] == 0 and type_num[1] == 1:
-                    title_type_num[idx][1] = 1
+                # elif title_type_num[idx][1] == 0 and type_num[1] == 1:
+                #     title_type_num[idx][1] = 1
+                #     right_type.append((idx, type_num[0]))
+                elif title_type_num[idx][1] == 0 and type_num[1] >= 1:  # 2023.6.26
+                    title_type_num[idx][1] = type_num[1]
                     right_type.append((idx, type_num[0]))
+        print("right_type::item_type_num", right_type, item_type_num)
         if right_type:
             for rtype in right_type:
                 for idx, item in enumerate(res):

+ 3 - 3
structure/structure_main.py

@@ -202,8 +202,8 @@ if __name__ == '__main__':
 
         # print(load_dict)
 
-    # path2 = r"F:\zwj\Text_Structure\accept_files\628c459781b582c0470d02d7.html"
-    path2 = r"C:\Users\Python\Desktop\62e0ac706c6aff2279346f3b.html"
+    path2 = r"F:\zwj\Text_Structure\accept_files\64994dc4a3693ef35281fbc5.html"
+    # path2 = r"C:\Users\Python\Desktop\bug\6419746d11a1cdad550f5502.html"
     # path2 = r"F:\zwj\Text_Structure\new_tiku_structure_v3_sci\data\620bbf7aa7d375f4518b98e1.html"
     # path2 = r"F:\zwj\new_word_text_extract_v2\data\地理\2\2020-2021学年广东省揭阳市揭西县五校九年级(下)第二次联考地理试卷-普通用卷.html"
     # path2 = r"F:\zwj\new_word_parse_2021\data\huaxue\huexue2.html"
@@ -221,7 +221,7 @@ if __name__ == '__main__':
     # re_f = open(new_fpath, 'a+', encoding='utf-8')
     # for i in res1[0]["items"]:
     #     re_f.write(str(i))
-    pprint(res1)
+    # pprint(res1)
     # pprint(res1[0]['items'])
     print('题目数量:', len(res1[0]["items"]))
 

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 21 - 21
test.py


+ 1 - 0
utils/field_eq2latex.py

@@ -37,6 +37,7 @@ def latex_wash(ltx, is_danti=0):
     # 处理\left和\right单独出现的情况
     ltx = re.sub(r"\$\\left\s*[((]\$", "(", ltx)
     ltx = re.sub(r"\$\\right\s*[))]\$", ")", ltx)
+    ltx = re.sub(r"\$\s*\\text{\s*\}\s*\$", "", ltx)
 
     def sub1(ss):
         if re.search(r"\\left.*?\\right|\\right.*?\\left", ss.group(1)) is None:

+ 1 - 1
utils/item_type_line.py

@@ -46,7 +46,7 @@ def get_item_head_info(items_str):
 
     pattern1 = re.compile(r"[,,.第](\d+)题[^\d]{,5}(\d[\d.]{,2}\d{,2})分")
     pattern2 = re.compile(r"[,,.第](\d+)题?([,,、]\d+题?[,,、])*?[,,、~~](\d+)题?为选[做考]题")
-    pattern3 = re.compile(r"[共计有包含括]+?(\d+)个?小题.*?共(\d[\d.]{,2}\d{,2})分|[共计有]+?(\d+)个?小题")
+    pattern3 = re.compile(r"[共计有包含括]+?(\d+)个?[大]题.*?共(\d[\d.]{,2}\d{,2})分|[共计有]+?(\d+)个?[大]题")
     pattern4 = re.compile(r"共[计有]*?(\d[\d.]{,2}\d{,2})分")
     each_item_score2 = {}  # 第xx题xx分
     select_type_id = []  # 选做题id   第xx题为选做题

+ 7 - 2
utils/qcloud_bucket.py

@@ -9,16 +9,21 @@ from qcloud_cos import CosConfig
 from qcloud_cos import CosS3Client
 from qcloud_cos import CosServiceError
 from qcloud_cos import CosClientError
-import sys
+import sys, io
 import logging
 import requests
 import configs
 
 # 日志
+sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
+handler = logging.StreamHandler(sys.stdout)
+handler.encoding = 'UTF-8'  # 解决控制台输出编码问题
 image_upload_log = configs.parse_log_dir + "/image_log.txt"
 logging.basicConfig(level=logging.INFO,
                     format="[%(asctime)s, %(levelname)s]-%(filename)s-%(lineno)s: %(message)s",
-                    filename=image_upload_log)
+                    filename=image_upload_log,
+                    # handlers=[handler],
+                    )
 
 
 secret_id = "AKIDC9pETRbZfWBbmhoglkT4PUJGzRjmj3Ia"   # "云 API 密钥 SecretId";

+ 21 - 16
utils/ruku_opera.py

@@ -146,7 +146,8 @@ class Ruku():
                 latex = re.findall('<script .+?">(((?!(</)).)*?)</script>(</span>)*', jax[1])
 
                 if latex and svgs:
-                    if latex and not latex[0][0].replace("{", "").replace("}", "").strip():
+                    latex_sub = re.sub(r"\\text{\s*\}|[{\}]", "", latex[0][0])
+                    if latex and not latex_sub.strip():
                         # id_idx = bisect_left(topicidx, jax[0])  # based on 索引而展开二分法查找
                         logger.info("----【paper_id:{}】第{}题存在mathjax公式为空:latex:{}\nsvg:{}".format(
                             self.wordid, jax[0], latex, svgs))  # topicno[id_idx - 1]
@@ -398,7 +399,7 @@ class Ruku():
 
             for nn, one_items in enumerate(deepcopy(items_res_to_zyk)):
                 new_one_item = {}
-                if self.subject == "高中数学":
+                if self.subject == 3:  # "高中数学"
                     new_one_item["difficulty"] = diffs_xbk[nn]
                 # if one_items["checkType"]["name"] == "填空题":
                 #     new_one_item["blank_num"] = one_items["blank_num"]
@@ -474,7 +475,7 @@ class Ruku():
             if self.callback_url:
                 for nn, one_items in enumerate(self.items_list):
                     new_one_item = {}
-                    if self.subject == "高中数学":
+                    if self.subject == 3:  # "高中数学"
                         new_one_item["difficulty"] = diffs_xbk[nn]
                     # 查重
                     if self.source != "xue_guan":
@@ -503,8 +504,11 @@ class Ruku():
         # 先传一份到校本题库,再返回结果
         if self.callback_url:
             #  知识点自动标注--批量
-            if self.subject == "高中数学" and self.source == "qtk": # :
-                res_xbk = self.get_kps_auto(res_xbk)
+            if self.subject == 3 and self.source == "qtk": # "高中数学"
+                try:
+                    res_xbk = self.get_kps_auto(res_xbk)
+                except Exception as e:
+                    logger.info("----【paper_id:{}】高中数学标注异常:{}".format(self.wordid, e))
             # 回调前,将结果保存本地一份
             self.save_post_file(res_xbk)
             have_err = self.callback_user(res_xbk, self.callback_url)
@@ -621,9 +625,9 @@ class Ruku():
             try:
                 r = requests.post(configs.kps_Hmath_ip, json=input_data)  # json={"input_data": item}
                 if r.status_code == 200:
-                    res = r.json()['data']  # eval(r.text)
-                    if res:
-                        label_auto = res
+                    res = r.json()  # eval(r.text)
+                    if res and 'data' in res:
+                        label_auto = res['data']
             except Exception as e:
                 logger.info("----【paper_id:{}】标注服务异常:{}".format(self.wordid, e))
                 return "保存入库高中数学标注服务异常"
@@ -648,17 +652,18 @@ class Ruku():
         #               if "options" in s and s["options"] else s["slave_no"] + s["stem"] for s in one_items["slave"]]
         #     stems += "<br/>".join(stem_l)
         items = all_items["items"]
-        items_info = {"subject_id": subject_id[self.subject],
-                     "topics": [{"topic_id": one_items["id"],
+        items_info = {"subject_id": self.subject,
+                     "topics": [{"topic_id": "123",  # one_items["id"]
                                  "topic_type_id": one_items["checkType"]["id"],
                                  "content": one_items["stem"],
-                                 "parse": one_items["parse"],
-                                 "option": one_items["options"],
-                                 "slave": one_items["slave"]} for one_items in items]
+                                 "parse": one_items["parse"] if "parse" in one_items else "",
+                                 "option": one_items["options"] if "options" in one_items else [],
+                                 "resource_type": 0,
+                                 "slave": one_items["slave"] if "slave" in one_items else []} for one_items in items]
                      }
 
         auto_kps = Hmath_kps(items_info)
-        if type(auto_kps) == str:
+        if  not auto_kps or type(auto_kps) == str:
             pass
         else:
             for nn, one_items in enumerate(all_items["items"]):
@@ -729,7 +734,7 @@ class Ruku():
         #               if "options" in s and s["options"] else s["slave_no"] + s["stem"] for s in one_items["slave"]]
         #     stems += "<br/>".join(stem_l)
         chachong_item_dict = {"topic_id": id + 1,
-                              "subject_id": subject_id[self.subject],
+                              "subject_id": self.subject,
                               "topic_type_id": one_items["checkType"]["id"],
                               "content": stems}
         if "slave" in one_items:
@@ -784,7 +789,7 @@ class Ruku():
                          "paper_id": self.wordid,
                          "callback_res": {"status": "回调成功" if r.status_code == 200 else "回调失败",
                                           "status_code": r.status_code,
-                                          "text": r.text,
+                                          "text": str(r.text),
                                           "callback_url": callback_url},
                          "task_name": "入库回调"}, ensure_ascii=False))
         # except TimeoutError:

+ 1 - 1
utils/topic_no.py

@@ -31,7 +31,7 @@ def judge_item_no_type(items_con):
         # item_no = [int(no) for no in re.findall(r'\n+\s*[((]\s*([1-9]|[1-4][0-9])\s*[))]\s*[..、、]?', all_con)]
         item_no_info2 = [(m.start(), m.group(1)) for m in
                         re.finditer(r'\n+\s*[((]\s*([1-9]|[1-9][0-9])\s*[))]\s*[..、、::]?', all_con) if m]
-        if len(item_no_info) <= 6:
+        if len(item_no_info2) <= 6:
             print("本份试卷题号有问题!")
             item_no_type = 1
         else:

+ 2 - 0
utils/washutil.py

@@ -304,6 +304,7 @@ class HtmlWash():
         html2txt = re.sub('w\s*w\s*w\..*?(\.\s*c\s*o\s*m|\.cn)+|(?<!["“=\'])http:.*?\.(com|cn|org)', "",
                           html2txt)  # ww w.gkstk.c om
         html2txt = re.sub(r'<(table|tr) [a-z]+="\d+">', r'<\1>', html2txt)  # <td rowspan="2">保留
+        html2txt = re.sub(r'<(table)( [a-z]+=".*?")+>', r'<\1>', html2txt)
         html2txt = re.sub(r'<p>\s*第\s*[二三四ⅡⅢⅣ]\s*(卷|部分)\s*([((].*?[))]|非?选择题.{,8})?\s*</p>', "<p>【非选择题】</p>", html2txt)
         # == == =对可能的题型行的处理 == ==
         html2txt = re.sub("<p>【非选择题】</p>((\s|\n|<p>|</p>)*\d{1,2}\s*[..、、].+?)", r"<p>二、解答题</p>\1", html2txt)\
@@ -409,6 +410,7 @@ class HtmlWash():
             else:
                 return "<{}".format(ss.group(1))
         html2txt = re.sub("<([^<]{1,30})", sub2, html2txt)
+        # print(html2txt)
         # >>>>>> html 切割
         con_list = sum([re.split('<p>|<h[12345]>', i) if len(re.findall("<p>|<h[12345]>", i)) > 1 else [i] for i in
                         re.split(r"\n+|</p>(?!</td>)|</h[12345]>", html2txt)], [])  # html2txt)[:-1]

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels