小编ber*_*eal的帖子

在Boost python中评估None对象

我正在将(大多数)浮动列表传递给boost python中的模块,某些元素是None对象。在C ++代码中,我像这样提取浮点数:

for(i=0;i<boost::python::len(list) - window_len + 1;i++) {
  double value = boost::python::extract<double>(list[i]);
}
Run Code Online (Sandbox Code Playgroud)

当list [i]指向python None对象时,这显然是有问题的。因此,我写了这样的东西:

for(i=0;i<boost::python::len(list) - window_len + 1;i++) {
  if(list[i] == NULL) continue;
  double value = boost::python::extract<double>(list[i]);
}
Run Code Online (Sandbox Code Playgroud)

for(i=0;i<boost::python::len(list) - window_len + 1;i++) {
  if(list[i] == boost::python::api::object()) continue;
  double value = boost::python::extract<double>(list[i]);
}
Run Code Online (Sandbox Code Playgroud)

因为显然boost :: python :: api :: object()的计算结果为无。但是,这些都不起作用。如何检查python None对象中的list [i]?

python boost boost-python

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

合并提交中的其他更改

假设我正在合并一个pull请求,并且还希望在更改日志中使用一行来合并:

> git merge --no-ff otherguy/feature-x
> echo "Feature: X" >> changelog
> git commit -am "Changelog update"
> git push
Run Code Online (Sandbox Code Playgroud)

在单个提交中可能有类似的事情:

> git merge --no-ff --no-commit otherguy/feature-x
> echo "Feature: X" >> changelog
> git commit -am "Merge otherguy/feature-x + changelog"
> git push
Run Code Online (Sandbox Code Playgroud)

这样相同的提交将包含合并和文件更改.

授予我从下游存储库合并时始终更新更改日志,这是一个问题:

后一种方式是明智的做法,以及后来会出现意想不到的后果吗?

更新:至于为什么我需要一个单独的文件更改日志,当我已经有一个git日志时,文件中的那个更多被修剪(条目或每个合并,不是每次提交),有时更好的措辞和某种格式(例如debian) /变化).所以,这是外部使用.

git

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

使用 Python Google API 客户端的 GMail API:错误 400,前提条件失败

我正在尝试使用Google API Python 客户端和服务帐户身份验证来访问我们的 GSuite GMail API。根据文档,我的 MCVE 代码如下:

import os
import sys
from google.auth.transport.requests import Request
from google.oauth2.service_account import Credentials
from googleapiclient.discovery import build

email = sys.argv[1]

cred = Credentials.from_service_account_file(os.getenv('SERVICE_ACCOUNT'))
cred = cred.with_scopes(['https://www.googleapis.com/auth/gmail.labels'])
cred.refresh(Request())

gmail = build('gmail', 'v1', credentials=cred)
try:
    print(gmail.users().labels().list(userId=email).execute())
except Exception as ex:
    print('Error:', ex.content.decode('ascii'))
Run Code Online (Sandbox Code Playgroud)

输出是:

Error: {
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "failedPrecondition",
    "message": "Bad Request"
   }
  ],
  "code": 400,
  "message": "Bad Request"
 }
}
Run Code Online (Sandbox Code Playgroud)

普通嫌疑犯:

  • 服务帐户被授予域范围委派
  • 所请求的电子邮件已存在
  • 客户端范围在“管理 > 安全 …

python google-api-python-client gmail-api

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

使用Erlang将整个文本文件读入变量,进行文本替换并将修改后的文件写入新目录

问题:想要将文件内容(大小小于1MB)读入Erlang变量,进行一些文本替换并将修改后的内容写入新文件.我是Erlang的新手,想要使用简单的代码而不进行错误处理(从Erlang shell中使用它).

我试过了:

File = file:read_file("pbd4e53e0.html").
Run Code Online (Sandbox Code Playgroud)

但是在使用时

string:len(File).
Run Code Online (Sandbox Code Playgroud)

我明白了

