Call a function if a checkbox is selected google sheets - if-statement

I am trying to find a solution to the issue I have.
I have checkboxes in column A. What I need is when one of them is checked, to populate a function/formula in a cell next to it (column B).
For example, I checked the checkbox in cell A10 and formula is being populated in cell B10.
The formula/function I have is a long IF function.
Hoping someone will be able to assist.

try:
=ARRAYFORMULA(TRANSPOSE(SPLIT(QUERY(QUERY({""; IFERROR(REPT("♦ ", LEN(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(IF(INDIRECT("A12:A"&
MAX(IF(A12:A=TRUE, ROW(A12:A), )))=FALSE, "♣", "♥"),,999^99), "♥")), " ", ))-COUNTA(
IF($B$11=Sheet5!A1, FILTER(Sheet5!C1:C, Sheet5!C1:C <>"", NOT(REGEXMATCH(Sheet5!B1:B, "MATERIAL|DISPOSAL|PLANTS"))),
IF($B$11=Sheet5!J1, FILTER(Sheet5!L1:L, Sheet5!L1:L <>"", NOT(REGEXMATCH(Sheet5!K1:K, "MATERIAL|DISPOSAL|PLANTS"))),
IF($B$11=Sheet5!S1, FILTER(Sheet5!U1:U, Sheet5!U1:U <>"", NOT(REGEXMATCH(Sheet5!T1:T, "MATERIAL|DISPOSAL|PLANTS"))),
IF($B$11=Sheet5!AB1, FILTER(Sheet5!AD1:AD, Sheet5!AD1:AD<>"", NOT(REGEXMATCH(Sheet5!AC1:AC, "MATERIAL|DISPOSAL|PLANTS"))),
IF($B$11=Sheet5!AK1, FILTER(Sheet5!AM1:AM, Sheet5!AM1:AM<>"", NOT(REGEXMATCH(Sheet5!AL1:AL, "MATERIAL|DISPOSAL|PLANTS"))),
IF($B$11=Sheet5!AT1, FILTER(Sheet5!AV1:AV, Sheet5!AV1:AV<>"", NOT(REGEXMATCH(Sheet5!AU1:AU, "MATERIAL|DISPOSAL|PLANTS"))),
IF($B$11=Sheet5!BC1, FILTER(Sheet5!BE1:BE, Sheet5!BE1:BE<>"", NOT(REGEXMATCH(Sheet5!BD1:BD, "MATERIAL|DISPOSAL|PLANTS"))),
IF($B$11=Sheet5!BL1, FILTER(Sheet5!BN1:BN, Sheet5!BN1:BN<>"", NOT(REGEXMATCH(Sheet5!BM1:BM, "MATERIAL|DISPOSAL|PLANTS"))),
IF($B$11=Sheet5!BU1, FILTER(Sheet5!BW1:BW, Sheet5!BW1:BW<>"", NOT(REGEXMATCH(Sheet5!BV1:BV, "MATERIAL|DISPOSAL|PLANTS"))),
IF($B$11=Sheet5!CD1, FILTER(Sheet5!CF1:CF, Sheet5!CF1:CF<>"", NOT(REGEXMATCH(Sheet5!CE1:CE, "MATERIAL|DISPOSAL|PLANTS"))))
))))))))))+1))}, IF(COUNTIF(A12:A, TRUE)<2, "offset 1", ), 0)&QUERY(IF(A12:A=TRUE,
IF($B$11=Sheet5!A1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!C1:C, NOT(REGEXMATCH(Sheet5!B1:B, "MATERIAL|DISPOSAL|PLANTS")))),
IF($B$11=Sheet5!J1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!L1:L, NOT(REGEXMATCH(Sheet5!K1:K, "MATERIAL|DISPOSAL|PLANTS")))),
IF($B$11=Sheet5!S1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!U1:U, NOT(REGEXMATCH(Sheet5!T1:T, "MATERIAL|DISPOSAL|PLANTS")))),
IF($B$11=Sheet5!AB1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!AD1:AD, NOT(REGEXMATCH(Sheet5!AC1:AC, "MATERIAL|DISPOSAL|PLANTS")))),
IF($B$11=Sheet5!AK1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!AM1:AM, NOT(REGEXMATCH(Sheet5!AL1:AL, "MATERIAL|DISPOSAL|PLANTS")))),
IF($B$11=Sheet5!AT1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!AV1:AV, NOT(REGEXMATCH(Sheet5!AU1:AU, "MATERIAL|DISPOSAL|PLANTS")))),
IF($B$11=Sheet5!BC1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!BE1:BE, NOT(REGEXMATCH(Sheet5!BD1:BD, "MATERIAL|DISPOSAL|PLANTS")))),
IF($B$11=Sheet5!BL1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!BN1:BN, NOT(REGEXMATCH(Sheet5!BM1:BM, "MATERIAL|DISPOSAL|PLANTS")))),
IF($B$11=Sheet5!BU1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!BW1:BW, NOT(REGEXMATCH(Sheet5!BV1:BV, "MATERIAL|DISPOSAL|PLANTS")))),
IF($B$11=Sheet5!CD1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!CF1:CF, NOT(REGEXMATCH(Sheet5!CE1:CE, "MATERIAL|DISPOSAL|PLANTS")))),
)))))))))), ), "where Col1 is not null", 0),,999^99), "♦")))

Related

How to retrieve multiple named output parameters in MS ODBC stored procedure call

I am trying to call a stored procedure which has two output arguments, and get the output programmatically in a C++ program.
Code snippet for executing a query:
char const* const query =
"DECLARE #iMM int, #sMM varchar(100); "
"EXEC sp_myproc #sFoo = 'abcdef', #sBar = 'ghij', #iQux = 1,"
"#iOutInt = #iMM output, #sOutString = #sMM output;"
"PRINT #iMM; PRINT #sMM;";
auto result = SQLExecDirectA(handle, (SQLCHAR*)query, SQL_NTS);
This returns SQL_SUCCESS_WITH_INFO ., but SQLGetDiagRecA does not retrieve the printed output . SQLMoreResults returns 1, SQLParamData returns -1.
The same query does execute successfully in SSMS but I can't figure out how to get the output parameter values programmatically. There are various code examples using SQLBindParameter to retrieve multiple output parameters but none of them use named parameters.
I managed to get the data this way (maybe not optimal but at least it works):
char const* const query =
"EXEC sp_myproc #sFoo = 'abcdef', #sBar = 'ghij', #iQux = 1,"
"#iOutInt = ? output, #sOutString = ? output;"
short out_int;
SQLBindParameter(handle, 1, SQL_PARAM_OUTPUT, SQL_C_SSHORT, SQL_SMALLINT,
0, 0, &out_int, 1, NULL);
char outbuf[61];
SQLBindParameter(handle, 2, SQL_PARAM_OUTPUT, SQL_C_CHAR, SQL_VARCHAR,
60, 0, outbuf, 60, NULL);
auto result = SQLExecDirectA(handle, (SQLCHAR*)query, SQL_NTS);
if ( result == SQL_SUCCESS_WITH_INFO )
{
std::cout << out_int << ", '" << outbuf << "'\n";
}
Using SQL_CHAR instead of SQL_VARCHAR meant the result string was always right-padded with spaces .

How to get keyboard name? (to visually distinguish keyboards in a specific language)

