你可以在Django South首次迁移之前将应用程序向后迁移吗?如果没有,是否有计划添加此类功能,可能使用传递给的选项migrate?
假设我有一个List像这样的immutable.js :
var xs = Immutable.fromJS([{key: "k", text: "foo"}])
Run Code Online (Sandbox Code Playgroud)
我想将其转换为如下所示的Map:
var ys = Immutable.fromJS({k: {key: "k", text: "foo"}})
Run Code Online (Sandbox Code Playgroud)
如何在immutable.js中xs转换为ys惯用语?
通过惯用我的意思是任何中间结构应该是immutable.js结构,我认为任何中间步骤都将使用可迭代组合而不是创建全尺寸中间表示.
编辑:我已经创建了一个jsperf基准,比较了目前为止提供的答案.两种非变异的解决方案对我来说都是相当惯用的; 我可以坚持让投票决定所选择的答案或坚持到我们可以收集大致同样惯用的技术集合.
而不诉诸''.join,有没有使用PyYAML的一个Python化的方式yaml.load_all与fileinput.input()来自多个源的多个文件容易流?
我正在寻找类似以下的内容(非工作示例):
# example.py
import fileinput
import yaml
for doc in yaml.load_all(fileinput.input()):
print(doc)
Run Code Online (Sandbox Code Playgroud)
预期输出:
$ cat >pre.yaml <<<'--- prefix-doc'
$ cat >post.yaml <<<'--- postfix-doc'
$ python example.py pre.yaml - post.yaml <<<'--- hello'
prefix-doc
hello
postfix-doc
Run Code Online (Sandbox Code Playgroud)
当然,yaml.load_all需要字符串、字节或类似文件的对象,fileinput.input()而这些都不是,因此上面的示例不起作用。
实际输出:
$ python example.py pre.yaml - post.yaml <<<'--- hello'
...
AttributeError: FileInput instance has no attribute 'read'
Run Code Online (Sandbox Code Playgroud)
您可以使示例与 一起使用''.join,但这是作弊。我正在寻找一种不会一次将整个流读入内存的方法。
我们可以将问题重新表述为是否有某种方法可以模拟字符串、字节或类似文件的对象来代理字符串的底层迭代器?但是,我怀疑这是否yaml.load_all真的需要整个类似文件的界面,因此措辞会要求比严格必要的更多。
理想情况下,我正在寻找支持以下内容的最小适配器:
for doc in yaml.load_all(minimal_adapter(fileinput.input())):
print(doc)
Run Code Online (Sandbox Code Playgroud) 我有不同的Rabbit队列,每个队列专门用于一种特殊的订单处理:
# tasks.py
@celery.task
def process_order_for_product_x(order_id):
pass # elided ...
@celery.task
def process_order_for_product_y(order_id):
pass # elided ...
# settings.py
CELERY_QUEUES = {
"black_hole": {
"binding_key": "black_hole",
"queue_arguments": {"x-ha-policy": "all"}
},
"product_x": {
"binding_key": "product_x",
"queue_arguments": {"x-ha-policy": "all"}
},
"product_y": {
"binding_key": "product_y",
"queue_arguments": {"x-ha-policy": "all"}
},
Run Code Online (Sandbox Code Playgroud)
我们的政策是通过设置来强制执行显式路由CELERY_DEFAULT_QUEUE = 'black_hole',然后再从中使用black_hole。
这些任务中的每一个都可以使用芹菜的画布基元,如下所示:
# tasks.py
@celery.task
def process_order_for_product_x(order_id):
# These can run in parallel
stage_1_group = group(do_something.si(order_id),
do_something_else.si(order_id))
# These can run in parallel
another_group = group(do_something_at_end.si(order_id),
do_something_else_at_end.si(order_id))
# …Run Code Online (Sandbox Code Playgroud) 假设我有一个主键pk和一个可空列col.我想找个地方行的连续序列col中NULL,在降行程的顺序进行排序.
我将接受一个只返回运行长度的查询作为一个有效的答案,但在将来(可能在一个单独的问题中)我想知道一些pk指向每个运行的起点或终点的.
示例数据:
pk col
-- ---
1 'a'
2 NULL
3 'b'
4 NULL
5 NULL
6 NULL
7 'c'
8 NULL
9 NULL
10 'd'
Run Code Online (Sandbox Code Playgroud)
预期的查询结果:
runlengths
----------
3
2
1
Run Code Online (Sandbox Code Playgroud)
如果可能,我更喜欢标准SQL,但这是用于分析存储在MySQL中的生产数据集,因此无论在该上下文中哪种方法效果最好.
python ×2
celery ×1
django ×1
django-south ×1
immutable.js ×1
javascript ×1
mysql ×1
pyyaml ×1
sql ×1