更改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上发布一个问题
- 项目
标签: