小编Vik*_*kas的帖子

如何使用python argparse解析多个嵌套的子命令?

我正在实现一个命令行程序,其界面如下:

cmd [GLOBAL_OPTIONS] {command [COMMAND_OPTS]} [{command [COMMAND_OPTS]} ...]
Run Code Online (Sandbox Code Playgroud)

我已经浏览了argparse文档.我可以GLOBAL_OPTIONS使用add_argumentin 实现可选参数argparse.并{command [COMMAND_OPTS]}使用子命令.

从文档中看来,我只能有一个子命令.但是你可以看到我必须实现一个或多个子命令.解析使用这些命令行参数的最佳方法是什么argparse

python command-line-arguments argparse

66
推荐指数
6
解决办法
4万
查看次数

HTML5解决方案,用于将网络摄像头/摄像头视频流上传到服务器

使用getUserMedia我可以从客户端的网络摄像头/摄像头捕获视频流.使用video标签我可以在客户端的浏览器上显示它.码:

<video autoplay></video>

<script type="text/javascript">
    window.URL = window.URL || window.webkitURL;
    navigator.getUserMedia  = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;

    var video = $('video')[0];

    var failed = function(e) {
        console.log('Denied!', e);
    };

    if( navigator.getUserMedia ) {
        navigator.getUserMedia( {video: true, audio: true}, function( stream ) {
                video.src = window.URL.createObjectURL(stream);
            }, failed
        )
    } else {
        console.log( 'Not supported!' );
    }
</script>
Run Code Online (Sandbox Code Playgroud)

现在是否可以将此视频流作为实时源或用户完成录制并决定上传后发送到服务器?

我找到了一些例子:

html5 websocket html5-video

29
推荐指数
2
解决办法
5万
查看次数

在无限循环中停止连接到队列的python多处理工作程序的最简洁方法是什么?

我正在使用multiprocessing.Pool和实现python中的生产者 - 消费者模式multiprocessing.Queue.消费者是gevent用于产生多个任务的预分叉进程.

这是一个精简版的代码:

import gevent
from Queue import Empty as QueueEmpty
from multiprocessing import Process, Queue, Pool
import signal
import time

# Task queue
queue = Queue()

def init_worker ():
    # Ignore signals in worker
    signal.signal( signal.SIGTERM, signal.SIG_IGN )
    signal.signal( signal.SIGINT, signal.SIG_IGN )
    signal.signal( signal.SIGQUIT, signal.SIG_IGN )

# One of the worker task
def worker_task1( ):
    while True:
        try:
            m = queue.get( timeout = 2 )

            # Break out if producer says quit …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing defunct gevent

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

在sqlalchemy中交叉数据库加入

SQLAlchemy中有没有办法进行跨数据库连接.具体来说,这是我的用例:

架构

  1. db1.entity1
    1. entity1_id:主键
    2. entity2_id:db2.entity2.entity2_id的外键
  2. db2.entity2
    1. entity2_id:主键

模型

我正在为模型使用声明式样式.

class Entity1(Base):
  __tablename__ = 'entity1' ## I tried combination of <db>.<table> with no success
  entity1_id = Column(Integer, primary_key=True)
  entity2_id = Column(Integer, ForeignKey('db2.entity2.entity2_id'))
  entity2 = relationship('Entity2')

