小编wuj*_*jek的帖子

Python argparse - 禁用子命令的帮助?

我在 Python 3.5.1 上使用 argparse。我不需要默认的帮助命令,因此我使用 ArgumentParser 构造函数的 add_help=False 参数禁用了它。然而,虽然应用程序的帮助命令已被删除,但子命令的帮助命令仍然存在。如何删除子命令/子解析器的帮助?

python argparse

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

在Python cmd模块中处理CTRL-C

我使用cmd模块编写了一个Python 3.5应用程序.我想要实现的最后一件事是正确处理CTRL-C(sigint)信号.我希望它的行为或多或少与Bash的行为方式相同:

  • 在光标所在的位置打印^ C.
  • 清除缓冲区以删除输入文本
  • 跳到下一行,打印提示,然后等待输入

基本上:

/test $ bla bla bla|
# user types CTRL-C
/test $ bla bla bla^C
/test $ 
Run Code Online (Sandbox Code Playgroud)

以下是作为可运行示例的简化代码:

import cmd
import signal


class TestShell(cmd.Cmd):
    def __init__(self):
        super().__init__()

        self.prompt = '$ '

        signal.signal(signal.SIGINT, handler=self._ctrl_c_handler)
        self._interrupted = False

    def _ctrl_c_handler(self, signal, frame):
        print('^C')
        self._interrupted = True

    def precmd(self, line):
        if self._interrupted:
            self._interrupted = False
            return ''

        if line == 'EOF':
            return 'exit'

        return line

    def emptyline(self):
        pass

    def do_exit(self, line):
        return True


TestShell().cmdloop()
Run Code Online (Sandbox Code Playgroud)

这几乎可行.当我按下CTRL-C时,在光标处打印^ C,但我仍然需要按回车键.然后,该precmd …

python sigint python-cmd

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

明确禁用REST服务的缓存

我将应用于Cache-Control: must-revalidate,no-cache,no-store后端REST服务的所有响应。我对此有两个问题:

  • 这样做很常见吗?出于某种原因,我认为这没有必要,但是我没有消息来源支持这一说法(尚未)。
  • 我上面提到的值真的足够,还是应该设置更多?

编辑:发现了这个:https : //devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers#cache-prevention。有人说,当没有明确配置任何内容时,浏览器可能会选择缓存,因此,是的,如果我要确保禁用缓存,就应该配置它。

rest http-caching

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

在 Docker 容器中构建 Java Gradle 项目?

我们有一个用 Gradle 构建的 Java 项目,它需要 Java 8 等。开发人员在他们的机器上有不同的 Java 版本(不同的项目,IDEA 一直对 Open JDK 很挑剔,但我们用它来运行我们的应用程序),我们希望能够轻松地使用正确的 Java 版本进行构建。

这个想法是使用 Docker 来完成任务,即使用正确的 Java 版本启动一个 docker 容器并将其用于构建(编译、测试、组装等)。

这是一个好主意吗?我该怎么办?例如,我是否告诉 Gradle 启动容器,并告诉它使用它的 javac?或者我是否启动容器,使用项目代码安装卷,然后在该容器中使用 Gradle 进行构建?这会有一个缺点,即人们需要先启动一个容器,但我想它可以被脚本化。

有没有人做这样的事情?

java openjdk gradle docker

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

绑定服务总是前台吗?

我需要foreground service为我的应用程序启动 a ,以便它继续运行,并且即使应用程序在后台也不太可能被杀死。这是一种方法,startForeground

我还需要与服务进行通信,因此我认为最简单的选择是绑定到它(我计划让它在同一进程中运行,以便能够将返回的 IBinder 强制转换为我的类,然后调用方法它)。但是,我在任何地方都找不到有关bound 的信息foreground services

阅读文档和教程,我发现其中一个标志bindServicehttps://developer.android.com/reference/android/content/Context.html#BIND_NOT_FOREGROUND,以防止服务获得前台优先级。

这是否意味着默认情况下每个bound service也是一个foreground,并且它需要通知等(文档实际上从未提及过,所以我想没有)?

如果我的应用程序使用前台服务,该应用程序可以在后台被终止吗?

android foreground-service

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

如何向“showSearch”提供 BLoC(使用 flutter_bloc)

