小编Dan*_*ats的帖子

在Python TKinter中创建弹出窗口时禁用基础窗口

我有一个主框架(称之为a),还有一个弹出式Toplevel(称之为b).如何确保用户在"活着" a时无法点击任何内容b

python tkinter

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

在Javascript中模拟长按

我有一个webapp,当用户点击一个字段时,里面的文字会突出显示供他复制.但是,在Android上,这不会触发复制上下文菜单的打开,因此用户必须自己选择文本.

有没有办法以编程方式触发长按事件,以便复制/粘贴上下文菜单出现在移动浏览器上?

javascript mobile android ios

17
推荐指数
2
解决办法
1651
查看次数

捕获boto3 ClientError子类

使用下面的代码段代码,我们可以捕获AWS异常:

from aws_utils import make_session

session = make_session()
cf = session.resource("iam")
role = cf.Role("foo")
try:
    role.load()
except Exception as e:
    print(type(e))
    raise e
Run Code Online (Sandbox Code Playgroud)

返回的错误是类型botocore.errorfactory.NoSuchEntityException.但是,当我尝试导入此异常时,我得到了这个:

>>> import botocore.errorfactory.NoSuchEntityException
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named NoSuchEntityException
Run Code Online (Sandbox Code Playgroud)

我能找到捕获此特定错误的最佳方法是:

from botocore.exceptions import ClientError
session = make_session()
cf = session.resource("iam")
role = cf.Role("foo")
try:
    role.load()
except ClientError as e:
    if e.response["Error"]["Code"] == "NoSuchEntity":
        # ignore the target exception
        pass
    else:
        # this is not …
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services boto3

17
推荐指数
2
解决办法
7764
查看次数

如何让我的会话写入apache

我最近切换了服务器,现在我的主页无法正常工作.它给出了以下文字:

Warning: session_start() [function.session-start]: open(/var/lib/php/session/sess_eqbchncji8kj22f0iqa9g3v7u2, O_RDWR) failed: Permission denied (13) in /var/www/vhosts/alt.alternativedc.com/httpdocs/index.php on line 6

Warning: Unknown: open(/var/lib/php/session/sess_eqbchncji8kj22f0iqa9g3v7u2, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

我认为这意味着会话文件夹不可写,因此我在ssh-ed进入服务器后运行以下命令:

chmod o+rw /var/lib/php/session
Run Code Online (Sandbox Code Playgroud)

这似乎没有解决问题.不知道现在该怎么办......

php apache session-variables

12
推荐指数
3
解决办法
6万
查看次数

Apache Spark:java.lang.NoSuchMethodError .rddToPairRDDFunctions

sbt package运行得很好,但在spark-submit我收到错误后:

线程"main"中的异常java.lang.NoSuchMethodError:org.apache.spark.SparkContext $ .rddToPairRDDFunctions(Lorg/apache/spark/rdd/RDD; Lscala/reflect/ClassTag; Lscala/reflect/ClassTag; Lscala/math/Ordering ;)Lorg /阿帕奇/火花/ RDD/PairRDDFunctions; 在SmokeStack $ .main(SmokeStack.scala:46)位于sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)的sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Iv.:60)太阳的SmokeStack.main(SmokeStack.scala)位于org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $的java.lang.reflect.Method.invoke(Method.java:498)中的.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在org.apache.spark.spark.deploy.SparkSubmit $ .submit(SparkSubmit.scala:)org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1(SparkSubmit.scala:185)的SparkSubmit $$ runMain(SparkSubmit.scala:736) 210)org.apache.spark.deploy.SparkSubmit $ .main(SparkSubmit.scala:124)at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

这是违规行:

val sigCounts = rowData.map(row => (row("Signature"), 1)).countByKey()
Run Code Online (Sandbox Code Playgroud)

rowData是RDD Map [String,String]."签名"键存在于地图中的所有项目中.

我怀疑这可能是一个构建问题.下面是我的sbt文件:

name := "Example1"
version := "0.1"
scalaVersion := "2.11.8"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.2.0"
scalacOptions ++= Seq("-feature")
Run Code Online (Sandbox Code Playgroud)

我是Scala的新手所以也许进口不正确?我有:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import scala.io.Source
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

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

@ types/react找不到名字'HTMLDialogElement'

我遇到了一个奇怪的构建问题与打字稿和@types/react.我有两个打字稿配置文件:一个用于使用react的文件,另一个用于不使用的文件.当构建我的项目中没有使用反应的部分时,我看到以下错误:

node_modules/@types/react/index.d.ts(3508,58):错误TS2304:找不到名称'HTMLDialogElement'.node_modules/@types/react/index.d.ts(3508,78):错误TS2304:找不到名称'HTMLDialogElement'.node_modules/@types/react/index.d.ts(3782,72):错误TS2304:找不到名称'HTMLDialogElement'.node_modules/@types/react/index.d.ts(3782,92):错误TS2304:找不到名称'HTMLDialogElement'.

我能用最小的例子重现错误:

node_modules/typescript/bin/tsc typescript/foo.ts --outDir static/js/src --module none
Run Code Online (Sandbox Code Playgroud)

该文件typescript/foo.ts是我用来重现问题的最小文件,故意短:

function printNumber(n: number) {
    console.log(n);
}

let x = 3;
x *= 4;
printNumber(x);
Run Code Online (Sandbox Code Playgroud)

请注意,foo.ts没有任何参考作出任何反应.最奇怪的是,当我卸载时@types/react,错误消息消失了.

这是怎么回事?

编辑:我发现这个问题在tsc版本> 2.3.2时出现.我将tsc降级到版本2.3.2,但问题仍然存在.

javascript typescript reactjs

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

正则表达式匹配函数名称和Python中的所有参数

假设我有一个如下字符串:

"func(arg1, arg2, arg3, arg4, ..., argn)"
Run Code Online (Sandbox Code Playgroud)

编辑:此功能不是某种特定语言.它只有这种格式.如果它更容易,不要把它看作函数调用,只是一个字符串.

我想写一个正则表达式来匹配函数和每个参数.我是用Python写的.所需的输出是:

{"function" : "func", "arg" : ["arg1", "arg2", ... , "argn"]}
Run Code Online (Sandbox Code Playgroud)

编辑:虽然参数可以是函数调用,但是一旦我创建了一个有效的函数,我就可以很容易地递归地尝试将它们与相同的正则表达式匹配.通过这个我的意思是我可以用每个参数递归函数.但这并不是真的相关.我不是想创建一个解释器,只是为了识别这些论点.

以下是我对此的尝试:

import re
s = "func(arg1, arg2, arg3, arg4, argn)"
m = re.match(r"(?P<function>\w+)\s?\((?P<args>(?P<arg>\w+(,\s?)?)+)\)", s)
print m.groupdict()
Run Code Online (Sandbox Code Playgroud)

这是输出:

{'function': 'func', 'args': 'arg1, arg2, arg3, arg4, argn', 'arg': 'argn'}
Run Code Online (Sandbox Code Playgroud)

函数匹配得很好,参数集也是如此.但是,我似乎无法匹配个别论点.这是我的正则表达式的问题,还是Python正则表达式匹配的限制?

EDIT2:我知道我现在可以使用以下代码拆分参数:

d["arg"] = d["args"].split(", ")
Run Code Online (Sandbox Code Playgroud)

但我想知道我是否可以用正则表达式完成整个工作.特别是,我想知道为什么"arg"只匹配最后一个参数.

EDIT3:我想我(1)希望弄清楚为什么Python每次只匹配最后一个参数,以及(2)我是否可以在Python中进行Scheme风格的模式匹配.或者,如果在Python中存在与Scheme样式模式匹配一​​样直观的东西.我查看了ast模块,它的语法非常复杂.

python regex

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

如何使用bash/expect检查SSH登录是否有效

我的团队管理着许多服务器,公司政策规定必须每隔几周更改这些服务器上的密码.有时候,我们的官方密码数据库因任何原因都会过时(人们通常会忘记更新它),但我们有时会在几个月之后才发现这一点,因为我们并不总是使用每台服务器.

我想编写一个脚本来清除数据库中的密码,并使用这些密码每晚尝试(ssh)登录到每个服务器,并将结果发送给团队.我能够抓取数据库的登录信息,但我不知道如何检查ssh登录是否成功.

我不能使用公钥认证来完成此任务.我想要密码验证,所以我可以验证密码.

我通过指定以下文件禁用公钥验证:

PasswordAuthentication=yes
PubkeyAuthentication=no
Run Code Online (Sandbox Code Playgroud)

我对expect脚本的尝试:

# $1 = host, $2 = user, $3 = password, $4 = config file
expect -c "spawn ssh $2@$1 -F $4
expect -re \".*?assword.*?\"
send \"$3\n\"
...
send \'^D\'"
Run Code Online (Sandbox Code Playgroud)

我想也许退出状态可能表明成功了吗?但是在手册页中找不到任何东西.

ssh bash shell expect

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

Firefox 扩展请求被解释为 CORS

将我的 Chrome 扩展程序移植到 Firefox 网络扩展程序时,我无法发出任何网络请求,因为它们被同源策略阻止。

举个例子:

const headers = {"content-type": "application/json" };
window.fetch(myDomain + "/api/v3/token", { method: "GET", headers: headers });
Run Code Online (Sandbox Code Playgroud)

这失败并出现以下错误:

在此处输入图片说明

有没有办法将 Firefox 扩展配置为不考虑这些请求 CORS?相同的代码作为 Google Chrome 扩展程序工作得很好。

即使请求转到本地主机,这也是正确的。

我已经尝试使用 jquery 的$.ajax方法和 axios 库来获得相同的结果(在 Chrome 中有效,在 Firefox 中无效),所以我认为问题不限于window.fetchAPI。

编辑:我知道我可以在服务器端添加 CORS 处理程序,但我试图不这样做。为什么这在 Chrome 中有效,而在 Firefox 中无效?

编辑 2:扩展是一个弹出窗口

javascript same-origin-policy google-chrome-extension firefox-addon-webextensions

8
推荐指数
2
解决办法
2180
查看次数

用玩笑模拟 nodemailer.createTransport.sendMail

我有一些使用nodemailer模块的代码。

在路由器(router.js)中,我有

const transporter = nodeMailer.createTransport(emailArgs);
Run Code Online (Sandbox Code Playgroud)

然后在路线(/login)内我有:

...
return transporter.sendMail(mailOptions);
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用jest测试框架测试这条路线。我在模拟对sendMail. 我读了这篇关于如何使用 jest mocking 的好博文,但我收到了这个错误:

类型错误:无法读取未定义的属性“sendMail”

事实上,当我检查transporter它的值是未定义的。

这是我的测试代码(不起作用):

import request from "supertest";
import router from "./router";

jest.mock("nodemailer");

describe("", () => {
...

    test("", async () => {
        // 1 - 200 status code; 2 - check email was sent
        expect.assertions(2);

        const response = await request(router)
            .post("/login")
            // global variable
            .send({ "email": email })
            .set("Accept", "application/json")
            .expect("Content-Type", …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocking node.js nodemailer jestjs

8
推荐指数
2
解决办法
4806
查看次数