小编Leo*_*lán的帖子

仅当文件存在时,Ansible包括任务

我正在尝试仅在文件存在时包含文件.如果我的角色的用户需要,这允许现有"任务/角色"之间的自定义"任务/角色".我找到了这个:

- include: ...
  when: condition
Run Code Online (Sandbox Code Playgroud)

但Ansible文档指出:

"评估所有任务,但条件适用于每项任务" - http://docs.ansible.com/playbooks_conditionals.html#applying-when-to-roles-and-includes

所以

- stat: path=/home/user/optional/file.yml
  register: optional_file
- include: /home/user/optional/file.yml
  when: optional_file.stat.exists
Run Code Online (Sandbox Code Playgroud)

如果包含的文件不存在,则会失败.我想可能还有另一种允许用户将任务添加到现有配方的机制.我不能让用户在我之后添加一个角色,因为他们无法控制订单:他们的角色将在我之后执行.

ansible

31
推荐指数
4
解决办法
5万
查看次数

选择2自定义匹配器,但保持stripDiacritics

我知道在select2的早期版本中,stripDiacritics已导出,因此可以在默认匹配器之外访问它.在当前版本4.0.1中,似乎不可能编写自定义匹配器并使用select2的stripDiacritics,因为不会导出$.fn.select2.defaults

什么是我可以拉原始文件stripDiacritics来编写自定义匹配器的最佳方法?

我正在尝试编写一个匹配选项文本和数据属性的匹配器.我试图避免修补select2的源代码,我想如果我遵循那条道路将是噩梦.

更新

我已经突出显示了实际问题,并根据我正在使用的代码发布了其他详细信息,如评论中所示:

我不是要求有人为我编写新的匹配器(基于$.fn.select2.defaults.defaults.matcher),我只是要求最好的方法来拉出stripDiacritics私有的原始,以便我可以使用它.

我可以,只需将函数(以及它的依赖项:DIACRITICS对象)复制到我的代码中,但那是我试图避免的漏洞.

javascript jquery-select2

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

Ansible apt build-dep:"没有包装匹配..."

我正在基于如何安装unrar-nonfree在Raspbian上安装unrar-nonfree?( raspberrypi.stackexchange.com )但使用Ansible.我使用ansibles:apt_repository成功添加了apt存储库,当存在更改时,它会更新缓存(默认值).在我试图运行后的中立:

sudo apt-get build-dep unrar-nonfree
Run Code Online (Sandbox Code Playgroud)

但是与ansible相当:

- apt:
    pkg: unrar-nonfree
    state: build-dep
Run Code Online (Sandbox Code Playgroud)

除此之外失败: fatal: [192.168.2.3]: FAILED! => {"changed": false, "failed": true, "msg": "No package matching 'unrar-nonfree' is available"}

失败的扩展(-vvv)日志:

TASK [unrar-nonfree : apt] *****************************************************
task path: /Users/leonelgalan/Work/ansible-pi/roles/unrar-nonfree/tasks/main.yml:12
<192.168.2.2> ESTABLISH SSH CONNECTION FOR USER: leonelgalan
<192.168.2.2> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=leonelgalan -o ConnectTimeout=10 -o ControlPath=/Users/leonelgalan/.ansible/cp/ansible-ssh-%h-%p-%r -tt 192.168.2.2 '/bin/sh -c '"'"'( umask 22 …
Run Code Online (Sandbox Code Playgroud)

unrar raspbian ansible

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

IRB - Ruby 1.9.x哈希语法:{if:true}不等于{:if => true}

简而言之,我正在编写一个包含选项参数的方法,如果键的值为:if,则会执行某些操作.当我使用新语法在IRB中尝试哈希时,我在IRB中遇到语法错误,提示保持打开状态:

1.9.3p374 :010 > {if: true}
1.9.3p374 :011?>
Run Code Online (Sandbox Code Playgroud)

使用旧的语法,工作得很好:

1.9.3p374 :011 > {:if => true}
 => {:if=>true} 
Run Code Online (Sandbox Code Playgroud)

所有启动语句的关键字都表现出相同的行为.例如def,do,module,case

发生在中部和其它保留字class的工作就好了:else,end

我的问题是:这是预期的行为,错误还是限制?

ruby hash irb ruby-1.9 ruby-1.9.3

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

Rails redirect_to丢失了https协议,并转至http

