小编Dan*_*ell的帖子

使用 @pytest.fixture(scope="module") 和 @pytest.mark.asyncio

我认为下面的例子是一个非常常见的用例:

  1. 创建与数据库的连接一次
  2. 传递此连接以测试哪些插入数据
  3. 将连接传递给验证数据的测试。

改变@pytest.fixture(scope="module")原因的范围ScopeMismatch: You tried to access the 'function' scoped fixture 'event_loop' with a 'module' scoped request object, involved factories

此外,test_inserttest_find协程不需要 event_loop 参数,因为可以通过传递连接来访问循环。

任何想法如何解决这两个问题?

import pytest

@pytest.fixture(scope="function")  # <-- want this to be scope="module"; run once!
@pytest.mark.asyncio
async def connection(event_loop):
    """ Expensive function; want to do in the module scope. Only this function needs `event_loop`!
    """
    conn await = make_connection(event_loop)
    return conn


@pytest.mark.dependency()
@pytest.mark.asyncio
async def test_insert(connection, event_loop): …
Run Code Online (Sandbox Code Playgroud)

python pytest python-asyncio pytest-asyncio

7
推荐指数
2
解决办法
2519
查看次数

Python过滤列表只留下出现一次的对象

我想过滤这个清单,

l = [0,1,1,2,2]

只离开,

[0].

我正在努力以'pythonic'方式做到这一点:o)没有嵌套循环可能吗?

python list filter

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

这是NSOpenPanel的一个错误,它导致界面挂起约1秒钟?

背景

-beginWithCompletionHandler:在使用点击打开按钮后,调用NSOpenPanel会导致用户界面大约一秒钟.

打印两条消息错误消息,

*警告:类NSWindow中的方法userSpaceScaleFactor在10.7及更高版本中已弃用.它不应该用在新的应用程序中.请改用convertRectToBacking:

和,

WindowServer [90]:CGXDisableUpdate:应用程序"OpenPanelTest"强制禁用UI更新超过1.00秒.服务器已重新启用它们.

解决方案似乎是运行一个模态窗口(虽然这实际上不是一般解决方案!)-beginSheetModalForWindow: completionHandler:,警告'userSpaceScaleFactor ...'仍然打印,用户界面不再挂起.

我的问题

这是一个错误,还是我做错了或者Xcode设置错误?我没有启用沙盒功能,也没有激活代码签名.这在纯应用程序和基于文档的应用程序中的行为相同.你会建议我提交给Apple吗?几乎在每个应用程序中都使用了Open Panels,我觉得奇怪的是Google几乎没有发现任何内容.

更新

示例代码可在github上获得,https://github.com/danieljfarrell/AppTest-NSOpenPanel

cocoa nsopenpanel

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

NSSplitView只使用自动布局在窗口调整大小上展开一个面板?

是否可以使用Xcode提供的自动布局选项实现以下目的?例如,通过更改拥抱或压缩设置.

使用自动布局仅扩展NSSplitView的一个面板

实现此调整大小行为的推荐方法是什么?

macos xcode cocoa nssplitview

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

在发布Cocoapod时包含图像资产

我已经制作了一个自定义的Cocoa控件,想要发布它并写一个podspec.

我的控件包含一个图像.如何打包此图像,以便当其他人安装我的pod时,我的代码可以找到图像?

目前,图像包含在示例应用程序Images.xcassets文件中并使用加载[NSImage imageNamed:...].但是,当其他人来安装我的pod时,他们不会想要示例项目:他们只需要类和图像.

xcode cocoa nsbundle cocoapods

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

查找Snow Leopard中的所有PPC库,二进制文件和应用程序

您是否有任何关于如何编写脚本的指针,该脚本将在我的系统中搜索应用程序,库(即/ usr/local/lib和/ usr/local)以及仅作为PPC的二进制文件?

我将系统从PPC Mac升级到运行Leopard 10.5的Intel Mac.然后我升级到Snow Leopard 10.6,它没有Rosetta.所以我现在才意识到系统上剩下的所有旧PPC内容!

macos osx-snow-leopard

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

如何使用加速框架执行矩阵逆运算?

我想找到矩阵的逆.

我知道这涉及到第一次LU分解然后是反转步骤但是我找不到所需的功能,通过搜索苹果的10.7文档!

这似乎是使用CBLAS/LAPACK在C中有用的后对称矩阵求逆,指出应该使用sgetrf_sgetri_函数.但是在搜索这些术语时,我在Xcode文档中找不到任何内容.

有没有人有这种矩阵运算的锅炉板代码?

matrix-inverse lapack accelerate-framework osx-lion

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

如何在NSTableView中只允许*之间的*行?

我有一个基于视图的NSTableView,它接受从finder中删除的图像.我希望能够在指定的放置位置插入新图像(左下方示例)并防止行本身掉落(下面的右侧示例).

我看了一个委托方法和NSTableView属性和方法,但看不到防止drop-on-rows的方法.有任何想法吗?

