make like程序,将python脚本读取为makefile。

Pymk的Python项目详细描述


简介:pymk是一个脚本,它提供了“makefile”所具有的sam功能,但“makefile”(mkfile.py)是一个python脚本。mkfile.py的代码是干净的,它可以做更多的事情(比如检查名为“migrations”的所有文件夹和子文件夹中的所有文件)。

在Apple文件中设置依赖关系是不灵活的。仅支持“如果文件为newear,
则重新生成”。pymk可以在它的依赖项中包含任何您想要的python代码。
如果您想使用网络检查某个东西,则可以使用event。


pymk将尝试搜索taks的列表,但什么也找不到。
::
$touch mkfile.py
$pymk
可用任务:

把这个放在mkfile.py

来自pymk.task import task


类任务(task):
dependencys=[]
def build(cls):
打印“hello”


现在我们可以执行

$pymk
可用任务:
task
$pymk task
*生成“task”
hello

如果您希望pymk在默认情况下运行某个任务,只需将这一行放在mkfile.py

设置{
“默认任务”:任务,
}



的末尾,然后运行


$pymk
*生成“任务”
hello

ok,但现在我们的任务每次生成时都在生成。我们需要在
脚本中创建一个文件,并指出要创建的文件。out mkfile.py应该看起来像
这个

来自pymk.task import task
来自pymk.extra import touch


类任务(task):
依赖项=[]


输出文件='a.out'

def build(cls):
touch(cls.output戋file)

设置={
“默认任务”:任务,
}

,然后执行:

$pymk
*生成“任务”
$pymk
*“任务”是最新的
$ls a.out


我们需要一些依赖。这是来自pymk的文件

。任务导入任务
来自pymk。依赖项导入文件已更改

类任务(任务):
输出文件='a.out'


依赖项=[
文件已更改('b.out'),
]

def build(cls):
fp=open(cls.output_file,'a')
写('bulded!\ n')
fp.close()

settings={
“默认任务”:task,
}

因此,我们将创建它并重试。

$touch b.out
$pymk
*生成“任务”
$ls
$a.out b.out mkfile.py mkfile.pyc
$pymk
*“任务”是最新的
$touch b.out
$pymk
*生成“任务”

,当b.out被更改时,将创建a.out。这种依赖性
是为外部程序(或程序员)可以更改的文件实现的。
如果我们需要任务依赖性,例如“如果任务更改,重新生成我”,我们可以从pymk生成类似于

的内容。任务导入任务

=[]

def build(cls):
fp=open(cls.output_file,'a')
fp.write('bulded!\ n')
fp.close()

def build(cls):
fp=打开(cls.output_文件'a')
fp.write('bulded!\ n')
fp.close()

settings={
“默认任务”:任务,
}


,new可以运行这个:
::
$rm*.out;如果在
$pymk
*构建“secon任务”
*构建“任务”
$pymk
*“任务”是最新的
$touch b.out
$pymk
*构建“任务”

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

推荐PyPI第三方库


热门话题
java实现双锁并发队列   java如何更改SpringWS 2.4.4版或更高版本中maxOccurs的默认限制?   java Selenium RC如何处理动态行?   java何时引入Javac StringBuilder/StringBuffer优化?   java mediaplayer在R.raw Android上失败   java JPA2:不区分大小写,就像在任何地方匹配一样   如何从JDK15中提取java预览类文件?   java与mySQL删除查询不一致   从Shutdownow()返回的java列表<Runnable>无法转换为提交的Runnable   java如何从回调接口获取对象值?   java如何获得视图的高度,在xml中可见性和高度定义为wrap_内容?   postgresql Mybatis在启动时遇到“由以下原因引起:java.net.UnknownHostException:localhost”,为什么?   带有实例调用的方法调用的java intellij格式化程序换行   由于特定的第三方库,java Proguard产生运行时错误   动画JAVA JPanel同时滑出和滑入