异常错误:函数长度/ 1中的错误参数在调用string:len/1(string.erl,第66行)时称为length({ok,<<">}).

下一步是做替换:

re:replace(File, "<a href=\'pa", "<a href=\'../pa/pa", [{return, list}]).
Run Code Online (Sandbox Code Playgroud)

问题1:我应该如何将文件读入Erlang变量?

问题2:更换是否正常?

erlang full-text-search file variable-assignment

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

Go:获取一个损坏的JSON字段名称

假设我正在将JSON输入解析为如下结构:

type Person struct {
        Name string `json:"name"`
        Age  uint   `json:"age"`         
}
Run Code Online (Sandbox Code Playgroud)

并传递错误的数据(string而不是int):

var person Person
err := json.Unmarshal([]byte(`{"name": "Dilbert", "age": "unknown"}`), &person)
Run Code Online (Sandbox Code Playgroud)

这是我可以从错误中提取的:

// Error json: cannot unmarshal string into Go value of type uint
fmt.Printf("Error %v\n", err) 

// Unexpected value: unknown
jerr := err.(*json.UnmarshalTypeError)
fmt.Printf("Unexpected value: %s\n", (*jerr).Value)

// Expected type: uint
fmt.Printf("Unexpected type: %v\n", (*jerr).Type)
Run Code Online (Sandbox Code Playgroud)

我还要报告哪个字段是错误的(age在我的情况下),这可能吗?

(我理解,例如,当您解析数组或标量值时,这是不适用的,但是,我希望对于对象的情况可能会有一些解决方法或技巧.)

json go

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

locals().update(字典)不会添加所有变量

我一直在使用字典对象加载变量,但值会更新.我在这里错过了什么?

assert "run_LMM" in all_variables.keys()
locals().update(all_variables)
assert "run_LMM" in locals()
Run Code Online (Sandbox Code Playgroud)

最后一行是我得到一个断言错误.这是怎么回事?

python locals

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

如何在文件中逐行读取文件?

我正在尝试学习python而我正在从一本书中解决问题,但我仍然坚持一个问题.它要求我读取一个文件,每行包含一个'a'或's',基本上我的总数是500.如果该行包含'a',它会在它旁边添加金额,例如它会说"20",它会增加20我的总数,对于s,它会减去这个数量.最后,我应该在完成所有更改之后返回总数.到目前为止我得到了

def NumFile(file:
    infile = open(file,'r')
    content = infile.readlines()
    infile.close()
    add = ('a','A')
    subtract = ('s','S')
Run Code Online (Sandbox Code Playgroud)

之后,我完全迷失了如何开始这个

python

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

键入断言接口,内部发生的事情

我很好奇当Go执行类型断言而另一个接口是其目标时,内部会发生什么.仅举例来说,请考虑Dave Cheney的博客中的这个例子:

type temporary interface {
    Temporary() bool
}

// IsTemporary returns true if err is temporary.
func IsTemporary(err error) bool {
        te, ok := err.(temporary)
        return ok && te.Temporary()
}
Run Code Online (Sandbox Code Playgroud)

我希望在这里发生很多运行时开销,因为它必须检查类型err并找出它是否具有所有方法.是这样,还是有一些聪明的魔法在下面发生?

methods interface go type-assertion

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

Cognito OAuth2 使用桌面应用程序访问代码处理

我有一个命令行应用程序,我想使用带有访问代码流和托管登录 UI 的 OAuth2 对 AWS Cognito 进行身份验证。对于类似的情况,Google Cloud 文档明确建议使用http://localhost:N重定向 URI,以便应用程序可以在身份验证后处理访问代码:

此授权流程类似于 Web 服务器应用程序所使用的授权流程。主要区别在于,安装的应用程序必须打开系统浏览器并提供本地重定向 URI 来处理来自 Google 授权服务器的响应。

但是,对于 Cognito,本地主机 URI 仅允许/建议用于测试目的:

Cognito 应用程序回调

一种替代解决方案是使用“浏览器外”URIurn:ietf:wg:oauth:2.0:oob在浏览器中显示访问代码并让用户将其复制粘贴到应用程序中,但 Cognito 似乎不支持它。

目前,我倾向于运行一个自定义的 OAuth2 回调处理程序,该处理程序只会告诉用户复制粘贴访问代码,但我认为从 Cognito 方面来看它并不真正友好。

那么,问题是:

  1. 使用 Cognito 对桌面/命令行应用程序进行身份验证并最大限度地减少用户干扰的推荐方法是什么?
  2. 如果我忽略 Cognito 关于本地主机重定向 URI 的建议,会出现什么问题?

oauth-2.0 amazon-cognito

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

Python中按属性对字典进行排序

我想知道如何在 python3 中通过“col”asc 来排序。尝试排序和 orderDict。

d = {0: {'m1': 32, 'M1': 174, 'm2': 190, 'M2': 967, 'col': 6, 'cols': [2, 6, 11, 14, 15, 16, 18]},
 1: {'m1': 50, 'M1': 580, 'm2': 588, 'M2': 960, 'col': 10, 'cols': [2, 6, 7, 10, 11, 14, 15, 16, 17, 18, 19]},
 2: {'m1': 35, 'M1': 595, 'm2': 621, 'M2': 972, 'col': 8, 'cols': [2, 6, 10, 11, 14, 15, 16, 18, 19]},
 3: {'m1': 41, 'M1': 85, 'm2': 104, 'M2': 962, 'col': …
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary tuples

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