更改Python源代码文件

cambio的Python项目详细描述


坎比奥

更改Python源代码文件

方法

  • 删除评论\
  • 删除\u导入
  • 声明变量
  • 替换_类
  • 替换_variable_声明
  • 删除“类”实例化“参数”
  • 将“参数”添加到“类”实例化
  • 删除“类”定义

使用

删除评论

fromcambioimportremove_commentswithopen("example.py")asf:text=f.read()text=remove_comments(text)withopen("example_without_comments.py","w")asf:f.write(text)
^{pr2}$

删除导入

fromcambioimportremove_importswithopen("example.py")asf:text=f.read()text=remove_imports(text)withopen("example_without_imports.py","w")asf:f.write(text)
cambio example.py remove-imports

声明变量

fromcambioimportdeclare_variablefromdjango.utils.cryptimportget_random_stringwithopen("settings.py")asf:text=f.read()text=declare_variable(text,"SECRET_KEY",get_random_string())withopen("settings.py","w")asf:f.write(text)
cambio settings.py declare-variable "SECRET_KEY""$(uuidgen)"

替换类

fromcambioimportreplace_classcode="my_fruit = Apple()"new_code=replace_class(code,"Apple","Orange")print(new_code)# my_smoothie = Orange()
cambio juicer.py replace-class "Apple""Orange"

声明变量替换

fromcambioimportreplace_variable_declarationcode="HTTP_ORIGIN = 'http://localhost:8000'"new_code=replace_variable_declaration('HTTP_ORIGIN','http://localhost:4200')print(new_code)# HTTP_ORIGIN = 'http://localhost:4200'
cambio settings.py replace-declaration 'HTTP_ORIGIN''http://localhost:4200'

删除类实例化参数

fromcambioimportremove_class_instantiation_parameterold_code="my_drink = Wine(age=100)"new_code=remove_class_instantiation_parameter(old_code,'Wine','age')print(new_code)# my_drink = Wine()
cambio settings.py

有条件地删除类实例化参数

fromcambioimportremove_class_instantiation_parameterold_code="bottle_1 = Wine(age=100)\nbottle_2 = Wine(age=1)"# removes all bottles under 10 years of agenew_code=remove_class_instantiation_parameter(old_code,'Wine','age',lambdaage:age<10)print(new_code)# bottle_1 = Wine(age=100)\n
cambio settings.py

向类实例化添加参数

fromcambioimportadd_param_to_class_instantiationold_code="[Food(type='Cereal')\n, Fruit(type='Cheese')]"defget_expiration(instantiation):text=instantiation['text']if'Cereal'intext:return10elif'Cheese'intext:return1# age cars by one yearadd_param_to_class_instantiation(old_code,"Fruit","expiration",get_expiration)

删除类定义

fromcambioimportremove_class_definitionold_code='''class OldCar():    a = 1    b = 2class NewCar():    a = 1    b = 2'''new_code=remove_class_definition(old_code,"OldCar")
cambio example.py remove-class-definition 'OldCar'

测试

测试包运行

python3 -m unittest cambio.tests.test

支持

请与库作者danielj.Dufour联系,或在https://github.com/danieljdufour/cambio/issues上发布一个问题

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束