小编Jor*_*ril的帖子

使用GTK查找给定MIME类型的文件图标

有没有办法使用GTK/pygtk找出用于给定MIME类型的图标?

我知道gio.File(filename).query_info("standard::icon").get_icon(),但我需要找到图标而不必阅读文件.

gtk pygtk mime-types

3
推荐指数
1
解决办法
1026
查看次数

如何使用Pyramid事务管理器处理异常?

我正在构建我的第一个金字塔应用程序(来自Pylons),我正在试图弄清楚如何使用pyramid_tm来处理异常...例如,在Pylons我会做类似的事情

try:
   Session.add(object)
   Session.commit()
except IntegrityError:
   Session.rollback()
   flash("Object already present")
Run Code Online (Sandbox Code Playgroud)

但这应该如何用pyramid_tm完成?

python transactions exception-handling pyramid

3
推荐指数
1
解决办法
1133
查看次数

使用Python创建多页TIFF

这已经在这里被问过了,但我一直在寻找一种适用于Linux的解决方案.. tiffcp是唯一的方法吗?

python linux tiff

2
推荐指数
1
解决办法
3045
查看次数

使用 SQLAlchemy 中的自定义逻辑自动递增属性

我有一个简单的“发票”类,其中包含一个“编号”属性,当用户保存发票时,应用程序必须为其分配该属性。有一些限制:

1) 应用程序是一个(瘦)客户端-服务器应用程序,所以无论分配数字,都必须注意冲突
2)发票也有一个“版本”属性,所以我不能使用简单的 DBMS 级别的自动递增字段

我正在尝试使用自定义类型来构建它,该类型会在每次保存发票时启动。每当 process_bind_param 使用 None 值调用时,它将调用某种单例来确定数量并避免冲突。这是一个体面的解决方案吗?无论如何,我遇到了问题..这是我的自定义类型:

class AutoIncrement(types.TypeDecorator):
   impl = types.Unicode

   def copy(self):
       return AutoIncrement()

   def process_bind_param(self, value, dialect):
       if not value:
           # Must find next autoincrement value
           value = "1" # Test value :)
       return value
Run Code Online (Sandbox Code Playgroud)

我现在的问题是,当我保存一个 Invoice 并且 AutoIncrement 将“1”设置为其编号的值时,Invoice 实例不会使用新编号更新。这是预期的吗?我错过了什么吗?非常感谢您的时间!

(Python 2.6 上的 SQLA 0.5.3,使用 postgreSQL 8.3)

编辑: Michael Bayer 告诉我这种行为是意料之中的,因为 TypeDecorators 不处理默认值。

python sqlalchemy auto-increment

1
推荐指数
1
解决办法
1642
查看次数

在Pyramid上记录执行时间

我正在尝试记录我的webapp用于回答每个请求的时间.
现在我有一个处理程序的元类,它包装每个动作并计算进入方法和退出之间的时间.这很好,除了记录的时间包括渲染模板所花费的时间......我怎么能这样做?

python pyramid

1
推荐指数
1
解决办法
376
查看次数

在Java中使用某种方法进入主方法

我用几种不同的方法编写了代码.我似乎无法找到正确的方法来获得我在main方法中的最后一个方法,因此它可以打印出正确的输出.

码:

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.println("Enter a number:");
    int num = in.nextInt();

  } // this is my main method
Run Code Online (Sandbox Code Playgroud)
public void results (int num) {
    for (int i = 1; i < num; i++) {
      System.out.print(space(num - i));
      System.out.println(method1(i));
    }
    for (int i = 0; i < num; i++) {
      System.out.println(method2(num-i));
      System.out.print(space(i));
    }
  } //this is the method that I want inside my main method
Run Code Online (Sandbox Code Playgroud)

我以为我可以简单地放入System.out.println(results(num));我的主要方法,但这不起作用.谁能解释我做错了什么并帮助我解决这个问题?

java methods

0
推荐指数
1
解决办法
59
查看次数