小编gru*_*dic的帖子

IntelliJ检查给出"无法解析符号"但仍编译代码

平台:IntelliJ Community Edition 10.0.3
SDK:jdk1.6.0_21
操作系统:Windows 7

所以我对IntelliJ有一个奇怪的情况让我完全难过.我设置了一个Maven项目,并将log4j作为依赖项添加到pom.xml文件中.IDEA检查运行正常,我的单元测试全部编译运行.

然后我使用mvn install:install-file将hunnysoft的jmime库添加到我的本地maven存储库,如下所示.

mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)

Maven将jar文件安装到我的本地存储库中.

然后我进入IntelliJ的Settings => Maven => Repository Services并更新了我的本地存储库(以便IntelliJ重新索引存储库内容).

最后,我将以下依赖项添加到我的pom.xml文件中(就在log4j依赖项之上).

<dependency>
    <groupId>jmime</groupId>
    <artifactId>jmime</artifactId>
    <version>3.1.1e</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我现在创建一个新类如下:

package com.stackoverflow.question;

import org.apache.log4j.Logger;
import com.hunnysoft.jmime.ByteString;
import com.hunnysoft.jmime.Field;
import com.hunnysoft.jmime.FieldBody;

public class StackOverflowQuestion {
    public Field create(String name, String text) {
        Logger.getLogger(getClass()).debug("create entered");
        FieldBody body = new FieldBody();
        body.setText(new ByteString(text));
        Field field = new Field();
        field.setFieldName(name);
        field.setFieldBody(body);
        return field;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在为了古怪.IntelliJ的意图机制拾取并识别maven pom文件中的Logger导入就好了.然而,对于所有的hunnysoft导入,它报告:"无法解析符号'ByteString/Field/FieldBody'",但是 Build => Compile'StackOverflowQuestion.java' 正确编译所有内容,我为这个类创建的单元测试运行正常(尽管意图将对create()的调用标记为问题区域). …

java intellij-idea maven intellij-inspections

521
推荐指数
17
解决办法
45万
查看次数

使用Tornado和Prototype进行异步COMET查询

我正在尝试使用Tornado和JS Prototype库编写简单的Web应用程序.因此,客户端可以在服务器上执行长时间运行的作业.我希望,这项工作以异步方式运行 - 以便其他客户可以查看页面并在那里做一些事情.

在这里我得到了:

#!/usr/bin/env/ pytthon

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options

import os
import string
from time import sleep
from datetime import datetime

define("port", default=8888, help="run on the given port", type=int)

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("templates/index.html", title="::Log watcher::", c_time=datetime.now())

class LongHandler(tornado.web.RequestHandler):
    @tornado.web.asynchronous
    def get(self):
        self.wait_for_smth(callback=self.async_callback(self.on_finish))
        print("Exiting from async.")
        return

    def wait_for_smth(self, callback):
        t=0
        while (t < 10):
            print "Sleeping 2 second, t={0}".format(t)
            sleep(2)
            t += 1
        callback()

    def on_finish(self):
        print ("inside …
Run Code Online (Sandbox Code Playgroud)

python ajax comet tornado long-polling

9
推荐指数
1
解决办法
6330
查看次数

partial和partialmethod有什么区别?

我发现functoolsPython 3的模块有两个非常相似的方法:partialpartialmethod.

有人可以提供使用每个人的好例子吗?

python python-3.x functools

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

PyCharm:如何记录:rtype:用于返回生成器的函数

我尝试记录一个:rtype:docstring参数,返回一个生成器Node:

def __iter__(self):
    """iterate over node children

    :rtype: ???
    """
    for node in self.children.itervalues():
        yield node
Run Code Online (Sandbox Code Playgroud)

什么:rtype:是应该是什么?generator of Node似乎不起作用.

python docstring generator pycharm

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

Watir改变了highline的"ask"方法

当我一起使用Watir和Highline时,我已经遇到了一些奇怪的功能.

这是一个简单的例子:

require 'highline/import'
comp = ask("Company?  ") { |q| q.default = "MySuperCompany" }
puts comp

require 'watir'
comp = ask("Company?  ") { |q| q.default = "MySuperCompany" }
puts comp
Run Code Online (Sandbox Code Playgroud)

这是一个输出:

Company?  |MySuperCompany|
MySuperCompany
[Company?  ] =>
Company?
Run Code Online (Sandbox Code Playgroud)

也许这是一个错误?我也在highline的文档中找到了

如果在调用ask()之前设置了@question,则忽略参数,并使用该对象(必须是HighLine :: Question)来驱动进程.

对不起,我不是红宝石大师:-(

ruby watir highline

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

如何为 CommandCollection 单击命令添加帮助?

我正在尝试使用单击库向命令行应用程序添加帮助。正如官方文档中提到的,

对于命令,会生成一个简短的帮助片段。默认情况下,它是命令帮助消息的第一句话,除非它太长。这也可以被覆盖

使用简单的 @click.command 一切正常:

import click

@click.command()
def cli():
    """This is sample description of script."""

if __name__ == '__main__':
    cli()
Run Code Online (Sandbox Code Playgroud)

运行它会从方法的 doscstring 显示脚本的描述:

Usage: example.py [OPTIONS]

  This is sample description of script.

Options:
  --help  Show this message and exit.
Run Code Online (Sandbox Code Playgroud)

但是我需要使用 CommandCollection,因为我正在创建一个由多个命令组成的脚本。以下是官方帮助的示例:

import click


@click.group()
def cli1():
    pass


@cli1.command()
def cmd1():
    """Command on cli1"""


@click.group()
def cli2():
    pass


@cli2.command()
def cmd2():
    """Command on cli2"""


cli = click.CommandCollection(sources=[cli1, cli2])

if __name__ == '__main__':
    cli()
Run Code Online (Sandbox Code Playgroud)

而且我不知道如何向整个命令集合添加描述。到目前为止我尝试过的:

  • 使用附加的short_help …

python command-line-interface python-click

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

如何从字符串中获取有效的IETF语言标签

我想将语言环境标签转换为IETF标准。IETF语言标签断言en-US是美国英语的正确标签。在可能的情况下,我可能会en_US作为输入。

目前,我正在使用这种方法:

func toLanguageTag(l string) string {
    return strings.Replace(l, "_", "-", -1)
}
Run Code Online (Sandbox Code Playgroud)

例如,我知道Java有toLanguageTag方法。我应该继续使用这种方法,还是有更理想的方法来做我想做的事情?

locale go

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