小编koj*_*iro的帖子

如何将extras_require放入setup.cfg

setuptools 30.3.0引入了声明性包配置,使我们可以将以前直接传递给文件的大多数选项setuptools.setup放入setup.cfg文件中。例如,给出以下setup.cfg:

[metadata]
name = hello-world
description = Example of hello world

[options]
zip_safe = False
packages =
  hello_world
install_requires =
  examples
  example1
Run Code Online (Sandbox Code Playgroud)

仅包含一个setup.py

import setuptools
setuptools.setup()
Run Code Online (Sandbox Code Playgroud)

会做所有正确的事情。

但是,我无法找出的正确语法extras_require。在setupargs中,它是一个字典,例如

setup(extras_require={'test': ['faker', 'pytest']})
Run Code Online (Sandbox Code Playgroud)

但是我找不到在setup.cfg中使用的正确语法。我尝试阅读文档,但是找不到那里的setuptools期望的正确语法。我也尝试了一些猜测

[options]
extras_require =
  test=faker,pytest
Run Code Online (Sandbox Code Playgroud)

它失败。

Traceback (most recent call last):
  File "./setup.py", line 15, in <module>
    'pylint',
  File "/lib/site-packages/setuptools/__init__.py", line 128, in setup
    _install_setup_requires(attrs)
  File "/lib/site-packages/setuptools/__init__.py", line 121, in _install_setup_requires
    dist.parse_config_files(ignore_option_errors=True)
  File "/lib/python3.6/site-packages/setuptools/dist.py", line 495, in parse_config_files
    self._finalize_requires() …
Run Code Online (Sandbox Code Playgroud)

python declarative setuptools

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

如何使用环境变量建立 psycopg2 连接?

我对psycopg2 文档感到困惑,它说:

另请注意,可以使用环境变量将相同的参数传递给客户端库。

我希望如果我导出了环境变量以便我可以使用 进行连接psql,那么我应该能够使用 psycopg2 以相同的方式建立连接。但情况似乎并非如此。

例如,在容器中运行一个全新的 postgresql:

$ docker port frosty_lichterman 5432
0.0.0.0:32768
$ export PGHOST=localhost PGUSER=postgres PGPORT=32768
Run Code Online (Sandbox Code Playgroud)

我现在可以使用 psql 进行连接,而无需提供任何显式连接字符串:

$ psql -c 'select 1;'
 ?column?
----------
        1
(1 row)
Run Code Online (Sandbox Code Playgroud)

但在 python 中,我不能:

>>> import psycopg2 as p
>>> c = p.connect()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/michaels/.local/share/virtualenvs/Apps-XhIvHnVr/lib/python2.7/site-packages/psycopg2/__init__.py", line 127, in connect
    raise TypeError('missing dsn and no parameters')
TypeError: missing dsn and no parameters
Run Code Online (Sandbox Code Playgroud)

即使我可以使用 Python …

python postgresql psycopg2 libpq

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

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

Magento在保存客户地址时是否会发送活动?

app/code/core/Customer/etc/config.xml 在Magento保存地址之前和之后注册观察员:

<events>
    <customer_address_save_before>
        <observers>
            <customer_address_before_save_viv_observer>
                <class>customer/observer</class>
                <method>beforeAddressSave</method>
            </customer_address_before_save_viv_observer>
        </observers>
    </customer_address_save_before>
    <customer_address_save_after>
        <observers>
            <customer_addres_after_save_viv_observer>
                <class>customer/observer</class>
                <method>afterAddressSave</method>
            </customer_addres_after_save_viv_observer>
        </observers>
    </customer_address_save_after>
</events>
Run Code Online (Sandbox Code Playgroud)

......但我找不到任何证据证明Magento实际上在任何地方派遣了这些事件:

$ grep -RF 'dispatchEvent(' . | grep -F customer_addres
./app/code/core/Mage/Customer/Model/Address/Abstract.php:        Mage::dispatchEvent('customer_address_format', array('type' => $formatType, 'address' => $this));
Run Code Online (Sandbox Code Playgroud)

据我所知Mage::dispatchEvent(…),Magento解雇事件的唯一方法.这些事件真的发生了吗?(我希望如此,因为我真的可以使用一些在地址上发射的事件来节省时间.)

php events magento

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

