小编dbr*_*dbr的帖子

股票报价API?

我正在尝试整理一个简单的RSS小部件(对于我的wordpress博客),它将显示股票或市场列表及其当前价格.

我似乎无法在任何地方找到这个数据的API - 任何人都可以建议这样的事情(也许作为RSS提要?)

api wordpress

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

如何实现py -onic等价的tail -F?

对于某些关键字的出现,观察不断增长的文件尾端的pythonic方法是什么?

在shell中我可能会说:

tail -f "$file" | grep "$string" | while read hit; do
    #stuff
done
Run Code Online (Sandbox Code Playgroud)

python file tail

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

在Cocoa中重命名文件?

如何重命名文件,将文件保存在同一目录中?

我有一个包含文件完整路径的字符串,以及一个包含新文件名(没有路径)的字符串,例如:

NSString *old_filepath = @"/Volumes/blah/myfilewithrubbishname.avi";
NSString *new_filename = @"My Correctly Named File.avi";
Run Code Online (Sandbox Code Playgroud)

我知道NSFileManager的movePath:toPath:handler:方法,但是我无法研究如何构造新文件的路径..

基本上我正在寻找相当于以下Python代码:

>>> import os
>>> old_filepath = "/Volumes/blah/myfilewithrubbishname.avi"
>>> new_filename = "My Correctly Named File.avi"
>>> dirname = os.path.split(old_filepath)[0]
>>> new_filepath = os.path.join(dirname, new_filename)
>>> print new_filepath
/Volumes/blah/My Correctly Named File.avi
>>> os.rename(old_filepath, new_filepath)
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c file-management nsfilemanager

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

正则表达式和unicode

我有一个解析电视剧集文件名的脚本(例如show.name.s01e02.avi),抓取剧集名称(来自www.thetvdb.com API)并自动将它们重命名为更好的名称(显示名称 - [01x02] ]的.avi)

该脚本工作正常,直到你尝试在具有Unicode显示名称的文件上使用它(我从未真正考虑过的事情,因为我拥有的所有文件都是英文的,所以大部分文件全部都在内[a-zA-Z0-9'\-])

如何允许正则表达式匹配重音字符等?目前正则表达式的配置部分看起来像..

config['valid_filename_chars'] = """0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@£$%^&*()_+=-[]{}"'.,<>`~? """
config['valid_filename_chars_regex'] = re.escape(config['valid_filename_chars'])

config['name_parse'] = [
    # foo_[s01]_[e01]
    re.compile('''^([%s]+?)[ \._\-]\[[Ss]([0-9]+?)\]_\[[Ee]([0-9]+?)\]?[^\\/]*$'''% (config['valid_filename_chars_regex'])),
    # foo.1x09*
    re.compile('''^([%s]+?)[ \._\-]\[?([0-9]+)x([0-9]+)[^\\/]*$''' % (config['valid_filename_chars_regex'])),
    # foo.s01.e01, foo.s01_e01
    re.compile('''^([%s]+?)[ \._\-][Ss]([0-9]+)[\.\- ]?[Ee]([0-9]+)[^\\/]*$''' % (config['valid_filename_chars_regex'])),
    # foo.103*
    re.compile('''^([%s]+)[ \._\-]([0-9]{1})([0-9]{2})[\._ -][^\\/]*$''' % (config['valid_filename_chars_regex'])),
    # foo.0103*
    re.compile('''^([%s]+)[ \._\-]([0-9]{2})([0-9]{2,3})[\._ -][^\\/]*$''' % (config['valid_filename_chars_regex'])),
]
Run Code Online (Sandbox Code Playgroud)

python regex unicode character-properties

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

这个问题是NP,它有名字吗?

这个问题出现在现实世界中,但我已将其翻译成更通用的"类似教科书"的表述.我怀疑它是NP,但我特别感兴趣的是知道它是否有名字或者是众所周知的,因为我认为我不能成为第一个遇到它的人.;-)

想象一下,有N位客人参加聚会.每位客人都可以将他/她的"招牌菜"带到聚会上,或者什么都不带.每位客人都喜欢或讨厌其他客人可能带来的每道菜(由于他们都是老朋友,所以这是事先知道的!),但他们都喜欢自己的菜肴.

有没有一个确定性的算法,不需要指数时间来找到满足约束的最小菜肴,所有客人都会找到至少一个他们喜欢的菜?我说"最小",但实际上可能有多种解决方案,如果可能的话我想知道它们.

或者,以更抽象的方式,想象一个方形矩阵,其中所有元素都是0或1,并且所有对角元素都是1.什么是最小的行集合,使得每个行的总和(或二进制OR)设置没有零?(行将是菜肴,列将是客人,1意味着客人喜欢菜,对角元素是1,因为每个人都喜欢他们自己的菜.)

这可以推广到非平方矩阵,或者通过去除diagonal = 1规则(尽管后者保证总是存在至少一个解).但我现在不关心这些案件......

我已经有一个程序通过详尽的搜索来解决它,并且对于大约20的N来说足够快,但它需要指数时间.我想我可能需要重复使用随机算法来找到更大的N值的足够好的解决方案.

添加

哇,谢谢你的快速回答!"设置封面",这就是我要找的名字.:)

