小编jkp*_*jkp的帖子

我该如何对线程代码进行单元测试?

到目前为止,我已经避免了测试多线程代码的噩梦,因为它看起来像是一个雷区太多了.我想问一下人们如何测试依赖线程成功执行的代码,或者人们如何测试那些只在两个线程以给定方式交互时出现的问题?

对于今天的程序员来说,这似乎是一个非常关键的问题,将我们的知识集中在这个imho上是有用的.

multithreading unit-testing

673
推荐指数
16
解决办法
15万
查看次数

如何确定我的python shell是否在OS X上以32位或64位模式执行?

我需要一种方法来告诉shell在shell中的模式.

我试过看平台模块,但它似乎只是告诉你"关于位体系结构和用于可执行文件的链接格式":二进制编译为64位虽然(我在OS X 10.6上运行)所以它似乎总是报告64位,即使我使用这里描述的方法强制32位模式).

python macos

386
推荐指数
15
解决办法
30万
查看次数

在Python字符串中解码HTML实体?

我正在使用Beautiful Soup 3解析一些HTML,但它包含HTML实体,Beautiful Soup 3不会自动为我解码:

>>> from BeautifulSoup import BeautifulSoup

>>> soup = BeautifulSoup("<p>&pound;682m</p>")
>>> text = soup.find("p").string

>>> print text
&pound;682m
Run Code Online (Sandbox Code Playgroud)

我怎样才能解码HTML实体中text获得"£682m",而不是"&pound;682m".

html python html-entities

239
推荐指数
4
解决办法
20万
查看次数

一个干净,轻量级的替代Python的扭曲?

很久以前我写了一个我多线程的网络蜘蛛,以便同时发生并发请求.那是在我的Python青年时代,在我知道GIL及其为多线程代码创建的相关问题之前的几天(IE,大多数时候东西最终都被序列化了!)......

我想重做这段代码,使其更强大,性能更好.我基本上有两种方法可以做到这一点:我可以在2.6+中使用新的多处理模块,或者我可以选择某种类型的基于反应器/事件的模型.我宁愿做后者,因为它更简单,更不容易出错.

所以问题涉及哪种框架最适合我的需求.以下是我目前了解的选项列表:

  • Twisted:Python反应器框架的祖父:看起来很复杂而且有点臃肿.小任务的陡峭学习曲线.
  • Eventlet:来自lindenlab的人.基于Greenlet的框架,适用于这些类型的任务.我看了一下代码,但它并不太漂亮:非pep8兼容,分散打印(人们为什么要在框架中执行此操作!?),API似乎有些不一致.
  • PyEv:不成熟,现在似乎没有人使用它虽然它基于libevent所以它有一个坚实的后端.
  • asyncore:来自stdlib:über低级别,看起来很多涉及到的事情只是为了得到一些实际的东西.
  • 龙卷风:虽然这是面向服务器的产品,旨在服务于动态网站,但它确实具有异步HTTP客户端和简单的ioloop.看起来它可以完成工作但不是它的目的.[编辑:不幸在Windows上运行,这对我来说很重要 - 这是我支持这个蹩脚平台的要求]

我有什么遗漏吗?当然必须有一个适合简化的异步网络库的最佳点的库!

[编辑:非常感谢intgr指向此页面的指针.如果你滚动到底部,你会看到有一个非常好的项目列表,旨在以某种方式解决这个任务.事实上,自Twisted开始以来事情确实已经发生了变化:人们现在似乎更倾向于基于协同例程的解决方案而不是传统的反应堆/回调导向解决方案.这种方法的好处是更清晰,更直接的代码:我在过去肯定发现过,特别是在C++中使用boost.asio时,基于回调的代码可能会导致难以理解的设计并且相对模糊不清未经训练的眼睛.使用协同例程允许您编写至少看起来更加同步的代码.我想我现在的任务是找出我喜欢的这些库中的哪一个,并试一试!很高兴我现在问...]

[编辑:也许对任何跟随或偶然发现这个问题或者在任何意义上关心这个话题的人都感兴趣:我发现了一个非常好的关于这个工作的可用工具的当前状态的文章]

python networking asynchronous twisted

219
推荐指数
10
解决办法
6万
查看次数

如何从Eclipse项目中排除某些文件夹?