I have for example 2 languages installed — English and Russian. And Russian has 2 keyboards — Ordinary and Mnemonic:
When I run the code:
UINT uLayouts;
HKL *lpList = NULL;
wchar_t szBufLng[512], szBufCtry[512];
uLayouts = GetKeyboardLayoutList(0, NULL);
lpList = (HKL*)LocalAlloc(LPTR, (uLayouts * sizeof(HKL)));
uLayouts = GetKeyboardLayoutList(uLayouts, lpList);
for(int i = 0; i < uLayouts; ++i)
{
GetLocaleInfo(MAKELCID(((UINT)lpList[i] & 0xffffffff),
SORT_DEFAULT), LOCALE_SISO639LANGNAME, szBufLng, 512);
GetLocaleInfo(MAKELCID(((UINT)lpList[i] & 0xffffffff),
SORT_DEFAULT), LOCALE_SISO3166CTRYNAME, szBufCtry, 512);
wprintf(L"%s-%s, %x\n", szBufLng, szBufCtry, (UINT)lpList[i]);
memset(szBufLng, 0, 512);
memset(szBufCtry, 0, 512);
}
if(lpList)
LocalFree(lpList);
I get the following result:
en-US, 04090409
ru-RU, 04190419
ru-RU, f0330419
My question is how to distinguish the mnemonic?
At least to display something like this:
en-US, 04090409
ru-RU, 04190419
rum-RU, f0330419
How to get keyboard name?
Same problem is discussed here (no solution):
https://forums.codeguru.com/showthread.php?492287-Keyboard-Layout-Name
http://web.archive.org/web/20081025132249/http://blogs.msdn.com/michkap/archive/2004/12/05/275231.aspx
http://web.archive.org/web/20100330193933/http://blogs.msdn.com/michkap/archive/2008/09/29/8968315.aspx
I exported data from the registry (\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts) in Windows 10 and based on it created a table. And with the help of SHLoadIndirectString got the localized name of the keyboard.
struct LAYOUT_KEYBOARD_INFO {
LCID layout_id;
short display_name_id;
wchar_t default_keyboard_name[64];
};
LAYOUT_KEYBOARD_INFO LAYOUT_KEYBOARDS[] = {
{0x0401, 5084, L"Arabic (101)"},
{0x0402, 5053, L"Bulgarian (Typewriter)"},
{0x0404, 5065, L"Chinese (Traditional) - US Keyboard"},
{0x0405, 5031, L"Czech"},
{0x0406, 5007, L"Danish"},
{0x0407, 5011, L"German"},
{0x0408, 5046, L"Greek"},
{0x0409, 5000, L"US"},
{0x040A, 5020, L"Spanish"},
{0x040B, 5009, L"Finnish"},
{0x040C, 5010, L"French"},
{0x040D, 5083, L"Hebrew"},
{0x040E, 5033, L"Hungarian"},
{0x040F, 5013, L"Icelandic"},
{0x0410, 5015, L"Italian"},
{0x0411, 5061, L"Japanese"},
{0x0412, 5063, L"Korean"},
{0x0413, 5008, L"Dutch"},
{0x0414, 5018, L"Norwegian"},
{0x0415, 5035, L"Polish (Programmers)"},
{0x0416, 5003, L"Portuguese (Brazilian ABNT)"},
{0x0418, 5037, L"Romanian (Legacy)"},
{0x0419, 5055, L"Russian"},
{0x041A, 5030, L"Standard"},
{0x041B, 5039, L"Slovak"},
{0x041C, 5029, L"Albanian"},
{0x041D, 5022, L"Swedish"},
{0x041E, 5079, L"Thai Kedmanee"},
{0x041F, 5060, L"Turkish Q"},
{0x0420, 5129, L"Urdu"},
{0x0422, 5058, L"Ukrainian"},
{0x0423, 5052, L"Belarusian"},
{0x0424, 5041, L"Slovenian"},
{0x0425, 5042, L"Estonian"},
{0x0426, 5043, L"Latvian"},
{0x0427, 5045, L"Lithuanian IBM"},
{0x0428, 5151, L"Tajik"},
{0x0429, 5124, L"Persian"},
{0x042A, 5118, L"Vietnamese"},
{0x042B, 5120, L"Armenian Eastern"},
{0x042C, 5117, L"Azeri Latin"},
{0x042E, 5163, L"Sorbian Standard (Legacy)"},
{0x042F, 5109, L"Macedonian (FYROM)"},
{0x0432, 5191, L"Setswana"},
{0x0437, 5119, L"Georgian"},
{0x0438, 5108, L"Faeroese"},
{0x0439, 5096, L"Devanagari - INSCRIPT"},
{0x043A, 5140, L"Maltese 47-Key"},
{0x043B, 5138, L"Norwegian with Sami"},
{0x043F, 5113, L"Kazakh"},
{0x0440, 5128, L"Kyrgyz Cyrillic"},
{0x0442, 5150, L"Turkmen"},
{0x0444, 5116, L"Tatar (Legacy)"},
{0x0445, 5135, L"Bengali"},
{0x0446, 5101, L"Punjabi"},
{0x0447, 5097, L"Gujarati"},
{0x0448, 5100, L"Oriya"},
{0x0449, 5102, L"Tamil"},
{0x044A, 5103, L"Telugu"},
{0x044B, 5098, L"Kannada"},
{0x044C, 5139, L"Malayalam"},
{0x044D, 5177, L"Assamese - INSCRIPT"},
{0x044E, 5104, L"Marathi"},
{0x0450, 5127, L"Mongolian Cyrillic"},
{0x0451, 5154, L"Tibetan (PRC)"},
{0x0452, 5145, L"United Kingdom Extended"},
{0x0453, 5161, L"Khmer"},
{0x0454, 5162, L"Lao"},
{0x045A, 5130, L"Syriac"},
{0x045B, 5166, L"Sinhala"},
{0x045C, 5209, L"Cherokee Nation"},
{0x0461, 5169, L"Nepali"},
{0x0463, 5159, L"Pashto (Afghanistan)"},
{0x0465, 5132, L"Divehi Phonetic"},
{0x0468, 5187, L"Hausa"},
{0x046A, 5189, L"Yoruba"},
{0x046C, 5186, L"Sesotho sa Leboa"},
{0x046D, 5148, L"Bashkir"},
{0x046E, 5168, L"Luxembourgish"},
{0x046F, 5170, L"Greenlandic"},
{0x0470, 5188, L"Igbo"},
{0x0474, 5231, L"Guarani"},
{0x0475, 5198, L"Hawaiian"},
{0x0480, 5165, L"Uyghur (Legacy)"},
{0x0481, 5146, L"Maori"},
{0x0485, 5160, L"Sakha"},
{0x0488, 5190, L"Wolof"},
{0x0492, 5199, L"Central Kurdish"},
{0x0804, 5072, L"Chinese (Simplified) - US Keyboard"},
{0x0807, 5024, L"Swiss German"},
{0x0809, 5025, L"United Kingdom"},
{0x080A, 5017, L"Latin American"},
{0x080C, 5002, L"Belgian French"},
{0x0813, 5001, L"Belgian (Period)"},
{0x0816, 5019, L"Portuguese"},
{0x081A, 5038, L"Serbian (Latin)"},
{0x082C, 5115, L"Azeri Cyrillic"},
{0x083B, 5144, L"Swedish with Sami"},
{0x0843, 5114, L"Uzbek Cyrillic"},
{0x0850, 5158, L"Mongolian (Mongolian Script)"},
{0x085D, 5156, L"Inuktitut - Latin"},
{0x085F, 5229, L"Central Atlas Tamazight"},
{0x0C04, 5192, L"Chinese (Traditional, Hong Kong S.A.R.) - US Keyboard"},
{0x0C0C, 5005, L"Canadian French (Legacy)"},
{0x0C1A, 5057, L"Serbian (Cyrillic)"},
{0x0C51, 5235, L"Dzongkha"},
{0x1004, 5193, L"Chinese (Simplified, Singapore) - US Keyboard"},
{0x1009, 5004, L"Canadian French"},
{0x100C, 5023, L"Swiss French"},
{0x105F, 5207, L"Tifinagh (Basic)"},
{0x1404, 5194, L"Chinese (Traditional, Macao S.A.R.) - US Keyboard"},
{0x1809, 5014, L"Irish"},
{0x201A, 5155, L"Bosnian (Cyrillic)"},
{0x4009, 5196, L"India"},
// Added F to "Layout Id"
{0xF028, 5085, L"Arabic (102)"},
{0xF004, 5054, L"Bulgarian (Latin)"},
{0xF005, 5032, L"Czech (QWERTY)"},
{0xF012, 5012, L"German (IBM)"},
{0xF016, 5048, L"Greek (220)"},
{0xF002, 5092, L"United States-Dvorak"},
{0xF086, 5021, L"Spanish Variation"},
{0xF006, 5034, L"Hungarian 101-key"},
{0xF003, 5016, L"Italian (142)"},
{0xF007, 5036, L"Polish (214)"},
{0xF010, 5126, L"Portuguese (Brazilian ABNT2)"},
{0xF0A5, 5175, L"Romanian (Standard)"},
{0xF008, 5056, L"Russian (Typewriter)"},
{0xF013, 5040, L"Slovak (QWERTY)"},
{0xF021, 5080, L"Thai Pattachote"},
{0xF014, 5059, L"Turkish F"},
{0xF015, 5044, L"Latvian (QWERTY)"},
{0xF027, 5088, L"Lithuanian"},
{0xF025, 5121, L"Armenian Western"},
{0xF0BD, 5234, L"Azerbaijani (Standard)"},
{0xF09F, 5164, L"Sorbian Extended"},
{0xF0A4, 5174, L"Macedonian (FYROM) - Standard"},
{0xF0AB, 5182, L"Georgian (QWERTY)"},
{0xF00C, 5105, L"Hindi Traditional"},
{0xF02B, 5141, L"Maltese 48-Key"},
{0xF02C, 5143, L"Sami Extended Norway"},
{0xF0BC, 5233, L"Tatar"},
{0xF02A, 5136, L"Bengali - INSCRIPT (Legacy)"},
{0xF0B5, 5222, L"Tibetan (PRC) - Updated"},
{0xF02F, 5200, L"Khmer (NIDA)"},
{0xF00E, 5131, L"Syriac Phonetic"},
{0xF0A0, 5167, L"Sinhala - Wij 9"},
{0xF037, 5201, L"Cherokee Nation Phonetic"},
{0xF0A7, 5171, L"Inuktitut - Naqittaut"},
{0xF00D, 5133, L"Divehi Typewriter"},
{0xF0AD, 5185, L"Uyghur"},
{0xF01E, 5089, L"Belgian (Comma)"},
{0xF02D, 5137, L"Finnish with Sami"},
{0xF0B2, 5225, L"Traditional Mongolian (Standard)"},
{0xF030, 5249, L"Myanmar (Phonetic order)"},
{0xF020, 5110, L"Canadian Multilingual Standard"},
{0xF036, 5208, L"Tifinagh (Full)"},
{0xF026, 5125, L"Gaelic"},
{0xF029, 5086, L"Arabic (102) AZERTY"},
{0xF0A3, 5173, L"Bulgarian (Phonetic)"},
{0xF00A, 5087, L"Czech Programmers"},
{0xF018, 5049, L"Greek (319)"},
{0xF001, 5026, L"United States-International"},
{0xF03D, 5214, L"Hebrew (Standard)"},
{0xF0A6, 5176, L"Romanian (Programmers)"},
{0xF033, 5203, L"Russian - Mnemonic"},
{0xF022, 5081, L"Thai Kedmanee (non-ShiftLock)"},
{0xF0A8, 5179, L"Ukrainian (Enhanced)"},
{0xF0B1, 5224, L"Latvian (Standard)"},
{0xF0A1, 5172, L"Lithuanian Standard"},
{0xF038, 5217, L"Armenian Phonetic"},
{0xF0AE, 5184, L"Sorbian Standard"},
{0xF0AC, 5181, L"Georgian (Ergonomic)"},
{0xF0A9, 5178, L"Bengali - INSCRIPT"},
{0xF0C8, 5246, L"Tamil 99"},
{0xF02E, 5142, L"Sami Extended Finland-Sweden"},
{0xF031, 5204, L"New Tai Lue"},
{0xF0AA, 5180, L"Bulgarian"},
{0xF017, 5050, L"Greek (220) Latin"},
{0xF01A, 5027, L"United States-Dvorak for left hand"},
{0xF023, 5082, L"Thai Pattachote (non-ShiftLock)"},
{0xF039, 5218, L"Armenian Typewriter"},
{0xF03B, 5215, L"Georgian Ministry of Education and Science Schools"},
{0xF034, 5205, L"Tai Le"},
{0xF0AF, 5195, L"Bulgarian (Phonetic Traditional)"},
{0xF011, 5051, L"Greek (319) Latin"},
{0xF01B, 5028, L"United States-Dvorak for right hand"},
{0xF03C, 5216, L"Georgian (Old Alphabets)"},
{0xF032, 5206, L"Ogham"},
{0xF019, 5047, L"Greek Latin"},
{0xF00B, 5123, L"US English Table for IBM Arabic 238_L"},
{0xF03A, 5213, L"Persian (Standard)"},
{0xF01F, 5122, L"Greek Polytonic"},
{0xF03E, 5210, L"Lisu (Basic)"},
{0xF03F, 5211, L"Lisu (Standard)"},
{0xF040, 5212, L"N’Ko"},
{0xF041, 5219, L"Phags-pa"},
{0xF0B3, 5220, L"Buginese"},
{0xF0B4, 5221, L"Gothic"},
{0xF0B6, 5223, L"Ol Chiki"},
{0xF0B7, 5226, L"Osmanya"},
{0xF0B8, 5227, L"Old Italic"},
{0xF0B9, 5228, L"Sora"},
{0xF0BA, 5230, L"Javanese"},
{0xF0BB, 5232, L"Futhark"},
{0xF0CB, 5250, L"Myanmar (Visual Order)"},
{0xF0CC, 5251, L"ADLaM"},
{0xF0CD, 5252, L"Osage"}
};
CString GetLayoutKeyboardDisplayName(DWORD layout, bool fLocalized = true) {
DWORD layout_id = layout >> 16;
CString keyboard_name = L"";
int number_of_elements = sizeof(LAYOUT_KEYBOARDS)/sizeof(LAYOUT_KEYBOARDS[0]);
for (int i = 0; i < number_of_elements; i++)
if (LAYOUT_KEYBOARDS[i].layout_id == layout_id) {
wchar_t szBuf[512];
if (fLocalized && SHLoadIndirectString(L"#%SystemRoot%\\system32\\input.dll,-" + IntToStr(LAYOUT_KEYBOARDS[i].display_name_id), szBuf, 512, NULL) == S_OK)
keyboard_name.Format(L"%s", szBuf);
else
keyboard_name = LAYOUT_KEYBOARDS[i].default_keyboard_name;
memset(szBuf, 0, 512);
return keyboard_name;
}
keyboard_name.Format(L"%X", layout_id);
keyboard_name.TrimLeft(L"0");
return keyboard_name;
}
//...
wprintf(L"%X, %s\n", (UINT)lpList[i], GetLayoutKeyboardDisplayName((UINT)lpList[i]));
Keyboard layouts can be obtained from windows regedit.
the following is python code:
# -*- coding: utf-8 -*-
# 从注册表中获取所有的键盘布局
# get all keyboard layouts from win regedit
import json
import winreg
def get_keyboard_layouts():
"""
windows 从注册表中获取所有的键盘布局
参考: https://stackoverflow.com/questions/66841378
"""
print('get keyboard layouts')
# reg root path
loc_root = winreg.HKEY_LOCAL_MACHINE
# Keyboard Layouts reg path
loc_keyboards = r'SYSTEM\CurrentControlSet\Control\Keyboard Layouts'
# open reg path, get handle
handle_keyboards = winreg.OpenKey(key=loc_root, sub_key=loc_keyboards)
# get info of reg 'Keyboard Layouts'
# The result is a tuple of 3 items:
# An integer that identifies the number of sub keys this key has.
# An integer that identifies the number of values this key has.
# An integer that identifies when the key was last modified (if available)
# as 100's of nanoseconds since Jan 1, 1600.
info_keyboards = winreg.QueryInfoKey(handle_keyboards)
# get sub key length
keyboards_len = info_keyboards[0]
keyboard_layout = {}
# traverse to get sub key
for i in range(keyboards_len):
# sub key name
name_keyboard = winreg.EnumKey(handle_keyboards, i)
# sub key path
loc_keyboard = fr'{loc_keyboards}\{name_keyboard}'
# open sub key
handle_keyboard = winreg.OpenKey(key=loc_root, sub_key=loc_keyboard)
# get layout text
layout_text = winreg.QueryValueEx(handle_keyboard, 'Layout Text')[0]
# save layout name and layout text
keyboard_layout[name_keyboard] = layout_text
# 转换关系参考 https://stackoverflow.com/questions/42047253/
# to hex string
# {'00000401': 'Arabic (101)', '00000402': 'Bulgarian (Typewriter)'}
# 得到的是 16 进制的字符串, 要转换为 0x804 的 16进制数
# 16 进制字符串转 16 进制整数
# int(win32api.GetKeyboardLayoutName(), 10) > 804
# 16 进制字符串转 10 进制整数
# int(win32api.GetKeyboardLayoutName(), 16) > 2052
name_keyboard_hex = hex(int(name_keyboard, 16))
# save hex layout name and layout text
keyboard_layout[name_keyboard_hex] = layout_text
handle_keyboard.Close()
handle_keyboards.Close()
return keyboard_layout
if __name__ == '__main__':
print(json.dumps(get_keyboard_layouts()))
keyboard_layouts = {
"00000401": "Arabic (101)",
"0x401": "Arabic (101)",
"00000402": "Bulgarian (Typewriter)",
"0x402": "Bulgarian (Typewriter)",
"00000404": "Chinese (Traditional) - US Keyboard",
"0x404": "Chinese (Traditional) - US Keyboard",
"00000405": "Czech",
"0x405": "Czech",
"00000406": "Danish",
"0x406": "Danish",
"00000407": "German",
"0x407": "German",
"00000408": "Greek",
"0x408": "Greek",
"00000409": "US",
"0x409": "US",
"0000040a": "Spanish",
"0x40a": "Spanish",
"0000040b": "Finnish",
"0x40b": "Finnish",
"0000040c": "French",
"0x40c": "French",
"0000040d": "Hebrew",
"0x40d": "Hebrew",
"0000040e": "Hungarian",
"0x40e": "Hungarian",
"0000040f": "Icelandic",
"0x40f": "Icelandic",
"00000410": "Italian",
"0x410": "Italian",
"00000411": "Japanese",
"0x411": "Japanese",
"00000412": "Korean",
"0x412": "Korean",
"00000413": "Dutch",
"0x413": "Dutch",
"00000414": "Norwegian",
"0x414": "Norwegian",
"00000415": "Polish (Programmers)",
"0x415": "Polish (Programmers)",
"00000416": "Portuguese (Brazilian ABNT)",
"0x416": "Portuguese (Brazilian ABNT)",
"00000418": "Romanian (Legacy)",
"0x418": "Romanian (Legacy)",
"00000419": "Russian",
"0x419": "Russian",
"0000041a": "Standard",
"0x41a": "Standard",
"0000041b": "Slovak",
"0x41b": "Slovak",
"0000041c": "Albanian",
"0x41c": "Albanian",
"0000041d": "Swedish",
"0x41d": "Swedish",
"0000041e": "Thai Kedmanee",
"0x41e": "Thai Kedmanee",
"0000041f": "Turkish Q",
"0x41f": "Turkish Q",
"00000420": "Urdu",
"0x420": "Urdu",
"00000422": "Ukrainian",
"0x422": "Ukrainian",
"00000423": "Belarusian",
"0x423": "Belarusian",
"00000424": "Slovenian",
"0x424": "Slovenian",
"00000425": "Estonian",
"0x425": "Estonian",
"00000426": "Latvian",
"0x426": "Latvian",
"00000427": "Lithuanian IBM",
"0x427": "Lithuanian IBM",
"00000428": "Tajik",
"0x428": "Tajik",
"00000429": "Persian",
"0x429": "Persian",
"0000042a": "Vietnamese",
"0x42a": "Vietnamese",
"0000042b": "Armenian Eastern",
"0x42b": "Armenian Eastern",
"0000042c": "Azeri Latin",
"0x42c": "Azeri Latin",
"0000042e": "Sorbian Standard (Legacy)",
"0x42e": "Sorbian Standard (Legacy)",
"0000042f": "Macedonian (FYROM)",
"0x42f": "Macedonian (FYROM)",
"00000432": "Setswana",
"0x432": "Setswana",
"00000437": "Georgian",
"0x437": "Georgian",
"00000438": "Faeroese",
"0x438": "Faeroese",
"00000439": "Devanagari - INSCRIPT",
"0x439": "Devanagari - INSCRIPT",
"0000043a": "Maltese 47-Key",
"0x43a": "Maltese 47-Key",
"0000043b": "Norwegian with Sami",
"0x43b": "Norwegian with Sami",
"0000043f": "Kazakh",
"0x43f": "Kazakh",
"00000440": "Kyrgyz Cyrillic",
"0x440": "Kyrgyz Cyrillic",
"00000442": "Turkmen",
"0x442": "Turkmen",
"00000444": "Tatar (Legacy)",
"0x444": "Tatar (Legacy)",
"00000445": "Bengali",
"0x445": "Bengali",
"00000446": "Punjabi",
"0x446": "Punjabi",
"00000447": "Gujarati",
"0x447": "Gujarati",
"00000448": "Oriya",
"0x448": "Oriya",
"00000449": "Tamil",
"0x449": "Tamil",
"0000044a": "Telugu",
"0x44a": "Telugu",
"0000044b": "Kannada",
"0x44b": "Kannada",
"0000044c": "Malayalam",
"0x44c": "Malayalam",
"0000044d": "Assamese - INSCRIPT",
"0x44d": "Assamese - INSCRIPT",
"0000044e": "Marathi",
"0x44e": "Marathi",
"00000450": "Mongolian Cyrillic",
"0x450": "Mongolian Cyrillic",
"00000451": "Tibetan (PRC)",
"0x451": "Tibetan (PRC)",
"00000452": "United Kingdom Extended",
"0x452": "United Kingdom Extended",
"00000453": "Khmer",
"0x453": "Khmer",
"00000454": "Lao",
"0x454": "Lao",
"0000045a": "Syriac",
"0x45a": "Syriac",
"0000045b": "Sinhala",
"0x45b": "Sinhala",
"0000045c": "Cherokee Nation",
"0x45c": "Cherokee Nation",
"00000461": "Nepali",
"0x461": "Nepali",
"00000463": "Pashto (Afghanistan)",
"0x463": "Pashto (Afghanistan)",
"00000465": "Divehi Phonetic",
"0x465": "Divehi Phonetic",
"00000468": "Hausa",
"0x468": "Hausa",
"0000046a": "Yoruba",
"0x46a": "Yoruba",
"0000046c": "Sesotho sa Leboa",
"0x46c": "Sesotho sa Leboa",
"0000046d": "Bashkir",
"0x46d": "Bashkir",
"0000046e": "Luxembourgish",
"0x46e": "Luxembourgish",
"0000046f": "Greenlandic",
"0x46f": "Greenlandic",
"00000470": "Igbo",
"0x470": "Igbo",
"00000474": "Guarani",
"0x474": "Guarani",
"00000475": "Hawaiian",
"0x475": "Hawaiian",
"00000480": "Uyghur (Legacy)",
"0x480": "Uyghur (Legacy)",
"00000481": "Maori",
"0x481": "Maori",
"00000485": "Sakha",
"0x485": "Sakha",
"00000488": "Wolof",
"0x488": "Wolof",
"00000492": "Central Kurdish",
"0x492": "Central Kurdish",
"00000804": "Chinese (Simplified) - US Keyboard",
"0x804": "Chinese (Simplified) - US Keyboard",
"00000807": "Swiss German",
"0x807": "Swiss German",
"00000809": "United Kingdom",
"0x809": "United Kingdom",
"0000080a": "Latin American",
"0x80a": "Latin American",
"0000080c": "Belgian French",
"0x80c": "Belgian French",
"00000813": "Belgian (Period)",
"0x813": "Belgian (Period)",
"00000816": "Portuguese",
"0x816": "Portuguese",
"0000081a": "Serbian (Latin)",
"0x81a": "Serbian (Latin)",
"0000082c": "Azeri Cyrillic",
"0x82c": "Azeri Cyrillic",
"0000083b": "Swedish with Sami",
"0x83b": "Swedish with Sami",
"00000843": "Uzbek Cyrillic",
"0x843": "Uzbek Cyrillic",
"00000850": "Mongolian (Mongolian Script)",
"0x850": "Mongolian (Mongolian Script)",
"0000085d": "Inuktitut - Latin",
"0x85d": "Inuktitut - Latin",
"0000085f": "Central Atlas Tamazight",
"0x85f": "Central Atlas Tamazight",
"00000c04": "Chinese (Traditional, Hong Kong S.A.R.) - US Keyboard",
"0xc04": "Chinese (Traditional, Hong Kong S.A.R.) - US Keyboard",
"00000c0c": "Canadian French (Legacy)",
"0xc0c": "Canadian French (Legacy)",
"00000c1a": "Serbian (Cyrillic)",
"0xc1a": "Serbian (Cyrillic)",
"00000C51": "Dzongkha",
"0xc51": "Dzongkha",
"00001004": "Chinese (Simplified, Singapore) - US Keyboard",
"0x1004": "Chinese (Simplified, Singapore) - US Keyboard",
"00001009": "Canadian French",
"0x1009": "Canadian French",
"0000100c": "Swiss French",
"0x100c": "Swiss French",
"0000105f": "Tifinagh (Basic)",
"0x105f": "Tifinagh (Basic)",
"00001404": "Chinese (Traditional, Macao S.A.R.) - US Keyboard",
"0x1404": "Chinese (Traditional, Macao S.A.R.) - US Keyboard",
"00001809": "Irish",
"0x1809": "Irish",
"0000201a": "Bosnian (Cyrillic)",
"0x201a": "Bosnian (Cyrillic)",
"00004009": "India",
"0x4009": "India",
"00010401": "Arabic (102)",
"0x10401": "Arabic (102)",
"00010402": "Bulgarian (Latin)",
"0x10402": "Bulgarian (Latin)",
"00010405": "Czech (QWERTY)",
"0x10405": "Czech (QWERTY)",
"00010407": "German (IBM)",
"0x10407": "German (IBM)",
"00010408": "Greek (220)",
"0x10408": "Greek (220)",
"00010409": "United States-Dvorak",
"0x10409": "United States-Dvorak",
"0001040a": "Spanish Variation",
"0x1040a": "Spanish Variation",
"0001040e": "Hungarian 101-key",
"0x1040e": "Hungarian 101-key",
"00010410": "Italian (142)",
"0x10410": "Italian (142)",
"00010415": "Polish (214)",
"0x10415": "Polish (214)",
"00010416": "Portuguese (Brazilian ABNT2)",
"0x10416": "Portuguese (Brazilian ABNT2)",
"00010418": "Romanian (Standard)",
"0x10418": "Romanian (Standard)",
"00010419": "Russian (Typewriter)",
"0x10419": "Russian (Typewriter)",
"0001041b": "Slovak (QWERTY)",
"0x1041b": "Slovak (QWERTY)",
"0001041e": "Thai Pattachote",
"0x1041e": "Thai Pattachote",
"0001041f": "Turkish F",
"0x1041f": "Turkish F",
"00010426": "Latvian (QWERTY)",
"0x10426": "Latvian (QWERTY)",
"00010427": "Lithuanian",
"0x10427": "Lithuanian",
"0001042b": "Armenian Western",
"0x1042b": "Armenian Western",
"0001042c": "Azerbaijani (Standard)",
"0x1042c": "Azerbaijani (Standard)",
"0001042e": "Sorbian Extended",
"0x1042e": "Sorbian Extended",
"0001042f": "Macedonian (FYROM) - Standard",
"0x1042f": "Macedonian (FYROM) - Standard",
"00010437": "Georgian (QWERTY)",
"0x10437": "Georgian (QWERTY)",
"00010439": "Hindi Traditional",
"0x10439": "Hindi Traditional",
"0001043a": "Maltese 48-Key",
"0x1043a": "Maltese 48-Key",
"0001043b": "Sami Extended Norway",
"0x1043b": "Sami Extended Norway",
"00010444": "Tatar",
"0x10444": "Tatar",
"00010445": "Bengali - INSCRIPT (Legacy)",
"0x10445": "Bengali - INSCRIPT (Legacy)",
"00010451": "Tibetan (PRC) - Updated",
"0x10451": "Tibetan (PRC) - Updated",
"00010453": "Khmer (NIDA)",
"0x10453": "Khmer (NIDA)",
"0001045a": "Syriac Phonetic",
"0x1045a": "Syriac Phonetic",
"0001045b": "Sinhala - Wij 9",
"0x1045b": "Sinhala - Wij 9",
"0001045c": "Cherokee Nation Phonetic",
"0x1045c": "Cherokee Nation Phonetic",
"0001045d": "Inuktitut - Naqittaut",
"0x1045d": "Inuktitut - Naqittaut",
"00010465": "Divehi Typewriter",
"0x10465": "Divehi Typewriter",
"00010480": "Uyghur",
"0x10480": "Uyghur",
"0001080c": "Belgian (Comma)",
"0x1080c": "Belgian (Comma)",
"0001083b": "Finnish with Sami",
"0x1083b": "Finnish with Sami",
"00010850": "Traditional Mongolian (Standard)",
"0x10850": "Traditional Mongolian (Standard)",
"00010c00": "Myanmar (Phonetic order)",
"0x10c00": "Myanmar (Phonetic order)",
"00011009": "Canadian Multilingual Standard",
"0x11009": "Canadian Multilingual Standard",
"0001105f": "Tifinagh (Full)",
"0x1105f": "Tifinagh (Full)",
"00011809": "Gaelic",
"0x11809": "Gaelic",
"00020401": "Arabic (102) AZERTY",
"0x20401": "Arabic (102) AZERTY",
"00020402": "Bulgarian (Phonetic)",
"0x20402": "Bulgarian (Phonetic)",
"00020405": "Czech Programmers",
"0x20405": "Czech Programmers",
"00020408": "Greek (319)",
"0x20408": "Greek (319)",
"00020409": "United States-International",
"0x20409": "United States-International",
"0002040d": "Hebrew (Standard)",
"0x2040d": "Hebrew (Standard)",
"00020418": "Romanian (Programmers)",
"0x20418": "Romanian (Programmers)",
"00020419": "Russian - Mnemonic",
"0x20419": "Russian - Mnemonic",
"0002041e": "Thai Kedmanee (non-ShiftLock)",
"0x2041e": "Thai Kedmanee (non-ShiftLock)",
"00020422": "Ukrainian (Enhanced)",
"0x20422": "Ukrainian (Enhanced)",
"00020426": "Latvian (Standard)",
"0x20426": "Latvian (Standard)",
"00020427": "Lithuanian Standard",
"0x20427": "Lithuanian Standard",
"0002042b": "Armenian Phonetic",
"0x2042b": "Armenian Phonetic",
"0002042e": "Sorbian Standard",
"0x2042e": "Sorbian Standard",
"00020437": "Georgian (Ergonomic)",
"0x20437": "Georgian (Ergonomic)",
"00020445": "Bengali - INSCRIPT",
"0x20445": "Bengali - INSCRIPT",
"00020449": "Tamil 99",
"0x20449": "Tamil 99",
"0002083b": "Sami Extended Finland-Sweden",
"0x2083b": "Sami Extended Finland-Sweden",
"00020c00": "New Tai Lue",
"0x20c00": "New Tai Lue",
"00030402": "Bulgarian",
"0x30402": "Bulgarian",
"00030408": "Greek (220) Latin",
"0x30408": "Greek (220) Latin",
"00030409": "United States-Dvorak for left hand",
"0x30409": "United States-Dvorak for left hand",
"0003041e": "Thai Pattachote (non-ShiftLock)",
"0x3041e": "Thai Pattachote (non-ShiftLock)",
"0003042b": "Armenian Typewriter",
"0x3042b": "Armenian Typewriter",
"00030437": "Georgian Ministry of Education and Science Schools",
"0x30437": "Georgian Ministry of Education and Science Schools",
"00030c00": "Tai Le",
"0x30c00": "Tai Le",
"00040402": "Bulgarian (Phonetic Traditional)",
"0x40402": "Bulgarian (Phonetic Traditional)",
"00040408": "Greek (319) Latin",
"0x40408": "Greek (319) Latin",
"00040409": "United States-Dvorak for right hand",
"0x40409": "United States-Dvorak for right hand",
"00040437": "Georgian (Old Alphabets)",
"0x40437": "Georgian (Old Alphabets)",
"00040c00": "Ogham",
"0x40c00": "Ogham",
"00050408": "Greek Latin",
"0x50408": "Greek Latin",
"00050409": "US English Table for IBM Arabic 238_L",
"0x50409": "US English Table for IBM Arabic 238_L",
"00050429": "Persian (Standard)",
"0x50429": "Persian (Standard)",
"00060408": "Greek Polytonic",
"0x60408": "Greek Polytonic",
"00070c00": "Lisu (Basic)",
"0x70c00": "Lisu (Basic)",
"00080c00": "Lisu (Standard)",
"0x80c00": "Lisu (Standard)",
"00090c00": "N\u2019Ko",
"0x90c00": "N\u2019Ko",
"000a0c00": "Phags-pa",
"0xa0c00": "Phags-pa",
"000b0c00": "Buginese",
"0xb0c00": "Buginese",
"000c0c00": "Gothic",
"0xc0c00": "Gothic",
"000d0c00": "Ol Chiki",
"0xd0c00": "Ol Chiki",
"000e0c00": "Osmanya",
"0xe0c00": "Osmanya",
"000f0c00": "Old Italic",
"0xf0c00": "Old Italic",
"00100c00": "Sora",
"0x100c00": "Sora",
"00110c00": "Javanese",
"0x110c00": "Javanese",
"00120c00": "Futhark",
"0x120c00": "Futhark",
"00130c00": "Myanmar (Visual Order)",
"0x130c00": "Myanmar (Visual Order)",
"00140c00": "ADLaM",
"0x140c00": "ADLaM",
"00150c00": "Osage",
"0x150c00": "Osage"
}

