From 45c20b45bedfe2de191532b26ae6bfd295cb069b Mon Sep 17 00:00:00 2001 From: ZaharChernenko Date: Thu, 3 Jul 2025 00:54:27 +0300 Subject: [PATCH] fixed: imports --- autoload/coderunner.vim | 8 +++---- python_coderunner/__init__.py | 1 + python_coderunner/src/__init__.py | 0 python_coderunner/src/coderunner/__init__.py | 2 +- .../src/coderunner/coderunner.py | 12 +++++----- .../src/coderunner_builder/__init__.py | 4 ++-- .../src/coderunner_builder/interface.py | 2 +- .../vim_coderunner_builder.py | 24 +++++++++---------- .../src/command_builder/__init__.py | 6 ++--- .../concatenator_command_builder.py | 2 +- .../interpolator_command_builder.py | 6 ++--- .../command_builders_dispatcher/__init__.py | 10 ++++---- .../file_ext_command_builders_dispatcher.py | 6 ++--- .../file_type_command_builders_dispatcher.py | 6 ++--- .../glob_command_builders_dispatcher.py | 4 ++-- .../command_builders_dispatcher/interface.py | 2 +- .../shebang_command_builders_dispatcher.py | 6 ++--- .../__init__.py | 2 +- .../basic.py | 6 ++--- .../src/commands_executor/__init__.py | 4 ++-- .../vim_commands_executor.py | 4 ++-- .../src/config_manager/__init__.py | 4 ++-- .../src/config_manager/vim_config_manager.py | 2 +- python_coderunner/src/editor/__init__.py | 4 ++-- python_coderunner/src/editor/vim_editor.py | 2 +- .../editor_service_for_coderunner/__init__.py | 2 +- .../editor_service_for_coderunner/basic.py | 6 ++--- .../src/file_info_extractor/__init__.py | 4 ++-- .../vim_file_info_extractor.py | 2 +- .../src/message_printer/__init__.py | 4 ++-- .../message_printer/vim_message_printer.py | 2 +- .../src/project_info_extractor/__init__.py | 4 ++-- .../src/project_info_extractor/interface.py | 2 +- .../vim_project_info_extractor.py | 2 +- 34 files changed, 78 insertions(+), 79 deletions(-) create mode 100644 python_coderunner/__init__.py create mode 100644 python_coderunner/src/__init__.py diff --git a/autoload/coderunner.vim b/autoload/coderunner.vim index d5ae401..44b5679 100644 --- a/autoload/coderunner.vim +++ b/autoload/coderunner.vim @@ -61,12 +61,10 @@ def coderunner_on_exit(): coderunner.on_exit() -root_folder_path: str = os.path.dirname(vim.eval("s:script_folder_path")) -sys.path[0:0] = [os.path.join(root_folder_path, "python_coderunner")] +sys.path.insert(0, os.path.dirname(vim.eval("s:script_folder_path"))) try: - from src.coderunner import TCodeRunner - from src.coderunner_builder import TVimCodeRunnerBuilder - coderunner: TCodeRunner = TVimCodeRunnerBuilder().build() + import python_coderunner + coderunner: python_coderunner.coderunner.TCodeRunner = python_coderunner.coderunner_builder.TVimCodeRunnerBuilder().build() except Exception as error: vim.command("redraw | echohl ErrorMsg") for line in traceback.format_exc().splitlines(): diff --git a/python_coderunner/__init__.py b/python_coderunner/__init__.py new file mode 100644 index 0000000..d4112c8 --- /dev/null +++ b/python_coderunner/__init__.py @@ -0,0 +1 @@ +from .src import coderunner, coderunner_builder diff --git a/python_coderunner/src/__init__.py b/python_coderunner/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/python_coderunner/src/coderunner/__init__.py b/python_coderunner/src/coderunner/__init__.py index 38dcd58..05659e3 100644 --- a/python_coderunner/src/coderunner/__init__.py +++ b/python_coderunner/src/coderunner/__init__.py @@ -1 +1 @@ -from src.coderunner.coderunner import TCodeRunner +from .coderunner import TCodeRunner diff --git a/python_coderunner/src/coderunner/coderunner.py b/python_coderunner/src/coderunner/coderunner.py index 2d82d34..910ce2e 100644 --- a/python_coderunner/src/coderunner/coderunner.py +++ b/python_coderunner/src/coderunner/coderunner.py @@ -1,13 +1,13 @@ from typing import Callable, Optional -from src.command_builder import ICommandBuilder -from src.command_dispatcher_strategy_selector import ( +from ..command_builder import ICommandBuilder +from ..command_dispatcher_strategy_selector import ( TBasicCommandDispatcherStrategySelector, ) -from src.commands_executor import ICommandsExecutor -from src.config_manager import TBasicConfigManager -from src.editor_service_for_coderunner import TBasicEditorServiceForCodeRunner -from src.message_printer import IMessagePrinter +from ..commands_executor import ICommandsExecutor +from ..config_manager import TBasicConfigManager +from ..editor_service_for_coderunner import TBasicEditorServiceForCodeRunner +from ..message_printer import IMessagePrinter class TCodeRunner: diff --git a/python_coderunner/src/coderunner_builder/__init__.py b/python_coderunner/src/coderunner_builder/__init__.py index 9c63154..8f26846 100644 --- a/python_coderunner/src/coderunner_builder/__init__.py +++ b/python_coderunner/src/coderunner_builder/__init__.py @@ -1,2 +1,2 @@ -from src.coderunner_builder.interface import ICodeRunnerBuilder -from src.coderunner_builder.vim_coderunner_builder import TVimCodeRunnerBuilder +from .interface import ICodeRunnerBuilder +from .vim_coderunner_builder import TVimCodeRunnerBuilder diff --git a/python_coderunner/src/coderunner_builder/interface.py b/python_coderunner/src/coderunner_builder/interface.py index a1e05e4..23a8b62 100644 --- a/python_coderunner/src/coderunner_builder/interface.py +++ b/python_coderunner/src/coderunner_builder/interface.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod from typing import Optional -from src.coderunner import TCodeRunner +from ..coderunner import TCodeRunner class ICodeRunnerBuilder(ABC): diff --git a/python_coderunner/src/coderunner_builder/vim_coderunner_builder.py b/python_coderunner/src/coderunner_builder/vim_coderunner_builder.py index 5ac08a7..75d05f9 100644 --- a/python_coderunner/src/coderunner_builder/vim_coderunner_builder.py +++ b/python_coderunner/src/coderunner_builder/vim_coderunner_builder.py @@ -2,29 +2,29 @@ import re from typing import Dict, Optional -from src.coderunner import TCodeRunner -from src.coderunner_builder.interface import ICodeRunnerBuilder -from src.command_builder import TInterpolatorCommandBuilder -from src.command_builders_dispatcher import ( +from ..coderunner import TCodeRunner +from ..command_builder import TInterpolatorCommandBuilder +from ..command_builders_dispatcher import ( TFileExtCommandBuildersDispatcher, TFileTypeCommandBuildersDispatcher, TGlobCommandBuildersDispatcher, TShebangCommandBuildersDispatcher, ) -from src.command_dispatcher_strategy_selector import ( +from ..command_dispatcher_strategy_selector import ( TBasicCommandDispatcherStrategySelector, ) -from src.commands_executor import TVimCommandsExecutor -from src.config_manager import ( +from ..commands_executor import TVimCommandsExecutor +from ..config_manager import ( TBasicConfigValidator, TVimConfigGetter, TVimConfigManager, ) -from src.editor import TVimEditor -from src.editor_service_for_coderunner import TBasicEditorServiceForCodeRunner -from src.file_info_extractor import TVimFileInfoExtractor -from src.message_printer import TVimMessagePrinter -from src.project_info_extractor import TVimProjectInfoExtractor +from ..editor import TVimEditor +from ..editor_service_for_coderunner import TBasicEditorServiceForCodeRunner +from ..file_info_extractor import TVimFileInfoExtractor +from ..message_printer import TVimMessagePrinter +from ..project_info_extractor import TVimProjectInfoExtractor +from .interface import ICodeRunnerBuilder class TVimCodeRunnerBuilder(ICodeRunnerBuilder): diff --git a/python_coderunner/src/command_builder/__init__.py b/python_coderunner/src/command_builder/__init__.py index 39f2e30..457d03b 100644 --- a/python_coderunner/src/command_builder/__init__.py +++ b/python_coderunner/src/command_builder/__init__.py @@ -1,3 +1,3 @@ -from src.command_builder.concatenator_command_builder import TConcatenatorCommandBuilder -from src.command_builder.interface import ICommandBuilder -from src.command_builder.interpolator_command_builder import TInterpolatorCommandBuilder +from .concatenator_command_builder import TConcatenatorCommandBuilder +from .interface import ICommandBuilder +from .interpolator_command_builder import TInterpolatorCommandBuilder diff --git a/python_coderunner/src/command_builder/concatenator_command_builder.py b/python_coderunner/src/command_builder/concatenator_command_builder.py index c470d20..126ce60 100644 --- a/python_coderunner/src/command_builder/concatenator_command_builder.py +++ b/python_coderunner/src/command_builder/concatenator_command_builder.py @@ -1,4 +1,4 @@ -from src.command_builder.interface import ICommandBuilder +from .interface import ICommandBuilder class TConcatenatorCommandBuilder(ICommandBuilder): diff --git a/python_coderunner/src/command_builder/interpolator_command_builder.py b/python_coderunner/src/command_builder/interpolator_command_builder.py index 36638b2..3740ab7 100644 --- a/python_coderunner/src/command_builder/interpolator_command_builder.py +++ b/python_coderunner/src/command_builder/interpolator_command_builder.py @@ -1,9 +1,9 @@ import re from typing import ClassVar -from src.command_builder.interface import ICommandBuilder -from src.file_info_extractor import IFileInfoExtractor -from src.project_info_extractor import IProjectInfoExtractor +from ..file_info_extractor import IFileInfoExtractor +from ..project_info_extractor import IProjectInfoExtractor +from .interface import ICommandBuilder class TInterpolatorCommandBuilder(ICommandBuilder): diff --git a/python_coderunner/src/command_builders_dispatcher/__init__.py b/python_coderunner/src/command_builders_dispatcher/__init__.py index c2224ca..52460af 100644 --- a/python_coderunner/src/command_builders_dispatcher/__init__.py +++ b/python_coderunner/src/command_builders_dispatcher/__init__.py @@ -1,13 +1,13 @@ -from src.command_builders_dispatcher.file_ext_command_builders_dispatcher import ( +from .file_ext_command_builders_dispatcher import ( TFileExtCommandBuildersDispatcher, ) -from src.command_builders_dispatcher.file_type_command_builders_dispatcher import ( +from .file_type_command_builders_dispatcher import ( TFileTypeCommandBuildersDispatcher, ) -from src.command_builders_dispatcher.glob_command_builders_dispatcher import ( +from .glob_command_builders_dispatcher import ( TGlobCommandBuildersDispatcher, ) -from src.command_builders_dispatcher.interface import ICommandBuildersDispatcher -from src.command_builders_dispatcher.shebang_command_builders_dispatcher import ( +from .interface import ICommandBuildersDispatcher +from .shebang_command_builders_dispatcher import ( TShebangCommandBuildersDispatcher, ) diff --git a/python_coderunner/src/command_builders_dispatcher/file_ext_command_builders_dispatcher.py b/python_coderunner/src/command_builders_dispatcher/file_ext_command_builders_dispatcher.py index baf59f0..e3f1a4f 100644 --- a/python_coderunner/src/command_builders_dispatcher/file_ext_command_builders_dispatcher.py +++ b/python_coderunner/src/command_builders_dispatcher/file_ext_command_builders_dispatcher.py @@ -1,8 +1,8 @@ from typing import Dict, Final, Optional -from src.command_builder import ICommandBuilder -from src.command_builders_dispatcher.interface import ICommandBuildersDispatcher -from src.file_info_extractor import IFileInfoExtractor +from ..command_builder import ICommandBuilder +from ..file_info_extractor import IFileInfoExtractor +from .interface import ICommandBuildersDispatcher class TFileExtCommandBuildersDispatcher(ICommandBuildersDispatcher): diff --git a/python_coderunner/src/command_builders_dispatcher/file_type_command_builders_dispatcher.py b/python_coderunner/src/command_builders_dispatcher/file_type_command_builders_dispatcher.py index 0084f90..969284f 100644 --- a/python_coderunner/src/command_builders_dispatcher/file_type_command_builders_dispatcher.py +++ b/python_coderunner/src/command_builders_dispatcher/file_type_command_builders_dispatcher.py @@ -1,8 +1,8 @@ from typing import Dict, Final, Optional -from src.command_builder import ICommandBuilder -from src.command_builders_dispatcher.interface import ICommandBuildersDispatcher -from src.file_info_extractor import IFileInfoExtractor +from ..command_builder import ICommandBuilder +from ..file_info_extractor import IFileInfoExtractor +from .interface import ICommandBuildersDispatcher class TFileTypeCommandBuildersDispatcher(ICommandBuildersDispatcher): diff --git a/python_coderunner/src/command_builders_dispatcher/glob_command_builders_dispatcher.py b/python_coderunner/src/command_builders_dispatcher/glob_command_builders_dispatcher.py index 6fab279..f092abf 100644 --- a/python_coderunner/src/command_builders_dispatcher/glob_command_builders_dispatcher.py +++ b/python_coderunner/src/command_builders_dispatcher/glob_command_builders_dispatcher.py @@ -1,8 +1,8 @@ import re from typing import Final, Optional, Tuple -from src.command_builder import ICommandBuilder -from src.command_builders_dispatcher.interface import ICommandBuildersDispatcher +from ..command_builder import ICommandBuilder +from .interface import ICommandBuildersDispatcher class TGlobCommandBuildersDispatcher(ICommandBuildersDispatcher): diff --git a/python_coderunner/src/command_builders_dispatcher/interface.py b/python_coderunner/src/command_builders_dispatcher/interface.py index a8f627c..e5d0b67 100644 --- a/python_coderunner/src/command_builders_dispatcher/interface.py +++ b/python_coderunner/src/command_builders_dispatcher/interface.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod from typing import Optional -from src.command_builder import ICommandBuilder +from ..command_builder import ICommandBuilder class ICommandBuildersDispatcher(ABC): diff --git a/python_coderunner/src/command_builders_dispatcher/shebang_command_builders_dispatcher.py b/python_coderunner/src/command_builders_dispatcher/shebang_command_builders_dispatcher.py index d60f543..88d91d7 100644 --- a/python_coderunner/src/command_builders_dispatcher/shebang_command_builders_dispatcher.py +++ b/python_coderunner/src/command_builders_dispatcher/shebang_command_builders_dispatcher.py @@ -1,8 +1,8 @@ from typing import Optional -from src.command_builder import ICommandBuilder, TConcatenatorCommandBuilder -from src.command_builders_dispatcher.interface import ICommandBuildersDispatcher -from src.file_info_extractor import IFileInfoExtractor +from ..command_builder import ICommandBuilder, TConcatenatorCommandBuilder +from ..file_info_extractor import IFileInfoExtractor +from .interface import ICommandBuildersDispatcher class TShebangCommandBuildersDispatcher(ICommandBuildersDispatcher): diff --git a/python_coderunner/src/command_dispatcher_strategy_selector/__init__.py b/python_coderunner/src/command_dispatcher_strategy_selector/__init__.py index 77a4e1a..cb8e0bf 100644 --- a/python_coderunner/src/command_dispatcher_strategy_selector/__init__.py +++ b/python_coderunner/src/command_dispatcher_strategy_selector/__init__.py @@ -1,3 +1,3 @@ -from src.command_dispatcher_strategy_selector.basic import ( +from .basic import ( TBasicCommandDispatcherStrategySelector, ) diff --git a/python_coderunner/src/command_dispatcher_strategy_selector/basic.py b/python_coderunner/src/command_dispatcher_strategy_selector/basic.py index d586e5d..89f2d2e 100644 --- a/python_coderunner/src/command_dispatcher_strategy_selector/basic.py +++ b/python_coderunner/src/command_dispatcher_strategy_selector/basic.py @@ -1,13 +1,13 @@ from typing import Optional -from src.command_builder import ICommandBuilder -from src.command_builders_dispatcher import ( +from ..command_builder import ICommandBuilder +from ..command_builders_dispatcher import ( TFileExtCommandBuildersDispatcher, TFileTypeCommandBuildersDispatcher, TGlobCommandBuildersDispatcher, TShebangCommandBuildersDispatcher, ) -from src.config_manager import EDispatchersTypes, TBasicConfigManager +from ..config_manager import EDispatchersTypes, TBasicConfigManager class TBasicCommandDispatcherStrategySelector: diff --git a/python_coderunner/src/commands_executor/__init__.py b/python_coderunner/src/commands_executor/__init__.py index 26fab01..90ad3e6 100644 --- a/python_coderunner/src/commands_executor/__init__.py +++ b/python_coderunner/src/commands_executor/__init__.py @@ -1,2 +1,2 @@ -from src.commands_executor.inteface import ICommandsExecutor -from src.commands_executor.vim_commands_executor import TVimCommandsExecutor +from .inteface import ICommandsExecutor +from .vim_commands_executor import TVimCommandsExecutor diff --git a/python_coderunner/src/commands_executor/vim_commands_executor.py b/python_coderunner/src/commands_executor/vim_commands_executor.py index bd9f766..10d796d 100644 --- a/python_coderunner/src/commands_executor/vim_commands_executor.py +++ b/python_coderunner/src/commands_executor/vim_commands_executor.py @@ -1,7 +1,7 @@ import vim -from src.commands_executor.inteface import ICommandsExecutor -from src.config_manager import TBasicConfigManager +from ..config_manager import TBasicConfigManager +from .inteface import ICommandsExecutor class TVimCommandsExecutor(ICommandsExecutor): diff --git a/python_coderunner/src/config_manager/__init__.py b/python_coderunner/src/config_manager/__init__.py index ab0d214..bb5dadb 100644 --- a/python_coderunner/src/config_manager/__init__.py +++ b/python_coderunner/src/config_manager/__init__.py @@ -1,4 +1,4 @@ -from src.config_manager.basic import ( +from .basic import ( EDispatchersTypes, IConfigGetter, TBasicConfigManager, @@ -6,4 +6,4 @@ UndefinedValueError, ValidationError, ) -from src.config_manager.vim_config_manager import TVimConfigGetter, TVimConfigManager +from .vim_config_manager import TVimConfigGetter, TVimConfigManager diff --git a/python_coderunner/src/config_manager/vim_config_manager.py b/python_coderunner/src/config_manager/vim_config_manager.py index 4c473f7..c094d44 100644 --- a/python_coderunner/src/config_manager/vim_config_manager.py +++ b/python_coderunner/src/config_manager/vim_config_manager.py @@ -2,7 +2,7 @@ import vim -from src.config_manager.basic import ( +from .basic import ( IConfigGetter, TBasicConfigManager, UndefinedValueError, diff --git a/python_coderunner/src/editor/__init__.py b/python_coderunner/src/editor/__init__.py index ee752db..74391cd 100644 --- a/python_coderunner/src/editor/__init__.py +++ b/python_coderunner/src/editor/__init__.py @@ -1,2 +1,2 @@ -from src.editor.interface import IEditor -from src.editor.vim_editor import TVimEditor +from .interface import IEditor +from .vim_editor import TVimEditor diff --git a/python_coderunner/src/editor/vim_editor.py b/python_coderunner/src/editor/vim_editor.py index 530f337..9b0bc61 100644 --- a/python_coderunner/src/editor/vim_editor.py +++ b/python_coderunner/src/editor/vim_editor.py @@ -2,7 +2,7 @@ import vim -from src.editor.interface import IEditor +from .interface import IEditor class TVimEditor(IEditor): diff --git a/python_coderunner/src/editor_service_for_coderunner/__init__.py b/python_coderunner/src/editor_service_for_coderunner/__init__.py index d720d60..fc56c42 100644 --- a/python_coderunner/src/editor_service_for_coderunner/__init__.py +++ b/python_coderunner/src/editor_service_for_coderunner/__init__.py @@ -1 +1 @@ -from src.editor_service_for_coderunner.basic import TBasicEditorServiceForCodeRunner +from .basic import TBasicEditorServiceForCodeRunner diff --git a/python_coderunner/src/editor_service_for_coderunner/basic.py b/python_coderunner/src/editor_service_for_coderunner/basic.py index 1cf77f0..b0d5c6b 100644 --- a/python_coderunner/src/editor_service_for_coderunner/basic.py +++ b/python_coderunner/src/editor_service_for_coderunner/basic.py @@ -3,9 +3,9 @@ from tempfile import NamedTemporaryFile from typing import Generator, List -from src.config_manager import TBasicConfigManager -from src.editor import IEditor -from src.file_info_extractor import IFileInfoExtractor +from ..config_manager import TBasicConfigManager +from ..editor import IEditor +from ..file_info_extractor import IFileInfoExtractor class TBasicEditorServiceForCodeRunner: diff --git a/python_coderunner/src/file_info_extractor/__init__.py b/python_coderunner/src/file_info_extractor/__init__.py index 7327f81..a2f955a 100644 --- a/python_coderunner/src/file_info_extractor/__init__.py +++ b/python_coderunner/src/file_info_extractor/__init__.py @@ -1,2 +1,2 @@ -from src.file_info_extractor.interface import IFileInfoExtractor -from src.file_info_extractor.vim_file_info_extractor import TVimFileInfoExtractor +from .interface import IFileInfoExtractor +from .vim_file_info_extractor import TVimFileInfoExtractor diff --git a/python_coderunner/src/file_info_extractor/vim_file_info_extractor.py b/python_coderunner/src/file_info_extractor/vim_file_info_extractor.py index c9ec8c6..0701aed 100644 --- a/python_coderunner/src/file_info_extractor/vim_file_info_extractor.py +++ b/python_coderunner/src/file_info_extractor/vim_file_info_extractor.py @@ -2,7 +2,7 @@ import vim -from src.file_info_extractor.interface import IFileInfoExtractor +from .interface import IFileInfoExtractor class TVimFileInfoExtractor(IFileInfoExtractor): diff --git a/python_coderunner/src/message_printer/__init__.py b/python_coderunner/src/message_printer/__init__.py index 145185d..f29cd4b 100644 --- a/python_coderunner/src/message_printer/__init__.py +++ b/python_coderunner/src/message_printer/__init__.py @@ -1,2 +1,2 @@ -from src.message_printer.interface import IMessagePrinter -from src.message_printer.vim_message_printer import TVimMessagePrinter +from .interface import IMessagePrinter +from .vim_message_printer import TVimMessagePrinter diff --git a/python_coderunner/src/message_printer/vim_message_printer.py b/python_coderunner/src/message_printer/vim_message_printer.py index 6639751..9a9215d 100644 --- a/python_coderunner/src/message_printer/vim_message_printer.py +++ b/python_coderunner/src/message_printer/vim_message_printer.py @@ -1,6 +1,6 @@ import vim -from src.message_printer.interface import IMessagePrinter +from .interface import IMessagePrinter class TVimMessagePrinter(IMessagePrinter): diff --git a/python_coderunner/src/project_info_extractor/__init__.py b/python_coderunner/src/project_info_extractor/__init__.py index 9081604..1297eb4 100644 --- a/python_coderunner/src/project_info_extractor/__init__.py +++ b/python_coderunner/src/project_info_extractor/__init__.py @@ -1,4 +1,4 @@ -from src.project_info_extractor.interface import IProjectInfoExtractor -from src.project_info_extractor.vim_project_info_extractor import ( +from .interface import IProjectInfoExtractor +from .vim_project_info_extractor import ( TVimProjectInfoExtractor, ) diff --git a/python_coderunner/src/project_info_extractor/interface.py b/python_coderunner/src/project_info_extractor/interface.py index b28f5b4..4966813 100644 --- a/python_coderunner/src/project_info_extractor/interface.py +++ b/python_coderunner/src/project_info_extractor/interface.py @@ -2,7 +2,7 @@ from abc import ABC, abstractmethod from typing import Iterable, Set -from src.file_info_extractor import IFileInfoExtractor +from ..file_info_extractor import IFileInfoExtractor class IProjectInfoExtractor(ABC): diff --git a/python_coderunner/src/project_info_extractor/vim_project_info_extractor.py b/python_coderunner/src/project_info_extractor/vim_project_info_extractor.py index 472b92a..02b099d 100644 --- a/python_coderunner/src/project_info_extractor/vim_project_info_extractor.py +++ b/python_coderunner/src/project_info_extractor/vim_project_info_extractor.py @@ -1,6 +1,6 @@ import vim -from src.project_info_extractor.interface import IProjectInfoExtractor +from .interface import IProjectInfoExtractor class TVimProjectInfoExtractor(IProjectInfoExtractor):