小编cir*_*cus的帖子

Python SOAP客户端 - 使用SUDS还是其他什么?

我目前正在研究实现一个将使用现有广泛的SOAP管理API的客户端.

我研究了不同的SOAP实现,如pysimplesoapSUDS.虽然第一个因为递归太多而解析WSDL时遇到问题,但是suds工作得很好(但很慢)而且我真的很喜欢模块.

但是,SUDS似乎存在一些问题,例如高内存消耗,WSDL解析速度以及缺少对某些WSDL属性的支持(例如,选择属性).
虽然有很多人积极提交错误报告和补丁,但自2010-09-15以来没有发布过SUDS.此外,维基和路线图看起来有点被忽视.

对我来说,看起来SUDS已不再维护.

所以我的问题在这里:

  1. 作为肥皂客户,将更大的项目作为suds是否有意义?
  2. 是否有一个suds fork已经实现了票务系统中可用的一些补丁?
  3. 有哪些替代方案,内存占用少,易于使用,可以处理复杂的大型WSDL文件

[2013年11月更新]

两年多过去了,事实证明原来的肥皂水泥项目真的已经死了.自2010年以来,没有进一步的版本.由于这一事实,很多人开始分支suds,而像Debian这样的发行版正在部署原始suds包的修补版本来修复一些问题.

我可以推荐Jurko积极维护的叉子,我成功使用了它.它支持python 3并解决了很多泡沫已知的问题.Bitbucket上提供了发行说明和错误跟踪器,PyPI上也提供了该程序包,因此可以使用pip进行安装.

python soap suds

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

从dict中删除项目的最佳方法

在Python中,至少有两种方法可以使用键从dict中删除项目.

d = {"keyA": 123, "keyB": 456, "keyC": 789}

#remove via pop
d.pop("keyA")

#remove via del
del d["keyB"]
Run Code Online (Sandbox Code Playgroud)

这两种方法都会从dict中删除该项.

我想知道我应该使用哪些方法以及为什么.还有,哪个更pythonic?

python

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

git 描述没有返回预期的标签

我正在尝试,git describe因为我们想在我们的 CI 系统中使用它。但是,我没有得到预期的结果,并且 git 描述文档和谷歌搜索都没有帮助我理解原因。

存储库

git log --oneline --graph

* 9a45651 (HEAD -> main) m c7
*   b7982a9 merged r3
|\  
| * 8c2adbe (tag: v3.0.0) r3 c1
|/  
* 273a50e m c6
*   6014487 merged r2
|\  
| * aa906b8 (tag: v2.0.0) r2 c2
| * 716c189 r2 c1
|/  
* f0e2c71 m c5
* d42bc37 m c4
*   9060516 merged r1
|\  
| * 619d331 (tag: v1.0.0) r1 c2
| * 75f90de r1 c1 …
Run Code Online (Sandbox Code Playgroud)

git

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

如何在没有pywin32的情况下使用python确定Windows上的文件所有者

我正在编写一个脚本,需要确定Windows上文件所有者的用户名.

虽然我找到了使用pywin32的解决方案,但我对使用它犹豫不决,因为我不想添加模块依赖.

该脚本将为python 2.6编写,并且必须在32位和64位平台上运行.

我想知道是否有不同的方法,可能有ctypes,来确定这些信息

python windows

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

如何使用基于Django类的UpdateViews与FileFields

我有一个包含FileField等的简单模型.当我使用基于类的UpdateView时可以修改模型的所有字段,并且在提交时将更改保存到数据库.唯一的例外是FileField,它显示为表单的一部分,我可以选择我存档我要上传没有保存.

问题:如何在基于类的UpdateView中使用FileFields,是否需要特定的代码来处理这些字段?

python django django-views

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

py.test在自定义函数中使用monkeypatch

我使用py.test并且非常喜欢将对象注入测试函数的funcarg方法.在我的测试中,我需要使用Mock对象,因为我有很多外部依赖项.我使用monkeypatch用mock对象替换某些属性.

我遇到的问题是,我经常会得到一堆测试,这些测试将使用某个funcarg并且总是需要修补相同的属性.到目前为止,我替换了每个测试函数中的属性.

有没有办法在我的funcarg函数中使用monkeypatch,并从单个测试中删除这个重复的代码?

import sys
import pytest
from mock import Mock


#----------------------------------------------------------------------
def pytest_funcarg__api(request):
    """"""
    api = myclass()
    #do some initialisation...
    return api


#----------------------------------------------------------------------
def test_bla1(monkeypatch, api):
    """"""
    monkeypatch.setattr(api,"get_external_stuff",Mock())
    monkeypatch.setattr(api,"morestuff",Mock())

    api.do_something1()
    assert not api.a

#----------------------------------------------------------------------
def test_bla2(monkeypatch, api):
    """"""
    monkeypatch.setattr(api,"get_external_stuff",Mock())
    monkeypatch.setattr(api,"morestuff",Mock())

    api.do_something2()
    assert api.b


if __name__=='__main__':
    pytest.main(args=["-v",sys.argv[0]])
Run Code Online (Sandbox Code Playgroud)

python unit-testing pytest

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

标签 统计

python ×5

django ×1

django-views ×1

git ×1

pytest ×1

soap ×1

suds ×1

unit-testing ×1

windows ×1