Batch Transform Error for deepAR algorithm

Describe the bug
Hi,
I'm running the batch transforms from this Amazon SageMaker Batch Transform for the deepAR model implementation in the tutorial
Stock Price Prediction, using SageMaker DeepAR.
Batch transform code
from sagemaker.transformer import Transformer
model = session.create_model_from_job(estimator._current_job_name, name='{}-test'.format(estimator._current_job_name))
test_transformer = Transformer(model,
1,
'ml.m4.xlarge',
output_path='s3://sagemaker-eu-west-1-xxxxxxxxxxxx/sagemaker/stock-prediction/output',
sagemaker_session=session,
strategy='BatchStrategy',
assemble_with='Line')
test_transformer.transform('s3://sagemaker-eu-west-1-xxxxxxxxxxxx/sagemaker/stock-prediction/source/D/test/test.json', split_type='Line')
test_transformer.wait()
JSON input
{"start": "2018-07-24 00:00:00", "target": [81.73, 79.86, 83.39, 82.91, 82.91, 82.97, 82.97, 82.69, 81.5, 81.18, 82.34, 82.34, 83.51, 83.51, 84.05, 84.48, 84.81, 83.58, 83.58, 83.29, 83.29, 82.45, 81.31, 81.8, 81.41, 81.41, 81.75, 81.75, 82.93, 82.29, 81.08, 81.29, 81.29, 83.19, 83.19, 84.39, 84.23, 84.6, 83.41, 83.41, 82.79, 82.79, 81.88, 81.25, 80.73, 81.07, 81.07, 81.1, 81.1, 80.76, 81.32, 82.47, 82.93, 82.93, 82.54, 82.54, 82.67, 83.54, 85.32, 85.77, 85.77, 83.5, 83.5, 79.0, 79.03, 79.0, 77.71, 77.71, 78.14, 78.14, 78.7, 78.26, 78.26, 77.68, 77.68, 76.87, 76.87, 76.39, 75.35, 74.3, 74.49, 74.49, 75.21, 75.21, 75.75, 75.24, 75.13, 74.64, 74.64, 74.44, 74.44, 73.5, 72.69, 74.5, 75.02, 75.02, 76.4, 76.4], "dynamic_feat": [[82.2, 81.31, 83.39, 84.23, 84.23, 83.12, 83.12, 83.27, 82.28, 81.66, 83.02, 83.02, 84.38, 84.38, 84.79, 84.68, 85.42, 84.19, 84.19, 84.02, 84.02, 83.51, 82.93, 82.15, 81.78, 81.78, 82.45, 82.45, 83.15, 83.66, 81.76, 81.46, 81.46, 83.33, 83.33, 85.22, 84.68, 85.75, 83.98, 83.98, 82.89, 82.89, 82.95, 82.11, 81.84, 81.19, 81.19, 81.5, 81.5, 81.05, 81.45, 83.35, 83.25, 83.25, 83.05, 83.05, 83.81, 83.82, 85.48, 86.74, 86.74, 85.26, 85.26, 83.2, 79.03, 79.16, 78.44, 78.44, 78.7, 78.7, 79.44, 78.99, 78.99, 77.94, 77.94, 77.39, 77.39, 76.78, 76.0, 75.21, 75.52, 75.52, 75.86, 75.86, 75.98, 75.47, 76.4, 75.2, 75.2, 75.94, 75.94, 74.53, 74.09, 74.97, 75.02, 75.02, 79.38, 79.38], [81.06, 79.38, 81.22, 82.45, 82.45, 82.51, 82.51, 81.97, 80.88, 79.22, 82.11, 82.11, 82.86, 82.86, 84.05, 83.53, 84.57, 82.9, 82.9, 83.28, 83.28, 81.92, 80.79, 81.3, 80.46, 80.46, 81.73, 81.73, 81.95, 81.18, 80.92, 80.76, 80.76, 82.43, 82.43, 84.26, 83.52, 83.17, 83.21, 83.21, 82.15, 82.15, 81.44, 81.03, 80.43, 80.46, 80.46, 80.65, 80.65, 80.18, 80.37, 82.28, 82.42, 82.42, 82.04, 82.04, 82.26, 82.56, 83.85, 85.26, 85.26, 83.4, 83.4, 78.51, 77.35, 78.18, 77.32, 77.32, 78.09, 78.09, 78.0, 78.05, 78.05, 77.24, 77.24, 76.72, 76.72, 75.66, 75.12, 73.74, 74.3, 74.3, 73.8, 73.8, 75.25, 74.65, 75.06, 73.08, 73.08, 74.07, 74.07, 72.85, 72.44, 73.48, 73.62, 73.62, 75.33, 75.33], [81.13, 81.1, 81.59, 84.18, 84.18, 82.55, 82.55, 82.6, 81.88, 79.95, 82.32, 82.32, 82.96, 82.96, 84.56, 84.09, 84.77, 83.83, 83.83, 83.48, 83.48, 83.46, 82.86, 81.86, 81.46, 81.46, 82.1, 82.1, 82.06, 83.43, 81.76, 81.26, 81.26, 82.44, 82.44, 84.85, 84.57, 83.59, 83.63, 83.63, 82.46, 82.46, 82.68, 81.45, 81.48, 80.85, 80.85, 80.67, 80.67, 81.02, 81.25, 82.42, 82.58, 82.58, 82.14, 82.14, 83.5, 82.72, 83.93, 86.52, 86.52, 85.21, 85.21, 82.98, 77.98, 78.19, 77.59, 77.59, 78.31, 78.31, 78.85, 78.55, 78.55, 77.64, 77.64, 77.16, 77.16, 76.65, 75.89, 73.86, 74.63, 74.63, 74.49, 74.49, 75.42, 75.27, 76.19, 74.16, 74.16, 75.89, 75.89, 73.16, 73.42, 73.59, 73.86, 73.86, 75.48, 75.48]]}
{"start": "2018-07-24 00:00:00", "target": [196.9, 193.9, 197.8, 197.3, 197.3, 197.45, 197.45, 197.0, 189.85, 186.45, 184.45, 184.45, 186.65, 186.65, 188.15, 188.05, 189.0, 186.5, 186.5, 187.45, 187.45, 185.9, 182.9, 184.05, 182.65, 182.65, 184.9, 184.9, 185.3, 160.85, 153.95, 155.45, 155.45, 160.1, 160.1, 159.9, 160.35, 161.1, 158.05, 158.05, 156.6, 156.6, 155.15, 152.7, 151.4, 150.15, 150.15, 150.35, 150.35, 147.0, 149.6, 149.35, 150.7, 150.7, 151.1, 151.1, 150.0, 151.9, 158.0, 159.1, 159.1, 156.8, 156.8, 152.9, 151.7, 151.5, 149.95, 149.95, 151.5, 151.5, 152.75, 146.95, 146.95, 144.3, 144.3, 143.85, 143.85, 143.1, 139.2, 137.0, 140.15, 140.15, 138.4, 138.4, 140.6, 138.95, 137.75, 131.5, 131.5, 133.3, 133.3, 133.3, 129.45, 138.5, 136.1, 136.1, 143.55, 143.55], "dynamic_feat": [[197.25, 196.25, 198.1, 198.35, 198.35, 198.3, 198.3, 197.7, 196.45, 186.8, 187.75, 187.75, 188.65, 188.65, 189.35, 188.4, 190.05, 187.1, 187.1, 188.45, 188.45, 187.25, 186.35, 185.0, 183.9, 183.9, 186.05, 186.05, 185.65, 186.1, 158.95, 155.95, 155.95, 161.4, 161.4, 160.15, 160.7, 162.45, 159.55, 159.55, 157.6, 157.6, 157.55, 155.2, 153.55, 152.15, 152.15, 151.9, 151.9, 150.55, 149.85, 151.5, 151.35, 151.35, 151.8, 151.8, 151.7, 152.45, 158.4, 160.35, 160.35, 157.95, 157.95, 156.85, 151.9, 151.7, 151.1, 151.1, 152.75, 152.75, 154.25, 148.25, 148.25, 144.45, 144.45, 144.0, 144.0, 145.1, 142.0, 140.1, 141.3, 141.3, 140.55, 140.55, 142.3, 139.45, 140.75, 133.0, 133.0, 134.6, 134.6, 134.25, 133.85, 140.95, 136.2, 136.2, 146.65, 146.65], [194.0, 192.5, 195.7, 196.15, 196.15, 196.75, 196.75, 195.25, 189.3, 183.0, 184.05, 184.05, 185.25, 185.25, 187.7, 186.55, 187.85, 185.35, 185.35, 186.05, 186.05, 184.55, 182.05, 183.15, 181.25, 181.25, 184.6, 184.6, 184.0, 157.9, 153.35, 154.1, 154.1, 157.05, 157.05, 157.75, 159.3, 159.1, 157.95, 157.95, 155.95, 155.95, 154.45, 149.75, 151.35, 148.85, 148.85, 150.25, 150.25, 146.65, 146.75, 149.25, 149.25, 149.25, 150.25, 150.25, 148.8, 149.65, 154.0, 158.3, 158.3, 156.35, 156.35, 151.6, 148.5, 149.65, 148.95, 148.95, 150.4, 150.4, 151.15, 145.05, 145.05, 141.4, 141.4, 142.5, 142.5, 142.35, 138.8, 136.1, 137.6, 137.6, 137.5, 137.5, 139.35, 137.75, 137.7, 127.9, 127.9, 132.25, 132.25, 130.6, 129.15, 130.9, 133.1, 133.1, 135.9, 135.9], [194.15, 195.75, 196.05, 198.2, 198.2, 196.85, 196.85, 196.7, 195.65, 183.6, 186.9, 186.9, 185.8, 185.8, 188.5, 187.5, 188.3, 186.5, 186.5, 186.35, 186.35, 186.95, 186.15, 184.25, 182.6, 182.6, 184.9, 184.9, 184.0, 185.65, 158.5, 155.25, 155.25, 157.8, 157.8, 159.8, 159.9, 159.95, 158.9, 158.9, 156.9, 156.9, 157.25, 154.3, 151.85, 151.85, 151.85, 150.55, 150.55, 150.2, 148.6, 149.9, 151.15, 151.15, 150.5, 150.5, 151.55, 150.05, 154.1, 159.65, 159.65, 157.6, 157.6, 156.25, 150.75, 150.3, 150.15, 150.15, 151.1, 151.1, 152.2, 148.25, 148.25, 143.6, 143.6, 143.4, 143.4, 144.75, 141.7, 136.1, 139.05, 139.05, 140.15, 140.15, 139.4, 139.4, 140.55, 132.7, 132.7, 134.55, 134.55, 131.6, 133.1, 131.4, 135.35, 135.35, 136.8, 136.8]]}
{"start": "2018-07-24 00:00:00", "target": [59.14, 57.88, 59.51, 59.29, 59.29, 59.35, 59.35, 59.15, 58.24, 57.41, 58.16, 58.16, 58.25, 58.25, 58.89, 59.06, 59.04, 57.2, 57.2, 57.23, 57.23, 56.45, 55.05, 55.29, 54.92, 54.92, 55.29, 55.29, 55.87, 55.3, 54.41, 54.75, 54.75, 56.11, 56.11, 56.3, 56.67, 56.65, 55.7, 55.7, 55.0, 55.0, 54.2, 54.28, 54.32, 54.48, 54.48, 54.5, 54.5, 54.05, 54.53, 55.09, 55.54, 55.54, 55.41, 55.41, 55.77, 56.32, 57.21, 57.61, 57.61, 56.13, 56.13, 54.74, 54.83, 55.59, 54.35, 54.35, 54.88, 54.88, 56.0, 56.44, 56.44, 55.61, 55.61, 54.6, 54.6, 54.42, 53.6, 52.7, 52.89, 52.89, 52.92, 52.92, 53.23, 52.76, 52.41, 51.39, 51.39, 50.81, 50.81, 50.48, 50.0, 51.35, 51.37, 51.37, 52.43, 52.43], "dynamic_feat": [[59.72, 58.79, 59.75, 59.6, 59.6, 59.62, 59.62, 59.59, 58.85, 57.71, 58.53, 58.53, 58.99, 58.99, 59.4, 59.27, 59.38, 58.11, 58.11, 57.86, 57.86, 57.35, 56.71, 55.72, 55.29, 55.29, 55.59, 55.59, 55.99, 56.37, 54.97, 55.0, 55.0, 56.21, 56.21, 56.98, 56.73, 57.33, 56.27, 56.27, 55.44, 55.44, 54.98, 54.66, 55.09, 54.5, 54.5, 54.68, 54.68, 54.45, 54.54, 55.61, 56.14, 56.14, 55.85, 55.85, 56.47, 56.47, 57.56, 58.81, 58.81, 57.08, 57.08, 56.16, 54.88, 55.61, 55.36, 55.36, 55.1, 55.1, 56.43, 57.09, 57.09, 55.94, 55.94, 55.26, 55.26, 54.6, 54.3, 53.39, 53.84, 53.84, 53.21, 53.21, 53.54, 52.88, 53.52, 52.25, 52.25, 52.22, 52.22, 50.86, 51.35, 51.77, 51.37, 51.37, 54.53, 54.53], [58.42, 57.31, 57.82, 58.89, 58.89, 59.17, 59.17, 58.82, 58.06, 56.76, 57.69, 57.69, 58.09, 58.09, 58.85, 58.59, 58.84, 56.97, 56.97, 57.23, 57.23, 56.06, 54.75, 55.05, 54.22, 54.22, 55.16, 55.16, 54.84, 54.36, 54.35, 54.35, 54.35, 55.17, 55.17, 56.3, 56.01, 55.69, 55.63, 55.63, 54.75, 54.75, 53.86, 53.87, 54.25, 54.1, 54.1, 54.0, 54.0, 53.75, 53.78, 55.02, 55.16, 55.16, 55.13, 55.13, 55.32, 55.84, 56.51, 57.36, 57.36, 56.05, 56.05, 54.22, 53.73, 54.47, 54.12, 54.12, 54.33, 54.33, 55.26, 56.27, 56.27, 55.37, 55.37, 54.54, 54.54, 53.63, 53.52, 52.13, 52.75, 52.75, 52.03, 52.03, 53.0, 52.28, 52.37, 48.77, 48.77, 50.81, 50.81, 49.78, 49.84, 50.57, 50.34, 50.34, 51.37, 51.37], [58.43, 58.59, 57.86, 59.54, 59.54, 59.21, 59.21, 59.46, 58.54, 57.16, 57.78, 57.78, 58.31, 58.31, 59.25, 58.88, 59.0, 57.81, 57.81, 57.52, 57.52, 57.26, 56.69, 55.48, 55.1, 55.1, 55.51, 55.51, 54.92, 56.14, 54.88, 54.84, 54.84, 55.18, 55.18, 56.62, 56.35, 55.83, 55.94, 55.94, 55.21, 55.21, 54.85, 53.91, 54.5, 54.37, 54.37, 54.09, 54.09, 54.44, 54.11, 55.35, 55.44, 55.44, 55.26, 55.26, 56.37, 56.09, 56.73, 58.56, 58.56, 57.03, 57.03, 55.97, 53.86, 54.47, 54.94, 54.94, 54.35, 54.35, 56.06, 56.7, 56.7, 55.89, 55.89, 55.11, 55.11, 54.52, 54.13, 52.15, 53.22, 53.22, 52.89, 52.89, 53.14, 52.77, 53.31, 51.83, 51.83, 52.07, 52.07, 50.09, 50.83, 50.69, 50.74, 50.74, 51.4, 51.4]]}
{"start": "2018-07-24 00:00:00", "target": [57.1, 55.92, 58.18, 58.38, 58.38, 58.32, 58.32, 57.9, 56.2, 55.02, 56.02, 56.02, 56.0, 56.0, 55.86, 57.14, 56.88, 55.42, 55.42, 55.06, 55.06, 54.8, 53.74, 53.72, 53.4, 53.4, 53.76, 53.76, 54.42, 53.92, 53.24, 53.44, 53.44, 55.02, 55.02, 55.76, 55.44, 55.28, 54.52, 54.52, 53.6, 53.6, 52.9, 52.7, 52.22, 52.06, 52.06, 52.0, 52.0, 51.6, 51.7, 52.84, 54.72, 54.72, 55.56, 55.56, 57.14, 58.36, 59.08, 59.12, 59.12, 58.34, 58.34, 57.54, 57.58, 58.72, 58.0, 58.0, 58.4, 58.4, 58.3, 57.9, 57.9, 57.1, 57.1, 56.04, 56.04, 56.06, 54.52, 53.42, 53.4, 53.4, 54.84, 54.84, 57.0, 56.46, 55.9, 55.0, 55.0, 54.62, 54.62, 53.88, 50.78, 51.76, 51.56, 51.56, 53.52, 53.52], "dynamic_feat": [[57.42, 56.92, 58.36, 58.72, 58.72, 58.46, 58.46, 58.44, 57.58, 55.4, 56.44, 56.44, 56.64, 56.64, 57.22, 57.24, 57.36, 56.32, 56.32, 55.46, 55.46, 55.52, 54.98, 54.38, 53.78, 53.78, 54.34, 54.34, 54.62, 55.2, 53.8, 53.46, 53.46, 55.36, 55.36, 56.08, 55.54, 56.32, 54.94, 54.94, 54.52, 54.52, 53.74, 53.16, 53.08, 52.06, 52.06, 52.22, 52.22, 52.0, 51.82, 53.28, 55.46, 55.46, 55.8, 55.8, 57.56, 58.44, 59.44, 60.46, 60.46, 58.84, 58.84, 59.02, 57.62, 59.24, 58.2, 58.2, 58.94, 58.94, 58.8, 58.62, 58.62, 57.52, 57.52, 56.48, 56.48, 56.6, 55.76, 53.86, 54.38, 54.38, 55.64, 55.64, 57.66, 56.94, 57.16, 55.32, 55.32, 56.0, 56.0, 54.0, 53.52, 52.08, 51.56, 51.56, 54.72, 54.72], [55.94, 55.88, 57.54, 57.98, 57.98, 58.1, 58.1, 57.7, 55.78, 54.38, 55.5, 55.5, 55.8, 55.8, 55.86, 55.86, 56.74, 54.44, 54.44, 54.68, 54.68, 54.34, 53.3, 53.32, 52.36, 52.36, 53.62, 53.62, 53.7, 53.34, 53.12, 52.88, 52.88, 53.88, 53.88, 55.64, 54.82, 54.42, 54.32, 54.32, 52.98, 52.98, 52.38, 52.48, 52.14, 51.22, 51.22, 51.66, 51.66, 51.32, 51.44, 51.82, 53.44, 53.44, 54.94, 54.94, 56.62, 57.4, 58.34, 58.66, 58.66, 58.08, 58.08, 56.9, 56.66, 57.36, 57.2, 57.2, 58.1, 58.1, 57.68, 57.74, 57.74, 56.96, 56.96, 56.02, 56.02, 55.42, 54.32, 52.86, 53.26, 53.26, 53.2, 53.2, 53.86, 55.74, 55.84, 53.48, 53.48, 54.26, 54.26, 53.08, 50.78, 51.24, 50.42, 50.42, 51.56, 51.56], [56.0, 56.48, 58.08, 58.18, 58.18, 58.22, 58.22, 58.08, 57.14, 54.9, 55.56, 55.56, 56.44, 56.44, 57.0, 56.04, 57.28, 55.86, 55.86, 54.74, 54.74, 55.5, 54.96, 54.1, 53.34, 53.34, 53.92, 53.92, 53.76, 54.86, 53.8, 53.24, 53.24, 53.9, 53.9, 55.88, 55.54, 54.7, 54.42, 54.42, 54.52, 54.52, 53.46, 52.76, 52.7, 52.06, 52.06, 51.68, 51.68, 52.0, 51.7, 51.9, 53.56, 53.56, 55.1, 55.1, 56.96, 57.54, 58.46, 60.26, 60.26, 58.44, 58.44, 58.74, 56.82, 57.36, 57.64, 57.64, 58.28, 58.28, 58.62, 58.34, 58.34, 57.44, 57.44, 56.32, 56.32, 56.44, 55.6, 53.06, 54.2, 54.2, 53.4, 53.4, 55.76, 56.92, 56.96, 55.2, 55.2, 55.92, 55.92, 53.42, 53.16, 51.6, 51.16, 51.16, 51.56, 51.56]]}
{"start": "2018-07-24 00:00:00", "target": [150.38, 145.92, 151.7, 151.12, 151.12, 151.46, 151.46, 152.22, 146.6, 143.4, 145.34, 145.34, 145.48, 145.48, 146.88, 147.82, 147.84, 144.38, 144.38, 143.98, 143.98, 142.9, 138.44, 139.44, 138.74, 138.74, 139.0, 139.0, 140.72, 138.82, 137.94, 138.0, 138.0, 141.46, 141.46, 143.38, 143.16, 142.86, 140.84, 140.84, 137.94, 137.94, 136.2, 136.14, 136.24, 136.08, 136.08, 137.5, 137.5, 137.38, 138.4, 140.78, 144.0, 144.0, 144.48, 144.48, 148.24, 151.1, 152.5, 154.38, 154.38, 152.94, 152.94, 150.48, 151.3, 153.86, 151.6, 151.6, 152.5, 152.5, 152.94, 152.08, 152.08, 149.3, 149.3, 147.0, 147.0, 146.54, 143.54, 140.48, 140.16, 140.16, 144.42, 144.42, 147.42, 147.1, 145.58, 143.98, 143.98, 142.34, 142.34, 139.7, 133.7, 137.0, 136.88, 136.88, 142.42, 142.42], "dynamic_feat": [[151.6, 148.98, 152.34, 153.42, 153.42, 152.2, 152.2, 153.36, 151.6, 143.9, 145.62, 145.62, 147.08, 147.08, 149.1, 148.72, 148.8, 146.78, 146.78, 144.92, 144.92, 144.68, 143.36, 140.74, 139.32, 139.32, 140.62, 140.62, 141.16, 142.3, 138.52, 138.4, 138.4, 142.14, 142.14, 144.92, 143.52, 145.36, 141.4, 141.4, 139.18, 139.18, 138.3, 137.2, 138.04, 136.32, 136.32, 138.94, 138.94, 137.76, 138.56, 141.88, 144.7, 144.7, 145.26, 145.26, 150.24, 151.96, 154.1, 157.2, 157.2, 153.62, 153.62, 155.0, 151.54, 155.68, 152.52, 152.52, 154.46, 154.46, 154.46, 154.26, 154.26, 150.68, 150.68, 147.76, 147.76, 148.06, 146.1, 142.8, 142.62, 142.62, 146.72, 146.72, 149.32, 147.4, 149.3, 144.84, 144.84, 146.78, 146.78, 140.74, 139.54, 137.88, 136.88, 136.88, 146.34, 146.34], [148.84, 145.26, 149.66, 150.52, 150.52, 150.92, 150.92, 150.7, 145.36, 140.38, 143.34, 143.34, 144.92, 144.92, 146.8, 146.04, 146.64, 143.24, 143.24, 143.68, 143.68, 142.34, 137.46, 138.9, 136.54, 136.54, 139.0, 139.0, 138.02, 136.66, 137.52, 136.86, 136.86, 139.3, 139.3, 143.38, 141.64, 140.66, 140.12, 140.12, 136.42, 136.42, 134.9, 135.42, 135.54, 134.2, 134.2, 135.6, 135.6, 136.04, 136.56, 140.68, 141.14, 141.14, 143.2, 143.2, 146.5, 149.3, 151.9, 152.8, 152.8, 151.2, 151.2, 149.06, 147.94, 150.44, 149.86, 149.86, 152.08, 152.08, 151.68, 151.86, 151.86, 149.02, 149.02, 146.56, 146.56, 144.54, 142.88, 138.1, 140.12, 140.12, 139.66, 139.66, 145.0, 145.52, 145.4, 139.16, 139.16, 141.68, 141.68, 138.54, 133.0, 135.0, 134.02, 134.02, 137.92, 137.92], [149.02, 148.64, 150.44, 153.32, 153.32, 151.82, 151.82, 151.32, 150.12, 142.12, 143.76, 143.76, 145.3, 145.3, 147.72, 146.94, 147.5, 145.56, 145.56, 144.06, 144.06, 144.54, 143.34, 140.06, 138.06, 138.06, 140.3, 140.3, 138.3, 141.78, 138.16, 138.08, 138.08, 139.34, 139.34, 144.72, 143.38, 141.74, 140.48, 140.48, 138.26, 138.26, 138.0, 136.24, 136.1, 135.94, 135.94, 135.6, 135.6, 137.46, 137.92, 140.98, 141.38, 141.38, 143.64, 143.64, 149.14, 149.66, 152.2, 156.9, 156.9, 151.72, 151.72, 153.92, 148.38, 150.46, 151.34, 151.34, 152.58, 152.58, 154.06, 153.48, 153.48, 150.46, 150.46, 147.6, 147.6, 147.8, 145.62, 138.32, 141.8, 141.8, 140.16, 140.16, 146.96, 147.4, 148.96, 143.52, 143.52, 146.56, 146.56, 139.58, 138.58, 136.08, 135.3, 135.3, 137.98, 137.98]]}
JSON.out
And when I open the output file JSON.out, it has 5 lines like the one below. (each line for each stock unique instance I guess).
I also got this error when run batch transforms on Console.
{"error":"The field dynamic_feat needs to be provided in the full prediction range but request has dynamic_feat only for 0 time units in the prediction range when trying to predict for 91 time units."}
To reproduce
Replace the Forecasting and Plotting code in the deepAR notebook with Batch Transform.
Expected behavior
A clear and concise description of what you expected to happen.
JSON output has values of 3 months for targeted stock.
System information
SageMaker Python SDK version:
Framework name (eg. PyTorch) or algorithm (eg. KMeans):
Framework version:
Python version: 3.7.7
CPU or GPU: CPU
Custom Docker image (Y/N): N
I think you had a description of what is expected by the batch transform job.
Batch transform predicts future values. Since you have prediction horizon of 91 time units (mentioned in the error message), it is expected that you provide dynamic features for all that time units.
As stated in the documentation:
If the model was trained with the dynamic_feat field, you must provide
this field for inference. In addition, each of the features has to have the length of the provided target plus the prediction_length. In other words, you must provide the feature value in the future.
Now your target and each dynamic feature have 97 values. It is expected that you provide additional 91 values for each dynamic feature. Taking into account these additional 91 values, predictions of the target will be made.
Precisely!
If you train with dynamic features, you're basically giving the model an auxiliary regression.
That is: For the model to predict x periods in the future, it will need the values of the auxiliary regression on those x periods.
So, if you trained with dynamic features, imagine you are doing inference with a time series of 10 time steps and predicting the next 3.
Your input of the time series will be (length 10):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
But your input dynamic feature series must be (length 13):
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, x1, x2. x3]

