Fix textprocessor testing and bump version

This commit is contained in:
IRBorisov 2024-06-14 20:30:09 +03:00
parent a210de14ff
commit 6ddd6389bd
5 changed files with 36 additions and 20 deletions

View File

@ -1,3 +1,7 @@
14.06.2024 Экстеор 4.9.3
• Грамматика: разрешено использование одного аргумента для мультифильтра - Fi1,2[X1*X1](S1)
• исправлена ошибка, приводившая к некорректному вычислению типизаций рекурсии с пустым множеством
• использование cctext без встраивания кода (через pip)
13.05.2024 Экстеор 4.9.2
• Грамматика: разрешено использование пустого множества как литерала с типизацией B(R0)
• Грамматика: разрешено объявление кортежем в императивных блоках

View File

@ -1182,8 +1182,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,9,2,1000
PRODUCTVERSION 4,9,2,1000
FILEVERSION 4,9,3,1000
PRODUCTVERSION 4,9,3,1000
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -1201,13 +1201,13 @@ BEGIN
VALUE "Comments", "Ýêñïëèêàòîð òåîðèé "
VALUE "CompanyName", "ÍÏ ÖÈÂÒ ÊÎÍÖÅÏÒ"
VALUE "FileDescription", "Ýêñòåîð 4.9"
VALUE "FileVersion", "4.9.2.1000"
VALUE "FileVersion", "4.9.3.1000"
VALUE "InternalName", "Ýêñòåîð 4.9"
VALUE "LegalCopyright", "Copyright © NPMP CIHT CONCEPT 1994-2024"
VALUE "LegalTrademarks", "Ýêñòåîð™"
VALUE "OriginalFilename", "Exteor.exe"
VALUE "ProductName", "Ýêñòåîð 4.9"
VALUE "ProductVersion", "4.9.2.1000"
VALUE "ProductVersion", "4.9.3.1000"
END
END
BLOCK "VarFileInfo"

View File

@ -14,8 +14,10 @@ public:
[[nodiscard]] std::string Inflect(const std::string& target, const ccl::lang::Morphology& form) const override;
[[nodiscard]] std::string InflectDependant(const std::string& dependant, const std::string& main) const override;
[[nodiscard]] bool IsSubstr(const std::string& needle,
const std::string& haystack) const override;
[[nodiscard]] bool IsSubstr(
const std::string& needle,
const std::string& haystack
) const override;
};
} // namespace xtr::core

View File

@ -151,26 +151,35 @@ void PyCore::Stop() noexcept {
}
}
bool PyCore::LoadModule(const std::string& moduleName, const std::string& pyFileName) {
bool PyCore::LoadModule(const std::string& moduleName, const std::string& pyImport) {
if (!IsRunning()) {
return false;
} else if (moduleName.empty()) {
return false;
} else if (modules.contains(moduleName)) {
return true;
} else if (auto nameObj = Object::FromNew(PyUnicode_FromString(pyFileName.c_str()));
nameObj == nullptr) {
}
auto nameObj = Object::FromNew(PyUnicode_FromString(pyImport.c_str()));
if (nameObj == nullptr) {
return false;
} else if (auto moduleObj = Object::FromNew(PyImport_Import(nameObj.get()));
moduleObj == nullptr) {
return false;
} else if (auto dictionaryObj = Object::FromBorrowed(PyModule_GetDict(moduleObj.get()));
dictionaryObj == nullptr) {
return false;
} else {
modules.insert(std::pair(moduleName, Module{ .pyModule = moduleObj, .pyDictionary = std::move(dictionaryObj) }));
return true;
}
auto moduleObj = Object::FromNew(PyImport_Import(nameObj.get()));
if (moduleObj == nullptr) {
return false;
}
auto dictionaryObj = Object::FromBorrowed(PyModule_GetDict(moduleObj.get()));
if (dictionaryObj == nullptr) {
return false;
}
modules.insert(std::pair(
moduleName,
Module{ .pyModule = moduleObj, .pyDictionary = std::move(dictionaryObj) }
));
return true;
}
Callable PyCore::PyFunction(const std::string& moduleName, const std::string& funcName) const {

View File

@ -20,8 +20,9 @@ protected:
std::unique_ptr<PyTextProcessor> processor{ nullptr };
void SetUp() override {
ASSERT_TRUE(python.Start());
python.LoadModule("cctext", "cctext");
static CString path{ "C:\\Program Files\\Python312\\" };
ASSERT_TRUE(python.Start(path));
ASSERT_TRUE(python.LoadModule("cctext", "cctext"));
processor = std::make_unique<PyTextProcessor>();
processor->InitModule("cctext");
}