小编saf*_*fsd的帖子

如何在Python doctests中包含unicode字符串?

我正在研究一些必须操纵unicode字符串的代码.我正在尝试为它编写doctests,但我遇到了麻烦.以下是说明问题的最小示例:

# -*- coding: utf-8 -*-
def mylen(word):
  """
  >>> mylen(u"áéíóú")
  5
  """
  return len(word)

print mylen(u"áéíóú")
Run Code Online (Sandbox Code Playgroud)

首先,我们运行代码以查看预期的输出print mylen(u"áéíóú").

$ python mylen.py
5
Run Code Online (Sandbox Code Playgroud)

接下来,我们运行doctest来查看问题.

$ python -m
5
**********************************************************************
File "mylen.py", line 4, in mylen.mylen
Failed example:
    mylen(u"áéíóú")
Expected:
    5
Got:
    10
**********************************************************************
1 items had failures:
   1 of   1 in mylen.mylen
***Test Failed*** 1 failures.
Run Code Online (Sandbox Code Playgroud)

那我怎么测试mylen(u"áéíóú")评估为5?

python unicode doctest

19
推荐指数
2
解决办法
3732
查看次数

如何让scons调用外部脚本?

我正在尝试使用scons来构建一个乳胶文档.特别是,我想让scons调用一个python程序,该程序生成一个包含一个表\ input {}的文件到主文档中.我查看了scons文档,但我不清楚我需要做什么.

我希望实现的基本上是你用这个makefile得到的东西:

document.pdf:  table.tex
    pdflatex document.tex

table.tex:
    python table_generator.py
Run Code Online (Sandbox Code Playgroud)

我如何在scons中表达这一点?

python latex scons tex

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

如何在Python unittest框架中简明地实现多个类似的单元测试?

我正在为一系列函数实现单元测试,这些函数都共享多个不变量.例如,调用具有两个矩阵的函数产生已知形状的矩阵.

我想编写单元测试来测试该属性的整个函数系列,而不必为每个函数编写单独的测试用例(特别是因为稍后可能会添加更多函数).

一种方法是迭代这些函数的列表:

import unittest
import numpy

from somewhere import the_functions
from somewhere.else import TheClass

class Test_the_functions(unittest.TestCase):
  def setUp(self):
    self.matrix1 = numpy.ones((5,10))
    self.matrix2 = numpy.identity(5)

  def testOutputShape(unittest.TestCase):
     """Output of functions be of a certain shape"""
     for function in all_functions:
       output = function(self.matrix1, self.matrix2)
       fail_message = "%s produces output of the wrong shape" % str(function)
       self.assertEqual(self.matrix1.shape, output.shape, fail_message)

if __name__ == "__main__":
  unittest.main()
Run Code Online (Sandbox Code Playgroud)

我从Dive Into Python中得到了这个想法.在那里,它不是正在测试的函数列表,而是已知输入 - 输出对的列表.这种方法的问题在于,如果列表中的任何元素未通过测试,则后面的元素不会被测试.

我查看了子类化unittest.TestCase并以某种方式提供了作为参数测试的特定函数,但据我所知,这阻止我们使用unittest.main(),因为没有办法将参数传递给测试用例.

我还看了动态地将"testSomething"函数附加到测试用例,使用带有lamdba的setattr,但是测试用例没有识别它们.

我怎样才能重写这个,所以扩展测试列表仍然是微不足道的,同时仍然确保每个测试都运行?

python unit-testing

15
推荐指数
4
解决办法
5798
查看次数

我可以让vim尊重我的.gitignore文件吗?

我想知道是否有办法让vim读取.gitignore文件并使用它们来确定自动完成文件名时不显示的选项.

例如,在python中工作,我不希望看到提供编辑的.pyc文件.我认为vim有自己的机制,我想知道如何从.gitignore加载信息.

git vim gitignore

14
推荐指数
2
解决办法
4876
查看次数

激活/停用virtualenv时,我可以自动更改我的PYTHONPATH吗?

我希望在特定的virtualenv中有一个与平常不同的PYTHONPATH.如何自动设置?我意识到可以破解bin/activate文件,是否有更好/更标准的方法?

python virtualenv

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

如何用sed中的`pwd`结果替换令牌?

我正在尝试做这样的事情:

sed 's/#REPLACE-WITH-PATH/'`pwd`'/'
Run Code Online (Sandbox Code Playgroud)

不幸的是,我错了:

sed: -e expression #1, char 23: unknown option to `s'
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

unix sed

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

如何拆分git存储库?

我有一个包含几个模块的git存储库,每个模块都在自己的子文件夹中,我想将它们拆分成独立的存储库,理想情况下尽可能多地保留它们各自的历史记录.这样做有规范的方法吗?

完全重复

将(移动)子目录分离到单独的Git存储库中

git

11
推荐指数
0
解决办法
9620
查看次数

如何在CPython中实现string.find?

我想知道字符串上的'find'方法是用线性搜索实现的,还是python做了更复杂的事情.Python文档没有讨论实现细节,所以http://docs.python.org/library/stdtypes.html没有任何帮助.有人可以指点我相关的源代码吗?

python

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

如何设置sys.excepthook以在python中全局调用pdb?

来自Python文档:

sys.excepthook(type, value, traceback)

此函数打印出给定的回溯和异常sys.stderr.

当引发异常并且未被捕获时,解释器sys.excepthook使用三个参数调用,即异常类,异常实例和回溯对象.在交互式会话中,这发生在控制返回到提示之前; 在Python程序中,这发生在程序退出之前.可以通过为其分配另一个三参数函数来自定义这种顶级异常的处理sys.excepthook.

http://docs.python.org/library/sys.html

如何全局修改它以便默认操作始终是调用pdb?我可以更改配置文件吗?我不想包装我的代码来执行此操作.

python debugging configuration pdb

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

如何让GNU make删除隐式规则创建的中间目录?

GNU make通过最后调用自动删除隐式规则创建的中间文件rm filename.如果其中一个目标实际上是一个目录,这显然不起作用.请看以下示例:

.PHONY: all 

all: test.target

%.target: tempdir.% 
  touch $@

tempdir.%:
  mkdir -p $@
Run Code Online (Sandbox Code Playgroud)

make -n 揭示行动计划:

mkdir -p tempdir.test
touch test.target
rm tempdir.test
Run Code Online (Sandbox Code Playgroud)

是否有可能让GNU make正确处理中间目录?也许通过改变rmrm -rf

makefile gnu-make

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