implement keypad size

This commit is contained in:
2024-07-19 10:39:05 -05:00
parent b37c17eca6
commit 65d78867ca
13 changed files with 198 additions and 191 deletions

View File

@@ -6,10 +6,7 @@
"outputs": [],
"source": [
"from nkode_api import NKodeAPI\n",
"from src.models import NKodePolicy\n",
"from src.customer import Customer\n",
"from src.user import User\n",
"from src.user_interface import UserInterface\n",
"from src.models import NKodePolicy, KeypadSize\n",
"from src.utils import list_to_matrix, matrix_transpose\n",
"from secrets import choice\n",
"from string import ascii_lowercase"
@@ -17,8 +14,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.673846Z",
"start_time": "2024-07-18T13:08:45.604900Z"
"end_time": "2024-07-19T15:38:32.636706Z",
"start_time": "2024-07-19T15:38:32.541836Z"
}
}
},
@@ -43,8 +40,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.677402Z",
"start_time": "2024-07-18T13:08:45.675407Z"
"end_time": "2024-07-19T15:38:32.636920Z",
"start_time": "2024-07-19T15:38:32.606667Z"
}
}
},
@@ -58,8 +55,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.679610Z",
"start_time": "2024-07-18T13:08:45.677796Z"
"end_time": "2024-07-19T15:38:32.636991Z",
"start_time": "2024-07-19T15:38:32.608558Z"
}
}
},
@@ -91,16 +88,18 @@
" distinct_sets=0,\n",
" distinct_attributes=4\n",
")\n",
"numb_of_keys = 10\n",
"attrs_per_key = 7 # aka number of sets\n",
"customer_id = api.create_new_customer(numb_of_keys, attrs_per_key, policy)\n",
"keypad_size = KeypadSize(\n",
" numb_of_keys = 10,\n",
" attrs_per_key = 7 # aka number of sets\n",
")\n",
"customer_id = api.create_new_customer(keypad_size, policy)\n",
"customer = api.customers[customer_id]"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.808776Z",
"start_time": "2024-07-18T13:08:45.681012Z"
"end_time": "2024-07-19T15:38:32.817740Z",
"start_time": "2024-07-19T15:38:32.612174Z"
}
}
},
@@ -133,8 +132,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Customer Sets: [60082, 3086, 26494, 12194, 4421, 41427, 16984]\n",
"Customer Attributes: [48380, 48810, 58704, 61681, 27187, 45406, 40741, 28469, 63290, 23552, 9625, 12681, 33702, 3372, 24715, 12612, 13180, 49133, 20493, 58247, 36394, 17390, 56641, 5490, 8213, 63651, 8692, 1703, 15711, 6304, 61079, 31429, 6078, 25130, 3897, 40313, 9253, 64106, 39159, 34587, 23277, 34925, 2070, 21493, 34778, 24158, 59424, 36, 9350, 60729, 46451, 15041, 16164, 41230, 23733, 12735, 33488, 31609, 35924, 43823, 50711, 32364, 41357, 13184, 2619, 33798, 56624, 61788, 24651, 12767]\n"
"Customer Sets: [63949, 41634, 17125, 52762, 13459, 5935, 727]\n",
"Customer Attributes: [52222, 57050, 17039, 29896, 31069, 35859, 36843, 2137, 24380, 34643, 29053, 46327, 39534, 64877, 53617, 14001, 39532, 19103, 38549, 42982, 63429, 11337, 42520, 23186, 49849, 6237, 49291, 44219, 34592, 26781, 25410, 34134, 51292, 40084, 49002, 1221, 30724, 62975, 33074, 22158, 18970, 54242, 15906, 19581, 10796, 6147, 36402, 44152, 43216, 16186, 571, 32657, 20955, 10260, 51931, 46321, 40259, 1905, 14430, 48389, 35797, 48564, 32173, 50142, 65402, 11082, 39195, 46929, 18113, 52721]\n"
]
}
],
@@ -147,8 +146,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.812291Z",
"start_time": "2024-07-18T13:08:45.809694Z"
"end_time": "2024-07-19T15:38:32.818026Z",
"start_time": "2024-07-19T15:38:32.781094Z"
}
}
},
@@ -170,18 +169,18 @@
"output_type": "stream",
"text": [
"Set to Attribute Map:\n",
"60082: [48380, 28469, 24715, 17390, 15711, 40313, 2070, 60729, 33488, 13184]\n",
"3086: [48810, 63290, 12612, 56641, 6304, 9253, 21493, 46451, 31609, 2619]\n",
"26494: [58704, 23552, 13180, 5490, 61079, 64106, 34778, 15041, 35924, 33798]\n",
"12194: [61681, 9625, 49133, 8213, 31429, 39159, 24158, 16164, 43823, 56624]\n",
"4421: [27187, 12681, 20493, 63651, 6078, 34587, 59424, 41230, 50711, 61788]\n",
"41427: [45406, 33702, 58247, 8692, 25130, 23277, 36, 23733, 32364, 24651]\n",
"16984: [40741, 3372, 36394, 1703, 3897, 34925, 9350, 12735, 41357, 12767]\n"
"63949: [52222, 2137, 53617, 11337, 34592, 1221, 15906, 16186, 40259, 50142]\n",
"41634: [57050, 24380, 14001, 42520, 26781, 30724, 19581, 571, 1905, 65402]\n",
"17125: [17039, 34643, 39532, 23186, 25410, 62975, 10796, 32657, 14430, 11082]\n",
"52762: [29896, 29053, 19103, 49849, 34134, 33074, 6147, 20955, 48389, 39195]\n",
"13459: [31069, 46327, 38549, 6237, 51292, 22158, 36402, 10260, 35797, 46929]\n",
"5935: [35859, 39534, 42982, 49291, 40084, 18970, 44152, 51931, 48564, 18113]\n",
"727: [36843, 64877, 63429, 44219, 49002, 54242, 43216, 46321, 32173, 52721]\n"
]
}
],
"source": [
"attr_keypad_view = list_to_matrix(attr_vals, customer.interface.attrs_per_key)\n",
"attr_keypad_view = list_to_matrix(attr_vals, keypad_size.attrs_per_key)\n",
"attr_set_view = matrix_transpose(attr_keypad_view)\n",
"set_attribute_dict = dict(zip(set_vals, attr_set_view))\n",
"print(f\"Set to Attribute Map:\")\n",
@@ -191,8 +190,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.815009Z",
"start_time": "2024-07-18T13:08:45.812687Z"
"end_time": "2024-07-19T15:38:32.818150Z",
"start_time": "2024-07-19T15:38:32.784103Z"
}
}
},
@@ -224,8 +223,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.818253Z",
"start_time": "2024-07-18T13:08:45.815525Z"
"end_time": "2024-07-19T15:38:32.818223Z",
"start_time": "2024-07-19T15:38:32.787316Z"
}
}
},
@@ -248,33 +247,33 @@
"output_type": "stream",
"text": [
"Keypad View\n",
"Key 0: [21, 64, 2, 59, 46, 68, 48]\n",
"Key 1: [7, 1, 44, 66, 39, 33, 41]\n",
"Key 2: [0, 8, 37, 38, 60, 47, 69]\n",
"Key 3: [56, 50, 58, 52, 25, 61, 55]\n",
"Key 4: [28, 36, 65, 31, 18, 26, 34]\n",
"Key 5: [63, 29, 23, 17, 67, 40, 13]\n",
"Key 6: [49, 43, 9, 10, 53, 19, 62]\n",
"Key 7: [35, 57, 51, 3, 11, 54, 6]\n",
"Key 8: [42, 22, 16, 45, 4, 5, 27]\n",
"Key 9: [14, 15, 30, 24, 32, 12, 20]\n",
"Key 0: [14, 50, 16, 59, 39, 26, 6]\n",
"Key 1: [56, 36, 37, 52, 18, 47, 41]\n",
"Key 2: [49, 43, 2, 66, 60, 54, 69]\n",
"Key 3: [7, 8, 44, 3, 11, 68, 13]\n",
"Key 4: [63, 57, 65, 45, 53, 12, 48]\n",
"Key 5: [0, 22, 23, 10, 4, 40, 20]\n",
"Key 6: [35, 15, 51, 31, 67, 5, 55]\n",
"Key 7: [42, 29, 9, 38, 32, 33, 62]\n",
"Key 8: [21, 1, 58, 24, 46, 19, 34]\n",
"Key 9: [28, 64, 30, 17, 25, 61, 27]\n",
"Selected Keys\n",
"[9, 0, 3, 4]\n"
"[4, 2, 1, 9]\n"
]
}
],
"source": [
"keypad_view(signup_interface, attrs_per_key)\n",
"keypad_view(signup_interface, keypad_size.attrs_per_key)\n",
"username = random_username()\n",
"user_passcode = [12, 2, 52, 28]\n",
"selected_keys_set = select_keys_with_passcode_values(user_passcode, signup_interface, attrs_per_key)\n",
"selected_keys_set = select_keys_with_passcode_values(user_passcode, signup_interface, keypad_size.attrs_per_key)\n",
"print(f\"Selected Keys\\n{selected_keys_set}\")"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.820991Z",
"start_time": "2024-07-18T13:08:45.818928Z"
"end_time": "2024-07-19T15:38:32.818320Z",
"start_time": "2024-07-19T15:38:32.791137Z"
}
}
},
@@ -287,32 +286,32 @@
"output_type": "stream",
"text": [
"Keypad View\n",
"Key 0: [42, 1, 65, 59, 11, 19, 69]\n",
"Key 1: [14, 64, 23, 52, 53, 33, 34]\n",
"Key 2: [0, 50, 51, 45, 39, 68, 13]\n",
"Key 3: [28, 22, 9, 24, 46, 61, 6]\n",
"Key 4: [63, 15, 44, 38, 25, 5, 62]\n",
"Key 5: [35, 8, 2, 31, 4, 12, 41]\n",
"Key 6: [49, 36, 58, 17, 32, 47, 48]\n",
"Key 7: [7, 29, 16, 3, 60, 26, 55]\n",
"Key 8: [21, 57, 30, 10, 18, 40, 27]\n",
"Key 9: [56, 43, 37, 66, 67, 54, 20]\n",
"Key 0: [7, 29, 51, 66, 53, 47, 27]\n",
"Key 1: [21, 15, 2, 59, 18, 33, 20]\n",
"Key 2: [63, 43, 16, 17, 32, 5, 13]\n",
"Key 3: [56, 50, 30, 10, 67, 54, 34]\n",
"Key 4: [42, 64, 23, 3, 60, 26, 48]\n",
"Key 5: [35, 22, 44, 24, 39, 61, 41]\n",
"Key 6: [49, 8, 58, 45, 25, 40, 62]\n",
"Key 7: [14, 1, 65, 52, 4, 68, 55]\n",
"Key 8: [28, 57, 37, 38, 11, 19, 69]\n",
"Key 9: [0, 36, 9, 31, 46, 12, 6]\n",
"Selected Keys\n",
"[5, 5, 1, 3]\n"
"[9, 1, 7, 8]\n"
]
}
],
"source": [
"confirm_interface = api.set_nkode(username, customer_id, selected_keys_set, session_id)\n",
"keypad_view(confirm_interface, attrs_per_key)\n",
"selected_keys_confirm = select_keys_with_passcode_values(user_passcode, confirm_interface, attrs_per_key)\n",
"keypad_view(confirm_interface, keypad_size.attrs_per_key)\n",
"selected_keys_confirm = select_keys_with_passcode_values(user_passcode, confirm_interface, keypad_size.attrs_per_key)\n",
"print(f\"Selected Keys\\n{selected_keys_confirm}\")"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.823981Z",
"start_time": "2024-07-18T13:08:45.821403Z"
"end_time": "2024-07-19T15:38:32.818413Z",
"start_time": "2024-07-19T15:38:32.794201Z"
}
}
},
@@ -338,28 +337,28 @@
"text": [
"Set Interface\n",
"Keypad View\n",
"Key 0: [21, 64, 2, 59, 46, 68, 48]\n",
"Key 1: [7, 1, 44, 66, 39, 33, 41]\n",
"Key 2: [0, 8, 37, 38, 60, 47, 69]\n",
"Key 3: [56, 50, 58, 52, 25, 61, 55]\n",
"Key 4: [28, 36, 65, 31, 18, 26, 34]\n",
"Key 5: [63, 29, 23, 17, 67, 40, 13]\n",
"Key 6: [49, 43, 9, 10, 53, 19, 62]\n",
"Key 7: [35, 57, 51, 3, 11, 54, 6]\n",
"Key 8: [42, 22, 16, 45, 4, 5, 27]\n",
"Key 9: [14, 15, 30, 24, 32, 12, 20]\n"
"Key 0: [14, 50, 16, 59, 39, 26, 6]\n",
"Key 1: [56, 36, 37, 52, 18, 47, 41]\n",
"Key 2: [49, 43, 2, 66, 60, 54, 69]\n",
"Key 3: [7, 8, 44, 3, 11, 68, 13]\n",
"Key 4: [63, 57, 65, 45, 53, 12, 48]\n",
"Key 5: [0, 22, 23, 10, 4, 40, 20]\n",
"Key 6: [35, 15, 51, 31, 67, 5, 55]\n",
"Key 7: [42, 29, 9, 38, 32, 33, 62]\n",
"Key 8: [21, 1, 58, 24, 46, 19, 34]\n",
"Key 9: [28, 64, 30, 17, 25, 61, 27]\n"
]
}
],
"source": [
"print(\"Set Interface\")\n",
"keypad_view(signup_interface, attrs_per_key)"
"keypad_view(signup_interface, keypad_size.attrs_per_key)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.826730Z",
"start_time": "2024-07-18T13:08:45.824633Z"
"end_time": "2024-07-19T15:38:32.818504Z",
"start_time": "2024-07-19T15:38:32.797246Z"
}
}
},
@@ -373,28 +372,28 @@
"text": [
"Confirm Interface\n",
"Keypad View\n",
"Key 0: [42, 1, 65, 59, 11, 19, 69]\n",
"Key 1: [14, 64, 23, 52, 53, 33, 34]\n",
"Key 2: [0, 50, 51, 45, 39, 68, 13]\n",
"Key 3: [28, 22, 9, 24, 46, 61, 6]\n",
"Key 4: [63, 15, 44, 38, 25, 5, 62]\n",
"Key 5: [35, 8, 2, 31, 4, 12, 41]\n",
"Key 6: [49, 36, 58, 17, 32, 47, 48]\n",
"Key 7: [7, 29, 16, 3, 60, 26, 55]\n",
"Key 8: [21, 57, 30, 10, 18, 40, 27]\n",
"Key 9: [56, 43, 37, 66, 67, 54, 20]\n"
"Key 0: [7, 29, 51, 66, 53, 47, 27]\n",
"Key 1: [21, 15, 2, 59, 18, 33, 20]\n",
"Key 2: [63, 43, 16, 17, 32, 5, 13]\n",
"Key 3: [56, 50, 30, 10, 67, 54, 34]\n",
"Key 4: [42, 64, 23, 3, 60, 26, 48]\n",
"Key 5: [35, 22, 44, 24, 39, 61, 41]\n",
"Key 6: [49, 8, 58, 45, 25, 40, 62]\n",
"Key 7: [14, 1, 65, 52, 4, 68, 55]\n",
"Key 8: [28, 57, 37, 38, 11, 19, 69]\n",
"Key 9: [0, 36, 9, 31, 46, 12, 6]\n"
]
}
],
"source": [
"print(\"Confirm Interface\")\n",
"keypad_view(confirm_interface, attrs_per_key)"
"keypad_view(confirm_interface, keypad_size.attrs_per_key)"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:45.829497Z",
"start_time": "2024-07-18T13:08:45.826898Z"
"end_time": "2024-07-19T15:38:32.818596Z",
"start_time": "2024-07-19T15:38:32.799553Z"
}
}
},
@@ -421,8 +420,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:46.334453Z",
"start_time": "2024-07-18T13:08:45.830468Z"
"end_time": "2024-07-19T15:38:33.435016Z",
"start_time": "2024-07-19T15:38:32.803552Z"
}
}
},
@@ -445,8 +444,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:46.336225Z",
"start_time": "2024-07-18T13:08:46.334763Z"
"end_time": "2024-07-19T15:38:33.451250Z",
"start_time": "2024-07-19T15:38:33.435255Z"
}
}
},
@@ -469,8 +468,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2024-07-18T13:08:46.344268Z",
"start_time": "2024-07-18T13:08:46.338692Z"
"end_time": "2024-07-19T15:38:33.451441Z",
"start_time": "2024-07-19T15:38:33.438804Z"
}
}
}