我正在使用该包flutter_bloc进行状态管理。我想创建一个搜索屏幕,并找到了Flutter 函数,但在向我的实现创建的实例showSearch提供实例时遇到了问题。我终于成功了,但想问一下最好的方法是什么。这是代码(摘录,从放置在a 中的按钮开始):BLoCListViewSearchDelegateAppBarScaffold

class ItemSearchButton extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return IconButton(
      icon: Icon(Icons.search),
      onPressed: () {
        final itemListBloc = context.bloc<ItemListBloc>();
        showSearch(
          context: context,
          delegate: _ItemSearchDelegate(itemListBloc),
        );
      },
    );
  }
}

class _ItemSearchDelegate extends SearchDelegate<String> {
  final ItemListBloc itemListBloc;

  _ItemSearchDelegate(this.itemListBloc);

  // other overridden methods

  @override
  Widget buildSuggestions(BuildContext context) {
    return BlocProvider.value(
      value: itemListBloc,
      child: ItemListWidget(),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

基本上,调用该方法的上下文showSearch具有正确的 BLoC 实例,但它在我的实现中不可用SearchDelegate,除非我在buildSuggestions.

为什么 …

flutter bloc flutter-bloc

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

如何使用jsf.ajax.request在JSF中手动发送ajax请求

我有一个表,每行都配置了'onclick'来调用js函数 - 这部分有效.我希望该函数向我可以以某种方式定义的方法发出ajax请求.返回时,应该呈现桌子下方的div.这可能吗?我用代码尝试了JS函数:

<h:outputScript library="javax.faces" name="jsf.js" />
...
function clickAndRender() {
  jsf.ajax.request(this, event, {render: 'div-to-render'})
}
Run Code Online (Sandbox Code Playgroud)

但它当然不起作用.我不知道'source'参数的值(上面的代码使用'this')应该是什么,我也不知道应该在最后一个参数中设置什么执行.我也不知道如何定义要调用的url和'action'方法.

解决方案也可以在页面中的其他位置使用一些不可见的形式,通过点击提交.有人可以帮忙吗?

javascript ajax jsf-2

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

如何清理使用.create(OnSubscribe)方法创建的Observable

我有以下代码,Observable使用该Observable.create(OnSubscribe)方法创建自定义:

public class Main {

    public static void main(String[] args) {
        Subscription subscription = Observable
                .create(subscriber -> {
                    Timer timer = new Timer();
                    TimerTask task = new TimerTask() {

                        @Override
                        public void run() {
                            subscriber.onNext("tick! tack!");
                        }
                    };
                    timer.scheduleAtFixedRate(task, 0L, 1000L);
                })
                .subscribe(System.out::println);

        new Scanner(System.in).nextLine();
        System.err.println("finishing");

        subscription.unsubscribe();
    }
}
Run Code Online (Sandbox Code Playgroud)

Observable每秒使用一个计时器发出一个字符串.当用户按下回车键时,订阅将被取消.

但是,计时器仍然执行.我该如何取消计时器?我想某处必须有一个钩子,但我找不到它.

在.NET上,该create方法将返回一个IDisposable我可以作为我的实现来停止计时器.我不知道如何将它映射到RxJava,因为它的subscribe方法是void.

java rx-java

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

在存入返回值时使用闭包验证调用参数

我有一个关于在带有闭包的模拟调用中验证参数的问题。有时我这样做:

customerRepository.save({ Customer customer ->
        assert ...
        assert ...
    }) >> { ... some return value ... }
Run Code Online (Sandbox Code Playgroud)

等等。例如,在闭包中有多个(但不是太多)断言,并且还想存根调用以返回某些内容。我发现上面的代码不起作用,我需要从闭包中返回真实值,否则我想返回的对象将不会返回,并且测试将在其他地方失败。

我不认为这是有据可查的,有人可以说这里的规则到底是什么?

编辑:实际上,我刚刚检查过,即使不存根返回值也需要返回真实值。

spock

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

使用 Spring Boot 将依赖注入到 Logback Appenders

我正在使用Spring Boot 1.5.2with Logback,它是使用logback-spring.xml. 在那里,我定义了一个自定义类型( 的子类RollingFileAppender)的 appender,并希望注入一对 bean。

这可能吗?我天真地尝试注释 appender@Component等,但由于它是由 创建的Logback/Joran,它当然不起作用。有什么技巧可以应用吗?

如果不可能,那么实现我的目标(将 bean 从应用程序上下文插入 appender)的规范方法是什么?

spring-boot

3
推荐指数
2
解决办法
5453
查看次数