我正在为我们现有的代码库添加一个eclipse项目,我想知道是否有办法将某些目录排除在eclipse之外?原因是我们的存储库中有一个巨大的"第三方"目录,它不能出现在我们用来有效同步的配对编程插件的项目中.

有线索吗?

eclipse project

85
推荐指数
3
解决办法
6万
查看次数

记录**kwargs参数的正确方法是什么?

我正在使用sphinx和autodoc插件为我的Python模块生成API文档.虽然我可以看到如何很好地记录特定参数,但我找不到如何记录**kwargs参数的示例.

有没有人有一个明确的方法来记录这些?

python documentation python-sphinx

80
推荐指数
8
解决办法
3万
查看次数

在鼻子下测试Python代码时,我应该如何验证日志消息?

我正在尝试编写一个简单的单元测试,它将验证在某种情况下,我的应用程序中的类将通过标准日志记录API记录错误.我无法弄清楚测试这种情况最干净的方法是什么.

我知道鼻子已经通过它的日志插件捕获日志记录输出,但这似乎是作为失败测试的报告和调试帮助.

我能看到的两种方法是:

  • 模拟记录模块,以零散的方式(mymodule.logging = mockloggingmodule)或使用适当的模拟库.
  • 编写或使用现有的鼻插件来捕获输出并进行验证.

如果我采用前一种方法,我想知道将模拟出日志模块之前将全局状态重置为最简洁的方法.

期待您的提示和技巧......

python unit-testing mocking nose

57
推荐指数
6
解决办法
3万
查看次数

如何在不必包含主机环境的site-packages文件夹的情况下将pywin32与virtualenv一起使用?

我正在使用Python 2.6下的PyInstaller,这只是部分支持,因为MS使用他们的清单nonense创建了混乱,现在影响Python,因为它现在是MSVC8编译的.

问题是清单嵌入支持依赖于pywin32扩展来构建这是一个痛苦,因为我在创建virtualenv时没有包含主机的site-packages文件夹(有点打败构建环境中的点)我找不到方法安装所需的扩展,以便PyInstaller可以访问它们.

有没有人找到解决这个问题的方法?

python winapi virtualenv pyinstaller

52
推荐指数
3
解决办法
2万
查看次数

有没有人知道遵循HATEOAS原则的RESTful客户端的示例?

所以到现在为止我已经明白我们都应该实现我们的RESTful服务,提供表示,使客户能够遵循HATEOAS原则.虽然理论上这一切都很有道理,但我一直在网上搜索一些严格遵循这个想法的客户端代码的好例子.

我读的越多,我就越开始觉得这是一次学术讨论,因为没有人真正这样做!人们可以呻吟所有他们喜欢的WS-*堆栈的许多缺陷但至少很清楚如何编写客户端:你可以解析WSDL并生成代码.

现在我明白这对于一个好的RESTful服务来说不是必需的:你应该只需要知道所涉及的关系和表示,你应该能够动态地对这些做出反应.但即使如此,现在这个原则是不是应该被提炼出来并抽象成一些常见的库?提供有关您可能收到的表示和关系的信息,并获得可在您的应用程序中使用的更有用的更高级代码?

这些只是我的半生不熟的想法,但我只是担心如果我现在潜入并编写一个正确的RESTful API,实际上没有人能够使用它!或者至少使用它会在背后造成这样的痛苦,因为人们将不得不编写胶水代码来解释我提供的关系和表示.

任何人都可以从客户的角度阐明这一点吗?有人可以展示一个正确的动态/反应式RESTful客户端代码示例,这样我就可以了解我实际上正在为之写作的受众吗?(更好的是提供一些抽象的客户端API的一个例子)否则它的所有理论......

[编辑:请注意,我在这里发现了一个类似的问题,我认为这个问题没有得到回答,作者被一个维基百科的存根所取代!]

rest client web-services hateoas

45
推荐指数
2
解决办法
5994
查看次数

使用Python从字符串中提取URL的最简洁方法是什么?

虽然我知道我可以使用一些巨大的正则表达式,例如发布在这里的那个,但我想知道是否有一些调整,如果使用标准模块或者某些第三方附加组件这么做的话?

简单的问题,但没有任何东西在Google(或Stackoverflow)上跳出来.

期待看到你们是怎么做到的!

python regex url

23
推荐指数
6
解决办法
4万
查看次数