这看起来应该很简单:
tasks:
- name: install python packages
pip: name=${item} virtualenv=~/buildbot-env
with_items: [ buildbot ]
- name: create buildbot master
command: buildbot create-master ~/buildbot creates=~/buildbot/buildbot.tac
Run Code Online (Sandbox Code Playgroud)
但是,除非首先获取virtualenv的激活脚本,否则该命令将不会成功,并且似乎没有在Ansible命令模块中执行此操作.
我已尝试在各种.profile,.bashrc,.bash_login等中获取激活脚本,但没有运气.或者,有shell命令,但它看起来像一个尴尬的黑客:
- name: create buildbot master
shell: source ~/buildbot-env/bin/activate && \
buildbot create-master ~/buildbot \
creates=~/buildbot/buildbot.tac executable=/bin/bash
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
因此,我有一个用于串行API的大量消息Payload类,每个类都有许多不可变字段,一个解析方法和一些共享的方法.我构造它的方式是每个都将从字段行为的namedtuple继承,并从父类接收公共方法.但是,我在构造函数方面遇到了一些困难:
class Payload:
def test(self):
print("bar")
class DifferentialSpeed(Payload, namedtuple('DifferentialSpeed_',
'left_speed right_speed left_accel right_accel')):
__slots__ = ()
def __init__(self, **kwargs):
super(DifferentialSpeed, self).__init__(**kwargs)
# TODO: Field verification
print("foo")
@classmethod
def parse(self, raw):
# Dummy for now
return self(left_speed = 0.0, right_speed = 0.1,
left_accel = 0.2, right_accel = 0.3)
def __str__(self):
return "Left Speed: %fm/s\nRight Speed: %fm/s\n"\
"Left Acceleration: %fm/s^2\nRight Acceleration: %fm/s^2" % (
self.left_speed, self.right_speed, self.left_accel, self.right_accel)
payload = DifferentialSpeed.parse('dummy')
print(payload)
Run Code Online (Sandbox Code Playgroud)
这有效,但我得到以下警告:
DeprecationWarning: object.__init__() takes no parameters
super(DifferentialSpeed, self).__init__(**kwargs)
Run Code Online (Sandbox Code Playgroud)
如果我**kwargs …
inheritance multiple-inheritance super namedtuple python-3.x
在我的标记中,我有一个像这样的块:
<svg width="0" height="0" style="display:none" id="dummy-wedge">
<g class="dummy" transform="translate(100, 100)">
<defs>
<clipPath id="clip1">
<polygon id="clip1Shape" points="-100,-100 0,-100 0,0 -100,-20" />
</clipPath>
</defs>
<circle id="" cx="0" cy="0" r="52" fill-opacity="0"
stroke="#ffffff" stroke-opacity="0.6" stroke-width="50"
pointer-events="visiblePainted" clip-path="url(#clip1)" />
</g>
</svg>
Run Code Online (Sandbox Code Playgroud)
我想要做的是获取该块并将其克隆到不同的svg根元素中以创建一堆楔形,每个楔形具有不同的位置和剪辑段.这部分很酷,但令人沮丧的是每个克隆的clipPath元素都需要接收一个新的ID,然后必须将其插入到匹配元素的clip-path属性中.
我知道,如果所有的弧是相同的长度,我可以有一个共同的剪辑,并使用旋转变换,但他们并不一定是相同的长度.
是否可以使用拓扑关系声明剪辑多边形而不是通过显式命名它?或者,是否有更好的方法在使用路径之外定义这样的弧?
谢谢.
我对能够将glfx.js 中的过滤器应用于实时视频很感兴趣。我已成功按我的意愿导入和处理帧,但该方法效率低下。在我的页面设置中,我这样做:
var fbCanvas = document.getElementById('framebuffer');
var fb = fbCanvas.getContext('2d');
var video = document.getElementById('video');
var output = fx.canvas();
Run Code Online (Sandbox Code Playgroud)
然后,在 25hz(视频的播放速率),我这样做:
fb.drawImage(video, 0, 0);
var frame = output.texture(fbCanvas);
output.draw(frame).hueSaturation(-0.5, 0).update();
Run Code Online (Sandbox Code Playgroud)
但我希望能够做到这一点:
var frame = output.texture(video);
output.draw(frame).hueSaturation(-0.5, 0).update();
Run Code Online (Sandbox Code Playgroud)
对 output.texture 的调用只是 gl.texImage2D 的一个包装器,它似乎只接受图像或画布——而不是视频元素。
我的问题是,通过对隐藏画布执行额外的 drawImage 对性能有多大影响?将视频帧放入 GL 纹理以便我可以实时在它们上运行 GL 着色器的最快方法是什么?
谢谢。
我在嵌入式设备上使用lwIP,我觉得我可能会遇到一些与内存耗尽有关的错误.我知道当内存分配失败时,mem_malloc函数本身将返回null,但有没有办法在任意时间点粗略评估可用内存?能够直接监视它,确定哪些使用模式正在泄漏内存将会很棒.
谢谢.
这看起来似乎任何人都不应该要做的,但我正在一个内核模块上的嵌入式系统(的OpenWRT),其中似乎time.h 不包括timespec和time_t类型,以及clock_gettime和gmtime功能,但不包括localtime,ctime,time或者,或者,批判性地,tm类型.
当我尝试将返回指针从gmtime强制转换为我自己的struct时,我得到了一个段错误.
所以我想我会满足于从两种方式解决这个问题 - 想弄清楚如何访问这个缺失的类型,或者如何推出我自己的方法来分解unix时间戳.
当我的脚本由于任何原因无法解析时,我从编译器获得了一个堆栈跟踪,根本没有深入了解我的脚本中问题所在的位置:
mpurvis@citadel:~/coffee$ coffee -c Test.coffee
/usr/local/lib/node_modules/coffee-script/lib/command.js:15
return process.binding('stdio').writeError(line + '\n');
^
Error: No such module
at /usr/local/lib/node_modules/coffee-script/lib/command.js:15:20
at /usr/local/lib/node_modules/coffee-script/lib/command.js:167:7
at /usr/local/lib/node_modules/coffee-script/lib/command.js:115:26
at [object Object].<anonymous> (fs.js:108:5)
at [object Object].emit (events.js:64:17)
at afterRead (fs.js:1074:12)
at Object.wrapper [as oncomplete] (fs.js:246:17)
Run Code Online (Sandbox Code Playgroud)
现在,它只是一个玩具脚本来尝试系统,所以我通常可以尝试直到它再次工作,但这在任何大小的文件中都是不可能的.是否有一些技巧我没有看到错误发生的行?
谢谢!
ansible ×1
c ×1
canvas ×1
clipping ×1
clone ×1
coffeescript ×1
embedded ×1
html ×1
html5-video ×1
inheritance ×1
linux ×1
lwip ×1
malloc ×1
memory-leaks ×1
namedtuple ×1
python-3.x ×1
super ×1
svg ×1
time.h ×1
virtualenv ×1
webgl ×1