小编Fer*_*mac的帖子

阻止Android活动对话框关闭外部触摸

我有一个使用Theme.Dialog样式的活动,这是一个浮动窗口,而不是另一个活动.但是,当我在对话框窗口外部(在背景活动上)单击时,对话框将关闭.我怎么能阻止这种行为?

java android dialog touch android-activity

208
推荐指数
14
解决办法
15万
查看次数

在Java中以HTTP格式获取日期

我正在尝试以HTTP 1.1中指定的格式获取Java中的日期字符串.据我所知,这是:

1999年12月31日星期五,格林威治标准时间23:59:59

随着时间一直是格林尼治标准时间.

什么是最简单的方法从日期/日历/?

java time date http

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

Numpy数组与权重相加

我有一个二维numpy数组.

每行长三个元素,整数为0-3.这表示6位整数,每个单元按顺序表示两位.

我正在尝试将它们转换为完整的整数.

例如

for i in range(len(myarray)):
  myarray[i] = myarray[i][0] * 16 + myarray[i][1] * 4 + myarray[i][2]
Run Code Online (Sandbox Code Playgroud)

例如,我试图对每一行求和,但是根据[16,4,1]的某个权重向量.

这样做最优雅的方法是什么?我想我必须做一些点积然后加一个总和,但我不是百分之百有信心在哪里做点.

python arrays numpy

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

两个基本的ANTLR问题

我正在尝试使用ANTLR来获取简单的语法并生成汇编输出.我在ANTLR中选择的语言是Python.

许多教程似乎非常复杂或精心处理与我无关的事情; 我只需要一些非常简单的功能.所以我有两个问题:

将值从一个规则"返回"到另一个规则.

所以,假设我有一条规则:

赋值:name = IDENTIFIER ASSIGNMENT表达式;

当识别此​​规则时,我可以在{}中运行Python代码,并且我可以通过执行以下操作将args传递给Python代码以进行表达:

赋值:name = IDENTIFIER ASSIGNMENT表达式[variablesList];

然后

表达式[variablesList]:等等等等

但是,我如何"返回"原始规则的值?例如,我如何计算表达式的值,然后将其发送回我的分配规则以在Python中使用?

如何写出目标语言代码?

所以我有一些Python在规则被识别时运行,然后我计算我希望该语句产生的程序集.但是我如何说"将这个汇编指令字符串写入我的目标文件"?

任何与这种东西相关的好教程(属性语法,编译成AST以外的东西等)也会有所帮助.如果我的问题没有太大意义,请让我澄清一下; 我很难缠绕在ANTLR周围.

python assembly antlr

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

使用 setup.py 从 git at tag 安装 python 包

我在私有 git 仓库中有一个包 (foo)。我想通过 bar 的 setup.py 安装 foo 以供另一个包 bar 使用。我想要一个特定的版本 - setup.py 中 foo 的版本匹配它的 git 标签(0.3.2,git 标签是 v0.3.2)

bar 的 setup.py 如下所示:

#!/usr/bin/env python
  
from setuptools import setup, find_packages

setup(name='bar',
        install_requires=['foo@ git+ssh://git@github.com/fergusmac/foo.git@v0.3.2#subdirectory=somedir']
    )
Run Code Online (Sandbox Code Playgroud)

我还尝试在最后明确添加版本:

install_requires=['foo@ git+ssh://git@github.com/fergusmac/foo.git@v0.3.2#subdirectory=somedir==0.3.2']
Run Code Online (Sandbox Code Playgroud)

我目前在我的 venv 中安装了 0.3.1 版。当我尝试安装这个 setup.py 时,通过pip install .,或者pip install . -U版本没有升级 - 甚至没有检出 repo:

Requirement already satisfied, skipping upgrade: foo@ git+ssh://git@github.com/fergusmac/foo.git@v0.3.2#subdirectory=src==0.3.2 from 
git+ssh://****@github.com/fergusmac/foo.git@v0.3.2#subdirectory=src==0.3.2 in 
./venv/lib/python3.8/site-packages (from bar==0.0.0) (0.3.1)
Run Code Online (Sandbox Code Playgroud)

