小编dec*_*rig的帖子

如何在rake TestTask失败后抑制巨大的堆栈跟踪?

我正在为一个项目设置一个rakefile,我已经定义了一些rake TestTasks.我运行了一个简单的健全性测试,assert_equal(1, 2)只是为了检查输出,除了通常的故障输出之外,我得到了这个烂摊子:

rake aborted!
Command failed with status (1): [/usr/bin/ruby -w -I"lib:." "/usr/lib/ruby/...]
/usr/lib/ruby/1.9.1/rake.rb:993:in `block in sh'
/usr/lib/ruby/1.9.1/rake.rb:1008:in `call'
/usr/lib/ruby/1.9.1/rake.rb:1008:in `sh'
/usr/lib/ruby/1.9.1/rake.rb:1092:in `sh'
/usr/lib/ruby/1.9.1/rake.rb:1027:in `ruby'
/usr/lib/ruby/1.9.1/rake.rb:1092:in `ruby'
/usr/lib/ruby/1.9.1/rake/testtask.rb:115:in `block (2 levels) in define'
/usr/lib/ruby/1.9.1/rake.rb:1110:in `verbose'
/usr/lib/ruby/1.9.1/rake/testtask.rb:100:in `block in define'
/usr/lib/ruby/1.9.1/rake.rb:634:in `call'
/usr/lib/ruby/1.9.1/rake.rb:634:in `block in execute'
/usr/lib/ruby/1.9.1/rake.rb:629:in `each'
/usr/lib/ruby/1.9.1/rake.rb:629:in `execute'
/usr/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain'
/usr/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/usr/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
/usr/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites'
/usr/lib/ruby/1.9.1/rake.rb:602:in `each'
/usr/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites'
/usr/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain'
/usr/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/usr/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
/usr/lib/ruby/1.9.1/rake.rb:581:in `invoke'
/usr/lib/ruby/1.9.1/rake.rb:2041:in `invoke_task' …
Run Code Online (Sandbox Code Playgroud)

ruby rake

8
推荐指数
1
解决办法
1685
查看次数

如何在python中异步处理xml?

我有一个大的XML数据文件(> 160M)来处理,似乎SAX/expat/pulldom解析是要走的路.我希望有一个线程可以筛选节点并将节点推送到队列中,然后其他工作线程将下一个可用节点拉出队列并进行处理.

我有以下(它应该有锁,我知道 - 它会,后来)

import sys, time
import xml.parsers.expat
import threading

q = []

def start_handler(name, attrs):
    q.append(name)

def do_expat():
    p = xml.parsers.expat.ParserCreate()
    p.StartElementHandler = start_handler
    p.buffer_text = True
    print("opening {0}".format(sys.argv[1]))
    with open(sys.argv[1]) as f:
        print("file is open")
        p.ParseFile(f)
        print("parsing complete")


t = threading.Thread(group=None, target=do_expat)
t.start()

while True:
    print(q)
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

问题是while块的主体只被调用一次,然后我甚至无法ctrl-C中断它.在较小的文件上,输出是预期的,但这似乎表明只有在完全解析文档时才调用处理程序,这似乎违背了SAX解析器的目的.

我确定这是我自己的无知,但我不知道我在哪里弄错了.

PS:我也试过改变start_handler:

def start_handler(name, attrs):
    def app():
        q.append(name)
    u = threading.Thread(group=None, target=app)
    u.start()
Run Code Online (Sandbox Code Playgroud)

但是没有爱.

python xml multithreading sax

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

在JEditorPane中实现动态文本样式

我有一个想法,用Java写一个笔记记录应用程序,在你输入时做一些简单的文本替换; 可能是Markdown语法的一小部分.因此,例如,如果您输入的行是#sometext,它将被渲染:

sometext

Wikidpad是我正在尝试做的事情的一部分(我不只是重新实现它,只是部分语法/显示功能).

所以基本上我正在寻找一种方法来编写某种组件,当用户点击"返回"时,它会查看输入的行,并做任何需要做的魔术才能使html标签正确.

我一直在反对Documents and DocumentFilters和DocumentListeners以及HTMLReaders,而且没有太多运气,有人能把我放在正确的道路上吗?

java swing text text-editor

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

如何在Java中进行类型安全的Xpath查询?

我目前正在使用JDOM进行一些简单的XML解析,看起来没什么类型安全 - 我在使用内置的Java DOM解析器时遇到了类似的问题,只需要更多的API来解决问题.

例如,XPath.selectNodes将一个Objectas作为参数并返回一个原始列表,它只是感觉有点Java 1.1

是否存在用于Java的通用化XML和XPath库,或者是否有某种原因导致无法以类型安全的方式执行XPath查询?

java xml xpath jdom type-safety

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

如何键入一个返回相同类型的另一个函数的函数?

我在dart中实现了一个状态机,我想让我的状态函数返回其他状态函数,但是

typedef State State(foo);
Run Code Online (Sandbox Code Playgroud)

给我一个错误:

typedef 'State' illegally refers to itself
Run Code Online (Sandbox Code Playgroud)

有没有办法做这个typedef?显然我可以将它包装在一个类中或让它返回Function,但我希望用typedef来做这个.

dart

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

为什么这个派生类需要声明为朋友?

我自己学习C++,而且我认为一个很好的方法就是将一些Java项目转换成C++,看看我倒下的地方.所以我正在研究多态列表实现.它工作得很好,除了一件奇怪的事情.

我打印列表的方法是让EmptyList类返回"null"(字符串,而不是指针),并NonEmptyList返回一个字符串,该字符串的数据与调用tostring()列表中其他所有内容的结果相连接.

我把tostring()一个protected部分(它似乎是适当),编译器会抱怨这条线(sstringstream我使用积累的字符串):

s << tail->tostring();
Run Code Online (Sandbox Code Playgroud)

这是编译器的错误:

../list.h: In member function 'std::string NonEmptyList::tostring() [with T = int]':
../list.h:95:   instantiated from here
../list.h:41: error: 'std::string List::tostring() [with T = int]' is protected
../list.h:62: error: within this context

这是最常见的list.h:

template <class T> class List;
template <class T> class EmptyList;
template <class T> class NonEmptyList;

template <typename T>
class List {
public:
    friend std::ostream& operator<< (std::ostream& o, …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance

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

更正Objective C的根类?

我在网上找到了关于ObjC的两个不同根类的参考资料,无论是objc/Object.h或者Foundation/NSObject.h.它们需要不同的编译器标志(-lobj相比之下-lobjc -framework Foundation,并且有不同的选择器用于初始化和释放对象.NSObject是替代品,还是它们有不同的应用程序?显然NSObject.h对NextStep类型的东西更好,但确实Object.h有更好的优势,可以使它更好在某些情况下?

FWIW,来自comp.lang.objective-c 的更新的FAQ似乎表明它NSObject.h是正确的; 一个旧版本提到Object.h

objective-c

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

模块中的Ruby脚本执行

为什么以下失败?

module Test
    def test
        puts "test"
    end

    puts "testing"
    test
end
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

testing
test.rb:6:in `test': wrong number of arguments (ArgumentError)
    from test.rb:6:in `<module:Test>'
    from test.rb:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)

是因为模块还没有"编译",因为还没有达到end关键字?

ruby

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

标签 统计

java ×2

ruby ×2

xml ×2

c++ ×1

dart ×1

inheritance ×1

jdom ×1

multithreading ×1

objective-c ×1

python ×1

rake ×1

sax ×1

swing ×1

text ×1

text-editor ×1

type-safety ×1

xpath ×1