是否有一种独立于平台的方式来为Qt小部件指定固定宽度的字体?
如果我在Linux上的Designer中将字体设置为"Monospace",则在Windows上找不到它,而是使用Arial.
我使用芹菜来更新我的新闻聚合网站中的RSS提要.我为每个feed使用一个@task,事情看起来效果很好.
有一个细节,我不能确定处理得好:所有的feed都是每分钟用@periodic_task更新一次,但是如果一个feed仍在从最后一个周期性任务中更新时新的一个怎么办?(例如,如果Feed非常慢,或者离线且任务保持在重试循环中)
目前我存储任务结果并检查其状态如下:
import socket
from datetime import timedelta
from celery.decorators import task, periodic_task
from aggregator.models import Feed
_results = {}
@periodic_task(run_every=timedelta(minutes=1))
def fetch_articles():
for feed in Feed.objects.all():
if feed.pk in _results:
if not _results[feed.pk].ready():
# The task is not finished yet
continue
_results[feed.pk] = update_feed.delay(feed)
@task()
def update_feed(feed):
try:
feed.fetch_articles()
except socket.error, exc:
update_feed.retry(args=[feed], exc=exc)
Run Code Online (Sandbox Code Playgroud)
也许有一种更复杂/更健壮的方法可以使用我错过的一些芹菜机制来实现相同的结果?
编辑
这是正确的方法,以及文档:
import random
from osgeo import gdal, ogr
RASTERIZE_COLOR_FIELD = "__color__"
def rasterize(pixel_size=25)
# Open the data source
orig_data_source = ogr.Open("test.shp")
# Make a copy of the layer's data source because we'll need to
# modify its attributes table
source_ds = ogr.GetDriverByName("Memory").CopyDataSource(
orig_data_source, "")
source_layer = source_ds.GetLayer(0)
source_srs = source_layer.GetSpatialRef()
x_min, x_max, y_min, y_max = source_layer.GetExtent()
# Create a field in the source layer to hold the features colors
field_def = ogr.FieldDefn(RASTERIZE_COLOR_FIELD, ogr.OFTReal)
source_layer.CreateField(field_def)
source_layer_def = source_layer.GetLayerDefn() …
Run Code Online (Sandbox Code Playgroud) 我从网上搜索它,找到许多样本从.net中的文件生成一个新的x509Certificate2,但没有一个示例显示如何从.net开头生成一个全新的x509Certificate2.
有没有人可以告诉我如何在.net中做到这一点?
非常感谢你.
我维护一个跨平台的应用程序,基于在Linux mac和windows上运行的PyQt.
windows和mac版本使用py2exe和py2app分发,它产生相当大的包(~40 MB).
我想添加一个"自动更新"功能,基于补丁来限制下载大小:
我有一些问题:
[更新]
我做了一个简单的类来使用bsdiff制作补丁,这在他们的网站上广告非常有效:我的应用程序的两个py2exe版本上的差异(~75 MB未压缩)产生44 kB补丁!对我来说足够小,我会坚持这种格式.
当我用条形图每月采样数据时,它们的宽度非常薄.如果我将X轴次要定位器设置为DayLocator(),我可以看到条形宽度调整为1天,但我希望它们填满整整一个月.
我试图将次要刻度定位器设置为MonthLocator()而不起作用.
[编辑]
也许一个例子会更明确,这是ipython -pylab
我的意思的一个例子:
x = [datetime.datetime(2008, 1, 1, 0, 0),
datetime.datetime(2008, 2, 1, 0, 0),
datetime.datetime(2008, 3, 1, 0, 0),
datetime.datetime(2008, 4, 1, 0, 0),
datetime.datetime(2008, 5, 1, 0, 0),
datetime.datetime(2008, 6, 1, 0, 0),
datetime.datetime(2008, 7, 1, 0, 0),
datetime.datetime(2008, 8, 1, 0, 0),
datetime.datetime(2008, 9, 1, 0, 0),
datetime.datetime(2008, 10, 1, 0, 0),
datetime.datetime(2008, 11, 1, 0, 0),
datetime.datetime(2008, 12, 1, 0, 0)]
y = cos(numpy.arange(12) * 2)
bar(x, y)
Run Code Online (Sandbox Code Playgroud)
这样可以得到12个2像素宽的条形图,我希望它们更宽,并且每个月都会延伸.
我正在尝试编写一个类装饰器,它将装饰器应用于所有类的方法:
import inspect
def decorate_func(func):
def wrapper(*args, **kwargs):
print "before"
ret = func(*args, **kwargs)
print "after"
return ret
for attr in "__module__", "__name__", "__doc__":
setattr(wrapper, attr, getattr(func, attr))
return wrapper
def decorate_class(cls):
for name, meth in inspect.getmembers(cls, inspect.ismethod):
setattr(cls, name, decorate_func(meth))
return cls
@decorate_class
class MyClass(object):
def __init__(self):
self.a = 10
print "__init__"
def foo(self):
print self.a
@staticmethod
def baz():
print "baz"
@classmethod
def bar(cls):
print "bar"
obj = MyClass()
obj.foo()
obj.baz()
MyClass.baz()
obj.bar()
MyClass.bar()
Run Code Online (Sandbox Code Playgroud)
它几乎可以工作,但@classmethod
S需要特殊处理:
$ python …
Run Code Online (Sandbox Code Playgroud) 是否有免费的库可以从图像序列中创建MPEG(或任何其他简单的视频格式)?
它也必须在Linux上运行,理想情况下还有Python绑定.
我可以在Boost.Build上找到大量的通用文档,但令人惊讶的是如何使用它来构建简单的Boost应用程序.
我用bjam编译了Boost for mingw,得到了所有库并包含在C:\ Boost中.现在,基本的Jamroot文件会是什么样的呢?
libs都有复杂的名字,比如'libboost_filesystem-mgw34-mt-s.lib',我确信某处有某种魔术开关可以说'链接libboost_filesystem'!
我想制作一个简单的VST插件来执行此操作:
这是为了能够链接插件,即使它们不是为它设计的.例如,我可以通过将插件的MIDI OUT连接到压缩器增益按钮的MIDI IN来控制带有音频流包络的压缩器的增益.
问题是我不知道该怎么做.在VST中是否支持这样的直接MIDI连接?或者我可能需要某种用于互连的"虚拟midi设备"?
我想确定一个类中属性的类型.我setattr
用来设置值,我想检查预期的类型,以便我可以在调用之前正确转换字符串值setattr
.
你是如何在python中做到这一点的?
编辑1-目前为止基于答案的一些其他信息:
我只知道我想要类型的属性的名称,这里是一些代码:
def populate_object_properties(values_as_strings,
object_to_populate,
properties_to_populate):
for k in properties_to_populate:
value = values_as_strings.get(k)
if value:
setattr(object_to_populate, k, value)
else:
setattr(object_to_populate, k, None)
Run Code Online (Sandbox Code Playgroud)
我想value
在打电话之前测试一下这是正确的类型setattr
.
编辑2-我需要验证类型的原因是,我使用的是Google AppEngine的db.Model作为基类型object_to_populate
,并且在将字符串放入int
类型时不喜欢.我试图让问题尽可能简单,但也许这条信息会对某人的回答产生影响.(?)
谁能解释以下内容?我正在使用Python 2.5
考虑1*3*5*7*9*11 ...*49.如果您在IPython(x,y)交互式控制台中键入所有内容,那么您将获得58435841445947272053455474390625L,这是正确的.(为什么奇怪的数字:就像我最初做的那样)
Python multiply.reduce()或prod()应该为等效范围产生相同的结果.它确实如此,直到某一点.这里已经错了:
: k = range(1, 50, 2)
: multiply.reduce(k)
: -108792223
Run Code Online (Sandbox Code Playgroud)
使用prod(k)也将生成-108792223.对于长度为12的等效范围,开始出现其他不正确的结果(即,k =范围(1,24,2)).
我不知道为什么.有人可以帮忙吗?