class Entity2(Base):
  __tablename__ = 'entity2' ## I tried combination of <db>.<table> with no success
  entity2_id = Column(Integer, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

现在,正如预期的那样,我对Entity1的查询失败,并显示MySQL错误消息,表示找不到表entity2.我尝试了许多不同的组合但__tablename__没有成功.所以我想知道SQLAlchemy是否可行.

python sqlalchemy flask-sqlalchemy

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

是否有可能在python中引发后执行语句?

我在TwistedSNMP库中找到以下代码:

try:
  raise ImportError
  import psyco
except ImportError, err:
  pass
else:
  from pysnmp.asn1 import base
  psyco.bind(base.SimpleAsn1Object)  psyco.bind(base.Asn1Object)
Run Code Online (Sandbox Code Playgroud)

源文件名:pysnmpproto.py,第42行

是否有任何任何情况下import psycoelse块永远不会被执行?

python import try-catch

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

std :: stringstream的默认`fill character`是什么?

是实现定义还是标准建议流的默认填充字符?

示例代码:

#include <iostream>
#include <iomanip>
#include <sstream>

int main ()
{
    std::stringstream stream;
    stream << std::setw( 10 ) << 25 << std::endl;

    std::cout << stream.str() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

clang++ --stdlib=libstdc++

$ clang++ --stdlib=libstdc++ test.cpp
$ ./a.out | hexdump
0000000 20 20 20 20 20 20 20 20 32 35 0a 0a
000000c
$
Run Code Online (Sandbox Code Playgroud)

clang++ --stdlib=libc++

$ clang++ --stdlib=libc++ test.cpp
$ ./a.out | hexdump
0000000 ff ff ff ff ff ff ff ff 32 35 0a 0a
000000c …
Run Code Online (Sandbox Code Playgroud)

c++ stringstream setw clang++ libc++

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

为什么Box <T>的特征实现与Fn()冲突?

一个简单的程序来演示这种行为:

use std::boxed::Box;

struct Cow;

trait CanSpeak {
    fn speak(&self);
}

impl CanSpeak for Cow {
    fn speak(&self) {
        println!("moo");
    }
}

impl<F: Fn()> CanSpeak for F {
    fn speak(&self) {
        self();
    }
}

impl<T: CanSpeak> CanSpeak for Box<T> {
    fn speak(&self) {
        (**self).speak()
    }
}

fn lol_speak() {
    println!("lol")
}

fn lets_speak<T: CanSpeak>(t: & T) {
    t.speak();
}

fn main() {
    let cow = Cow;
    lets_speak( &cow );

    lets_speak( &lol_speak );

    let boxed_cow = Box::new(Cow);
    lets_speak( &boxed_cow );
} …
Run Code Online (Sandbox Code Playgroud)

generics traits rust

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

如果满足某些条件,请沿特定深度停止boost :: depth_first_search

我正在使用BGL来存储我的DAG.顶点有状态.给定一个顶点中的状态变化,我想更新依赖顶点.这我可以使用boost :: depth_first_search和自定义访问者.

现在的逻辑是,如果顶点处于特定状态,我不想更新搜索的顶点及其相关因素.基本上我想控制dfs或bfs中顶点的排队.在BGL中实现这一目标的最佳方法是什么.

谢谢.

c++ boost graph depth-first-search boost-graph

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

你是否将名词用于表示可调用对象的类名?

这里有一个更通用的问题.将此视为对此的扩展.

我理解类代表对象的类型,我们应该使用名词作为名称.但是,许多语言支持的函数对象更像是函数而不是对象.我应该将这些类别命名为名词,或者在这种情况下动词是否正常.doSomething()从语义上讲,比说更有意义Something().

更新/结论

我得到的两个最高投票答案分享了一个混合的意见:

阿提拉

然而,在仿函数的情况下,它们代表"动作",因此用动词(或某种名词 - 动词组合)命名它们更合适 - 就像你根据它正在做什么命名一个函数一样.

另一方面,仿函数的实例实际上是一个函数,也许可以更好地命名.按照Jim的建议,SomethingDoer doSomething; doSomething();

在经过一些代码之后,他们两个似乎都是常见的做法.在GNU实现STL的,我发现类,如negate,plus,minus(位/ stl_function.h)等.并且variate_generator,mersenne_twister(TR1/random.h).类似地,在升压我发现类,如base_visitor,predecessor_recorder(图/ visitors.hpp)以及inverse,inplace_erase(ICL/functors.hpp)

coding-style callable functor

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

对象 std::cout 是如何构造/实例化的

所以 std::cout 是一个对象。我的疑问是它是如何/在哪里构建/实例化的。

谢谢。

c++

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

段错误的好奇案例

我在c ++程序中遇到了一个奇怪的segfault案例.我能用小代码重现它,但不明白它为什么会发生.这是代码:

a.hpp:

#pragma once
#include <boost/shared_ptr.hpp>
#include "b.hpp"

class A
{
    public:
        explicit A ();    
    private:
        std::string str1_;
        B b_;
        std::string str2_;
};

typedef boost::shared_ptr< A > A_ptr;
Run Code Online (Sandbox Code Playgroud)

a.cpp

#include "a.hpp"
A::A () {}
Run Code Online (Sandbox Code Playgroud)

b.hpp

#pragma once
#include <string>

class B
{   
    public:
        B ();
    private:
        std::string str1_;
};   
Run Code Online (Sandbox Code Playgroud)

b.cpp

#include "b.hpp"    
B::B () {}
Run Code Online (Sandbox Code Playgroud)

main.cpp中

#include "a.hpp"

int main ()
{
    A_ptr a( new A() );
}
Run Code Online (Sandbox Code Playgroud)

make的输出:

% make
g++ -Wall -Wextra -g -fno-inline -O0 …
Run Code Online (Sandbox Code Playgroud)

c++ segmentation-fault

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