当前位置: 首页 > news >正文

html5手机网站石家庄工程官网

html5手机网站,石家庄工程官网,网站引入优酷视频,一般的网站开发语言用什么这段代码定义了一个Codes类#xff0c;这个类是用于管理生成的代码的类#xff0c;它可以根据LLM的回复来提取、格式化、更新和保存代码。Codes类的__init__()方法是类的构造函数#xff0c;它接受一个参数generated_content#xff0c;表示LLM的回复内容。它首先初始化了以…这段代码定义了一个Codes类这个类是用于管理生成的代码的类它可以根据LLM的回复来提取、格式化、更新和保存代码。Codes类的__init__()方法是类的构造函数它接受一个参数generated_content表示LLM的回复内容。它首先初始化了以下几个属性 self.directory: 一个字符串表示代码保存的目录。self.version: 一个浮点数表示代码的版本号。self.generated_content: 一个字符串表示LLM的回复内容。self.codebooks: 一个字典表示代码的集合以文件名为键以代码内容为值。然后它定义了两个内部函数extract_filename_from_line()和extract_filename_from_code()用于从LLM的回复中提取文件名。这两个函数都接受一个参数lines或code表示LLM的回复中的一部分内容。这两个函数都使用re模块来进行正则表达式匹配并返回匹配到的文件名。如果没有匹配到文件名则返回空字符串。接下来如果generated_content参数不为空则它使用re模块来遍历LLM的回复中包含在“符号中的代码段并将其保存在code变量中。然后它判断code变量是否包含”CODE”字符串如果是则跳过这个代码段因为这是一个占位符。然后它调用extract_filename_from_line()函数来从LLM的回复中提取文件名并将其保存在filename变量中。如果filename变量为空则它判断code变量是否包含”__main__“字符串如果是则将filename变量赋值为”main.py”因为这是主程序文件。如果filename变量仍然为空则它调用extract_filename_from_code()函数来从code变量中提取文件名并将其保存在filename变量中。最后它断言filename变量不为空并将其作为键将经过_format_code()方法格式化后的code变量作为值添加到self.codebooks字典中。_format_code()方法用于对代码进行格式化例如去除多余的空行等。它接受一个参数code表示代码内容。它首先使用splitlines()方法和join()方法来去除空行并返回格式化后的代码。_update_codes()方法用于更新生成的代码根据新的LLM的回复来比较、修改和保存代码。它接受一个参数generated_content表示新的LLM的回复内容。它首先创建一个新的Codes对象new_codes并将generated_content作为参数传递给其构造函数。然后它导入difflib模块用于进行文本比较。接着它遍历new_codes对象中的self.codebooks字典对于每个键值对即文件名和代码内容它判断是否存在于self.codebooks字典中或者是否与self.codebooks字典中相同键对应的值不同。如果是则表示需要更新代码并执行以下操作 创建一个字符串update_codes_content并赋值为”[Update Codes]\n\n”表示开始更新代码。在update_codes_content字符串后面追加”{} updated.\n”.format(key)表示更新了哪个文件。创建两个字符串old_codes_content和new_codes_content并分别赋值为self.codebooks字典中相同键对应的值即旧代码和new_codes对象中相同键对应的值即新代码。如果self.codebooks字典中不存在相同键则将old_codes_content赋值为”# None”。使用splitlines()方法将old_codes_content和new_codes_content分割成行列表并分别赋值给lines_old和lines_new。使用difflib.unified_diff()函数来生成两个行列表之间的差异并返回一个生成器对象unified_diff。使用join()方法将unified_diff生成器对象转换为一个字符串并赋值给unified_diff。在update_codes_content字符串后面追加”\n\n” “””“ ‘’’ ‘’’\n”“” unified_diff “\n“”表示显示代码的差异。 – 调用utils.log_and_print_online()函数来将update_codes_content字符串记录到日志文件中并打印出来。 – 将new_codes对象中相同键对应的值赋值给self.codebooks字典中相同键对应的值表示更新代码。 _rewrite_codes()方法用于重写代码根据self.codebooks字典中的内容来修改和保存代码。它接受一个参数git_management表示是否进行Git管理。它首先获取self.directory属性表示代码保存的目录并创建一个字符串rewrite_codes_content用于记录重写过程。然后它判断目录是否存在并且不为空如果是则将self.version属性加一表示代码的版本号增加。如果目录不存在则使用os模块的mkdir()函数来创建目录并在rewrite_codes_content字符串后面追加”{} Created\n”.format(directory)表示创建了目录。接着它遍历self.codebooks字典中的键值对即文件名和代码内容对于每个键值对它使用os模块的join()函数来拼接目录和文件名得到文件路径并将其保存在filepath变量中。然后它使用open()函数和write()方法来打开并写入文件并在rewrite_codes_content字符串后面追加os.path.join(directory, filename) ” Wrote\n”表示写入了文件。如果git_management参数为真则表示需要进行Git管理它会使用os模块的system()函数来执行一些Git命令例如初始化仓库、添加文件、提交更改等并将self.version属性作为提交信息。最后它调用utils.log_and_print_online()函数来将rewrite_codes_content字符串记录到日志文件中并打印出来。_get_codes()方法用于获取代码根据self.codebooks字典中的内容来生成一个字符串表示代码的集合。它首先创建一个空字符串content然后遍历self.codebooks字典中的键值对即文件名和代码内容对于每个键值对它在content字符串后面追加”{}\n{}\n{}\n\n\n”.format(filename, “python” if filename.endswith(“.py”) else filename.split(“.”)[-1], self.codebooks[filename])表示显示文件名和代码内容并根据文件扩展名来指定语言类型。最后它返回content字符串。_load_from_hardware()方法用于从硬盘中加载代码根据给定的目录来读取并保存代码。它接受一个参数directory表示代码所在的目录。它首先断言目录中存在以.py结尾的文件然后使用os模块的walk()函数来遍历目录中的所有文件。对于每个文件如果文件以.py结尾则使用open()函数和read()方法来读取文件内容并将其保存在code变量中。然后将经过_format_code()方法格式化后的code变量作为值将文件名作为键添加到self.codebooks字典中。最后调用utils.log_and_print_online()函数来记录并打印”{} files read from {}”.format(len(self.codebooks.keys()), directory)表示从目录中读取了多少个文件。 codes.py的代码如下 import os import refrom chatdev.utils import log_and_print_online import difflibclass Codes:def __init__(self, generated_content):self.directory: str Noneself.version: float 1.0self.generated_content: str generated_contentself.codebooks {}def extract_filename_from_line(lines):file_name for candidate in re.finditer(r(\w\.\w), lines, re.DOTALL):file_name candidate.group()file_name file_name.lower()return file_namedef extract_filename_from_code(code):file_name regex_extract rclass (\S?):\nmatches_extract re.finditer(regex_extract, code, re.DOTALL)for match_extract in matches_extract:file_name match_extract.group(1)file_name file_name.lower().split(()[0] .pyreturn file_nameif generated_content ! :regex r(.?)\n.*?\n(.*?)matches re.finditer(regex, self.generated_content, re.DOTALL)for match in matches:code match.group(2)if CODE in code:continuegroup1 match.group(1)filename extract_filename_from_line(group1)if __main__ in code:filename main.pyif filename : # post-processingfilename extract_filename_from_code(code)assert filename ! if filename is not None and code is not None and len(filename) 0 and len(code) 0:self.codebooks[filename] self._format_code(code)def _format_code(self, code):code \n.join([line for line in code.split(\n) if len(line.strip()) 0])return codedef _update_codes(self, generated_content):new_codes Codes(generated_content)differ difflib.Differ()for key in new_codes.codebooks.keys():if key not in self.codebooks.keys() or self.codebooks[key] ! new_codes.codebooks[key]:update_codes_content **[Update Codes]**\n\nupdate_codes_content {} updated.\n.format(key)old_codes_content self.codebooks[key] if key in self.codebooks.keys() else # Nonenew_codes_content new_codes.codebooks[key]lines_old old_codes_content.splitlines()lines_new new_codes_content.splitlines()unified_diff difflib.unified_diff(lines_old, lines_new, lineterm, fromfileOld, tofileNew)unified_diff \n.join(unified_diff)update_codes_content update_codes_content \n\n \n unified_diff \nlog_and_print_online(update_codes_content)self.codebooks[key] new_codes.codebooks[key]def _rewrite_codes(self, git_management) - None:directory self.directoryrewrite_codes_content **[Rewrite Codes]**\n\nif os.path.exists(directory) and len(os.listdir(directory)) 0:self.version 1.0if not os.path.exists(directory):os.mkdir(self.directory)rewrite_codes_content {} Created\n.format(directory)for filename in self.codebooks.keys():filepath os.path.join(directory, filename)with open(filepath, w, encodingutf-8) as writer:writer.write(self.codebooks[filename])rewrite_codes_content os.path.join(directory, filename) Wrote\nif git_management:if self.version 1.0:os.system(cd {}; git init.format(self.directory))os.system(cd {}; git add ..format(self.directory))os.system(cd {}; git commit -m \{}\.format(self.directory, self.version))log_and_print_online(rewrite_codes_content)def _get_codes(self) - str:content for filename in self.codebooks.keys():content {}\n{}\n{}\n\n\n.format(filename,python if filename.endswith(.py) else filename.split(.)[-1], self.codebooks[filename])return contentdef _load_from_hardware(self, directory) - None:assert len([filename for filename in os.listdir(directory) if filename.endswith(.py)]) 0for root, directories, filenames in os.walk(directory):for filename in filenames:if filename.endswith(.py):code open(os.path.join(directory, filename), r, encodingutf-8).read()self.codebooks[filename] self._format_code(code)log_and_print_online({} files read from {}.format(len(self.codebooks.keys()), directory))
http://www.pierceye.com/news/399343/

