小编Nir*_*Izr的帖子

解决元类冲突

我需要根据某些条件创建一个使用不同基类的类.有些课程让我臭名昭着:

TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
Run Code Online (Sandbox Code Playgroud)

一个例子是sqlite3,这是一个简单的例子,你甚至可以在解释器中使用:

>>> import sqlite3
>>> x = type('x', (sqlite3,), {})
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
Run Code Online (Sandbox Code Playgroud)

python metaclass multiple-inheritance python-3.x

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

为什么我需要用pyqtSlot来装饰连接的插槽?

我正在使用pyqt5,并且我使用类似于以下的代码连接了几个方法:

self.progress.canceled.connect(self.cancel)
Run Code Online (Sandbox Code Playgroud)

例如,在哪里self.cancel:

def cancel(self):
    self.timer.stop()
Run Code Online (Sandbox Code Playgroud)

此代码似乎在多个方案中干净利落地工作,而没有装饰cancelpyqtSlot或做什么特别的吧.

我的问题是:

  1. 通过这种方式我失去了什么?
  2. 需要什么原因pyqtSlot

python pyqt signals-slots pyqt5

10
推荐指数
2
解决办法
1883
查看次数

在恢复的集群的层次结构上使用精确调用度量

背景:我们是两个学生打算使用分层凝聚聚类算法撰写关于逆向工程名称空间的论文.我们有一些链接方法和其他调整到我们想要尝试的算法.我们将在流行的GitHub存储库上运行该算法,并将创建的集群与最初存在的名称空间进行比较.我们的工作将密切关注的作品这个文件.在论文中,作者提到使用"精确度回忆度量"来测量聚类算法的准确性.然而,更密切地关注度量及其来源,它似乎专注于扁平(非分层)集群.

问题: 有没有办法使用精确回忆度量来衡量恢复群集层次结构的准确性?如果没有,还有哪些其他选择?

cluster-analysis hierarchical-clustering precision-recall

9
推荐指数
0
解决办法
197
查看次数

在分析从Swift编译的二进制文件时,是否有可能找出没有符号的函数的Swift方法名?

我是新手拆解和逆向工程二进制文件,所以请原谅我这个问题是荒谬的还是不可能的.

过去当我尝试逆向工程macOS二进制文件时,分析用Objective-C编写的文件会产生很多有用的信息,因为通常所有的Objective-C类及其方法名都很容易检索,这使得它变得容易多了找出任何特定方法的作用.

我正在尝试分析用Swift编写的二进制文件(技术上是Swift和Objective-C的组合),现在大多数函数都没有符号.我可以像往常一样检索一些Objective-C方法,以及一些具有Swift风格的错位名称的函数,但几乎所有其他函数都没有符号.我知道很多都必须是Swift方法.

无论如何都要弄清楚这个二进制文件的Swift类是什么以及它们与Objective-C一样的相关方法?

使用像Hopper Disassembler这样的工具可以显示一些Swift类的名称(通常是符号_TtC4Something25SomethingElse),我可以得到它的实例变量名称及其偏移量的列表,但没有方法名称.

注意:有问题的二进制文件是x64 macOS二进制文件,而不是iOS二进制文件.

reverse-engineering objective-c disassembly swift

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

Django休息框架只创建序列化器字段

我有一个Django模型作为请求描述.创建它是为了由REST客户端发出请求,用于记录任务的当前状态,并记录客户端收到的历史请求.

此模型有一些字段用于微调和控制请求的任务(例如,目标对象和操作类型).显然,我希望客户端在对象创建时控制这些字段,但之后不能控制(一旦任务开始运行,就无法更改对象).

我希望有类似的东西serializers.ReadOnlyField,所以我可以有类似的东西:

class TaskSerializer(serializers.ModelSerializer):
    owner = serializers.ReadOnlyField(source='owner.username')
    task_id = serializers.ReadOnlyField()
    target_object = serializers.CreateOnlyField()
