398 lines
20 KiB
Plaintext
398 lines
20 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"!rm -rf ./save/*"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Building JetSet from data/data_full/full_bbbar.root\n",
|
|
"jet type: bbbar\n",
|
|
"Building JetSet from data/data_full/full_bb.root\n",
|
|
"jet type: bb\n",
|
|
"100%|███████████████████████████████████| 24921/24921 [00:06<00:00, 3850.86it/s]\n",
|
|
"100%|███████████████████████████████████| 24930/24930 [00:06<00:00, 3754.57it/s]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from pathlib import Path\n",
|
|
"if not Path('save/save_full').exists():\n",
|
|
" Path('save/save_full').mkdir()\n",
|
|
"!python convert_root_to_txt.py ./data/data_full ./save/save_full --data-type full --attr-sep '|' --part-sep ';' --selected-attrs 'part_charge,part_energy,part_px,part_py,part_pz,log_energy,log_pt,part_deta,part_dphi,part_logptrel,part_logerel,part_deltaR,part_d0,part_dz,particle_pid'\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Building JetSet from data/data_fast/fast_bbar.root\n",
|
|
"jet type: bb\n",
|
|
"Building JetSet from data/data_fast/fast_bb.root\n",
|
|
"jet type: bb\n",
|
|
"joblib.externals.loky.process_executor._RemoteTraceback: \n",
|
|
"\"\"\"\n",
|
|
"Traceback (most recent call last):\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/externals/loky/process_executor.py\", line 463, in _process_worker\n",
|
|
" r = call_item()\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/externals/loky/process_executor.py\", line 291, in __call__\n",
|
|
" return self.fn(*self.args, **self.kwargs)\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/parallel.py\", line 598, in __call__\n",
|
|
" return [func(*args, **kwargs)\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/parallel.py\", line 598, in <listcomp>\n",
|
|
" return [func(*args, **kwargs)\n",
|
|
" File \"/home/lingyuzeng/project/bbbar_data_struct/convert_root_to_txt.py\", line 271, in process_file\n",
|
|
" jet_set = JetSet.build_jetset_fast(root_file)\n",
|
|
" File \"/home/lingyuzeng/project/bbbar_data_struct/convert_root_to_txt.py\", line 102, in build_jetset_fast\n",
|
|
" for i, j in a.iterrows():\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/pandas/core/frame.py\", line 1541, in iterrows\n",
|
|
" for k, v in zip(self.index, self.values):\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/pandas/core/frame.py\", line 12651, in values\n",
|
|
" return self._mgr.as_array()\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/pandas/core/internals/managers.py\", line 1692, in as_array\n",
|
|
" arr = self._interleave(dtype=dtype, na_value=na_value)\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/pandas/core/internals/managers.py\", line 1733, in _interleave\n",
|
|
" arr = blk.get_values(dtype)\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/pandas/core/internals/blocks.py\", line 2253, in get_values\n",
|
|
" return np.asarray(values).reshape(self.shape)\n",
|
|
"ValueError: cannot reshape array of size 0 into shape (1,10000)\n",
|
|
"\"\"\"\n",
|
|
"\n",
|
|
"The above exception was the direct cause of the following exception:\n",
|
|
"\n",
|
|
"Traceback (most recent call last):\n",
|
|
" File \"/home/lingyuzeng/project/bbbar_data_struct/convert_root_to_txt.py\", line 275, in <module>\n",
|
|
" main()\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/click/core.py\", line 1157, in __call__\n",
|
|
" return self.main(*args, **kwargs)\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/click/core.py\", line 1078, in main\n",
|
|
" rv = self.invoke(ctx)\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/click/core.py\", line 1434, in invoke\n",
|
|
" return ctx.invoke(self.callback, **ctx.params)\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/click/core.py\", line 783, in invoke\n",
|
|
" return __callback(*args, **kwargs)\n",
|
|
" File \"/home/lingyuzeng/project/bbbar_data_struct/convert_root_to_txt.py\", line 257, in main\n",
|
|
" preprocess(root_dir, save_dir, data_type, selected_attrs=selected_attrs, attr_sep=attr_sep, part_sep=part_sep)\n",
|
|
" File \"/home/lingyuzeng/project/bbbar_data_struct/convert_root_to_txt.py\", line 262, in preprocess\n",
|
|
" joblib.Parallel(n_jobs=-1)(\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/parallel.py\", line 2007, in __call__\n",
|
|
" return output if self.return_generator else list(output)\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/parallel.py\", line 1650, in _get_outputs\n",
|
|
" yield from self._retrieve()\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/parallel.py\", line 1754, in _retrieve\n",
|
|
" self._raise_error_fast()\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/parallel.py\", line 1789, in _raise_error_fast\n",
|
|
" error_job.get_result(self.timeout)\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/parallel.py\", line 745, in get_result\n",
|
|
" return self._return_or_raise()\n",
|
|
" File \"/home/lingyuzeng/micromamba/envs/bgpt_data/lib/python3.10/site-packages/joblib/parallel.py\", line 763, in _return_or_raise\n",
|
|
" raise self._result\n",
|
|
"ValueError: cannot reshape array of size 0 into shape (1,10000)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from pathlib import Path\n",
|
|
"if not Path('save/save_fast').exists():\n",
|
|
" Path('save/save_fast').mkdir()\n",
|
|
"!python convert_root_to_txt.py ./data/data_fast ./save/save_fast --data-type fast --attr-sep '|' --part-sep ';' --selected-attrs 'part_charge,part_energy,part_px,part_py,part_pz,log_energy,log_pt,part_deta,part_dphi,part_logptrel,part_logerel,part_deltaR,part_d0,part_dz,particle_pid'\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from convert_root_to_txt import *\n",
|
|
"from pathlib import Path"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Building JetSet from data/full_bb.root\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"jet_set = JetSet.build_jetset(Path('data/full_bb.root'))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"'bb'"
|
|
]
|
|
},
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"jet_set.jets_type"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Building JetSet from data/full_bb.root\n",
|
|
"属性名称: particle_id, 类型: <class 'int'>, 值: 0\n",
|
|
"属性名称: part_charge, 类型: <class 'int'>, 值: [1.0, -1.0, 0.0, 0.0, 1.0, -1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n",
|
|
"属性名称: part_energy, 类型: <class 'float'>, 值: [15.209561347961426, 13.140800476074219, 8.555957794189453, 6.927829742431641, 6.921298027038574, 6.718546390533447, 5.639996528625488, 2.734797239303589, 2.276695728302002, 2.0461738109588623, 1.7986037731170654, 1.388156771659851, 1.38234281539917, 1.0570266246795654, 0.8934926986694336, 0.8899771571159363, 0.879972517490387, 0.7406238317489624, 0.5272039175033569, 0.3686225712299347, 0.3535390794277191, 0.34719786047935486, 0.34384962916374207, 0.2649906873703003, 0.23999999463558197, 0.18479159474372864, 0.17317134141921997, 0.15941102802753448, 0.12423540651798248, 0.08461850136518478, 0.0843382179737091, 0.02829699218273163, 0.009839793667197227]\n",
|
|
"属性名称: part_px, 类型: <class 'float'>, 值: [-5.796960830688477, -5.311581611633301, -3.19583797454834, -2.326359510421753, -2.503192901611328, -2.6899032592773438, -1.925751805305481, -0.8692939281463623, -0.7592987418174744, -0.7812060713768005, -0.6791485548019409, -0.3433796167373657, -0.47946590185165405, -0.18832340836524963, -0.35665348172187805, -0.28360629081726074, -0.3264841139316559, -0.3620759844779968, -0.26313358545303345, -0.1359526515007019, -0.123598612844944, -0.06242864206433296, -0.13691917061805725, -0.08844801038503647, -0.05727635696530342, -0.08955521136522293, -0.12885883450508118, -0.10516541451215744, -0.03254406899213791, -0.015558036044239998, -0.02192043326795101, -0.008681708946824074, -0.0013048802502453327]\n",
|
|
"属性名称: part_py, 类型: <class 'float'>, 值: [-8.48299789428711, -6.931148052215576, -4.749238014221191, -3.9339864253997803, -4.476352691650391, -3.8203539848327637, -3.365067958831787, -1.7807756662368774, -1.501481056213379, -1.1750568151474, -0.9528936743736267, -0.7268454432487488, -0.833030104637146, 0.49239909648895264, -0.4624371826648712, -0.5192604064941406, -0.2649482488632202, -0.40544790029525757, -0.32859694957733154, -0.19921012222766876, -0.22155417501926422, 0.23689919710159302, -0.21035675704479218, -0.1498441994190216, -0.1331370621919632, -0.012309929355978966, 0.06338366121053696, -0.07766649127006531, -0.06364167481660843, 0.03760836273431778, -0.04934240132570267, -0.019126178696751595, 0.004166470840573311]\n",
|
|
"属性名称: part_pz, 类型: <class 'float'>, 值: [-11.213626861572266, -9.818737030029297, -6.358912944793701, -5.206402778625488, -4.645572185516357, -4.82585334777832, -4.096017360687256, -1.8796172142028809, -1.5337415933609009, -1.481818437576294, -1.3659160137176514, -1.1231404542922974, -0.9935013651847839, -0.916178286075592, -0.6762243509292603, -0.6648273468017578, -0.7730214595794678, -0.5030274987220764, -0.2853204607963562, -0.2787737548351288, -0.2462255209684372, -0.20299455523490906, -0.23502285778522491, -0.19985926151275635, -0.19129541516304016, -0.1611715406179428, -0.09677927196025848, -0.09121418744325638, -0.10161228477954865, -0.07418793439865112, -0.06479009985923767, -0.018961459398269653, -0.008818126283586025]\n",
|
|
"属性名称: log_energy, 类型: <class 'float'>, 值: [ 2.72192427 2.57572193 2.14662786 1.9355466 1.93460333 1.90487182\n",
|
|
" 1.72988345 1.0060573 0.82272515 0.71597162 0.58701068 0.3279768\n",
|
|
" 0.32377975 0.0554599 -0.11261712 -0.11655948 -0.1278646 -0.30026243\n",
|
|
" -0.64016787 -0.997982 -1.03976125 -1.05786046 -1.06755084 -1.3280606\n",
|
|
" -1.42711638 -1.6885266 -1.75347376 -1.83626933 -2.08557707 -2.46960234\n",
|
|
" -2.47292016 -3.56499976 -4.62132054]\n",
|
|
"属性名称: log_pt, 类型: <class 'float'>, 值: [ 2.32966824 2.16703303 1.744736 1.51959212 1.63485496 1.54165826\n",
|
|
" 1.35509735 0.68391671 0.52031146 0.34432893 0.15713127 -0.21831242\n",
|
|
" -0.03961538 -0.64020631 -0.53786329 -0.52481977 -0.86639788 -0.60956524\n",
|
|
" -0.86519514 -1.42221173 -1.3716092 -1.40655069 -1.38233552 -1.74869444\n",
|
|
" -1.9314722 -2.40354098 -1.94069632 -2.03457679 -2.63833865 -3.20154184\n",
|
|
" -2.91891223 -3.86302568 -5.43390179]\n",
|
|
"属性名称: part_deta, 类型: <class 'float'>, 值: [-0.012650121003389359, 0.009468508884310722, 0.00042291259160265326, 0.01923862285912037, -0.14403046667575836, -0.05278221517801285, -0.036465417593717575, -0.11269791424274445, -0.1397673487663269, -0.040799811482429504, 0.03767024725675583, 0.17913000285625458, -0.05223162844777107, 0.362665593624115, 0.03155886009335518, 0.008969753980636597, 0.4117862284183502, -0.1295829564332962, -0.3228398263454437, 0.03021526150405407, -0.09680869430303574, -0.20235909521579742, -0.12153740972280502, 0.025453981012105942, 0.13331031799316406, 0.38491809368133545, -0.3260197937488556, -0.30641964077949524, 0.19324439764022827, 0.40427282452583313, 0.05876421928405762, -0.14629797637462616, 0.4952174425125122]\n",
|
|
"属性名称: part_dphi, 类型: <class 'float'>, 值: [-0.004700591322034597, -0.05910219997167587, 0.0024550738744437695, 0.060737334191799164, 0.0848897248506546, -0.018699318170547485, 0.07498598098754883, 0.1406451165676117, 0.1265745460987091, 0.008045745082199574, -0.02444184571504593, 0.15342673659324646, 0.07251019775867462, -2.181525468826294, -0.062189724296331406, 0.09487095475196838, -0.2942989766597748, -0.13417768478393555, -0.08044422417879105, -0.004084283020347357, 0.08590564131736755, -2.2891547679901123, 0.01777080073952675, 0.06153986230492592, 0.18849976360797882, -0.8394244313240051, -1.4331588745117188, -0.3399130403995514, 0.12207411229610443, -2.1545727252960205, 0.17670847475528717, 0.1686646193265915, -2.2433114051818848]\n",
|
|
"属性名称: part_logptrel, 类型: <class 'float'>, 值: -1.6656613686933\n",
|
|
"属性名称: part_logerel, 类型: <class 'float'>, 值: -1.6908250129173599\n",
|
|
"属性名称: part_deltaR, 类型: <class 'float'>, 值: 0.013495225829054495\n",
|
|
"属性名称: part_d0, 类型: <class 'float'>, 值: [-0.08485882 0.08362859 0. 0. -0.12567137 0.13890936\n",
|
|
" 0. 0.05528848 0. 0. 0. -0.08717197\n",
|
|
" 0. 0. 0. 0. 0. 0.\n",
|
|
" 0.07979553 0. 0. 0.06790032 0. 0.\n",
|
|
" 0. 0. 0. 0. 0. 0.\n",
|
|
" 0. 0. 0. ]\n",
|
|
"属性名称: part_dz, 类型: <class 'float'>, 值: [ 0.16160717 0.07151473 0. 0. -0.16053929 0.09658169\n",
|
|
" 0. 0.06517879 0. 0. 0. 0.11920792\n",
|
|
" 0. 0. 0. 0. 0. 0.\n",
|
|
" -0.13735584 0. 0. 0.12359677 0. 0.\n",
|
|
" 0. 0. 0. 0. 0. 0.\n",
|
|
" 0. 0. 0. ]\n",
|
|
"属性名称: particle_type, 类型: <enum 'ParticleType'>, 值: ParticleType.Electron\n",
|
|
"属性名称: particle_pid, 类型: <class 'int'>, 值: 2\n",
|
|
"属性名称: jet_type, 类型: <class 'str'>, 值: b jet\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from convert_root_to_txt import *\n",
|
|
"from pathlib import Path\n",
|
|
"\n",
|
|
"# 构建 jet_set\n",
|
|
"jet_set = JetSet.build_jetset(Path('data/full_bb.root'))\n",
|
|
"\n",
|
|
"# 获取第一个 jet 的第一个 particle\n",
|
|
"particle = jet_set.jets[0].particles[0]\n",
|
|
"\n",
|
|
"# 打印属性名称、类型和值\n",
|
|
"for field in attrs.fields(particle.__class__):\n",
|
|
" field_name = field.name\n",
|
|
" field_type = field.type\n",
|
|
" field_value = getattr(particle, field_name)\n",
|
|
" print(f\"属性名称: {field_name}, 类型: {field_type}, 值: {field_value}\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"attrs_list length: 17\n",
|
|
"Processing data/full_bbbar.root\n",
|
|
"Building JetSet from data/full_bbbar.root\n",
|
|
"Processing data/full_bb.root\n",
|
|
"Building JetSet from data/full_bb.root\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"100%|██████████| 24921/24921 [07:08<00:00, 58.13it/s]\n",
|
|
"100%|██████████| 24930/24930 [07:20<00:00, 56.56it/s]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from n import *\n",
|
|
"root_dir = \"./data\"\n",
|
|
"save_dir = \"./save\"\n",
|
|
"attrs_list = ['particle_id', 'part_charge', 'part_energy', 'part_px', 'part_py', 'part_pz', 'log_energy' , 'log_pt', 'part_deta', 'part_dphi', 'part_logptrel', 'part_logerel', 'part_deltaR', 'part_d0', 'part_dz' , 'particle_type', 'particle_pid']\n",
|
|
"print(f'attrs_list length: {len(attrs_list)}')\n",
|
|
"preprocess(root_dir, save_dir, selected_attrs=attrs_list, attr_sep=',', part_sep='|')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"bb file length: 24921\n",
|
|
"bbbar file length: 24930\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from pathlib import Path\n",
|
|
"\n",
|
|
"print(f\"bb file length: {len(list(Path('./save').glob('bb_*.bin')))}\")\n",
|
|
"print(f\"bbbar file length: {len(list(Path('./save').glob('bbbar_*.bin')))}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pickle\n",
|
|
"with open('save/bb_0.bin', 'rb') as f:\n",
|
|
" res = pickle.load(f)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"str"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"type(res)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"198017"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"len(res)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pickle\n",
|
|
"import os\n",
|
|
"\n",
|
|
"def load_pickled_files(directory):\n",
|
|
" files = [f for f in os.listdir(directory) if f.endswith('.bin')]\n",
|
|
" data = []\n",
|
|
" \n",
|
|
" for file in files:\n",
|
|
" filepath = os.path.join(directory, file)\n",
|
|
" with open(filepath, 'rb') as f:\n",
|
|
" data.append(pickle.load(f))\n",
|
|
" \n",
|
|
" return data\n",
|
|
"\n",
|
|
"if __name__ == '__main__':\n",
|
|
" save_dir = \"./save\"\n",
|
|
" data = load_pickled_files(save_dir)\n",
|
|
" for i, jet in enumerate(data):\n",
|
|
" print(f\"Data from file {i}:\")\n",
|
|
" print(jet)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"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.10.14"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|