相关文章:

  • 想开个影视网站 那有做的莱芜信息平台
  • js做网站登录有服务器了怎么做网站
  • 郑州餐饮网站建设哪家好零基础网站建设教学在哪里
  • 讲述做网站的电影建设工程公司名字大全
  • 易语言可以做网站管理系统吗网站备案查询工信部手机版
  • 珠海建站论坛淘宝客网站做一种还是做好几种
  • 杭州公司的网站建设公司教育网站制作运营
  • 福州手游网站建设长春火车站停运了吗
  • wordpress仿站博客视频教程建筑模板哪种好
  • 手机配件网站模板雇主品牌建设
  • 列车营销网站怎么做网站 审批号
  • 嘉定公司网站设计游仙建设局官方网站
  • 青山做网站西安十大网站制作公司
  • 网站服务器租用一年多少钱啊seo优化检测
  • 北京网站建设联系电话长春市网络科技有限公司
  • 软件下载网站免费大全济宁医院网站建设
  • 龙岩到永定株洲网站推广优化
  • 个人网站建设研究意义朔州seo网站建设
  • 怎样进入网站的后台视频网站建设方案书
  • 家具网站开发报告北斗导航2022最新版手机版
  • 好看的食品网站app图片怎么制作
  • 杭州做外贸网站wordpress给用户发送邮件
  • 政务服务 网站 建设方案软件外包平台哪家好
  • 上海千途网站建设网站建设 中企动力长沙
  • 网站建设产品介绍烟台定制网站建设电话
  • 公司内部网站设计客户关系管理策略
  • 个人开发网站要多少钱梅州市城乡建设局网站
  • 外贸公司网站案例建设银行报考网站
  • 网站设计建设步骤做暖网站
  • dw如何做网站界面全网推广外包公司