Run Code Online (Sandbox Code Playgroud)

但无法在文档或谷歌中找到它.

python django django-rest-framework

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

sklearn Pipeline和DataFrameMapper有什么区别?

Sklearn Pipeline:http://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html

DataFrameMapper:https://github.com/paulgb/sklearn-pandas

他们之间有什么区别?

在我看来,sklearn管道具有更多功能,但DataFrameMapper对我来说更加干净.

pipeline scikit-learn sklearn-pandas

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

在pytest中模拟模块导入

我正在编写pytest插件,该插件应测试旨在在一组特定环境中运行的软件。

我正在编写的软件在一个更大的框架中运行,这使某些Python模块仅在框架中运行我的Python软件时可用。

为了测试我的软件,我需要“模拟”或伪造整个模块(实际上是很多模块)。我需要以某种类似的方式实现其功能,但是我的问题是,如何使用py.test插件将该虚假的Python模块提供给我的软件代码?

例如,假设我的一个源文件中包含以下代码:

import fwlib

def fw_sum(a, b):
    return fwlib.sum(a, b)
Run Code Online (Sandbox Code Playgroud)

但是,该fwlib模块仅由运行软件的框架提供,并且无法在其中进行测试。

我如何从pytest插件中确保fwlib已在中定义名为的模块sys.modules?当然,我需要实现fwlib.sum自己。我正在寻找有关如何做到这一点的建议。

python pytest

6
推荐指数
2
解决办法
2686
查看次数

配置celery以等待后端服务启动

当启动芹菜时,它重试连接到我的rabbitmq代理,这使它有必要的加载时间.这很好,因为我使用的是docker,我无法保证服务启动的顺序以及确切的服务时间.

然而,在尝试连接到我设置为结果后端的本地mysql服务器时,芹菜不使用相同的怜悯度量并立即死亡,合理地抱怨它无法锁定mysqld套接字:

OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
Run Code Online (Sandbox Code Playgroud)

我想在放弃之前配置芹菜重试几次,这可能吗?

谢谢!

python celery

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

SQLAlchemy:避免根据正在更新的其他字段使用 `onupdate` 更新字段

我有一个名为 的表Host,它定义了两列有些相关 -mac_addressmanufacturer。该manufacturer字段是使用 mac 地址与其所有者(硬件制造公司)之间的公共映射确定的。

虽然manufacturer可能只是 ORM 类中的一个方法,但我希望能够根据它的值进行过滤。

我在实现一个onupdate函数时遇到的问题是,如果mac_address没有为更新提供字段,我需要能够保持制造商的值不变,据我所知,以前的mac_address值将无法通过get_current_parameters.

简单地说,我正在寻找一种方法来跳过从它的onupdate方法中更新字段。

python sqlalchemy

6
推荐指数
0
解决办法
266
查看次数

带有稀疏矩阵的 scipy cdist

我需要计算两组向量之间的距离,source_matrixtarget_matrix

source_matrixtarget_matrix都是类型时,我有以下行scipy.sparse.csr.csr_matrix

distances = sp.spatial.distance.cdist(source_matrix, target_matrix)
Run Code Online (Sandbox Code Playgroud)

我最终得到以下部分异常回溯:

 File "/usr/local/lib/python2.7/site-packages/scipy/spatial/distance.py", line 2060, in cdist
    [XA] = _copy_arrays_if_base_present([_convert_to_double(XA)])
  File "/usr/local/lib/python2.7/site-packages/scipy/spatial/distance.py", line 146, in _convert_to_double
    X = X.astype(np.double)
ValueError: setting an array element with a sequence.
Run Code Online (Sandbox Code Playgroud)

这似乎表明稀疏矩阵被视为密集的 numpy 矩阵,这既失败又错过了使用稀疏矩阵的意义。

有什么建议吗?

python numpy scipy

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