但是,当我直接使用pip安装foo时,升级就完成了:

pip install git+ssh://git@github.com/fergusmac/foo.git@v0.3.2#subdirectory=src

Collecting git+ssh://****@github.com/fergusmac/foo.git@v0.3.2#subdirectory=src
  Cloning ssh://****@github.com/fergusmac/foo.git …
Run Code Online (Sandbox Code Playgroud)

python git pip setuptools setup.py

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

为什么来自 Google Secret Manager API 的 gRPC 调用在 Apache 运行时挂起?

简而言之:

我有一个由 Apache 在 Google Compute Engine VM 上提供的 Django 应用程序。

我想在我的 Python 代码中访问来自 Google Secret Manager 的秘密(当 Django 应用程序初始化时)。

当我执行“python manage.py runserver”时,成功检索到秘密。但是,当我让 Apache 运行我的应用程序时,它会在向秘密管理器发送请求时挂起。

太多细节:

我遵循了这个问题的答案GCP VM Instance is not able to access Secrets from Secret Manager 尽管有适当的 Roles。我创建了一个服务帐户(不是默认帐户),并为其指定了“云平台”范围。我还在 Web 控制台中为其授予了“Secret Manager Admin”角色。

最初遇到麻烦后,我从 Web 控制台下载了服务帐户的 json 密钥,并将 GOOGLE_APPLICATION_CREDENTIALS env-var 设置为指向它。

当我直接在虚拟机上运行 django 服务器时,一切正常。当我让 Apache 运行应用程序时,我可以从日志中看到服务帐户凭据 json 已成功加载。

但是,当我通过 google.cloud.secretmanager.SecretManagerServiceClient.list_secret_versions 进行第一次 API 调用时,应用程序挂起。我的浏览器中甚至没有出现 500 错误,只有一个永恒的加载图标。我追踪执行情况如下:

grpc._channel._UnaryUnaryMultiCallable._blocking,第 926 行:'call = self._channel.segrelated_call(...'

它永远不会越过那条线。我无法弄清楚该调用去了哪里,因此我无法进一步检查它。

想法

我不太了解 GCP 服务帐户/API 访问。我无法理解为什么 django …

python apache django google-cloud-platform google-secret-manager

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

这段代码中的Python优化?

我有两个相当简单的代码片段,我正在运行它们很多次; 我正在尝试确定是否可以进行任何优化以加快执行时间.如果有什么东西可以做得更快,可以做得更快......

在第一个中,我们有一个列表,字段.我们还有一个列表,权重列表.我们试图找出哪个权重列表乘以字段将产生最大总和.Fields大约有30k条目.

def find_best(weights,fields):
  winner = -1
  best = -float('inf')
  for c in range(num_category):
    score = 0
    for i in range(num_fields):
      score += float(fields[i]) * weights[c][i]
    if score > best:
      best = score
      winner = c
  return winner
Run Code Online (Sandbox Code Playgroud)

在第二个中,我们试图更新两个重量列表; 一个增加,一个减少.增加/减少每个元素的数量等于字段中的对应元素(例如,如果字段[4] = 10.5,那么我们希望将权重[toincrease] [4]增加10.5并减少权重[todecrease] [4 ] 10.5)

 def update_weights(weights,fields,toincrease,todecrease):
   for i in range(num_fields):
     update = float(fields[i])
     weights[toincrease][i] += update
     weights[todecrease][i] -= update
   return weights
Run Code Online (Sandbox Code Playgroud)

我希望这不是一个过于具体的问题.

python optimization

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

SQL中SELECT*的任何缺点?

假设我有一个执行SQL的程序,我想在表中查询A,B和C列中的值(假设有些列我并不严格需要).SELECT*和SELECT A,B,C之间有什么区别?

我的想法到目前为止.仅选择您需要的列:

  • ...将需要更少的内存来存储结果.
  • ...可能会使解析程序中的结果更容易一些.
  • ...将不会更快,除非所选列都可以使用覆盖索引检索.

我觉得可能还有其他问题在起作用.

sql select

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