我有以下过滤器来查找当前Sprint中的问题:
resolution is EMPTY AND assignee = currentUser() AND Sprint in openSprints() ORDER BY priority DESC, created ASC
Run Code Online (Sandbox Code Playgroud)
它按预期工作.但是,我们的团队为拉伸目标创建了单独的"sprint"(在futureSprints()中),而且我无法在没有获取其余积压的情况下查询它们.但是,这个拉伸目标sprint始终是我们列表中的下一个.此外,如果当前冲刺被称为"Sprint 20-2016",则拉伸目标将被称为"Sprint 20-2016 Stretch Goals".这意味着我可以通过抓取当前sprint的名称来检索拉伸目标.例如,以下硬编码解决方案有效:
resolution is EMPTY AND assignee = currentUser() AND Sprint in futureSprints() AND Sprint = "Sprint 20" ORDER BY priority DESC, created ASC
Run Code Online (Sandbox Code Playgroud)
问题是,"Sprint 20"我想要的不是硬编码,Sprint = [name of first entry from] openSprints()而是不知道如何在JQL中表达这一点.或者,由于伸展目标总是在下一个冲刺中,所以类似的东西Sprint in [first entry in] openSprints() + 1也会起作用.
我们需要根据环境(local/dev/staging/production)修改我们的 React Native 应用程序(使用 Expo 构建)中的某些配置/变量。我已经查看了许多为此目的而设计的库,但似乎所有库都存在一个对我们的用例造成破坏的缺陷:
作为不需要第三方插件的更简洁的替代方案,我正在考虑使用 babel 的env选项,并将所有环境作为单独的 json 对象在babel.config.js. 但是,我没有看到太多关于此的文档或示例。难道我只是添加env在同一水平场presets和plugins包含production,development等等。如下面的例子中字段:
module.exports = (api) => {
api.cache(true);
return {
presets: [...],
env: {
development: {
CONFIG_VAR: 'foo'
},
production: {
CONFIG_VAR: 'bar'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
那行得通吗?CONFIG_VAR稍后我将如何在代码中访问它?
我有一个已经应用了转换的SVG元素(可以是单个转换,也可以是多个转换的组合)。我正在尝试对其进行其他转换。问题在于该变换可以重复应用,并且需要与现有的变换状态堆叠在一起(因此将附加的变换附加到末尾是不切实际的)。从d3 API看,我没有发现任何可以应用相对转换的东西(尽管我必须承认,我对d3的高级功能并不熟悉)。手动解析当前的转换字符串,然后免费计算SVG已经在后台执行的转换矩阵,这似乎很愚蠢,有没有更好的方法?
例如,如果现有元素已经具有以下属性:
transform="translate(30) rotate(45 50 50)"
Run Code Online (Sandbox Code Playgroud)
我两次调用此转换逻辑,希望每次在每个维度上将元素偏移1个像素,因此我需要解析和处理translate和rotate调用,因为新的转换无法在旋转之前应用。
首先,如果你们认为我尝试做事的方式不是Pythonic,请随意提供其他建议.
我有一个对象,其功能需要根据外部事件进行更改.我最初做的是创建一个继承自原始对象的新对象(让我们调用它OrigObject())并覆盖更改的方法(让我们调用新对象NewObject()).然后我修改了两个构造函数,以便它们可以接受另一个类型的完整对象,以根据传入的对象填充自己的值.然后,当我需要更改功能时,我只是执行myObject = NewObject(myObject).
我现在开始看到这种方法的几个问题.首先,需要更新引用该对象的其他位置以引用新类型(例如,上述语句只会更新本地myObject变量).但是这并不难更新,只有烦人的部分才会记住每次更改对象时在其他地方更新它以防止奇怪的程序行为.
其次,我注意到我需要NewObject()中的单个方法的场景,但是来自OrigObject()的其他方法,我需要能够动态切换功能.它似乎不再是使用继承的最佳解决方案,我需要在M*N中创建不同的类(其中M是类可以改变的方法数,N是变化的数量)每个方法)继承自OrigObject().
我正在考虑使用属性重映射,但我似乎遇到了问题.例如,说我有这样的事情:
def hybrid_type2(someobj, a):
#do something else
...
class OrigObject(object):
...
def hybrid_fun(self, a):
#do something
...
def switch(type):
if type == 1:
self.hybrid_fun = OrigObject.hybrid_fun
else:
self.fybrid_fun = hybrid_type2
Run Code Online (Sandbox Code Playgroud)
问题是,在执行此操作并尝试在切换后调用新的hybrid_fun之后,我得到一个错误,说hybrid_type2()只接受2个参数,但我将其传递给它.该对象似乎不再将其自身作为新函数的参数传递,就像它使用自己的方法一样,我可以采取哪些措施来解决这个问题?
我尝试在类中包含hybrid_type2然后使用self.hybrid_fun = self.hybrid_type2作品,但是使用self.hybrid_fun = OrigObject.hybrid_fun会导致类似的错误(抱怨第一个参数应该是OrigObject类型).我知道我可以OrigObject.hybrid_fun()在内部定义逻辑,OrigObject.hybrid_type1()所以我可以像设置它一样恢复它(相对于实例,而不是相对于类,以避免对象不是第一个参数).但是我想在这里询问是否有更清洁的方法,我没有在这里看到?谢谢
编辑:谢谢大家,我已经给出了一些效果很好的解决方案.我基本上最终使用了一个使用types.MethodType()的策略模式,我接受了解释如何在python中执行策略模式的答案(维基百科文章更通用,Python中不需要使用接口) .
在开始之前,我知道有比正则表达式更好的方法(比如标记化器),这不是问题所在.我已经坚持使用正则表达式,它已经按照我的需要工作,除了一个特殊情况,这是我需要的建议.
我需要扫描一些类似JavaScript的代码,并new在每个对象声明前插入关键字.我已经知道需要这个关键字的所有对象的名字了,我知道在我开始之前它们都不会在代码中有那个关键字(所以我不需要处理重复的new单词或猜测某些东西是否是一个对象或者不是.例如,典型的行可能如下所示:
foo = Bar()
Run Code Online (Sandbox Code Playgroud)
我已经知道这Bar是一个'类',并且需要'new'来进行对象声明.以下正则表达式可以解决问题:
for classname in allowed_classes:
line = re.sub(r'^([^\'"]*(?:([\'"])[^\'"]*\2)*[^\'"]*)\b(%s\s*\()' % classname, r'\1new \3', line)
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力,甚至确保它不会触及classname它在一个字符串内(正则表达式的第一部分告诉它确保前面有偶数引号 - 它有点天真,因为它会破坏嵌套引号,但我不需要处理那种情况).问题是,类名也可以包含$在其中.因此,如果$Bar存在于allowed_classes中,则允许以下行:
foo = $Bar()
Run Code Online (Sandbox Code Playgroud)
由于美元符号,上述正则表达式将忽略它.我想逃避它会做的伎俩,但这个逻辑似乎对上面的行没有影响,即使$Bar是其中一个类:
for classname in allowed_classes:
line = re.sub(r'^([^\'"]*(?:([\'"])[^\'"]*\2)*[^\'"]*)\b(%s\s*\()' % re.escape(classname), r'\1new \3', line)
Run Code Online (Sandbox Code Playgroud)
我也尝试过手工使用它,\但它也没有效果.有人可以解释为什么转换$到\$不工作有什么能解决?
谢谢
我写了一个网络应用程序,侧面使用广告横幅来支持免费帐户.问题是,由于广告是在自己的<div>中加载的,因此在任何现代浏览器中进入开发人员/调试控制台相对容易,并且使用CSS覆盖删除div或将广告调整为0px(用户可能会这样做在应用工作区中获得更多的房地产).为了防止这种情况,我正在考虑定期检查广告中div的属性是否完全改变(包括CSS样式),如果有,则重新加载页面.由于我依赖画布元素进行绘制,因此重新加载会对用户造成相当麻烦,因为它会清除画布,因此除非广告被篡改,否则我不想这样做.
我已经看到一些关于跟踪DOM变化的类似问题,其中人们建议使用变异事件.然而,基于答案,似乎并不是所有浏览器都支持(然后再次,我见过的线程来自2008年和2009年,所以事情可能从那时起发生了变化).
我正在考虑的另一个选择是在页面完成加载后读取div的offsetWidth,offsetHeight,offsetTop,offsetLeft,并定期将它们与当前值进行比较(你可以做很多事情来制作div如果你不能移动就离开).
你们有什么建议?
我的印象是exit无论如何都会终止当前的bash脚本,并且在我的脚本顶部有以下错误处理程序:
function err {
printf "\e[31m$1\e[0m\n" 1>&2
exit 1
}
Run Code Online (Sandbox Code Playgroud)
对于大多数情况来说,它就像一个魅力,直到这一行:
item=$(myfunc $1)
Run Code Online (Sandbox Code Playgroud)
通常情况下,该行正常工作,myfunc的STDOUT $item按预期转入.myfunc通过err上面看到的函数抛出错误时会出现问题.在$()结束了吞咽不回零和退出脚本本身守着退出.如果我理解正确,问题是$()实际上产生了一个新的子shell(就像被弃用的反引号一样),但我知道没有其他方法可以将函数的输出捕获到bash中允许其exit工作的变量中.
我也尝试使用set -e,也没有运气.有人可以建议如何构建我的错误处理程序,以便它甚至在这些情况下退出脚本?
我在一个 podspec 非常过时的项目中使用了一个库。结果,我的项目似乎正在拉入旧文件。有问题的图书馆是 Classy:https : //github.com/ClassyKit/Classy
提到 0.2.4 版本的 podspec 自 2014 年以来一直没有更新。然而,实际版本有一些必要的修复(例如https://github.com/ClassyKit/Classy/pull/97/commits)在 podspec 更新之后。与其手动移动东西,我更喜欢让 cocoapods 处理它以确保文件同步。问题是,每当我运行“pod update”时,它都声称回购是最新的。
用例:
我有一个 RESTful API,可以将数据插入 Cassandra 并向用户返回新条目的 ID。我uuid()在 Cassandra 中使用ID 生成器来填充 ID。
问题:
INSERT 语句不返回生成的 ID,但我描述的 RESTful API 似乎是一个常见的用例。获取该确切条目的 UUID 的方法是什么?理论上我可以做一些类似的事情,SELECT id FROM table WHERE partition_key = ? ORDER BY id DESC LIMIT 1;但这似乎会引入竞争条件,以防两个写入大约在同一时间发生。
我已经设置了我的应用程序/网站,以便在滚动面板顶部有一个绝对定位的画布元素,当滚动面板滚动时,我将偏移应用到画布上,使其看起来像图像滚动(这允许我有巨大的帆布没有巨大的帆布元素的开销).问题是,当我的鼠标位于画布元素上时,滚轮不起作用,因为滚动事件不会冒泡.但是,在这种情况下,我需要冒泡才能使滚动条工作.
我正在使用GWT,所以我宁愿不依赖于jQuery解决方案(虽然纯粹的javascript解决方案也可以),因为将两者混合起来有点困难.我可以捕捉鼠标滚轮事件,但主要问题是它似乎没有区分滚动(向上/向下)和车轮倾斜(左/右).我尝试了eventGetShiftKey(),eventGetButton(),eventGetType()和其他一些但是所有这些方法都返回了相同的滚动和倾斜结果(向左倾斜=向上滚动,向右倾斜=向下滚动).
似乎处理这个问题的最好方法是将实际事件冒泡到scrollpanel(顺便提一下,它还包含包含绝对定位画布的父div),但我不确定这是否可能?