小编Ore*_*lus的帖子

多项搜索NEST C#

我想做一个匹配多个值(值数组)的搜索,如下所示:

var result1 = _client.Search<type1>(s => s
            .Fields(f => f.trip_id)
            .Query(q => q
                .Terms(t => t.arg1, value1)).Take(_allData))
                .Documents.Select(d => d.arg2).ToArray();

var result2 = _client.Search<type2>(s => s
                      .Query(q => q
                          .Terms(t => t.arg3, result1))
                          .Take(_allData)
                          ).Documents.Select(s => s.ar3).ToList();
Run Code Online (Sandbox Code Playgroud)

我能怎么做 ?我在思考方面,但我不知道如何做到这一点.现在唯一可行的方法是使用foreach迭代器,但这并不是真正有效的...

谢谢你的帮助.

c# elasticsearch nest

8
推荐指数
1
解决办法
7285
查看次数

async_generator的块

我可以得到一个迭代器的块,如下所示:

def get_chunks_it(l, n):
    """ Chunks an iterator `l` in size `n`
    Args:
        l (Iterator[Any]): an iterator
        n (int): size of
    Returns:
        Generator[Any]
    """
    iterator = iter(l)
    for first in iterator:
        yield itertools.chain([first], itertools.islice(iterator, n - 1))
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个异步生成器(python 3.6):

async def generator():
    for i in range(0, 10):
        yield i
        await asyncio.sleep(1)
Run Code Online (Sandbox Code Playgroud)

我怎么能得到结果的块(让我们说大小3会产生[0,1,2],[3,4,5],[6,7,8],[9]),async_generator这样我才能写出来:

async for chunk in get_chunk_it_async(generator(), 3):
    print(chunk)
Run Code Online (Sandbox Code Playgroud)

python asynchronous python-3.x async-await python-asyncio

8
推荐指数
2
解决办法
969
查看次数

asyncio CancelledError 和 KeyboardInterrupt

我正在尝试两种方法来阻止无限循环运行:

  • supervisor_1:任务以编程方式取消
  • supervisor_2 : 使用 Ctrl+C 停止任务

虽然supervisor_2不会引发中断时,在任何错误,我不能让supervisor_1从得到Task was destroyed but it is pending!。知道为什么吗?

这是代码:

import asyncio
import aioredis
from functools import partial



class Listener:
    def __init__(self, redis_conn):
        self.redis_conn = redis_conn

    async def forever(self, loop_name):
        counter = 0
        try:
            while True:
                print('{}: {}'.format(loop_name, counter))
                counter += 1
                await asyncio.sleep(1)
        except asyncio.CancelledError:
            print('Task Cancelled')
            self.redis_conn.close()
            await self.redis_conn.wait_closed()


async def supervisor_1(redis_conn):
    redis_conn = await redis_conn

    l = Listener(redis_conn)

    task = asyncio.ensure_future(
        asyncio.gather(l.forever('loop_1'), 
                       l.forever('loop_2')))
    await asyncio.sleep(2) …
Run Code Online (Sandbox Code Playgroud)

python python-asyncio

5
推荐指数
1
解决办法
7033
查看次数

Typescript 对象类型到数组类型

将对象类型转换为对象数组(每个对象都包含该对象的一个​​键)的正确方法是什么?

\n\n

比如我想改造