屏幕截图显示了行间(左)和行上行(右)行为.

:光标尚未在屏幕截图中呈现.在左侧示例中,我拖动一个名为Pic_3.png的文件,NSTableView通过在插入新图像的位置绘制一条线来响应.在右边的示例中,我继续拖动并将其放置在表视图中的现有行上.我没有任何意义,插入现有的项目,所以我想阻止这种行为.

cocoa nstableview appkit swift

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

在圆形NSView的顶部绘制弯曲的高光色调,类似于Quartz Composer UI

我一直在玩一个自定义视图,看起来像Quartz composer中的补丁对象.我的假Quartz Composer视图看起来不错.它是一个单独的视图,顶部有2个不同的线性渐变,阴影和单个高光线,

假石英作曲家UI.

我想扩展这个有圆角.这对于渐变等非常简单,但是,我不确定如何沿着视图的顶部绘制弯曲的高光.例如,请参阅真正的Quartz Composer UI,

真正的Quartz Composer UI.

我一直在尝试使用基于的方法CGContextReplacePathWithStrokedPath().我的目标是绘制弯曲路径(顶部突出显示),将路径转换为"描边路径",然后使用渐变填充结果路径.但是,当我尝试这种方法时,这种方法(至少我的代码)实际上并没有绘制任何东西.

一些示例代码显示方法.请注意,该CGPathCallback函数来自NSBezierPath + MCAdditions(我找不到代码的原始作者,但是如果你在很多地方搜索它就会出现).

- (void)drawRect:(NSRect)dirtyRect
{
    /* Make any line you like */
    CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];
    CGMutablePathRef centerline = CGPathCreateMutable();
    CGContextSetLineWidth(context, 10.);
    CGPathMoveToPoint(centerline, NULL, NSMinX(dirtyRect), NSMidY(dirtyRect));
    CGPathAddLineToPoint(centerline, NULL, NSMaxX(dirtyRect), NSMidY(dirtyRect));
    CGContextAddPath(context, centerline);

    /* Make a line "fill-able" */
    CGContextReplacePathWithStrokedPath(context);

    /* Clip to this line (maybe not required?)*/
    CGContextClip(context);

    /* Convert to a NSBezierPath */
    NSBezierPath *centrePath = [NSBezierPath bezierPath];
    CGPathApply(centerline, …
Run Code Online (Sandbox Code Playgroud)

cocoa core-graphics quartz-graphics nsview

3
推荐指数
1
解决办法
1133
查看次数

制作一个 CoreImage 过滤器比对所有行像素求和,类似于 CIRowAverage?

我目前正在 CPU 上运行代码,该代码对灰度NSImage 的列和行进行求和(即只有 1 个 samplePerPixel)。我想我会尝试将代码移动到 GPU(如果可能)。我发现了一个 CoreImage 过滤器CIRowAverageCIColumnAverage,它们看起来很相似。

在关于编写自定义核心图像过滤器的 Apple Docs 中,他们指出,

请记住,您的代码无法逐个像素地积累知识。编写代码时的一个好策略是将尽可能多的不变计算从实际内核中移出,并将其放置在过滤器的 Objective-C 部分中。

这暗示可能无法使用滤波器内核对像素求和。如果是这样,上述函数如何设法获得一个区域的平均值?

所以我的问题是,实现对图像的行或列求和以获得像素总值的最佳方法是什么。我应该坚持使用CPU吗?

cocoa core-image cifilter

2
推荐指数
1
解决办法
1380
查看次数

ipython笔记本有%%乳胶魔法细胞吗?

我试图呈现在IPython的笔记本来复杂的数学横跨在来到这个答案,这IPython的笔记本展示了丰富的显示系统(向下滚动至底部是最后一个例子),其中都提到一个的可用性%%latex细胞.但是,在尝试制作乳胶细胞时出现以下错误,

错误:%%latex未找到单元魔术功能.

我正在运行0.13.2版,我遗失了什么?我需要以某种方式导入这个神奇的功能吗?

latex ipython-notebook

2
推荐指数
1
解决办法
1793
查看次数

NSPopUpButton在工具栏中,具有类似于Pages.app UI的固定图像

Pages(Numbers,Keynote)中的工具栏具有带有固定图像的NSPopUpButton(与所选菜单无关).使用视图调试,结果证明这是具有固定图像的标准NSPopUpButton.

根据NSPopUpButton文档setImage:,

这种方法没有效果. 弹出按钮单元格中显示的图像是从所选菜单项(在弹出菜单的情况下)或从第一个菜单项(在下拉菜单的情况下)中获取的.

这意味着此标准NSPopUpButton具有非标准行为.

怎么能实现呢?因为setImage:没有效果,NSPopUpButtonCell的子类和覆盖-drawImage:withFrame:inView:没有效果(因为它永远不会被调用).

工具栏中的NSPopUpButton

macos cocoa objective-c nspopupbutton

2
推荐指数
1
解决办法
617
查看次数