我想为a中的每个元素添加一个工具提示p:selectManyCheckBox.但是我无法想出解决方案.
我有一个Role有3个属性的类,"id"(长),"name"(字符串)和"description"(字符串).显示名称,我希望将描述作为工具提示.
这是一段有效的代码:
<p:selectManyCheckbox layout="pageDirection" value="#{roleBean.selectedRoles}" converter="roleConverter">
<f:selectItems value="#{roleBean.roles}" var="role" itemLabel="#{role.name}" itemValue="#{role}"/>
</p:selectManyCheckbox>
Run Code Online (Sandbox Code Playgroud)
这roleConverter是一个FacesConverter转换Role为id,反之亦然.
我想出了这个:
<p:selectManyCheckbox layout="pageDirection" value="#{roleBean.selectedRoles}" converter="roleConverter">
<c:forEach var="role" items="#{roleBean.roles}">
<f:selectItem id="role#{role.id}" itemLabel="#{role.name}" itemValue="#{role}" />
<p:tooltip for="role#{role.id}" value="#{role.description}"/>
</c:forEach>
</p:selectManyCheckbox>
Run Code Online (Sandbox Code Playgroud)
但不幸的是它不起作用.
我试图将位图图像转换为base64字符串,然后将其作为二进制blob插入数据库.base64字符串需要以每76个字符后的新行字符进行编码.这样做的最好的pythonic方法是什么?
我正在尝试让Python列出命名空间包中的所有模块.
我有以下文件结构:
cwd
|--a
| `--ns
| |--__init__.py
| `--amod.py
|--b
| `--ns
| |--__init__.py
| `--bmod.py
`--c
`--ns
|--__init__.py
`--cmod.py
Run Code Online (Sandbox Code Playgroud)
每个都__init__.py通过以下行将它的包定义为命名空间包:
__import__('pkg_resources').declare_namespace(__name__)
Run Code Online (Sandbox Code Playgroud)
该amod模块包含一个类A,bmod包含另一个类B并cmod包含C该类.
拥有干净的环境时会发生以下情况:
>>> import inspect, sys, glob
>>> sys.path += glob.glob('*')
>>> import ns
>>> inspect.getmembers(ns, inspect.ismodule)
[]
Run Code Online (Sandbox Code Playgroud)
如您所见,未列出模块.
现在,当我手动导入模块然后再次调用inspect时:
>>> inspect.getmembers(ns, inspect.ismodule)
[('amod', <module 'ns.amod' from 'a/ns/amod.pyc'>), ('bmod', <module 'ns.bmod' from 'b/ns/bmod.pyc'>), ('cmod', <module 'ns.cmod' from 'c/ns/cmod.pyc'>)]
Run Code Online (Sandbox Code Playgroud)
现在我想要在inspect不手动导入模块的情况下调用工作,那么我该如何实现呢?
在编写测试时,我通常将前面的模块命名test_为spam.py和test_spam.py.这使得查找测试变得容易.在模块中测试类时,我创建了unittest.TestCase一个类似于类名的派生,后缀为Test.例如Spam变成SpamTest(不像TestSpam这听起来像是测试实现Spam).然后通过带有前缀test_和后缀_testcondition或其他描述性后缀的测试函数来测试类函数.我发现这很有效,因为包含了原始对象名称.
当我想测试模块级功能时会出现问题.遵循我的常规结构,我将创建一个unittest.TestCase与函数同名的衍生物,后缀为Test.这样做的问题是类名称是驼峰式的,函数名称是低位的,带有下划线来分隔单词.忽略的命名约定some_function变成SomeFunctionTest.我忍不住觉得这很难看.
什么会更合适?什么是常见做法?是否有类似pep8的'标准'?你用什么?
在Python解释器,08并且09似乎无效.例:
>>> 01
1
>>> 02
2
>>> 03
3
>>> 04
4
>>> 05
5
>>> 06
6
>>> 07
7
>>> 08
File "<stdin>", line 1
08
^
SyntaxError: invalid token
>>> 09
File "<stdin>", line 1
09
^
SyntaxError: invalid token
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,只是似乎08并09没有起作用.这些特殊价值观还是什么?
以下代码应该能够在Python 2.7和Python 3.x中运行.
from __future__ import unicode_literals
from __future__ import print_function
import cgi
try:
from StringIO import StringIO as IO
except ImportError:
from io import BytesIO as IO
body = """
--spam
Content-Disposition: form-data; name="param1"; filename=blob
Content-Type: binary/octet-stream
value1
--spam--
"""
parsed = cgi.FieldStorage(
IO(body.encode('utf-8')),
headers={'content-type': 'multipart/form-data; boundary=spam'},
environ={'REQUEST_METHOD': 'POST'})
print([key for key in parsed])
Run Code Online (Sandbox Code Playgroud)
在Python 2.7中它运行正常并输出['param1'].然而,在Python 3.4中,它输出[None].
我无法FieldStorage在Python 3中获得可用的结果.我怀疑内部发生了一些变化,我现在正在使用它.但是我似乎无法弄清楚是什么.任何帮助表示赞赏.
我正在尝试使用sphinx.ext.inheritance_diagram扩展在 Sphinx 中生成一个继承图。这使用 Graphviz 来绘制图表。
这不是一个巨大的图表,似乎有足够的空间来增加节点的大小,因此它们是可读的。但是我无法让 Graphviz 这样做。我试过增加/减少字体大小、宽度、高度、大小等,但我的努力没有使图表可读。
在我的conf.py我有:
inheritance_graph_attrs = dict(rankdir="TB", ratio='fill')
Run Code Online (Sandbox Code Playgroud)
为了生成一个模块的继承图,我在适当的rst文件中包含了以下指令:
.. inheritance-diagram:: package.module
Run Code Online (Sandbox Code Playgroud)
这给了我下图:

我认为增加节点的大小应该可以解决问题,但我不知道该怎么做。
使用asyncio可以在超时时执行协程,以便在超时后取消:
@asyncio.coroutine
def coro():
yield from asyncio.sleep(10)
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait_for(coro(), 5))
Run Code Online (Sandbox Code Playgroud)
上面的示例按预期工作(它在5秒后超时).
但是,当协程不使用asyncio.sleep()(或其他asyncio协同程序)时,它似乎没有超时.例:
@asyncio.coroutine
def coro():
import time
time.sleep(10)
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait_for(coro(), 1))
Run Code Online (Sandbox Code Playgroud)
运行时间超过10秒,因为time.sleep(10)未取消.在这种情况下是否可以强制取消协程?
如果应该使用asyncio来解决这个问题,我该怎么做?
我需要在驼峰套管中导出一组物品,为此我使用了一个包装.
班级本身:
[XmlRoot("example")]
public class Example
{
[XmlElement("exampleText")]
public string ExampleText { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这序列化很好:
<example>
<exampleText>Some text</exampleText>
</example>
Run Code Online (Sandbox Code Playgroud)
包装:
[XmlRoot("examples")]
public class ExampleWrapper : ICollection<Example>
{
[XmlElement("example")]
public List<Example> innerList;
//Implementation of ICollection using innerList
}
Run Code Online (Sandbox Code Playgroud)
然而,Example由于某种原因,这会将包裹的s 大写,我试图用它来覆盖它,XmlElement但这似乎没有达到预期的效果:
<examples>
<Example>
<exampleText>Some text</exampleText>
</Example>
<Example>
<exampleText>Another text</exampleText>
</Example>
</examples>
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我做错了什么或者有更简单的方法?
我对哪个RESTful设计更好而感到困惑.
对于API我有三种类型; Question,Answer和Student.该Question类型有两种亚型; MultipleChoice和Open.该Question类型将来可能会有更多的子类型.请注意,子类型具有公共和不同(可选)属性.Answer适用于所有问题.
我已经看到过类似的问题(REST Api中的建模对象继承,如何使用继承建模RESTful API?),给定的答案指向使用通用URL并指定正文中的类型.但是,我不觉得答案是否具有权威性(没有提及最佳实践,也没有提及很多赞成等).
我正在寻找基于事实而非意见的权威,可靠的答案.
我将在下面解释可能的设计.
可以使用请求所有问题的列表GET /questions.这将返回包含问题摘要的JSON列表:
[
{
"url": "http://example.com/questions/multiplechoice/1",
"name": "example question"
},
{
"url": "http://example.com/questions/open/2",
"name": "another question"
}
]
Run Code Online (Sandbox Code Playgroud)
可以使用请求一系列多项选择题GET /questions/multiplechoice.
使用可以创建新的多项选择题 POST /questions/multiplechoice
服务器端这些URL映射到不同的请求处理程序.这样做的好处是没有必要检查来检查要创建/返回的类型,它隐含在URL中.
这种方法的缺点(我认为)是当学生提交答案时,URL会因问题而异.POST /questions/multiplechoice/1/answers和POST /questions/open/2/answers.
请求所有问题的列表保持不变,GET /question.输出也是一样的.
请求一个多项选择题列表意味着过滤所以这将是GET /questions?type=multiplechoice.
创建新的多重选择问题也意味着发布类型.POST数据将是:
{
"type": "multiplechoice",
"name": "example question"
} …Run Code Online (Sandbox Code Playgroud) python ×7
base64 ×1
c# ×1
camelcasing ×1
cgi ×1
collections ×1
diagram ×1
graphviz ×1
inspect ×1
jsf ×1
module ×1
namespaces ×1
package ×1
primefaces ×1
python-2.7 ×1
python-3.x ×1
rest ×1
restful-url ×1
tooltip ×1
unit-testing ×1
wrapper ×1