diff --git a/apps/createDocument/controllers/__pycache__/hsm.cpython-313.pyc b/apps/createDocument/controllers/__pycache__/hsm.cpython-313.pyc index ec5f267..a61f922 100644 Binary files a/apps/createDocument/controllers/__pycache__/hsm.cpython-313.pyc and b/apps/createDocument/controllers/__pycache__/hsm.cpython-313.pyc differ diff --git a/apps/createDocument/controllers/hsm.py b/apps/createDocument/controllers/hsm.py index 66296c0..f8d003c 100644 --- a/apps/createDocument/controllers/hsm.py +++ b/apps/createDocument/controllers/hsm.py @@ -1,6 +1,6 @@ from pathlib import Path from copy import deepcopy -from typing import Union +from typing import Union, TypedDict, Optional from ninja_extra import api_controller, ControllerBase, route from django.db import transaction from django.shortcuts import get_object_or_404 @@ -240,26 +240,31 @@ class GenerateControllerHSM(ControllerBase): ## 先查找是否有影响域分析填写 area_qs = InfluenceArea.objects.filter(round=hround) ## 如果存在则查询items + item_render_list = [] if area_qs.exists(): area_obj = area_qs.first() items_qs = area_obj.influence_items.all() if items_qs.exists(): - # 遍历items - item_render_list = [] + index = 1 for item in items_qs: # 1.处理关联case - 找第一轮cases case_str_list = [] for case in project_obj.pcField.filter(key__in=item.effect_cases): case_ident_index = str(int(case.key.split("-")[-1]) + 1).zfill(3) case_str_list.append("_".join(["YL", get_str_abbr(case.test.testType, "testType"), case.ident, case_ident_index])) + # 2.处理富文本框 + parser = RichParser(item.change_des) item_dict = { "change_type": item.change_type, "change_influ": item.change_influ, "case_str_list": case_str_list, - "change_des": item.change_des, # 富文本未处理 + "change_des": parser.get_final_list(doc, img_size=40, height=30), # 富文本未处理 + "index": str(index), } + index = index + 1 item_render_list.append(item_dict) - + # 将影响域分析加入context + context_round['influence'] = item_render_list # noqa # 如果存在这个轮次的需求文档,则查询上个版本 last_xq_version = "" if xq_dut: diff --git a/apps/createDocument/extensions/__pycache__/parse_rich_text.cpython-313.pyc b/apps/createDocument/extensions/__pycache__/parse_rich_text.cpython-313.pyc index 3deaf57..5ad1c60 100644 Binary files a/apps/createDocument/extensions/__pycache__/parse_rich_text.cpython-313.pyc and b/apps/createDocument/extensions/__pycache__/parse_rich_text.cpython-313.pyc differ diff --git a/apps/createDocument/extensions/parse_rich_text.py b/apps/createDocument/extensions/parse_rich_text.py index a97bc1d..78e2789 100644 --- a/apps/createDocument/extensions/parse_rich_text.py +++ b/apps/createDocument/extensions/parse_rich_text.py @@ -7,7 +7,7 @@ from bs4.element import Tag, NavigableString import base64 import io from docxtpl import InlineImage -from docx.shared import Mm, Cm +from docx.shared import Mm import re # text.replace('\xa0', ' ')) @@ -82,11 +82,12 @@ class RichParser: if isinstance(oneline, list): final_list.append({'isTable': True, 'data': oneline}) continue - if oneline.startswith("data:image/png;base64"): + if oneline.startswith("data:image/png;base64") or oneline.startswith("data:image/jpeg;base64,") or oneline.startswith( + "data:image/jpg;base64,"): base64_bytes = base64.b64decode(oneline.replace("data:image/png;base64,", "")) # ~~~设置了固定宽度、高度~~~ - final_list.append( - InlineImage(doc, io.BytesIO(base64_bytes), width=Mm(img_size), height=Mm(height))) + inline_image = InlineImage(doc, io.BytesIO(base64_bytes), width=Mm(img_size), height=Mm(height)) + final_list.append(inline_image) else: final_list.append(oneline) if len(final_list) <= 0: diff --git a/apps/project/controllers/__pycache__/case.cpython-313.pyc b/apps/project/controllers/__pycache__/case.cpython-313.pyc index d3dc8c5..99a625b 100644 Binary files a/apps/project/controllers/__pycache__/case.cpython-313.pyc and b/apps/project/controllers/__pycache__/case.cpython-313.pyc differ diff --git a/apps/project/controllers/__pycache__/round.cpython-313.pyc b/apps/project/controllers/__pycache__/round.cpython-313.pyc index f2dfc6e..1a14ce1 100644 Binary files a/apps/project/controllers/__pycache__/round.cpython-313.pyc and b/apps/project/controllers/__pycache__/round.cpython-313.pyc differ diff --git a/apps/project/controllers/case.py b/apps/project/controllers/case.py index 580c5e5..064aa1d 100644 --- a/apps/project/controllers/case.py +++ b/apps/project/controllers/case.py @@ -405,7 +405,7 @@ class CaseController(ControllerBase): # dut -> design data_list = [] for dut in previous_round_obj.rdField.all(): - dut_dict = {'label': dut.name, 'value': dut.id, 'children': []} + dut_dict = {'label': dut.name, 'value': dut.id, 'key': dut.key, 'children': []} for design in dut.rsField.all(): design_dict = {'label': design.name, 'value': design.id, 'key': design.key, 'children': []} for case in design.dcField.all(): @@ -413,4 +413,4 @@ class CaseController(ControllerBase): design_dict['children'].append(case_dict) dut_dict['children'].append(design_dict) data_list.append(dut_dict) - return ChenResponse(message='获取成功', data=data_list) \ No newline at end of file + return ChenResponse(message='获取成功', data=data_list) diff --git a/apps/project/controllers/round.py b/apps/project/controllers/round.py index b889b24..0b4da6d 100644 --- a/apps/project/controllers/round.py +++ b/apps/project/controllers/round.py @@ -114,7 +114,6 @@ class RoundController(ControllerBase): @route.post("/round/create_influence", url_name="round-influence-create") @transaction.atomic def post_influence(self, data: InfluenceInputSchema): - print(data) round_obj = Round.objects.filter(project_id=data.id, key=data.round_key).first() influence_area_qs = InfluenceArea.objects.filter(round=round_obj) if influence_area_qs.exists(): diff --git a/conf/base_document/form_template/hsm/~$软件更改部分.docx b/conf/base_document/form_template/hsm/~$软件更改部分.docx deleted file mode 100644 index 4adf549..0000000 Binary files a/conf/base_document/form_template/hsm/~$软件更改部分.docx and /dev/null differ diff --git a/conf/base_document/form_template/hsm/软件更改部分.docx b/conf/base_document/form_template/hsm/软件更改部分.docx index 2c5c366..107eddd 100644 Binary files a/conf/base_document/form_template/hsm/软件更改部分.docx and b/conf/base_document/form_template/hsm/软件更改部分.docx differ diff --git a/logs/root_log b/logs/root_log index a7d5d70..5a0d016 100644 --- a/logs/root_log +++ b/logs/root_log @@ -596,3 +596,88 @@ ValueError: Cannot assign "", line 16, in template +jinja2.exceptions.TemplateSyntaxError: Expected an expression, got 'end of print statement' +[ERROR][2026-02-08 15:04:43,182][log.py:249]Internal Server Error: /api/generateHSM/create/changePart +[WARNING][2026-02-08 15:05:05,418][operation.py:131]"GET - GenerateControllerHSM[create_changePart] /api/generateHSM/create/changePart" ("Expected an expression, got 'end of print statement'",) +[ERROR][2026-02-08 15:05:05,419][errors.py:131]Expected an expression, got 'end of print statement' +Traceback (most recent call last): + File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run + result = self.view_func(request, **ctx.kwargs["view_func_kwargs"]) + File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view + result = self.route.view_func( + ctx.controller_instance, *args, **ctx.view_func_kwargs + ) + File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner + return func(*args, **kwds) + File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\hsm.py", line 285, in create_changePart + doc.render(context_round, autoescape=True) + ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 489, in render + xml_src = self.build_xml(context, jinja_env) + File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 436, in build_xml + xml = self.render_xml_part(xml, self.docx._part, context, jinja_env) + File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 322, in render_xml_part + raise exc + File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 310, in render_xml_part + template = jinja_env.from_string(src_xml) + File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1111, in from_string + return cls.from_code(self, self.compile(source), gs, None) + ~~~~~~~~~~~~^^^^^^^^ + File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 771, in compile + self.handle_exception(source=source_hint) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ + File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "", line 16, in template +jinja2.exceptions.TemplateSyntaxError: Expected an expression, got 'end of print statement' +[ERROR][2026-02-08 15:05:05,438][log.py:249]Internal Server Error: /api/generateHSM/create/changePart diff --git a/media/R25999/final_seitai/测评大纲.docx b/media/R25999/final_seitai/测评大纲.docx index b54b955..13e650e 100644 Binary files a/media/R25999/final_seitai/测评大纲.docx and b/media/R25999/final_seitai/测评大纲.docx differ diff --git a/media/R25999/final_seitai/第二轮回归测试说明.docx b/media/R25999/final_seitai/第二轮回归测试说明.docx index 4499e53..213dc8d 100644 Binary files a/media/R25999/final_seitai/第二轮回归测试说明.docx and b/media/R25999/final_seitai/第二轮回归测试说明.docx differ diff --git a/media/R25999/form_template/hsm/temporary/第二轮用例追踪_temp.docx b/media/R25999/form_template/hsm/temporary/第二轮用例追踪_temp.docx index 4ec4149..6bbe9f0 100644 Binary files a/media/R25999/form_template/hsm/temporary/第二轮用例追踪_temp.docx and b/media/R25999/form_template/hsm/temporary/第二轮用例追踪_temp.docx differ diff --git a/media/R25999/form_template/hsm/软件更改部分.docx b/media/R25999/form_template/hsm/软件更改部分.docx index dad9c64..550852f 100644 Binary files a/media/R25999/form_template/hsm/软件更改部分.docx and b/media/R25999/form_template/hsm/软件更改部分.docx differ diff --git a/media/R25999/output_dir/hsm/第二轮回归测试用例概述.docx b/media/R25999/output_dir/hsm/第二轮回归测试用例概述.docx index ef6edca..821fa55 100644 Binary files a/media/R25999/output_dir/hsm/第二轮回归测试用例概述.docx and b/media/R25999/output_dir/hsm/第二轮回归测试用例概述.docx differ diff --git a/media/R25999/output_dir/hsm/第二轮回归测试需求.docx b/media/R25999/output_dir/hsm/第二轮回归测试需求.docx index afe58be..129726f 100644 Binary files a/media/R25999/output_dir/hsm/第二轮回归测试需求.docx and b/media/R25999/output_dir/hsm/第二轮回归测试需求.docx differ diff --git a/media/R25999/output_dir/hsm/第二轮技术依据文件.docx b/media/R25999/output_dir/hsm/第二轮技术依据文件.docx index d2bd12b..5cf1ea2 100644 Binary files a/media/R25999/output_dir/hsm/第二轮技术依据文件.docx and b/media/R25999/output_dir/hsm/第二轮技术依据文件.docx differ diff --git a/media/R25999/output_dir/hsm/第二轮文档概述.docx b/media/R25999/output_dir/hsm/第二轮文档概述.docx index 11bab1b..57f5d6b 100644 Binary files a/media/R25999/output_dir/hsm/第二轮文档概述.docx and b/media/R25999/output_dir/hsm/第二轮文档概述.docx differ diff --git a/media/R25999/output_dir/hsm/第二轮测试用例.docx b/media/R25999/output_dir/hsm/第二轮测试用例.docx index 1c11a3d..03b2855 100644 Binary files a/media/R25999/output_dir/hsm/第二轮测试用例.docx and b/media/R25999/output_dir/hsm/第二轮测试用例.docx differ diff --git a/media/R25999/output_dir/hsm/第二轮用例追踪.docx b/media/R25999/output_dir/hsm/第二轮用例追踪.docx index f95de00..04f6ee7 100644 Binary files a/media/R25999/output_dir/hsm/第二轮用例追踪.docx and b/media/R25999/output_dir/hsm/第二轮用例追踪.docx differ diff --git a/media/R25999/output_dir/hsm/第二轮被测软件基本信息.docx b/media/R25999/output_dir/hsm/第二轮被测软件基本信息.docx index 369530d..fa36377 100644 Binary files a/media/R25999/output_dir/hsm/第二轮被测软件基本信息.docx and b/media/R25999/output_dir/hsm/第二轮被测软件基本信息.docx differ diff --git a/media/R25999/output_dir/hsm/第二轮软件更改部分.docx b/media/R25999/output_dir/hsm/第二轮软件更改部分.docx index 69eddca..4a2ec80 100644 Binary files a/media/R25999/output_dir/hsm/第二轮软件更改部分.docx and b/media/R25999/output_dir/hsm/第二轮软件更改部分.docx differ diff --git a/media/R25999/output_dir/主要功能和性能指标.docx b/media/R25999/output_dir/主要功能和性能指标.docx index 0ff65bd..105c0e3 100644 Binary files a/media/R25999/output_dir/主要功能和性能指标.docx and b/media/R25999/output_dir/主要功能和性能指标.docx differ diff --git a/media/R25999/output_dir/代码质量度量分析表.docx b/media/R25999/output_dir/代码质量度量分析表.docx index 0756aed..217a5ab 100644 Binary files a/media/R25999/output_dir/代码质量度量分析表.docx and b/media/R25999/output_dir/代码质量度量分析表.docx differ diff --git a/media/R25999/output_dir/动态测试环境说明.docx b/media/R25999/output_dir/动态测试环境说明.docx index 033f6a8..88a3fa0 100644 Binary files a/media/R25999/output_dir/动态测试环境说明.docx and b/media/R25999/output_dir/动态测试环境说明.docx differ diff --git a/media/R25999/output_dir/动态硬件和固件项.docx b/media/R25999/output_dir/动态硬件和固件项.docx index 37afb11..66375c1 100644 Binary files a/media/R25999/output_dir/动态硬件和固件项.docx and b/media/R25999/output_dir/动态硬件和固件项.docx differ diff --git a/media/R25999/output_dir/动态软件项.docx b/media/R25999/output_dir/动态软件项.docx index c5840bb..8c2c719 100644 Binary files a/media/R25999/output_dir/动态软件项.docx and b/media/R25999/output_dir/动态软件项.docx differ diff --git a/media/R25999/output_dir/反向需求规格追踪表.docx b/media/R25999/output_dir/反向需求规格追踪表.docx index 44c391e..e754656 100644 Binary files a/media/R25999/output_dir/反向需求规格追踪表.docx and b/media/R25999/output_dir/反向需求规格追踪表.docx differ diff --git a/media/R25999/output_dir/技术依据文件.docx b/media/R25999/output_dir/技术依据文件.docx index 9f98879..988a6cc 100644 Binary files a/media/R25999/output_dir/技术依据文件.docx and b/media/R25999/output_dir/技术依据文件.docx differ diff --git a/media/R25999/output_dir/标准依据文件.docx b/media/R25999/output_dir/标准依据文件.docx index 5a717b3..4682c31 100644 Binary files a/media/R25999/output_dir/标准依据文件.docx and b/media/R25999/output_dir/标准依据文件.docx differ diff --git a/media/R25999/output_dir/测评对象.docx b/media/R25999/output_dir/测评对象.docx index 8c86a22..ea160c9 100644 Binary files a/media/R25999/output_dir/测评对象.docx and b/media/R25999/output_dir/测评对象.docx differ diff --git a/media/R25999/output_dir/测评数据.docx b/media/R25999/output_dir/测评数据.docx index 3135552..f599c0a 100644 Binary files a/media/R25999/output_dir/测评数据.docx and b/media/R25999/output_dir/测评数据.docx differ diff --git a/media/R25999/output_dir/测评时间和地点.docx b/media/R25999/output_dir/测评时间和地点.docx index 235a626..7960b34 100644 Binary files a/media/R25999/output_dir/测评时间和地点.docx and b/media/R25999/output_dir/测评时间和地点.docx differ diff --git a/media/R25999/output_dir/测评条件保障.docx b/media/R25999/output_dir/测评条件保障.docx index 17a29e1..f817a02 100644 Binary files a/media/R25999/output_dir/测评条件保障.docx and b/media/R25999/output_dir/测评条件保障.docx differ diff --git a/media/R25999/output_dir/测评组织及任务分工.docx b/media/R25999/output_dir/测评组织及任务分工.docx index 78ebc4a..a29b509 100644 Binary files a/media/R25999/output_dir/测评组织及任务分工.docx and b/media/R25999/output_dir/测评组织及任务分工.docx differ diff --git a/media/R25999/output_dir/测试内容充分性及测试方法有效性分析.docx b/media/R25999/output_dir/测试内容充分性及测试方法有效性分析.docx index 39ab329..ff84ab6 100644 Binary files a/media/R25999/output_dir/测试内容充分性及测试方法有效性分析.docx and b/media/R25999/output_dir/测试内容充分性及测试方法有效性分析.docx differ diff --git a/media/R25999/output_dir/测试策略.docx b/media/R25999/output_dir/测试策略.docx index c2a510f..d36a728 100644 Binary files a/media/R25999/output_dir/测试策略.docx and b/media/R25999/output_dir/测试策略.docx differ diff --git a/media/R25999/output_dir/测试级别和测试类型.docx b/media/R25999/output_dir/测试级别和测试类型.docx index 1df2ed1..4159435 100644 Binary files a/media/R25999/output_dir/测试级别和测试类型.docx and b/media/R25999/output_dir/测试级别和测试类型.docx differ diff --git a/media/R25999/output_dir/测试项及方法.docx b/media/R25999/output_dir/测试项及方法.docx index 9b31700..b058d2e 100644 Binary files a/media/R25999/output_dir/测试项及方法.docx and b/media/R25999/output_dir/测试项及方法.docx differ diff --git a/media/R25999/output_dir/环境差异性分析.docx b/media/R25999/output_dir/环境差异性分析.docx index 31e2234..111499e 100644 Binary files a/media/R25999/output_dir/环境差异性分析.docx and b/media/R25999/output_dir/环境差异性分析.docx differ diff --git a/media/R25999/output_dir/研制总要求追踪表.docx b/media/R25999/output_dir/研制总要求追踪表.docx index 5440b74..9c48d8e 100644 Binary files a/media/R25999/output_dir/研制总要求追踪表.docx and b/media/R25999/output_dir/研制总要求追踪表.docx differ diff --git a/media/R25999/output_dir/缩略语.docx b/media/R25999/output_dir/缩略语.docx index a8df3a3..bb75500 100644 Binary files a/media/R25999/output_dir/缩略语.docx and b/media/R25999/output_dir/缩略语.docx differ diff --git a/media/R25999/output_dir/联系人和方式.docx b/media/R25999/output_dir/联系人和方式.docx index 1e4da26..ce77220 100644 Binary files a/media/R25999/output_dir/联系人和方式.docx and b/media/R25999/output_dir/联系人和方式.docx differ diff --git a/media/R25999/output_dir/被测软件基本信息.docx b/media/R25999/output_dir/被测软件基本信息.docx index 2ccff72..bc082f5 100644 Binary files a/media/R25999/output_dir/被测软件基本信息.docx and b/media/R25999/output_dir/被测软件基本信息.docx differ diff --git a/media/R25999/output_dir/被测软件接口.docx b/media/R25999/output_dir/被测软件接口.docx index fccc8b2..1d24c82 100644 Binary files a/media/R25999/output_dir/被测软件接口.docx and b/media/R25999/output_dir/被测软件接口.docx differ diff --git a/media/R25999/output_dir/需求规格说明追踪表.docx b/media/R25999/output_dir/需求规格说明追踪表.docx index a3fae55..36b1fcf 100644 Binary files a/media/R25999/output_dir/需求规格说明追踪表.docx and b/media/R25999/output_dir/需求规格说明追踪表.docx differ diff --git a/media/R25999/output_dir/静态测试环境说明.docx b/media/R25999/output_dir/静态测试环境说明.docx index ffbfa3d..367731b 100644 Binary files a/media/R25999/output_dir/静态测试环境说明.docx and b/media/R25999/output_dir/静态测试环境说明.docx differ diff --git a/media/R25999/output_dir/静态硬件和固件项.docx b/media/R25999/output_dir/静态硬件和固件项.docx index 9d5c53d..fd6edc8 100644 Binary files a/media/R25999/output_dir/静态硬件和固件项.docx and b/media/R25999/output_dir/静态硬件和固件项.docx differ diff --git a/media/R25999/output_dir/静态软件项.docx b/media/R25999/output_dir/静态软件项.docx index d44c5fe..0987b22 100644 Binary files a/media/R25999/output_dir/静态软件项.docx and b/media/R25999/output_dir/静态软件项.docx differ diff --git a/media/R25999/output_dir/顶层技术文件.docx b/media/R25999/output_dir/顶层技术文件.docx index 2e53777..a66b5c3 100644 Binary files a/media/R25999/output_dir/顶层技术文件.docx and b/media/R25999/output_dir/顶层技术文件.docx differ diff --git a/media/R25999/temp/测评大纲.docx b/media/R25999/temp/测评大纲.docx index 332d115..a83f69a 100644 Binary files a/media/R25999/temp/测评大纲.docx and b/media/R25999/temp/测评大纲.docx differ diff --git a/media/R25999/temp/第二轮回归测试说明.docx b/media/R25999/temp/第二轮回归测试说明.docx index 13a1576..6bbe907 100644 Binary files a/media/R25999/temp/第二轮回归测试说明.docx and b/media/R25999/temp/第二轮回归测试说明.docx differ diff --git a/pyproject.toml b/pyproject.toml index 8179d2b..9eeeae7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,8 +17,8 @@ dependencies = [ "django-tinymce>=5.0.0", "docxcompose", "docxtpl>=0.20.2", - "faker==40.1.2", - "ipykernel>=7.1.0", + "faker>=40.4.0", + "ipykernel>=7.2.0", "lizard>=1.21.0", "mysqlclient>=2.2.7", "ninja-schema>=0.14.3", diff --git a/uv.lock b/uv.lock index c388509..7038b2c 100644 --- a/uv.lock +++ b/uv.lock @@ -111,8 +111,8 @@ requires-dist = [ { name = "django-tinymce", specifier = ">=5.0.0" }, { name = "docxcompose" }, { name = "docxtpl", specifier = ">=0.20.2" }, - { name = "faker", specifier = "==40.1.2" }, - { name = "ipykernel", specifier = ">=7.1.0" }, + { name = "faker", specifier = ">=40.4.0" }, + { name = "ipykernel", specifier = ">=7.2.0" }, { name = "lizard", specifier = ">=1.21.0" }, { name = "mysqlclient", specifier = ">=2.2.7" }, { name = "ninja-schema", specifier = ">=0.14.3" }, @@ -413,14 +413,14 @@ wheels = [ [[package]] name = "faker" -version = "40.1.2" +version = "40.4.0" source = { registry = "https://mirrors.aliyun.com/pypi/simple" } dependencies = [ { name = "tzdata", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://mirrors.aliyun.com/pypi/packages/5e/77/1c3ff07b6739b9a1d23ca01ec0a90a309a33b78e345a3eb52f9ce9240e36/faker-40.1.2.tar.gz", hash = "sha256:b76a68163aa5f171d260fc24827a8349bc1db672f6a665359e8d0095e8135d30" } +sdist = { url = "https://mirrors.aliyun.com/pypi/packages/fc/7e/dccb7013c9f3d66f2e379383600629fec75e4da2698548bdbf2041ea4b51/faker-40.4.0.tar.gz", hash = "sha256:76f8e74a3df28c3e2ec2caafa956e19e37a132fdc7ea067bc41783affcfee364" } wheels = [ - { url = "https://mirrors.aliyun.com/pypi/packages/46/ec/91a434c8a53d40c3598966621dea9c50512bec6ce8e76fa1751015e74cef/faker-40.1.2-py3-none-any.whl", hash = "sha256:93503165c165d330260e4379fd6dc07c94da90c611ed3191a0174d2ab9966a42" }, + { url = "https://mirrors.aliyun.com/pypi/packages/ac/63/58efa67c10fb27810d34351b7a10f85f109a7f7e2a07dc3773952459c47b/faker-40.4.0-py3-none-any.whl", hash = "sha256:486d43c67ebbb136bc932406418744f9a0bdf2c07f77703ea78b58b77e9aa443" }, ] [[package]] @@ -443,7 +443,7 @@ wheels = [ [[package]] name = "ipykernel" -version = "7.1.0" +version = "7.2.0" source = { registry = "https://mirrors.aliyun.com/pypi/simple" } dependencies = [ { name = "appnope", marker = "sys_platform == 'darwin'" }, @@ -460,9 +460,9 @@ dependencies = [ { name = "tornado" }, { name = "traitlets" }, ] -sdist = { url = "https://mirrors.aliyun.com/pypi/packages/b9/a4/4948be6eb88628505b83a1f2f40d90254cab66abf2043b3c40fa07dfce0f/ipykernel-7.1.0.tar.gz", hash = "sha256:58a3fc88533d5930c3546dc7eac66c6d288acde4f801e2001e65edc5dc9cf0db" } +sdist = { url = "https://mirrors.aliyun.com/pypi/packages/ca/8d/b68b728e2d06b9e0051019640a40a9eb7a88fcd82c2e1b5ce70bef5ff044/ipykernel-7.2.0.tar.gz", hash = "sha256:18ed160b6dee2cbb16e5f3575858bc19d8f1fe6046a9a680c708494ce31d909e" } wheels = [ - { url = "https://mirrors.aliyun.com/pypi/packages/a3/17/20c2552266728ceba271967b87919664ecc0e33efca29c3efc6baf88c5f9/ipykernel-7.1.0-py3-none-any.whl", hash = "sha256:763b5ec6c5b7776f6a8d7ce09b267693b4e5ce75cb50ae696aaefb3c85e1ea4c" }, + { url = "https://mirrors.aliyun.com/pypi/packages/82/b9/e73d5d9f405cba7706c539aa8b311b49d4c2f3d698d9c12f815231169c71/ipykernel-7.2.0-py3-none-any.whl", hash = "sha256:3bbd4420d2b3cc105cbdf3756bfc04500b1e52f090a90716851f3916c62e1661" }, ] [[package]]