mysql++ insert how to?

I am having problem to INSERT some values into database. Database name is users, and table is heroes. I am doing some mmorpg game developing for purpose of learning.
This is mysql code that works
INSERT INTO heroes (HeroID,Strenght, Dexterity, Vitality, Wisdom, Inteligence, Luck, Name, Level, XP) VALUES (NULL, 17, 13, 17, 15, 9, 8, 'works', 4, 3750);
But when I try that from c++ via mysql++ I get error.
Code:
#include <mysql++/mysql++.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
// Connect to the database.
mysqlpp::Connection conn(false);
if (conn.connect("users", "localhost",
"root", "toor"))
{
mysqlpp::Query query = conn.query();
query << "INSERT INTO heroes" <<
"VALUES (NULL, 17, 13, 17, 15, 9, 8, doSomething,3, 3260);";
query.execute();
if (mysqlpp::StoreQueryResult res = query.store())
{
// nothing to do here
}
else
{
cerr << "Failed to get item list: " << query.error() << endl;
return 2;
}
return 0;
}
else
{
cerr << "DB connection failed: " << conn.error() << endl;
return 1;
}
}
Error I get is: Failed to get item list; You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL, 17, 13, 17, 15, 9, 8, doSOmething,3, 3260)' at line 1
p.s. I am sending NULL becouse that field is auto-increment (using for ID)
I tried almost all possible alternatives like adding '', separataning and whatnot. Can somebody help me with this line of code, since I can't find ang good tutorial that helps on this matter.
Thanks in advance
Have you tried to add an space in your string?
query << "INSERT INTO heroes " <<
"VALUES (NULL, 17, 13, 17, 15, 9, 8, 'doSomething', 3, 3260);";
Also, as pointed out by hmjd, doSomething needs to be quoted, like 'doSomething'.
The string doSomething needs quoted:
query << "INSERT INTO heroes "
<< "VALUES (NULL, 17, 13, 17, 15, 9, 8, 'doSomething', 3, 3260);";
and as pointed out by Streppel a space is required between heroes and VALUES.
If your field is auto-increment, just don't mention it in your query, and that's it !
But then you would need to name all the fields in your insert query, which is actually a best-practice anyway !
query << "INSERT INTO heroes (fieldName1,fieldName2,...) " <<
"VALUES (17, 13, 17, 15, 9, 8, doSomething,3, 3260);";
Where fieldname1 is your first field right after the id field (or any other field actually, you can use whatever order you wish).
you can create a header and paste this in. i will use table1.h
#include <mysql++.h>
#include <ssqls.h>
#include <vector>
//you may get some weird underlines but don't panic, have some vitality.
sql_create_10(heroes, 1, 10,
mysqlpp::sql_int, HeroId, mysqlpp::sql_int,
Strenght, mysqlpp::sql_int, Dexterity, mysqlpp::sql_int, Vitality,
mysqlpp::sql_int, Wisdom, mysqlpp::sql_int, Inteligence,
mysqlpp::sql_int, Luck, mysqlpp::sql_varchar, Name, mysqlpp::sql_int,
Level, mysqlpp::sql_bigint, Xp)
//if bigint doesn't work for you u can use just int.
then in the main method paste this in
//connect to database
mysqlpp::Connection conn(false);
try{
conn.connect("users", "localhost", "j0y57/Qxx", "rootsman");
heroes row(0, 17, 13, 17, 15, 9, 8, "doSomething", 3, 3260 );
mysqlpp::Query query = conn.query();
query.insert(row);
query.execute();
} catch (const mysqlpp::BadQuery& bq){
cerr << "query error: " << bq.what() << endl;
return -1;
}