\n\n
type MyObjectType = {\n    foo: number,\n    bar: string\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

进入

\n\n
type MyObjectArrayType = { key: 'foo', value: number}\xc2\xa0| { key: 'bar', value: string}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这样我就可以做

\n\n
const objects: MyObjectArrayType[] = [{key: 'foo', value: 2}, {key: 'bar', value: 'baz'}]\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在想类似的事情

\n\n
type MyObjectArrayType<K extends keyof MyObjectType> = { value: MyObjectType[K], key: K }\n
Run Code Online (Sandbox Code Playgroud)\n\n

但无法让它像我想要的那样工作。

\n

typescript typescript-typings

5
推荐指数
1
解决办法
182
查看次数

使用Flask错误Angular.js

我有以下结构和代码:

project/
       app.py
       templates/
                /index.html
       static/
             /angular.js
Run Code Online (Sandbox Code Playgroud)

的index.html

<!doctype html>
<html ng-app="myApp">
<head>
    <meta charset="utf-8"/>
    <title>My App</title>
</head>
<body ng-controller="myCtrl as ctrl">
    <div>
        {{ctrl.foo}}
    </div>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js"></script>
    <script type="text/javascript">

        angular.module('myApp', [])
        .controller('myCtrl', [function () {
            var self = this;
            self.foo = 10;
        }]);
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

app.py.

from flask import Flask
app = Flask(__name__)
from flask import render_template

@app.route('/')
def hello_world():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

无论我做什么,我仍然有以下错误:UndefinedError: 'ctrl' is undefined我猜是因为Flask没有加载angular.js

我也试过静态路径 …

javascript python flask angularjs

3
推荐指数
1
解决办法
830
查看次数

功能组件随着useMemo / React.memo消失

我正在努力useMemo(或React.memo)优化某些组件的渲染。

我有一个我无法解释的问题。

我有以下代码:

[...]
    const [ cards, setCards ] = useState<Card[]>([])


    function addCard(){
        setCards([...cards, {name: 'card-' + cards.length, counter: 0, type: 'memo'}])
    }

    function onPressCard(index: number){
        cards[index].counter += 1
        setCards([...cards])
    }

   return (
     [...]
    {
      cards.map((x, index) => 
        <Card key={index} {...x} onPress={() => onPressCard(index)}/>
    }
    [...]
)

Run Code Online (Sandbox Code Playgroud)

定义为


const Card: FC<CardProps> = function({ name, counter, onPress }){
    const counterRef = useRef(0)

    const item = useMemo(() => {
        counterRef.current +=1

        return (
        <RectButton onPress={onPress} style={[styles.card, …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native

2
推荐指数
1
解决办法
88
查看次数

Celery update_state类中的方法

我是芹菜的新手,并开始了解它是如何工作的。但是我在理解如何从类方法内部更新状态时遇到了一些麻烦。

views.py

@app.route('/',methods=['POST'])
def foo_bar():
    task = foo_async.apply_async()
    return json.dumps({}),202
Run Code Online (Sandbox Code Playgroud)

background_task.py

@celery.task(bind=True)
def foo_async(self):
    t = Test()
    t.run()
    return json.dumps({'progress':100})
Run Code Online (Sandbox Code Playgroud)

test.py

class Test(Task):
    def __init__(self):
        self.foo = 'bar'
    def run(self):
        for i in range(0,10):
            print 'Current : ',i
            self.update_state(state='PROGRESS',meta={'current':i})
            time.sleep(4)
Run Code Online (Sandbox Code Playgroud)

但是我发出请求后收到此错误:

[...] return task_id.replace('-','')  
AttributeError: 'NoneType' object has no attribute 'replace'
Run Code Online (Sandbox Code Playgroud)

因此,我看到问题出在关于ID的问题,但我不知道如何解决。
也许有更好的方法从我的方法中获取更新?

python celery flask

1
推荐指数
1
解决办法
3280
查看次数

打字稿打字相关类型

我有以下类型和转换功能:

type LeftRightField = null |
    { left: null, right: number } |
    { left: number, right: null } |
    { left: number, right: number }

type LeftRightArray = [null, number] |
    [number, null] |
    [number, number] |
    null

const fmtField = function (field: LeftRightField): LeftRightArray {
    const rightField = field?.right ?? null
    const leftField = field?.left ?? null
    return (leftField == null && rightField == null) ? null : [leftField, rightField]
}
Run Code Online (Sandbox Code Playgroud)

操场

然而这失败了

输入'号码| null' 不可分配给类型 'null'。
类型 …

typescript

0
推荐指数
1
解决办法
69
查看次数