redirect_to example_path在控制器中使用时,协议会更改为http。我希望协议保持与原始请求相同,例如,如果我使用https,我想重定向到https:// example_path ...,如果我使用http,我想重定向到http:// example_path ...

我知道我可以使用,config.force_ssl = true但我希望ssl是可选的。

ssl ruby-on-rails

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

将<div>添加到"每个块",每个2个结果使用rails 3

我有一个块,如:

<% for f in @following %>
 <div class="span6">
  <%= f.name %>
 </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

HTML结果:

<div class="span6"> John</div>
<div class="span6"> kevin</div>
<div class="span6"> Peter</div>
<div class="span6"> Andrew</div>
.
.
.
Run Code Online (Sandbox Code Playgroud)

我想添加<div class="row"></div>每2个结果,如:

<div class="row">
 <div class="span6"> John</div>
 <div class="span6"> kevin</div>
</div>
<div class="row">
 <div class="span6"> Peter</div>
 <div class="span6"> Andrew</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我希望每行显示2个结果.我该怎么做?

ruby-on-rails

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

nltk 的 RegexpParser 中的递归

基于NLTK Book 第 7 章中语法

grammar = r"""
      NP: {<DT|JJ|NN.*>+} # ...
"""
Run Code Online (Sandbox Code Playgroud)

我想扩展NP(名词短语)以包含由CC(并列连词:)或,(逗号)连接的多个NP以捕获名词短语,例如:

  • 房子和树
  • 苹果、橙子和芒果
  • 汽车、房子和飞机

我无法将修改后的语法捕获为单个NP

import nltk

grammar = r"""
  NP: {<DT|JJ|NN.*>+(<CC|,>+<NP>)?}
"""

sentence = 'The house and tree'
chunkParser = nltk.RegexpParser(grammar)
words = nltk.word_tokenize(sentence)
tagged = nltk.pos_tag(words)
print(chunkParser.parse(tagged))
Run Code Online (Sandbox Code Playgroud)

结果是:

(S (NP The/DT house/NN) and/CC (NP tree/NN))
Run Code Online (Sandbox Code Playgroud)

我试过将NP移到开头:NP: {(<NP><CC|,>+)?<DT|JJ|NN.*>+}但我得到了相同的结果

(S (NP The/DT house/NN) and/CC (NP tree/NN))
Run Code Online (Sandbox Code Playgroud)

python nlp nltk

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

熊猫:帮助转换数据并编写更好的代码

我有两个数据源,可以按一个字段加入这些数据源,并希望在图表中进行汇总:

数据

两个DataFrames共享列A

ROWS = 1000
df = pd.DataFrame.from_dict({'A': np.arange(ROWS),
                             'B': np.random.randint(0, 60, size=ROWS),
                             'C': np.random.randint(0, 100, size=ROWS)})
df.head()
Run Code Online (Sandbox Code Playgroud)
   A   B   C
0  0  10  11
1  1   7  64
2  2  22  12
3  3   1  67
4  4  34  57
Run Code Online (Sandbox Code Playgroud)

other我这样加入:

   A   B   C
0  0  10  11
1  1   7  64
2  2  22  12
3  3   1  67
4  4  34  57
Run Code Online (Sandbox Code Playgroud)
   A   B   C    D
0  0  10  11  One
1 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

Rails对JSON中的HTML编码不同,相同版本

我在Heroku的两台服务器上运行相同的(Rails 4.2.7.1)应用程序,其中一台正在按预期工作:

ActiveSupport::JSON.encode(html: '<p>Hello World</p>')
#=> "{\"html\":\"<p>Hello World</p>\"}
Run Code Online (Sandbox Code Playgroud)

在第二台服务器上运行的相同代码会产生不同的结果:

ActiveSupport::JSON.encode(html: '<p>Hello World</p>')
#=> "{\"html\":\"\\u003cp\\u003eHello World\\u003c/p\\u003e\"}"
Run Code Online (Sandbox Code Playgroud)

这两台服务器都具有相同的Ruby(ruby 2.2.6p396),从我收集的数据来看ENV['LANG'],它们在编码中起着作用,但是两台服务器在其中存储了相同的值:"en_US.UTF-8"

谢谢你的帮助。

其他详细信息:这两个服务器生成的字符串均使用UTF-8编码。

ActiveSupport::JSON.encode(html: '<p>Hello World</p>').encoding
=> #<Encoding:UTF-8>
Run Code Online (Sandbox Code Playgroud)

json ruby-on-rails heroku

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