WMI:monitor registry change

In my project ,i want to monitor sofeware installation and unstallation in my system, so i use WMI event mechanism,but now i encounter a problem and have a question.
problem:
i want to monitor HKLM'SOFTWARE\Microsoft\Windows\currentversion\unistall',but code[1] works error(ExecNotificationQueryAnsync failed with =0x80041058).while code[2] works ok,what's wrong?
[1]
hres = pSvc->ExecNotificationQueryAsync(
_bstr_t("WQL"),
_bstr_t("SELECT * FROM RegistryTreeChangeEvent WITHIN 1 " "WHERE Hive='HKEY_LOCAL_MACHINE'" "AND RootPath='software\\Microsoft\\Windows\\currentversion\\unistall'"
),
WBEM_FLAG_SEND_STATUS,
NULL,
pStubSink);
[2]
hres = pSvc->ExecNotificationQueryAsync(
_bstr_t("WQL"),
_bstr_t("SELECT * FROM RegistryTreeChangeEvent WITHIN 1 " "WHERE Hive='HKEY_LOCAL_MACHINE'" "AND RootPath='software'"
),
WBEM_FLAG_SEND_STATUS,
NULL,
pStubSink);
question:in My event consumer ,i want to get the software's name ,how can i do ?
thanks!!
Just use
SELECT * FROM RegistryTreeChangeEvent WITHIN 1 " "WHERE Hive='HKEY_LOCAL_MACHINE'" "AND RootPath='software\\\\Microsoft\\\\Windows\\\\currentversion\\\\unistall'"