algorithm set np-complete

23
推荐指数
1
解决办法
495
查看次数

Python的单元测试和动态创建测试用例

可能重复:
如何在python中生成动态(参数化)单元测试?

有没有办法动态创建unittest测试用例?我试过以下..

class test_filenames(unittest.TestCase):

    def setUp(self):
        for category, testcases in files.items():
            for testindex, curtest in enumerate(testcases):
                def thetest():
                    parser = FileParser(curtest['input'])
                    theep = parser.parse()
                    self.assertEquals(theep.episodenumber, curtest['episodenumber'])

                setattr(self, 'test_%s_%02d' % (category, testindex), thetest)
Run Code Online (Sandbox Code Playgroud)

..which正确地创建所有方法(它们显示dir()并且可以调用),但是unittest的测试检测器,也不nosetest执行它们("Ran 0 tests in ...")

因为我可能会问错误的问题 - 我想要实现的目标:

我有一个文件,包含测试数据,输入文件名列表和预期数据(简化为episodenumber上面的代码),存储在Python字典中.关键是类别,值是测试用例列表,例如..

test_cases = {}
test_cases['example_1'] = [
    {'input': 'test.01',
    'episodenumber': 1},
    {'input': 'test.02',
    'episodenumber': 2}
]

test_cases['example_2'] = [
    {'input': 'another.123',
    'episodenumber': 123},
    {'input': 'test.e42',
    'episodenumber': 32}
]
Run Code Online (Sandbox Code Playgroud)

目前我只是遍历所有数据,调用self.assertEquals每个测试.问题是,如果一个失败,我没有看到其余的失败,因为它们也被分组到一个测试中,当断言失败时中止. …

python unit-testing dynamic

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

如何为工作区中的所有 crate 提供共享的 Clippy 配置?

我有一个应用程序分成几个箱子。我想拒绝或允许所有箱子中的特定 lint。例如:

#![deny(clippy::print_stdout)]
Run Code Online (Sandbox Code Playgroud)

看来我必须将其添加到每个板条箱中的 lib.rs 中。

Cargo有一张票据允许以某种方式进行配置,但它已经开放了好几年,没有明确的结论。

是否有解决方法可以避免每个板条箱重复这些允许/拒绝/警告行?

我的一个想法是通过在工作区根目录include!创建一个,然后在每个板条箱的 lib.rs 中添加clippy_config.rs

include!("../../clippy_config.rs");
Run Code Online (Sandbox Code Playgroud)

然而这失败了

error: an inner attribute is not permitted in this context
 --> app/src/../../clippy_config.rs:1:1
  |
1 | #![deny(clippy::print_stdout)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
Run Code Online (Sandbox Code Playgroud)

由于同样的原因,我使用宏的另一个想法也不起作用。

除了编写外部脚本来修改 Rust 文件以自动执行复制之外,是否有一种简单的方法可以做到这一点?(正如描述 Embark Studio 设置的评论中所提到的)。

rust rust-clippy

22
推荐指数
1
解决办法
2818
查看次数

建议的初始Emacs配置?

我想尝试Emacs,并希望尽可能给它最好的机会.

要做到这一点,似乎拥有一个好.emacs文件很重要.

我主要使用Mac OS X(所以我看过Aquamacs),我主要做Python编程,所以任何特别适用于此的东西都会很棒.

emacs configuration

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

你对Maven有什么印象?

我正在考虑将Maven用于我管理的Java开源项目.

然而,在过去,Maven并不总是拥有最好的声誉.你现在对Maven有什么印象?

java open-source maven-2

21
推荐指数
6
解决办法
5093
查看次数

实现基于节点的图形界面?

我想实现一个节点接口,基本上是一个DAG,每个节点在它的输入连接上执行操作,并输出一些东西(你可以连接到另一个节点)

一些示例应用:


作为第一个目标,我想拥有一个只有2个节点的图形应用程序.一个简单输出一个固定数字的"数字"和一个"加"节点,它取两个输入并输出两者之和.

正如人们已经回答的那样,我对如何在代码中表示数据有一个粗略的想法,例如在Python中寻找伪代码:

class Number:
    def __init__(self, value):
        self.value = value

    def eval(self):
        return self.value

class Add:
    def __init__(self, input1, input2):
        self.input1 = input1
        self.input2 = input2

    def eval(self):
        return self.input1.eval() + self.input2.eval()


a = Number(20)
b = Number(72)

adder = Add(a, b)
print adder.eval()
Run Code Online (Sandbox Code Playgroud)

我如何围绕此包装自定义GUI?像下面的东西,但略少手绘!

节点UI模型

我从哪里开始?我目前打算用Objective-C/Cocoa编写它,尽管我对其他语言的建议不仅仅是开放的.

python user-interface directed-graph

21
推荐指数
1
解决办法
9003
查看次数