小编Let*_*t4U的帖子

从INI文件获取设置和配置以进行金字塔功能测试

在一个真正的金字塔应用程序中,它不适用于每个文档http://docs.pylonsproject.org/projects/pyramid//en/latest/narr/testing.html:

class FunctionalTests(unittest.TestCase):
    def setUp(self):
        from myapp import main
        app = main({})
Run Code Online (Sandbox Code Playgroud)

例外:

Traceback (most recent call last):
  File "C:\projects\myapp\tests\model\task_dispatcher_integration_test.py", line 35, in setUp
    app = main({})
  File "C:\projects\myapp\myapp\__init__.py", line 207, in main
    engine = engine_from_config(settings, 'sqlalchemy.')
  File "C:\projects\myapp\ve\lib\site-packages\sqlalchemy\engine\__init__.py", line 407, in engine_from_config
    url = options.pop('url')
KeyError: 'url'
Run Code Online (Sandbox Code Playgroud)

原因很简单:传递一个空字典main,虽然看起来在运行真实应用程序(从__init__.py)时它会settings预先填充来自/的[app:main]部分的值:development.iniproduction.ini

settings {'ldap_port': '4032', 'sqlalchemy.url': 'postgresql://.....}
Run Code Online (Sandbox Code Playgroud)

是否有某种方法settings可以轻松地从.ini文件中进行功能测试?

python pylons configparser pyramid

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

图例中补丁的水平布局(matplotlib)

我以这种方式在我的图表中创建传奇:

legend_handles.append(matplotlib.patches.Patch(color=color1, label='group1'))
legend_handles.append(matplotlib.patches.Patch(color=color2, label='group2'))
ax.legend(loc='upper center', handles=legend_handles, fontsize='small')
Run Code Online (Sandbox Code Playgroud)

这会导致图例项目垂直堆叠(从上到下),而我想将它们从左到右水平放置.

我怎样才能做到这一点?

(matplotlibv1.4.3)

python matplotlib

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

熊猫dataframe.loc方法太慢

我有一个带有+ 100K行的数据框,如下所示:

   user  document
0  john      book
1  jane   article
2  jane      book
3  jane      book
4   jim   article
5  john      book
6   jim  blogpost
7  jane  blogpost
8  jane  blogpost
9  jane  blogpost
Run Code Online (Sandbox Code Playgroud)

我需要这样的数据框:

      blogpost  article  book
john         1        3     0
jane         0        0     1
jim          4        0     2
Run Code Online (Sandbox Code Playgroud)

也就是说,每个user, document组合都需要下载数量。

我正在做.groupby(['user', 'document']),然后df.loc用来设置下载数量:

df = pd.DataFrame(index=users, columns=documents)
df.fillna(0, inplace=True)

grouped = records.groupby(['user', 'document'])
for elem in grouped:
    user, document = elem[0]
    downloads = …
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

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

优雅的拆包可变长度元组

一个真实的,如果很愚蠢的问题:

https://github.com/joshmarshall/tornadorpc/blob/master/tornadorpc/base.py

def start_server(handlers, ...):
    ...
    for (route, handler) in handlers:
        ...
Run Code Online (Sandbox Code Playgroud)

通常,“处理程序”是2元素元组的列表。但是通过这种特定的解决方案(Tornado),您可以将第三个参数传递给特定的处理程序(kw args)。因此,“处理程序”中的元组有时可能具有2个元素,而其他时候可能具有3个元素。

我需要将其循环展开。当然,除了拆箱外,我可以做一些类似长度检查或尝试..的工作。啊。

您能想到比这个更好/更聪明的东西吗:

In [8]: handlers
Out[8]: [(1, 2), (3, 4, 5), (6, 7)]


In [9]: new_handlers = [x + (None,) for x in handlers]
Run Code Online (Sandbox Code Playgroud)

python tuples

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

高效追加可变长度的字符串容器(Golang)

问题:

我需要将多个正则表达式应用于大日志文件的每一行(如几GB长),收集非空匹配并将它们全部放在一个数组中(用于序列化并通过网络发送).

如果对这个问题的答案成立,切片并没有多大帮助:

如果切片没有足够的容量,则追加将需要分配新内存并复制旧内存.对于具有<1024个元素的切片,它将使容量加倍,对于具有> 1024个元素的切片,它将增加因子1.25.

由于可能有数十万个正则表达式匹配,我无法真正预测切片的长度/容量.我不能把它变得太大"以防万一"bc这会浪费内存(或者它会吗?如果内存分配器足够聪明不分配太多未写入的内存,也许我可以使用巨大的切片容量没有太大的伤害?).

所以我正在考虑以下替代方案:

  1. 有一个双重链接的匹配列表(http://golang.org/pkg/container/list/)
  2. 计算它的长度(会len()起作用吗?)
  3. 预先分配这个容量的一部分
  4. 将字符串指针复制到此切片

在Go中是否有一种不太费力的方法来实现这个目标(附加~O(1)追加复杂性)?

(golang新手当然在这里)

containers go slice

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

使用os.O_CREATE时读取默认的FileMode

我是Go的新手,在阅读默认文件权限/系统掩码时遇到一些问题.当然我可以指定固定权限:

f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY, 0600)
Run Code Online (Sandbox Code Playgroud)

但是我希望程序能够很好地运行,并使用用户的帐户集打开一个文件umask.我怎样才能做到这一点?

umask go

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

Haskell类型系统的本质:静态/动态,手动/推断?

我正在学习Haskell,并试图掌握Haskell类型系统究竟是如何工作的,重新确定事物的类型:动态,静态,手动设置,推断?

语言我知道一点:

  • C,Java:由程序员手动设置,在编译时验证,如int i;强类型(从字符串中减去整数是编译错误).典型的静态类型系统.

  • Python:运行时自动推断的类型(动态类型),强类型(intstr引发异常中减去).

  • Perl,PHP:在运行时自动推断类型(动态类型),弱类型.

  • Haskell:类型通常在编译时自动推断(在编译时,程序员明确设置此类型或类型),强类型.

Haskell的类型系统真的值得描述"静态"吗?我的意思是自动类型推断不是(经典的)静态类型.

haskell type-systems static-typing typing dynamic-typing

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

Python + Selenium + PhantomJS脚本中的Javascript警报

我尝试使用Python脚本"点击"用于DSL调制解调器中的重新启动确认的Javascript警报,如下所示:

#!/usr/bin/env python

import selenium
import time
from selenium import webdriver

cap = {u'acceptSslCerts': True,
u'applicationCacheEnabled': True,
u'browserConnectionEnabled': True,
u'browserName': u'phantomjs',
u'cssSelectorsEnabled': True,
u'databaseEnabled': False,
u'driverName': u'ghostdriver',
u'driverVersion': u'1.1.0',
u'handlesAlerts': True,
u'javascriptEnabled': True,
u'locationContextEnabled': False,
u'nativeEvents': True,
u'platform': u'linux-unknown-64bit',
u'proxy': {u'proxyType': u'direct'},
u'rotatable': False,
u'takesScreenshot': True,
u'version': u'1.9.8',
u'webStorageEnabled': False}


driver = webdriver.PhantomJS('/usr/lib/node_modules/phantomjs/bin/phantomjs', desired_capabilities=cap)
driver.get('http://username:passwd@192.168.1.254')
sbtn = driver.find_element_by_id('reboto_btn')
sbtn.click()
time.sleep(4)
al = driver.switch_to_alert()

print al.accept()
Run Code Online (Sandbox Code Playgroud)

但是,即使我确实插入,我也会handlesAlerts在下面粘贴异常desired_capabilities.

我该如何解决这个问题?异常的原因是什么?

例外:

---------------------------------------------------------------------------
WebDriverException                        Traceback (most recent call last)
/usr/local/bin/pjs/asus_reboot.py …
Run Code Online (Sandbox Code Playgroud)

javascript python selenium webdriver phantomjs

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

从Visual Studio代码中启动TypeScript程序:“无法启动程序'hw.ts',因为找不到相应的JavaScript。”

我有hw.ts与此内容相关的文件:

function greeter(x: string) {
    return "Hello" + x;
}

let u = "John";
document.body.innerHTML = greeter(u);
Run Code Online (Sandbox Code Playgroud)

我选择Start without debugging,VSCode说:

Cannot launch program 'hw.ts' because corresponding JavaScript cannot be found.
Run Code Online (Sandbox Code Playgroud)

OK,所以我从命令行编译文件:

tsc hw.ts
Run Code Online (Sandbox Code Playgroud)

现在我hw.js相同的文件夹。

所以我再次选择Start without debugging,VSCode再次说Cannot launch program 'hw.ts' because corresponding JavaScript cannot be found.

有什么方法可以从VSCode编译和运行TypeScript程序吗?我想念什么?

(我有node我的PATH,它应该是可见的VSCode)

javascript typescript visual-studio-code

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

Nim 中类似 Go 的并行性?

我在 Go 中喜欢但在 Nim 中似乎还找不到的一件事是类似 Go 的“修改后的 CSP”类并行。

我什至还没有开始学习 Nim,现在只是考虑我的选择。我非常喜欢 Go 模型,但 Nim 似乎只有线程。

除了 Nim 中的线程之外,是否有一些包可以合理地用于并行?

有没有计划在 Nim 语言中引入这样的模型,比如 Go 或 Erlang 模型(如果我理解正确的话,演员模型),广泛地本着消息传递的精神?

nimrod nim-lang

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