将多行字符串读入数组时出错?

我使用以下bash代码想要将多行字符串读入数组.我希望每个数组元素对应一个字符串的一行.

mytext="line one
line two
line three"
IFS=$'\n' read -a lines <<<"${mytext}"
echo "len=${#lines[@]}"
for line in "${lines[@]}"
do
   echo "[$line]"
done
Run Code Online (Sandbox Code Playgroud)

我希望"len"应该等于3,并且"lines"数组应该正确初始化.但是,我得到了以下结果:

len=1
[line one]
Run Code Online (Sandbox Code Playgroud)

我使用了错误的"IFS"吗?bash代码中有哪些错误?提前致谢.

arrays bash

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

Python中timeit模块中的-s标志是什么?

来自Python Cookbook

python timeit.py -s"import random" -s"x=range(100000); random.shuffle(x)" "sorted(x)"
10 loops, best of 3: 152 msec per loop
Run Code Online (Sandbox Code Playgroud)

什么是-s标志吗?在线搜索,python帮助和SO.但没有找到一个好的解释.谢谢.

python

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

如何解释 JIRA 累积创意 vs 解析图

最近我开始注意到我们以某种方式解决了比我们创建的更多的工单。由于这似乎是矛盾的,我只能得出两个结论:

  1. JIRA 中存在一个错误。
  2. 我不明白它实际上是什么图形。

……或者两者都有,我想。这是今天早上的图表截图:

从 JIRA 创建与解析图

(正在绘制的过滤器是一个自定义过滤器。我不知道这是否相关。)

除了“lol JIRA”之外,还有其他解释吗?

jira

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

我应该提交还是忽略Terraform本地模块符号链接?

Terraform可能会在.terraform目录中创建一些文件.

  1. .tfstate文件,它是一个包含状态的json文件.我可以为此审查这个问题.
  2. .tfstate备份,我很确定我可以.gitignore.
  3. modules目录,包含模块的链接.

terraform get如果我使用本地模块,该命令将为我的本地模块路径创建符号链接.那些路径名称是哈希,比如

7a1d2376c59a613c3888163f019b98c1@ -> /Users/michael/dev/a-project/terraform/modules/netpart
dc86adf2084ae95b189765d26b75702d@ -> /Users/michael/dev/a-project/terraform/modules/cluster
e03511e017c5612ae4b9e9ebc49d4611@ -> /Users/michael/dev/a-project/terraform/modules/cluster
eb8c48ae43e85626ff456d0a58a6a6a6@ -> /Users/michael/dev/a-project/terraform/modules/netpart
Run Code Online (Sandbox Code Playgroud)

所有这些文件都在同一个仓库中.当一个同事克隆了那个仓库时,他注意到运行terraform get导致了新的符号链接,即使模块没有改变.

我要补充的.terraform /模块目录的.gitignore并要求所有的开发人员运行terraform get任何时候他们git pull

git version-control terraform

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

sed循环内的参数

我试图了解sed命令和循环.我需要参考文本的一部分(20行)并将其附加到文件名的csv.这是我的代码

for i in ~/mspl/*.doc
do 
    catdoc "$i" > auto.txt
    sed -e '1,20!d' auto.txt > auto1.txt
    sed -e '1s/^/"$i" ;/' auto1.txt > auto2.txt
    sed -e '20s/$/~/' auto2.txt > auto3.txt
    cat auto3.txt >> lines.csv
done
Run Code Online (Sandbox Code Playgroud)

问题是我的第二个"i"参数没有转换为csv中的文件名.

在线

sed -e '1s/^/"$i" ;/' auto1.txt > auto2.txt
Run Code Online (Sandbox Code Playgroud)

请告诉我这里的错误是什么?

linux bash loops sed

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

多行写入失败(权限被拒绝)

我想将一个多行字符串写入一个只能以root权限访问的文件.

这是我到目前为止:

sudo cat > /etc/init/myservice.conf <<EOL
start on runlevel [2345]

stop on runlevel [06]

respawn

script

    cd ~/somefolder

    . venv/bin/activate

    exec python manage.py runserver 0.0.0.0:8080

end script
EOL
Run Code Online (Sandbox Code Playgroud)

当这个命令时,我得到的只是"Permission Denied".手动创建文件有效.

linux bash ubuntu

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