diff options
author | roy lewin <roy.lewin@gmail.com> | 2016-09-22 01:58:05 +0300 |
---|---|---|
committer | roy lewin <roy.lewin@gmail.com> | 2016-09-22 01:58:05 +0300 |
commit | 733afb1109a06f89af68e8660728f1b4bbbdab1a (patch) | |
tree | ec4c965bea61228c55a7c4c68e1be86446291620 | |
parent | 652781137f3856fef98e3063766f9f3b1a984a2e (diff) | |
parent | 081eac29a20ab8485f2b8180654a6d4b808e2df7 (diff) |
Merge branch 'master' of https://bitbucket.org/lib_2_wiki/parser
# Conflicts:
# .idea/misc.xml
# .idea/workspace.xml
# parsers/INL_xml_parser.py
-rw-r--r-- | .idea/lib2wiki.iml | 11 | ||||
-rw-r--r-- | .idea/misc.xml | 13 | ||||
-rw-r--r-- | .idea/workspace.xml | 329 | ||||
-rw-r--r-- | entities/__init__.py | 6 | ||||
-rw-r--r-- | entities/location.py | 4 | ||||
-rw-r--r-- | factories/INL_factory.py | 61 | ||||
-rw-r--r-- | factories/__init__.py | 4 | ||||
-rw-r--r-- | libs/__init__.py | 2 | ||||
-rw-r--r-- | parsers/INL_xml_parser.py | 29 |
9 files changed, 143 insertions, 316 deletions
diff --git a/.idea/lib2wiki.iml b/.idea/lib2wiki.iml deleted file mode 100644 index 6711606..0000000 --- a/.idea/lib2wiki.iml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module type="PYTHON_MODULE" version="4"> - <component name="NewModuleRootManager"> - <content url="file://$MODULE_DIR$" /> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - </component> - <component name="TestRunnerService"> - <option name="PROJECT_TEST_RUNNER" value="Unittests" /> - </component> -</module>
\ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index f38dd77..df245c4 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> - <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.10 (C:\Python27\python.exe)" project-jdk-type="Python SDK" /> - <component name="PythonCompatibilityInspectionAdvertiser"> - <option name="version" value="1" /> + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> </component> + <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.10 (C:\Python27\python.exe)" project-jdk-type="Python SDK" /> </project>
\ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 73e2873..af29279 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,18 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ChangeListManager"> - <list default="true" id="1d9b5e9b-4282-4345-b663-d1b92a287a32" name="Default" comment=""> - <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/__init__.py" /> - <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/readers/__init__.py" /> - <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/readers/xml_reader.py" /> + <list default="true" id="b3a73108-18f8-44f3-8073-d1952fb9639d" name="Default" comment=""> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.gitignore" /> + <change type="DELETED" beforePath="$PROJECT_DIR$/.idea/lib2wiki.iml" afterPath="" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/entities/__init__.py" afterPath="$PROJECT_DIR$/entities/__init__.py" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/entities/location.py" afterPath="$PROJECT_DIR$/entities/location.py" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/factories/INL_factory.py" afterPath="$PROJECT_DIR$/factories/INL_factory.py" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/factories/__init__.py" afterPath="$PROJECT_DIR$/factories/__init__.py" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/libs/__init__.py" afterPath="$PROJECT_DIR$/libs/__init__.py" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/parsers/INL_xml_parser.py" afterPath="$PROJECT_DIR$/parsers/INL_xml_parser.py" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/parsers/__init__.py" afterPath="$PROJECT_DIR$/parsers/__init__.py" /> </list> <ignored path="lib2wiki.iws" /> <ignored path=".idea/workspace.xml" /> - <ignored path=".idea/dataSources.local.xml" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="TRACKING_ENABLED" value="true" /> <option name="SHOW_DIALOG" value="false" /> @@ -20,9 +22,6 @@ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="LAST_RESOLUTION" value="IGNORE" /> </component> - <component name="CoverageDataManager"> - <SUITE FILE_PATH="coverage/lib2wiki$Unnamed.coverage" NAME="xml_reader Coverage Results" MODIFIED="1474497479052" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/readers" /> - </component> <component name="CreatePatchCommitExecutor"> <option name="PATCH_PATH" value="" /> </component> @@ -32,75 +31,11 @@ </component> <component name="FileEditorManager"> <leaf> - <file leaf-file-name="basic_factory.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/factories/basic_factory.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="17"> - <caret line="1" column="37" selection-start-line="1" selection-start-column="37" selection-end-line="1" selection-end-column="37" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="INL_factory.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/factories/INL_factory.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="289"> - <caret line="17" column="33" selection-start-line="17" selection-start-column="33" selection-end-line="17" selection-end-column="33" /> - <folding> - <element signature="e#0#15#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="xml_reader.py" pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/readers/xml_reader.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="282"> - <caret line="25" column="70" selection-start-line="25" selection-start-column="70" selection-end-line="25" selection-end-column="70" /> - <folding> - <element signature="e#0#38#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="__init__.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/parsers/__init__.py"> + <file leaf-file-name=".gitignore" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/.gitignore"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="0"> - <caret line="0" column="5" selection-start-line="0" selection-start-column="5" selection-end-line="0" selection-end-column="5" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="person.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/entities/person.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="68"> - <caret line="4" column="57" selection-start-line="4" selection-start-column="44" selection-end-line="4" selection-end-column="57" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="INL_xml_parser.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/parsers/INL_xml_parser.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="299"> - <caret line="28" column="66" selection-start-line="28" selection-start-column="33" selection-end-line="28" selection-end-column="66" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="json_tools.py" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/libs/json_tools.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="51"> - <caret line="3" column="22" selection-start-line="3" selection-start-column="6" selection-end-line="3" selection-end-column="22" /> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <folding /> </state> </provider> @@ -108,38 +43,9 @@ </file> </leaf> </component> - <component name="FileTemplateManagerImpl"> - <option name="RECENT_TEMPLATES"> - <list> - <option value="Python Script" /> - </list> - </option> - </component> <component name="Git.Settings"> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> </component> - <component name="IdeDocumentHistory"> - <option name="CHANGED_PATHS"> - <list> - <option value="$PROJECT_DIR$/parsers/basic_parser.py" /> - <option value="$PROJECT_DIR$/libs/json_tools.py" /> - <option value="$PROJECT_DIR$/libs/__init__.py" /> - <option value="$PROJECT_DIR$/factories/__init__.py" /> - <option value="$PROJECT_DIR$/factories/basic_factory.py" /> - <option value="$PROJECT_DIR$/entities/basic_entity.py" /> - <option value="$PROJECT_DIR$/entities/__init__.py" /> - <option value="$PROJECT_DIR$/entities/person.py" /> - <option value="$PROJECT_DIR$/entities/location.py" /> - <option value="$PROJECT_DIR$/entities/institution.py" /> - <option value="$PROJECT_DIR$/factories/INL_factory.py" /> - <option value="$PROJECT_DIR$/.gitignore" /> - <option value="$PROJECT_DIR$/parsers/__init__.py" /> - <option value="$PROJECT_DIR$/__init__.py" /> - <option value="$PROJECT_DIR$/parsers/INL_xml_parser.py" /> - <option value="$PROJECT_DIR$/readers/xml_reader.py" /> - </list> - </option> - </component> <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> <component name="JsGulpfileManager"> @@ -177,6 +83,7 @@ <foldersAlwaysOnTop value="true" /> </navigator> <panes> + <pane id="Scratches" /> <pane id="ProjectPane"> <subPane> <PATH> @@ -267,22 +174,15 @@ </PATH> </subPane> </pane> - <pane id="Scratches" /> <pane id="Scope" /> </panes> </component> <component name="PropertiesComponent"> - <property name="last_opened_file_path" value="$PROJECT_DIR$/readers/xml_reader.py" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$" /> <property name="WebServerToolWindowFactoryState" value="false" /> - <property name="settings.editor.selected.configurable" value="editing.templates" /> - <property name="settings.editor.splitter.proportion" value="0.2" /> - </component> - <component name="RecentsManager"> - <key name="CopyFile.RECENT_KEYS"> - <recent name="C:\roy\lib2wiki\readers" /> - </key> + <property name="prop_add_unversioned_files" value="true" /> </component> - <component name="RunManager" selected="Python.xml_reader"> + <component name="RunManager"> <configuration default="true" type="DjangoTestsConfigurationType" factoryName="Django tests"> <option name="INTERPRETER_OPTIONS" value="" /> <option name="PARENT_ENVS" value="true" /> @@ -366,6 +266,12 @@ <method /> </configuration> <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> + <node-interpreter>project</node-interpreter> + <node-options /> + <gulpfile /> + <tasks /> + <arguments /> + <envs /> <method /> </configuration> <configuration default="true" type="js.build_tools.npm" factoryName="npm"> @@ -485,63 +391,42 @@ <option name="USE_KEYWORD" value="false" /> <method /> </configuration> - <configuration default="false" name="xml_reader" type="PythonConfigurationType" factoryName="Python"> - <option name="INTERPRETER_OPTIONS" value="" /> - <option name="PARENT_ENVS" value="true" /> - <envs> - <env name="PYTHONUNBUFFERED" value="1" /> - </envs> - <option name="SDK_HOME" value="C:\Python27\python.exe" /> - <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/readers" /> - <option name="IS_MODULE_SDK" value="false" /> - <option name="ADD_CONTENT_ROOTS" value="true" /> - <option name="ADD_SOURCE_ROOTS" value="true" /> - <module name="lib2wiki" /> - <EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" /> - <option name="SCRIPT_NAME" value="$PROJECT_DIR$/readers/xml_reader.py" /> - <option name="PARAMETERS" value="" /> - <option name="SHOW_COMMAND_LINE" value="false" /> - <method /> - </configuration> - <list size="1"> - <item index="0" class="java.lang.String" itemvalue="Python.xml_reader" /> - </list> </component> <component name="ShelveChangesManager" show_recycled="false"> <option name="remove_strategy" value="false" /> </component> <component name="TaskManager"> <task active="true" id="Default" summary="Default task"> - <changelist id="1d9b5e9b-4282-4345-b663-d1b92a287a32" name="Default" comment="" /> - <created>1474481137431</created> + <changelist id="b3a73108-18f8-44f3-8073-d1952fb9639d" name="Default" comment="" /> + <created>1474498136177</created> <option name="number" value="Default" /> <option name="presentableId" value="Default" /> - <updated>1474481137431</updated> + <updated>1474498136177</updated> </task> <servers /> </component> <component name="ToolWindowManager"> <frame x="-8" y="-8" width="1616" height="876" extended-state="6" /> - <editor active="true" /> + <editor active="false" /> <layout> - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.15625" sideWeight="0.5" order="1" side_tool="false" content_ui="combo" /> - <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" /> - <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" /> - <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32898173" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> - <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" /> - <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> - <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="combo" /> - <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> - <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> - <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" /> - <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> + <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> + <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> + <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> + <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> + <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> + <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> + <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> </layout> </component> <component name="Vcs.Log.UiProperties"> @@ -560,141 +445,13 @@ <watches-manager /> </component> <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/libs/__init__.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="0"> - <caret line="0" column="39" selection-start-line="0" selection-start-column="39" selection-end-line="0" selection-end-column="39" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/factories/__init__.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="17"> - <caret line="1" column="34" selection-start-line="1" selection-start-column="34" selection-end-line="1" selection-end-column="34" /> - <folding> - <element signature="e#0#38#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/factories/basic_factory.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="17"> - <caret line="1" column="37" selection-start-line="1" selection-start-column="37" selection-end-line="1" selection-end-column="37" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/entities/basic_entity.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="85"> - <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/entities/__init__.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="34"> - <caret line="2" column="29" selection-start-line="2" selection-start-column="29" selection-end-line="2" selection-end-column="29" /> - <folding> - <element signature="e#0#25#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/entities/location.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="119"> - <caret line="7" column="38" selection-start-line="7" selection-start-column="38" selection-end-line="7" selection-end-column="38" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/entities/institution.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="85"> - <caret line="5" column="34" selection-start-line="5" selection-start-column="34" selection-end-line="5" selection-end-column="34" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/parsers/basic_parser.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="85"> - <caret line="5" column="22" selection-start-line="5" selection-start-column="0" selection-end-line="6" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/libs/json_tools.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="51"> - <caret line="3" column="22" selection-start-line="3" selection-start-column="6" selection-end-line="3" selection-end-column="22" /> - <folding /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/.gitignore"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="255"> - <caret line="15" column="5" selection-start-line="15" selection-start-column="5" selection-end-line="15" selection-end-column="5" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/factories/INL_factory.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="289"> - <caret line="17" column="33" selection-start-line="17" selection-start-column="33" selection-end-line="17" selection-end-column="33" /> - <folding> - <element signature="e#0#15#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/entities/person.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="68"> - <caret line="4" column="57" selection-start-line="4" selection-start-column="44" selection-end-line="4" selection-end-column="57" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/parsers/__init__.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="0"> - <caret line="0" column="5" selection-start-line="0" selection-start-column="5" selection-end-line="0" selection-end-column="5" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/__init__.py"> - <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="0"> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/parsers/INL_xml_parser.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="299"> - <caret line="28" column="66" selection-start-line="28" selection-start-column="33" selection-end-line="28" selection-end-column="66" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/readers/xml_reader.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="282"> - <caret line="25" column="70" selection-start-line="25" selection-start-column="70" selection-end-line="25" selection-end-column="70" /> - <folding> - <element signature="e#0#38#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> </component> </project>
\ No newline at end of file diff --git a/entities/__init__.py b/entities/__init__.py index 48f64d6..907ef4d 100644 --- a/entities/__init__.py +++ b/entities/__init__.py @@ -1,3 +1,3 @@ -from person import Person -from institution import Institution -from location import Location
\ No newline at end of file +from entities.person import Person +from entities.institution import Institution +from entities.location import Location
\ No newline at end of file diff --git a/entities/location.py b/entities/location.py index 8130632..9636c3b 100644 --- a/entities/location.py +++ b/entities/location.py @@ -2,7 +2,7 @@ from entities.basic_entity import BasicEntity class Location(BasicEntity): - def __init__(self, name, types, coordinates): + def __init__(self, name, types, name_in_langs): self.name = name self.types = types - self.coordinates = coordinates + self.name_in_langs = name_in_langs diff --git a/factories/INL_factory.py b/factories/INL_factory.py index 6607368..b61c487 100644 --- a/factories/INL_factory.py +++ b/factories/INL_factory.py @@ -8,16 +8,65 @@ TAG_TO_ENTITY_MAPPING = { } +ENTITY_KEYS = { + '100.a': 'name', + '100.d': 'date_of_birth', + '400.a': 'name_in_langs', + '151.a': 'name', + '451:a': 'name_in_langs', + '550.a': 'type' +} + + +def get_record_key(self, record): + root = record.getroot() + for field in root: + field_tag = field.attrib.get('tag') + if '100' in field_tag: + return '100' + if '151' in field_tag: + return '151' + if '110' in field_tag: + return '110' + class INLFactory(BasicFactory): def __init__(self, tag_to_entity_mapping=None): self.mapping = tag_to_entity_mapping or TAG_TO_ENTITY_MAPPING - def get_entity(self, entity_key, raw_object): - if entity_key == '100': - return entities.Person('', '', '') - elif entity_key == '110': + def get_entity(self, entity_keys, raw_object): + record_key = get_record_key(raw_object) + if record_key == '100': + has_name = False + name_in_langs = [] + for field in raw_object.getroot(): + key = field.attrib.get('tag') + tag = entity_keys.get(key) + if tag == 'name' and not has_name: + name = field.text + has_name = True + elif tag == 'date_of_birth': + date_of_birth = field.text + elif tag == 'name_in_langs': + name_in_langs.append(field.text) + return entities.Person(name, date_of_birth, name_in_langs) + elif record_key == '110': return entities.Institution() - elif entity_key == '151': - return entities.Location('', '', '') + elif record_key == '151': + has_name = False + name_in_langs = [] + type = [] + for field in raw_object.getroot(): + key = field.attrib.get('tag') + tag = entity_keys.get(key) + if tag == 'name' and not has_name: + name = field.text + has_name = True + elif tag == 'type': + type.append(field.text) + elif tag == 'name_in_langs': + name_in_langs.append(field.text) + return entities.Location(name, type, name_in_langs) else: raise KeyError('Key {} was not recognized for factory {}'.format(entity_key, type(self))) + + diff --git a/factories/__init__.py b/factories/__init__.py index add236d..86901f5 100644 --- a/factories/__init__.py +++ b/factories/__init__.py @@ -1,2 +1,2 @@ -from basic_factory import BasicFactory -from INL_factory import INLFactory
\ No newline at end of file +from factories.basic_factory import BasicFactory +from factories.INL_factory import INLFactory
\ No newline at end of file diff --git a/libs/__init__.py b/libs/__init__.py index 5e2ded0..c2514b7 100644 --- a/libs/__init__.py +++ b/libs/__init__.py @@ -1 +1 @@ -from json_tools import JsonSerializable
\ No newline at end of file +from libs.json_tools import JsonSerializable
\ No newline at end of file diff --git a/parsers/INL_xml_parser.py b/parsers/INL_xml_parser.py index 512d46e..2ba96c9 100644 --- a/parsers/INL_xml_parser.py +++ b/parsers/INL_xml_parser.py @@ -11,6 +11,7 @@ class INLXmlParser: self.reader = reader self.whitelist = whitelist or KNOWN_FIELD_TAGS +<<<<<<< HEAD def clearxml(self): newTreeRoot = ET.Element('data') @@ -28,6 +29,30 @@ class INLXmlParser: for data in field: subData = ET.SubElement(newTag, data.tag, data.attrib) subData.text = data.text +======= - newTree = ET.ElementTree(newTreeRoot) - return newTree + #expects to get a record as ElementTree + def clearxml(self, record): + # root == list of tags + root = record.getroot() + + # scan the datafields in the records and copy to the new one only the tags in the whitelist + # create new record + newRecord = ET.Element('record') + for field in root: + fieldtag = field.attrib.get('tag') + if fieldtag in self.whitelist: + tempTag = fieldtag + # tag 700 and 400 are the same + if tempTag == '700': + tempTag = '400' + for data in field: + newFieldTag = tempTag + newFieldTag +='.' + newFieldTag += data.attrib.get('code') + newTag = ET.SubElement(newRecord, 'datafield', {'tag': newFieldTag}) + newTag.text = data.text +>>>>>>> 081eac29a20ab8485f2b8180654a6d4b808e2df7 + + newRecordTree = ET.ElementTree(newRecord) + return newRecordTree |