使用下面的代码片段,我已经将标签完成添加到python解释器中.
import readline
import rlcompleter
if 'libedit' in readline.__doc__:
readline.parse_and_bind("bind ^I rl_complete")
else:
readline.parse_and_bind("tab: complete")
Run Code Online (Sandbox Code Playgroud)
但是,我遇到了一个奇怪的行为,在点击TAB之后,解释器会给出重复的内容:
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> d=dict()
>>> d.
Display all 108 possibilities? (y or n)
d.__class__( d.__class__( d.__class__(
d.__class__( d.__cmp__( d.__cmp__(
d.__contains__( d.__contains__( d.__delattr__(
d.__delattr__( d.__delattr__( d.__delitem__(
d.__delitem__( d.__doc__ d.__doc__
d.__doc__ d.__eq__( d.__eq__(
d.__format__( d.__format__( d.__format__(
d.__ge__( d.__ge__( d.__getattribute__(
d.__getattribute__( d.__getattribute__( d.__getitem__( …Run Code Online (Sandbox Code Playgroud) 我写了一个简单的模块,并把文件放在下面<salt_file_roots>/_modules,内容或多或少:
# foomod.py
def foo(*args):
return {'name': 'foo', 'result': True}
Run Code Online (Sandbox Code Playgroud)
我跑了salt minion saltutil.sync_all,看到了我添加的模块的输出.我可以看到它也在minion日志中同步.
minion:
- modules.foomod
Run Code Online (Sandbox Code Playgroud)
1.我可以从附庸使用它:
$ salt-call foomod.foo
local:
----------
name:
foo
result:
True
Run Code Online (Sandbox Code Playgroud)
2.我可以将它包含在使用module.run和运行状态的状态中,它也可以工作.
3.但是,当我把它从主,出现这种情况:
$ salt minion foomod.foo
minion:
- 'foomod.foo' is not available.
Run Code Online (Sandbox Code Playgroud)
当我从主人那里打电话时,我也看到了对minion日志的调用
2014-07-29 15:30:44,290 [salt.minion ][INFO ] User root Executing command foomod.foo with jid 20140729153044256654
2014-07-29 15:30:44,291 [salt.minion ][DEBUG ] Command details {'tgt_type': 'glob', 'jid': '20140729153044256654', 'tgt': 'minion', 'ret': '', 'user': 'root', 'arg': [], …Run Code Online (Sandbox Code Playgroud) Docker GELF日志驱动程序允许env和labelslog-opts:
gelf日志记录驱动程序支持标签和env选项.它在额外字段上添加了额外的键,以下划线(_)为前缀(ref)
我想在弹性搜索输出的索引名称中使用它,但我无法弄清楚如何访问这些值或所述extra字段.
假设我有这些选项运行容器,
docker run -it \
--log-driver gelf \
--log-opt gelf-address=udp://127.0.0.1:12201 \
--log-opt tag=some-app \
--log-opt env=staging \
--log-opt labels=staging \
ubuntu:16.04 /bin/bash -c 'echo Hello World'
Run Code Online (Sandbox Code Playgroud)
我想使用env我在logstash配置中传递的值:
input {
gelf { }
}
output {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "logstash-%{env-value-here}-%{tag}-%{+YYYY.MM.dd}"
}
}
Run Code Online (Sandbox Code Playgroud)
关于使用Graylog的env /标签似乎还有另一个问题:Docker GELF驱动程序env选项
我是Rust的新手,我一直在重新解决Project Euler的问题.问题是,我意识到我一直在构建整数类型(主要是i32- i64)以适应我的陈述; for iterators,in循环,函数输入,条件等等.这是正常的吗?
我猜我在使用PE的一次性功能以及主要来自动态类型语言时做错了.
我总是尝试使用尽可能小的(或最可行的)积分类型来解决问题,我觉得我应该只i64考虑所有事情并完成它而不是那么多.
哪个是更好/推荐的方法,毯i64式类型或合理的整数类型与代码中的转换?
编辑:在我想澄清的评论之后,这不是一个代码审查查询,而是关于最佳实践和可读性问题,因为这两个选项中的哪一个是首选.我认为,在循环中没有误用时,铸造对性能的影响可以忽略不计.
不相关的PS:我正在使用一系列素数因素做P4,结果是没有回文是两个4位数素数的产物,而两个3位素数的最大值是99899