小编Hel*_*hne的帖子

如何有效地使用Agda的自动验证搜索?

在编写校样时,我注意到Agda的自动校对搜索经常找不到对我来说显而易见的解决方案.不幸的是,提出一个小例子,说明问题似乎很难,所以我试着描述最常见的模式.

  • 我忘了添加-m到孔中以使Agda查看模块范围.我可以将该标志设为默认值吗?会有什么缺点?
  • 通常,当前的孔可以通过我即将实现的函数的参数来填充.即使在添加时-m,Agda也不会考虑在letwhere子句中引入的函数参数或符号.简单地尝试所有这些都有问题吗?
  • 查看目标时,甚至不显示在letwhere子句中引入的符号.为什么?

使用auto更有效的其他习惯是什么?

agda

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

如何在Python 2.x和3.x中使用doctest测试异常?

SpamException在模块中定义了一个异常类spam.现在我想测试一个spam_function引发此异常的函数.所以我写了下面的doctest.

>>> spam_function()
Traceback (most recent call last):
    ....
SpamException
Run Code Online (Sandbox Code Playgroud)

测试在Python 2.x上成功,但在Python 3.x上测试失败.以下测试适用于Python 3.x.

>>> spam_function()
Traceback (most recent call last):
    ....
spam.SpamException
Run Code Online (Sandbox Code Playgroud)

这里的显着区别是在异常名称中包含模块名称.那么如何编写适用于Python 2.x和3.x的doctest?

python doctest exception python-2.x python-3.x

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

如何在configobj值中转义%符号?

我想对configobj配置文件的值使用解析时间和运行时插值.在Python中进行简单字符串插值的最简单方法是"%(foo)s" % somedict.不幸的是,configobj使用相同的插值机制,我还没有找到逃脱它的方法.理想情况下,我的价值看起来像:

othervar = foo
someconfigobjkey = %(othervar)s %%(runtimevar)s
Run Code Online (Sandbox Code Playgroud)

然而,configobj尝试(并失败)替换第二个变量.回答这个问题的另一种方法是提供一种不同的(configobj)方法来同时进行解析时间和运行时插值.

python interpolation escaping

12
推荐指数
2
解决办法
7253
查看次数

AttributeError:'_ MainProcess'对象没有属性'_exiting'

我有一个

AttributeError: '_MainProcess' object has no attribute '_exiting'
Run Code Online (Sandbox Code Playgroud)

来自Python应用程序.不幸的是,这段代码必须运行Python 2.5,因此processing现在称为模块multiprocessing.我正在做的是从主进程创建一个Process带有a Queue和到put队列中的项目.查看processing.queue代码,我可以看到启动了一个支线线程.然后currentProcess()._exiting,该馈线线程将进行检查,但是在模块中可以看到,currentProcess()评估为_MainProcess没有所述属性的线程processing.process.怎么解决这个?这是一个错误processing吗?如果是的话,我可以简单地使用它进行monkeypatch currentProcess()._exiting = False吗?

最小的例子:

#!/usr/bin/python

import processing
import processing.queue

class Worker(processing.Process):
    def __init__(self):
        processing.Process.__init__(self)
        self.queue = processing.queue.Queue()

    def run(self):
        element = self.queue.get()
        print element

if __name__ == '__main__':
    w = Worker()
    w.start()
    # To trigger the problem, any non-pickleable object is to be passed here.
    w.queue.put(lambda x: …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing python-2.5

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

如何腌制一个scapy包?

我需要腌制一个scapy包.大部分时间都可以使用,但有时候pickler会抱怨一个函数对象.根据经验:ARP数据包泡菜很好.一些UDP数据包存在问题.

python pickle scapy

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

如何使用Python读取文件功能?

在Linux系统上,可以比使用文件功能添加setuid位更有选择性地授予root权限.详情capabilities(7)请见.这些是文件的属性,可以使用该getcap程序读取.如何在Python中检索这些属性?

即使getcap使用例如subprocess用于回答这样的问题来运行程序也是可能的,但是在检索非常多的能力时是不可取的.

应该可以使用设计解决方案ctypes.是否有替代方法或甚至图书馆促进这项任务?

python linux linux-capabilities

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

使用doctests,coverage和parallelism进行Python测试发现

......还有一匹小马!不,真的.我正在寻找一种方法来组织"正常工作"的测试.大多数事情都有效,但并非所有部分都适合.所以这就是我想要的:

  • 自动发现测试.这包括doctests.请注意,doctests的总和不得显示为单个测试.(即不是py.test --doctest-modules所做的)
  • 能够并行运行测试.(像xdist中的py.test -n之类的东西)
  • 生成覆盖率报告.
  • 做好python setup.py test工作.

我目前的方法涉及tests目录和load_tests协议.包含的所有文件都命名为test_*.py.python -m unittest discover如果我test_doctests.py使用以下内容创建文件,这只会起作用.

import doctest
import mymodule1, mymodule2
def load_tests(loader, tests, ignore):
    tests.addTests(doctest.DocTestSuite(mymodule1))
    tests.addTests(doctest.DocTestSuite(mymodule2))
    return tests
Run Code Online (Sandbox Code Playgroud)

这种方法也有可以使用setuptools和供应的好处setup(test_suite="unittest2.collector").

然而,这种方法存在一些问题.

  • coverage.py希望运行一个脚本.所以我不能在这里使用unittest2发现.
  • py.test不运行load_tests函数,因此它找不到doctests而且--doctest-modules选项是crap.
  • nosetests运行load_tests函数,但不提供任何参数.这看起来完全打破了鼻子的一面.

如何让事情比这更好或解决上面的一些问题?

python unit-testing discovery python-coverage

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

如何使用 python 的 distutils 安装脚本到 sbin?

通常在大多数 Unix 系统上,$PREFIX/bin和之间有区别$PREFIX/sbin。当安装一个软件时,管理员决定什么$PREFIX是,但作者决定哪些程序适合普通用户,哪些不适合。使用 Python可以定义distutils一组scripts并将它们安装到$PREFIX/bin. 那么如何将脚本安装到对应的sbin目录下呢?

请注意,在这种情况下,欢迎仅针对 Linux 的解决方案,因为相关软件的其他部分依赖于 iptables。

python installation distutils

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

Agda中的条件编译

如何针对标准库的多个版本编写Agda代码?

例如Data.Maybe.IsJust,重命名为Data.Maybe.Is-just.同样地Data.Fin.Props转向Data.Fin.Properties.遗憾的是,投入很少的工作来保持向后兼容性,因此即使针对相邻版本也很难实现.像运行cpp作为预处理器这样的常规选项是不方便的,因为它们打破了emacs agda2-mode.

conditional-compilation agda

5
推荐指数
0
解决办法
95
查看次数

sqlalchemy:如何使 sqlite 事务立即进行?

sqlite 事务可以是“延迟”、“立即”或“独占”。默认值为“延迟”,这意味着除非绝对必要,否则不会启动事务。如果并发事务从读取开始然后继续写入,这可能会导致事务中止。可以通过使用立即事务来避免此类中止(以降低性能为代价)。

sqlalchemy 抽象了包括 sqlite 在内的 sql 方言。它还有一个编写交易的模型:

with engine.begin() as connection:
    do_something_with_connection
Run Code Online (Sandbox Code Playgroud)

如何告诉 sqlalchemy 这样的事务应该立即进行。或者,如何告诉 sqlalchemy 所有 sqlite 事务都应该是立即的?

sqlite sqlalchemy

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