小编Mar*_*kov的帖子

如何使用外部夹具跳过pytest?

背景

我运行py.test夹具conftest文件.你可以看到下面的代码(一切正常):

example_test.py

import pytest

@pytest.fixture
def platform():
    return "ios"

@pytest.mark.skipif("platform == 'ios'")
def test_ios(platform):
    if platform != 'ios':
        raise Exception('not ios')

def test_android_external(platform_external):
    if platform_external != 'android':
        raise Exception('not android')
Run Code Online (Sandbox Code Playgroud)

conftest.py

import pytest

@pytest.fixture
def platform_external():
    return "android"
Run Code Online (Sandbox Code Playgroud)

问题

现在我希望能够跳过一些不适用于我当前测试运行的测试.在我的例子中,我正在为iOSAndroid运行测试(这仅用于演示目的,可以是任何其他表达式).

不幸的是,我无法在声明中得到(我的外部定义夹具).当我运行下面的代码时,我收到以下异常:.我不知道这是否是py.test错误,因为本地定义的灯具正在工作.platform_externalskipifNameError: name 'platform_external' is not defined

example_test.py的附加组件

@pytest.mark.skipif("platform_external == 'android'")
def test_android(platform_external):
    """This test will fail as …
Run Code Online (Sandbox Code Playgroud)

python decorator pytest python-decorators

18
推荐指数
3
解决办法
8067
查看次数

如何在swift中获取当前屏幕上所有窗口的列表?

如何在swift中获取当前屏幕上所有窗口的列表?(所有例子都在前面import Cocoa)

objective-c中,我可以成功运行以下代码:

CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
Run Code Online (Sandbox Code Playgroud)

但是当我在swift中运行等价物时(使用游乐场进行测试):

let windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kcGNullWindowID)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,告诉我我有一个Use of unresolved identifier 'kcGNullWindowID'.

石英文档的帮助下玩了一段时间后我得到了:

let windowList = CGWindowListCopyWindowInfo(CGWindowListOption(kCGWindowListOptionOnScreenOnly), CGWindowListOption(0))
Run Code Online (Sandbox Code Playgroud)

但它仍然不起作用,因为我收到一个{__NSArrayM}对象,我不知道如何访问.

我是在正确的轨道还是我做了一些根本错误的事情?

cocoa objective-c quartz-graphics swift

13
推荐指数
2
解决办法
4459
查看次数

加权voronoi图的参考算法?

有人能指出我如何构建(乘法和/或加法)加权voronoi图的参考实现,最好是基于Fortune的voronoi算法吗?

我的目标:给定一组点(每个点都有一个权重)和一组边界边(通常是一个矩形),我想用python或processing.org-framework构建一个加权的voronoi图.这是一个例子.

到目前为止我所做的工作:到目前为止,我已经实现了Fortune的算法以及Michael Balzer的论文中提出的"centroidal voronoi tessellation" .算法3说明了如何调整权重,但是,当我实现这个时,我的几何不再适用.要解决此问题,必须更新扫描线算法以考虑权重,但到目前为止我无法做到这一点.因此,我想看看其他人是如何解决这个问题的.

algorithm geometry voronoi data-structures

11
推荐指数
1
解决办法
4804
查看次数

是否可以在chrome中运行本机python代码?

我想知道是否可以在chrome而不是javascript中运行本机python代码.我见过像pyjsbrython这样的项目,但他们所做的是将python编译为javascript.虽然这些都是很棒的项目,但这种方法的问题始终是您无法轻松调试原始的python代码.

除此之外,我偶然发现了这个线程,描述了如何为chromes-sandbox开发自定义代码.但这可能会导致在沙箱中实现python解释器,这将是一种过度杀伤力.

任何帮助表示赞赏!(我不想开始任何python与javascript讨论,但只是发现这是否可能,如果可行,如何做)

亲切的问候,
马可

javascript python google-chrome sandbox brython

11
推荐指数
1
解决办法
1万
查看次数

javascript中有chrome:// webrtc-internals/variables的API吗?

我想访问一些已记录的变量chrome://webrtc-internals/,但我没有在谷歌上找到任何东西 - 甚至没有我能看到的图表的描述.
我特别感兴趣packetsLost,googCurrentDelayMs并且googNacksSent.

为什么我要访问webrtc-internals
我正在编写一个共享视频流的谷歌浏览器应用程序(p2p).它使用peerjs与其他对等体共享流,后者又使用googles webrtc实现.为了使我的应用程序完美,我需要知道何时发生大的延迟.由于我可以看到记录的延迟,chrome://webrtc-internals/我想知道我是否可以通过javascript访问它.

我的猜测是chrome://webrtc-internals/-menu 没有API .

javascript google-chrome webrtc google-chrome-app peerjs

11
推荐指数
1
解决办法
5908
查看次数

如何在覆盆子pi上安装支持JPEG的PIL?

我试图在我的覆盆子pi上安装PIL并读取JPEG文件.但是,它不能开箱即用.

当我运行以下内容时:

sudo pip install pil
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,试图打开一个图像:

""decoder jpeg not available""
Run Code Online (Sandbox Code Playgroud)

在尝试安装所有需要的JPEG库时,我遇到了一些错误,例如:

sudo apt-get install libjpeg
E: Unable to locate package libjpeg
Run Code Online (Sandbox Code Playgroud)

python pip python-imaging-library raspberry-pi

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

使用Swift中的enumeratorAtUrl从NSFileManager返回目录枚举器的问题

我试图从NSFileManager方法enumeratorAtUrl返回NSDirectoryEnumerator对象.这会导致编译器错误: Cannot convert the expressions type 'NSDirectoryEnumerator!' to type 'NSDirectoryEnumeratorOptions'

let url:NSURL = NSURL(fileURLWithPath: "/")
var keys:Array<AnyObject> = [NSURLNameKey, NSURLIsDirectoryKey]
var manager:NSFileManager = NSFileManager.defaultManager()
let enumerator:NSDirectoryEnumerator = manager.enumeratorAtURL(url,includingPropertiesForKeys: keys, options: 0, errorHandler: nil)
Run Code Online (Sandbox Code Playgroud)

这适用于Obj-C但不适用于Swift ..还有其他人遇到过这个问题吗?

swift

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

如何在swift 2命令行工具中创建最小守护进程?

我想做什么

我想运行一个可以监听OSX系统事件的守护进程,就像NSWorkspaceWillLaunchApplicationNotificationcommand line toolxcode项目中一样?那可能吗?如果没有,为什么不,有没有任何工作或黑客?

一些代码示例

以下来自swift 2 cocoa application项目的示例代码设置了一个系统事件侦听器,WillLaunchApp每次启动OSX应用程序时都会调用该事件侦听器.(这很好用)

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    func applicationDidFinishLaunching(aNotification: NSNotification) {
        NSWorkspace.sharedWorkspace()
            .notificationCenter.addObserver(self,
                selector: "WillLaunchApp:",
                name: NSWorkspaceWillLaunchApplicationNotification, object: nil)
    }

    func WillLaunchApp(notification: NSNotification!) {
        print(notification)
    }
}
Run Code Online (Sandbox Code Playgroud)

相比之下,这个类似的swift 2 command line tool项目不会打电话 WillLaunchApp.

import Cocoa

class MyObserver: NSObject
{
    override init() {
        super.init()
        NSWorkspace.sharedWorkspace()
            .notificationCenter.addObserver(self,
                selector: "WillLaunchApp:",
                name: NSWorkspaceWillLaunchApplicationNotification, object: nil)
    }

    func WillLaunchApp(notification: NSNotification!) { …
Run Code Online (Sandbox Code Playgroud)

macos xcode cocoa swift swift2

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

如何在Chrome应用中保存多个文件

我想在一个操作中将多个文件保存到目录中.如果我理解正确的铬文件系统的API文档,当我使用这应该是可能openDirectory的选项chrome.fileSystem.chooseEntry.这甚至是允许的吗?
但是,文档非常简约,我也没有通过谷歌找到任何例子.

更多背景:
我有权访问目录并具有写权限:

/*you need chrome >= Version 31.x [currently chrome beta]*/
"permissions": [
    {"fileSystem": ["write", "directory"]}, "storage", 
]
Run Code Online (Sandbox Code Playgroud)

然后你留下chrome.fileSystem.chooseEntry(对象选项,函数回调)chrome.fileSystem.getWritableEntry(条目入口,函数回调),但我没有弄清楚这些函数是否是我想要的.

以下是如何将单个文件保存到文件系统:

chrome.fileSystem.chooseEntry({type:"saveFile", suggestedName:"image.jpg"}, 
    function(entry, array){
        save(entry, blob); /*the blob was provided earlier*/
    }
);

function save(fileEntry, content) {
    fileEntry.createWriter(function(fileWriter) {
        fileWriter.onwriteend = function(e) {
            fileWriter.onwriteend = null;
            fileWriter.truncate(content.size);
        };
        fileWriter.onerror = function(e) {
            console.log('Write failed: ' + e.toString());
        };
        var blob = new Blob([content], {'type': 'image/jpeg'});
        fileWriter.write(blob); …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome

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

如何快速创建 VTCompressionSession?

我一直在寻找如何创建 VTCompressionSession swift 中),正如2014 WWDC Video - 'Direct Access to Video Encoding and Decoding' 中简要提到的那样。

以下代码适用于 Objective-C:

#import <Foundation/Foundation.h>
#import <VideoToolbox/VideoToolbox.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        VTCompressionSessionRef session;
        VTCompressionSessionCreate(NULL, 500, 500, kCMVideoCodecType_H264, NULL, NULL, NULL, NULL, NULL, &session);

        NSLog(@"created VTCompressionSession");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但无论怎样我都试过,我不能找到一种方法,导入VTCompressionSessionCreate迅速

import Foundation
import VideoToolbox

VideoToolbox.VTCompressionSessionCreate()

println("created VTCompressionSession")
Run Code Online (Sandbox Code Playgroud)

例如,此代码中断:Module 'VideoToolbox' has no member named 'VTCompressionSessionCreate'
只是调用VTCompressionSessionCreate创建错误消息Use …

macos cocoa objective-c swift xcode6

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