【问题标题】:"Analyse" the Python language to dissect a Scons build script?“分析” Python 语言以剖析 Scons 构建脚本?
【发布时间】:2012-03-25 12:14:13
【问题描述】:

我正在考虑尝试将 Scons (Python) 脚本转换为另一个构建系统,但想知道是否有可用的 Python 分析库来“询问”Scons/Python 脚本?

我[可能]追求的是类似于 Java 反射机制的东西,事实上,如果这可以通过说 Jython/Java,用 Java 编码,那对我作为一个 Java 开发人员来说是最好的(我没有真正的 Python 背景)。

我需要做的是为脚本中的某些命名类类型和方法提取变量分配值等,以便我可以将它们转换为我的新输出格式。

有什么想法吗?

谢谢

丰富

【问题讨论】:

  • 您的问题不清楚 - 请扩展“为某些命名的类类型和方法提取变量分配值等。”你想做什么?你能举个例子吗(比如说,一些示例代码和你想要的输出类型?)你要把它移到什么构建系统?

标签: java python reflection jython scons


【解决方案1】:

如果您当前的 scons 文件非常规则且一致,则使用标准文本编辑工具可能会更容易做一些“愚蠢”的事情。如果你想变得更聪明,你应该注意到 scons 本身就是一个 Python 程序,它会加载你的构建文件,这些文件也是 Python。因此,您可以制作自己的“特殊”版本的 scons,它实现了构建脚本使用的功能(添加程序、库等)。然后你可以在你的“假”scons 程序中运行你的构建脚本,并让你的函数以适合你的新构建系统的格式转储它们的参数。

换句话说,不要从完全分析 Python 语法的角度考虑问题——要意识到你实际上可以将构建脚本作为 Python 代码运行并劫持它们的行为。

说起来容易做起来难,我敢肯定。

【讨论】:

    【解决方案2】:

    我怀疑它是迁移 scons 的最佳工具,但 python 的 inspect 模块提供了一些反射功能。其余的,你可以简单地在活动的类和对象中戳:Python 有一些数据隐藏,但不强制访问限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2015-05-06
      • 2017-03-03
      • 2016-07-02
      • 2018-09-17
      • 1970-01-01
      相关资源
      最近更新 更多