Files
admin aac9f5934d feat: 添加多个功能模块和工具脚本
- 新增websocket客户端和服务端实现
- 添加图片压缩工具和快速压缩脚本
- 实现学生信息处理相关API
- 添加MQTT客户端和消息处理功能
- 更新.gitignore忽略更多文件类型
- 添加数据库操作工具和示例
- 实现多个测试脚本和工具类
2026-04-13 14:47:50 +08:00

562 lines
25 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"id": "23e41b24",
"metadata": {},
"outputs": [],
"source": [
"from requests import get,post\n",
"import time\n",
"ip = \"http://192.168.0.205:8101\"\n",
"param = {\n",
" \"username\": \"tangchao\",\n",
" \"password\": \"123456a\",\n",
" \"client_id\": \"client\",\n",
" \"grant_type\": \"password\",\n",
" \"client_secret\": \"123456\",\n",
"}\n",
"data = get(url=f\"{ip}/oauth/token\",params=param).json()\n",
"token = data[\"access_token\"]\n",
"header = {\n",
" \"content-type\": \"application/json\",\n",
" \"authorization\": f\"Bearer {token}\",\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3f35dc8b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'success': True, 'msg': '操作成功', 'code': 0, 'data': []}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get(f\"{ip}/dorm/home/attendList\",params={'teamId':106},headers=header).json()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "bdce97f8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'success': True,\n",
" 'msg': '操作成功',\n",
" 'code': 0,\n",
" 'data': {'已满': 0, '维修中': 0, '空闲': 16, '未满': 0}}"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"get(f\"{ip}/dorm/home/preList\",params={'teamId':106},headers=header).json()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "42a3af0b",
"metadata": {},
"outputs": [],
"source": [
"a = [\n",
" {\n",
" \"id\": 126,\n",
" \"dormId\": 29,\n",
" \"stuId\": None,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": None,\n",
" \"departmentName\": None,\n",
" \"dormName\": \"9009\",\n",
" \"sex\": None,\n",
" \"stuNo\": None,\n",
" \"stuName\": None,\n",
" \"gradeName\": None,\n",
" \"className\": None,\n",
" \"dormSex\": 1,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 127,\n",
" \"dormId\": 29,\n",
" \"stuId\": 9131,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": \"汽车维修\",\n",
" \"departmentName\": \"工程系3\",\n",
" \"dormName\": \"9009\",\n",
" \"sex\": 2,\n",
" \"stuNo\": \"20250014\",\n",
" \"stuName\": \"曾奕璟\",\n",
" \"gradeName\": \"2025级\",\n",
" \"className\": \"导师6班\",\n",
" \"dormSex\": 1,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 128,\n",
" \"dormId\": 29,\n",
" \"stuId\": None,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": None,\n",
" \"departmentName\": None,\n",
" \"dormName\": \"9009\",\n",
" \"sex\": None,\n",
" \"stuNo\": None,\n",
" \"stuName\": None,\n",
" \"gradeName\": None,\n",
" \"className\": None,\n",
" \"dormSex\": 1,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 129,\n",
" \"dormId\": 29,\n",
" \"stuId\": None,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": None,\n",
" \"departmentName\": None,\n",
" \"dormName\": \"9009\",\n",
" \"sex\": None,\n",
" \"stuNo\": None,\n",
" \"stuName\": None,\n",
" \"gradeName\": None,\n",
" \"className\": None,\n",
" \"dormSex\": 1,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 188,\n",
" \"dormId\": 44,\n",
" \"stuId\": None,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": None,\n",
" \"departmentName\": None,\n",
" \"dormName\": \"2334\",\n",
" \"sex\": None,\n",
" \"stuNo\": None,\n",
" \"stuName\": None,\n",
" \"gradeName\": None,\n",
" \"className\": None,\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 189,\n",
" \"dormId\": 44,\n",
" \"stuId\": None,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": None,\n",
" \"departmentName\": None,\n",
" \"dormName\": \"2334\",\n",
" \"sex\": None,\n",
" \"stuNo\": None,\n",
" \"stuName\": None,\n",
" \"gradeName\": None,\n",
" \"className\": None,\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 190,\n",
" \"dormId\": 44,\n",
" \"stuId\": 9135,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": \"汽车维修\",\n",
" \"departmentName\": \"工程系3\",\n",
" \"dormName\": \"2334\",\n",
" \"sex\": 1,\n",
" \"stuNo\": \"20250115\",\n",
" \"stuName\": \"龚奕成\",\n",
" \"gradeName\": \"2025级\",\n",
" \"className\": \"导师6班\",\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 191,\n",
" \"dormId\": 44,\n",
" \"stuId\": None,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": None,\n",
" \"departmentName\": None,\n",
" \"dormName\": \"2334\",\n",
" \"sex\": None,\n",
" \"stuNo\": None,\n",
" \"stuName\": None,\n",
" \"gradeName\": None,\n",
" \"className\": None,\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 196,\n",
" \"dormId\": 46,\n",
" \"stuId\": None,\n",
" \"areaName\": \"食堂\",\n",
" \"dongName\": \"一食堂\",\n",
" \"tierName\": \"1楼\",\n",
" \"regionName\": \"东门区域\",\n",
" \"majorName\": None,\n",
" \"departmentName\": None,\n",
" \"dormName\": \"34567\",\n",
" \"sex\": None,\n",
" \"stuNo\": None,\n",
" \"stuName\": None,\n",
" \"gradeName\": None,\n",
" \"className\": None,\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 197,\n",
" \"dormId\": 46,\n",
" \"stuId\": None,\n",
" \"areaName\": \"食堂\",\n",
" \"dongName\": \"一食堂\",\n",
" \"tierName\": \"1楼\",\n",
" \"regionName\": \"东门区域\",\n",
" \"majorName\": None,\n",
" \"departmentName\": None,\n",
" \"dormName\": \"34567\",\n",
" \"sex\": None,\n",
" \"stuNo\": None,\n",
" \"stuName\": None,\n",
" \"gradeName\": None,\n",
" \"className\": None,\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 198,\n",
" \"dormId\": 46,\n",
" \"stuId\": 9139,\n",
" \"areaName\": \"食堂\",\n",
" \"dongName\": \"一食堂\",\n",
" \"tierName\": \"1楼\",\n",
" \"regionName\": \"东门区域\",\n",
" \"majorName\": \"汽车维修\",\n",
" \"departmentName\": \"工程系3\",\n",
" \"dormName\": \"34567\",\n",
" \"sex\": 1,\n",
" \"stuNo\": \"20250286\",\n",
" \"stuName\": \"刘坤鹏\",\n",
" \"gradeName\": \"2025级\",\n",
" \"className\": \"导师6班\",\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 199,\n",
" \"dormId\": 46,\n",
" \"stuId\": 9140,\n",
" \"areaName\": \"食堂\",\n",
" \"dongName\": \"一食堂\",\n",
" \"tierName\": \"1楼\",\n",
" \"regionName\": \"东门区域\",\n",
" \"majorName\": \"汽车维修\",\n",
" \"departmentName\": \"工程系3\",\n",
" \"dormName\": \"34567\",\n",
" \"sex\": 1,\n",
" \"stuNo\": \"20250291\",\n",
" \"stuName\": \"刘书豪\",\n",
" \"gradeName\": \"2025级\",\n",
" \"className\": \"导师6班\",\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 216,\n",
" \"dormId\": 51,\n",
" \"stuId\": 9141,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": \"汽车维修\",\n",
" \"departmentName\": \"工程系3\",\n",
" \"dormName\": \"31\",\n",
" \"sex\": 1,\n",
" \"stuNo\": \"20250324\",\n",
" \"stuName\": \"卢林\",\n",
" \"gradeName\": \"2025级\",\n",
" \"className\": \"导师6班\",\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 217,\n",
" \"dormId\": 51,\n",
" \"stuId\": 9142,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": \"汽车维修\",\n",
" \"departmentName\": \"工程系3\",\n",
" \"dormName\": \"31\",\n",
" \"sex\": 1,\n",
" \"stuNo\": \"20250342\",\n",
" \"stuName\": \"骆晨博\",\n",
" \"gradeName\": \"2025级\",\n",
" \"className\": \"导师6班\",\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" },\n",
" {\n",
" \"id\": 218,\n",
" \"dormId\": 51,\n",
" \"stuId\": 9151,\n",
" \"areaName\": \"达州校区\",\n",
" \"dongName\": \"3栋\",\n",
" \"tierName\": \"1层\",\n",
" \"regionName\": \"全区域\",\n",
" \"majorName\": \"汽车维修\",\n",
" \"departmentName\": \"工程系3\",\n",
" \"dormName\": \"31\",\n",
" \"sex\": 1,\n",
" \"stuNo\": \"20250553\",\n",
" \"stuName\": \"熊启豪\",\n",
" \"gradeName\": \"2025级\",\n",
" \"className\": \"导师6班\",\n",
" \"dormSex\": 2,\n",
" \"intoState\": None,\n",
" \"intoTime\": None,\n",
" \"status\": None,\n",
" \"stuState\": None\n",
" }\n",
" ]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "6b7bc5f6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'id': 126,\n",
" 'dormId': 29,\n",
" 'stuId': None,\n",
" 'areaName': '达州校区',\n",
" 'dongName': '3栋',\n",
" 'tierName': '1层',\n",
" 'regionName': '全区域',\n",
" 'majorName': None,\n",
" 'departmentName': None,\n",
" 'dormName': '9009',\n",
" 'sex': None,\n",
" 'stuNo': None,\n",
" 'stuName': None,\n",
" 'gradeName': None,\n",
" 'className': None,\n",
" 'dormSex': 1,\n",
" 'intoState': None,\n",
" 'intoTime': None,\n",
" 'status': None,\n",
" 'stuState': None}"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a[0]"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "dcd71e2a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'id': 126, 'dormId': 29, 'stuId': None, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': None, 'departmentName': None, 'dormName': '9009', 'sex': None, 'stuNo': None, 'stuName': None, 'gradeName': None, 'className': None, 'dormSex': 1, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 127, 'dormId': 29, 'stuId': 9131, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': '汽车维修', 'departmentName': '工程系3', 'dormName': '9009', 'sex': 2, 'stuNo': '20250014', 'stuName': '曾奕璟', 'gradeName': '2025级', 'className': '导师6班', 'dormSex': 1, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 128, 'dormId': 29, 'stuId': None, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': None, 'departmentName': None, 'dormName': '9009', 'sex': None, 'stuNo': None, 'stuName': None, 'gradeName': None, 'className': None, 'dormSex': 1, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 129, 'dormId': 29, 'stuId': None, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': None, 'departmentName': None, 'dormName': '9009', 'sex': None, 'stuNo': None, 'stuName': None, 'gradeName': None, 'className': None, 'dormSex': 1, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 188, 'dormId': 44, 'stuId': None, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': None, 'departmentName': None, 'dormName': '2334', 'sex': None, 'stuNo': None, 'stuName': None, 'gradeName': None, 'className': None, 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 189, 'dormId': 44, 'stuId': None, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': None, 'departmentName': None, 'dormName': '2334', 'sex': None, 'stuNo': None, 'stuName': None, 'gradeName': None, 'className': None, 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 190, 'dormId': 44, 'stuId': 9135, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': '汽车维修', 'departmentName': '工程系3', 'dormName': '2334', 'sex': 1, 'stuNo': '20250115', 'stuName': '龚奕成', 'gradeName': '2025级', 'className': '导师6班', 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 191, 'dormId': 44, 'stuId': None, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': None, 'departmentName': None, 'dormName': '2334', 'sex': None, 'stuNo': None, 'stuName': None, 'gradeName': None, 'className': None, 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 196, 'dormId': 46, 'stuId': None, 'areaName': '食堂', 'dongName': '一食堂', 'tierName': '1楼', 'regionName': '东门区域', 'majorName': None, 'departmentName': None, 'dormName': '34567', 'sex': None, 'stuNo': None, 'stuName': None, 'gradeName': None, 'className': None, 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 197, 'dormId': 46, 'stuId': None, 'areaName': '食堂', 'dongName': '一食堂', 'tierName': '1楼', 'regionName': '东门区域', 'majorName': None, 'departmentName': None, 'dormName': '34567', 'sex': None, 'stuNo': None, 'stuName': None, 'gradeName': None, 'className': None, 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 198, 'dormId': 46, 'stuId': 9139, 'areaName': '食堂', 'dongName': '一食堂', 'tierName': '1楼', 'regionName': '东门区域', 'majorName': '汽车维修', 'departmentName': '工程系3', 'dormName': '34567', 'sex': 1, 'stuNo': '20250286', 'stuName': '刘坤鹏', 'gradeName': '2025级', 'className': '导师6班', 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 199, 'dormId': 46, 'stuId': 9140, 'areaName': '食堂', 'dongName': '一食堂', 'tierName': '1楼', 'regionName': '东门区域', 'majorName': '汽车维修', 'departmentName': '工程系3', 'dormName': '34567', 'sex': 1, 'stuNo': '20250291', 'stuName': '刘书豪', 'gradeName': '2025级', 'className': '导师6班', 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 216, 'dormId': 51, 'stuId': 9141, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': '汽车维修', 'departmentName': '工程系3', 'dormName': '31', 'sex': 1, 'stuNo': '20250324', 'stuName': '卢林', 'gradeName': '2025级', 'className': '导师6班', 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 217, 'dormId': 51, 'stuId': 9142, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': '汽车维修', 'departmentName': '工程系3', 'dormName': '31', 'sex': 1, 'stuNo': '20250342', 'stuName': '骆晨博', 'gradeName': '2025级', 'className': '导师6班', 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n",
"{'id': 218, 'dormId': 51, 'stuId': 9151, 'areaName': '达州校区', 'dongName': '3栋', 'tierName': '1层', 'regionName': '全区域', 'majorName': '汽车维修', 'departmentName': '工程系3', 'dormName': '31', 'sex': 1, 'stuNo': '20250553', 'stuName': '熊启豪', 'gradeName': '2025级', 'className': '导师6班', 'dormSex': 2, 'intoState': None, 'intoTime': None, 'status': None, 'stuState': None}\n"
]
}
],
"source": [
"ids = []\n",
"for item in a:\n",
" print(item)\n",
" if item['stuId']:\n",
" ids.append(item['stuId'])"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1c25884a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'success': True,\n",
" 'msg': '操作成功',\n",
" 'code': 0,\n",
" 'data': [{'date': '10-13', 'female': 0, 'male': 0},\n",
" {'date': '10-14', 'female': 0, 'male': 0},\n",
" {'date': '10-15', 'female': 0, 'male': 0},\n",
" {'date': '10-16', 'female': 0, 'male': 0},\n",
" {'date': '10-17', 'female': 1, 'male': 3},\n",
" {'date': '10-18', 'female': 0, 'male': 0},\n",
" {'date': '10-19', 'female': 0, 'male': 0}]}"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
},
{
"ename": "",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[1;31m在当前单元格或上一个单元格中执行代码时 Kernel 崩溃。\n",
"\u001b[1;31m请查看单元格中的代码,以确定故障的可能原因。\n",
"\u001b[1;31m单击<a href='https://aka.ms/vscodeJupyterKernelCrash'>此处</a>了解详细信息。\n",
"\u001b[1;31m有关更多详细信息,请查看 Jupyter <a href='command:jupyter.viewOutput'>log</a>。"
]
}
],
"source": [
"get(f\"{ip}/dorm/home/attendWeek\", params={\"teamId\": 106}, headers=header).json()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fe03e920",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}