小编lar*_*sks的帖子

验证签名的git提交?

使用更新版本,git可以使用PGP密钥对单个提交(除标签外)进行签名:

git commit -m "some message" -S
Run Code Online (Sandbox Code Playgroud)

您可以git log使用--show-signature选项在输出中显示这些签名:

$ git log --show-signature
commit 93bd0a7529ef347f8dbca7efde43f7e99ab89515
gpg: Signature made Fri 28 Jun 2013 02:28:41 PM EDT using RSA key ID AC1964A8
gpg: Good signature from "Lars Kellogg-Stedman <lars@seas.harvard.edu>"
Author: Lars Kellogg-Stedman <lars@seas.harvard.edu>
Date:   Fri Jun 28 14:28:41 2013 -0400

    this is a test
Run Code Online (Sandbox Code Playgroud)

但有没有办法以编程方式验证给定提交上的签名,而不是通过grepping输出git log?我正在寻找相当于提交的提交git tag -v- 这将提供退出代码,指示给定提交是否存在有效签名.

git

84
推荐指数
3
解决办法
2万
查看次数

在linux上查看文件大小

我想看一个单个文件不断增长的大小,所以我使用这个命令:

texai@maelstrom ~$ ls -lh club_prod.sql | awk '{print $5}'
116M
Run Code Online (Sandbox Code Playgroud)

现在我想每5秒看一次结果:

texai@maelstrom ~$ watch -n 5 ls -lh club_prod.sql | awk '{print $5}'
Run Code Online (Sandbox Code Playgroud)

但是这个命令不会返回任何结果

linux shell command-line watch

36
推荐指数
4
解决办法
3万
查看次数

使用Python lxml时出错"加载外部实体失败"

我正在尝试解析从Web检索的XML文档,但在解析此错误后崩溃了:

': failed to load external entity "<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="GreenButtonDataStyleSheet.xslt"?>
Run Code Online (Sandbox Code Playgroud)

这是下载的XML中的第二行.有没有办法阻止解析器尝试加载外部实体,或者另一种方法来解决这个问题?这是我到目前为止的代码:

import urllib2
import lxml.etree as etree

file = urllib2.urlopen("http://www.greenbuttondata.org/data/15MinLP_15Days.xml")
data = file.read()
file.close()

tree = etree.parse(data)
Run Code Online (Sandbox Code Playgroud)

python xml lxml elementtree

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

pathlib.Path.relative_to 与 os.path.relpath

我想找到两个绝对路径之间的相对路径。我有通常用于pathlib.Path与文件系统交互的现有代码,但我遇到了一个似乎很容易解决os.path.relpath但(到目前为止)很难解决的问题pathlib.Path

我有:

  • (A), 目录的绝对路径,/home/project/cluster-scope/base/namespaces/acm
  • (B),从(A) 到另一个目录的相对路径,../../../components/monitoring-rbac
  • (C)、第二个目录的绝对路径,/home/project/cluster-scope/base/core/namespaces/acm

我想计算从 (C) 到 (B) 的新相对路径。这有效:

>>> import os
>>> path_A = '/home/project/cluster-scope/base/namespaces/acm'
>>> path_B = '../../../components/monitoring-rbac'
>>> path_C = '/home/project/cluster-scope/base/core/namespaces/acm'
>>> path_B_abs = os.path.abspath(os.path.join(path_A, path_B))
>>> os.path.relpath(path_B_abs, path_C)
'../../../../components/monitoring-rbac'
Run Code Online (Sandbox Code Playgroud)

但这并不:

>>> from pathlib import Path
>>> path_A = Path('/home/project/cluster-scope/base/namespaces/acm')
>>> path_B = Path('../../../components/monitoring-rbac')
>>> path_C = Path('/home/project/cluster-scope/base/core/namespaces/acm')
>>> path_B_abs = (path_A / path_B).resolve()
>>> path_B_abs.relative_to(path_C)
Traceback (most recent call last):
  File "<stdin>", line …
Run Code Online (Sandbox Code Playgroud)

python filesystems pathlib

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

Git支持的Python ORM?

在查找有关版本化数据库的信息时,我遇到了Ruby 的gitmodel项目,它是一个基于git的版本化ORM.

我参与的一些项目可以从某种版本化的数据存储中受益,而Git似乎是这个领域的自然解决方案.我们的团队已经都与git的命令行工具和使用的编程接口与git,如熟悉德威,所以像gitmodel将发挥我们现有的经验.

Python有类似的东西吗?

python database git

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

Mac上的Python版本

我正在研究Mac Os 10.7(Lion),我有一些问题:

  1. Lion上预安装的python版本是什么?
  2. 我已经在这台电脑上工作了一段时间,我已经安装了很多软件,以便多次做大学工作,我不知道自己到底在做什么.问题是:现在我在/Library/Frameworks/Python.framework/Versions/上有一个名为"7.0"的文件夹.我很确定没有python版本7.这个文件夹是本机还是第三方程序安装.我可以删除它吗?(它在磁盘上使用1 Gb).
  3. 在哪里找到mac os附带的原始python?
  4. 我选择Homebrew作为我的包管理器,有一种简单的方法来管理python版本吗?

python macos homebrew version

12
推荐指数
2
解决办法
4万
查看次数

Python 2和3中的分块字节(不是字符串)

结果比我想象的更棘手.我有一个字节串:

data = b'abcdefghijklmnopqrstuvwxyz'
Run Code Online (Sandbox Code Playgroud)

我想以n个字节的块来读取这些数据.在Python 2下,使用文档中对grouper配方的一个小修改,这是微不足道的itertools:

def grouper(iterable, n, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx
    args = [iter(iterable)] * n
    return (''.join(x) for x in izip_longest(fillvalue=fillvalue, *args))
Run Code Online (Sandbox Code Playgroud)

有了这个,我可以打电话:

>>> list(grouper(data, 2))
Run Code Online (Sandbox Code Playgroud)

得到:

['ab', 'cd', 'ef', 'gh', 'ij', 'kl', 'mn', 'op', 'qr', 'st', 'uv', 'wx', 'yz']
Run Code Online (Sandbox Code Playgroud)

在Python 3下,这变得更加棘手.grouper写的函数简单地落在:

>>> list(grouper(data, 2))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File …
Run Code Online (Sandbox Code Playgroud)

python python-2.x python-3.x

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

使用Python"请求"库读取流式http响应

我正在尝试 使用模块使用Kubernetes api 提供的事件流 requests.我遇到了一个看起来像缓冲问题:requests模块似乎滞后于一个事件.

我的代码看起来像这样:

r = requests.get('http://localhost:8080/api/v1beta1/watch/services',
                 stream=True)

for line in r.iter_lines():
    print 'LINE:', line
Run Code Online (Sandbox Code Playgroud)

当Kubernetes发出事件通知时,此代码将仅显示新事件发生时发出的最后一个事件,这使得对于需要响应服务添加/删除事件的代码几乎完全没用.

我通过curl在子进程中生成而不是使用requests库来解决这个问题:

p = subprocess.Popen(['curl', '-sfN',
                      'http://localhost:8080/api/watch/services'],
                     stdout=subprocess.PIPE,
                     bufsize=1)

for line in iter(p.stdout.readline, b''):
    print 'LINE:', line
Run Code Online (Sandbox Code Playgroud)

这有效,但牺牲了一些灵活性.有没有办法避免requests库的缓冲问题?

python stream python-requests kubernetes

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

如何获取远程主机的环境变量

我在使用远程主机的环境变量时遇到问题.例如,当我尝试{{lookup('env','PATH')}}时,这将返回我的来宾机器的路径,而不是远程主机的路径.

如何获取/更改远程主机的环境变量?

我的剧本:

---
- name : playbook
  hosts : webservers
  gather_facts: yes
  remote_user: user1
  vars:
   Path: "{{lookup('ansible_env','PATH')}}"
  roles :
 - task1
 - task2 
 - task3 
Run Code Online (Sandbox Code Playgroud)

返回我的机器的路径而不是名为user1的远程主机的路径我是ansible的初学者需要一些帮助.先感谢您.

linux yaml environment-variables ansible ansible-playbook

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

FastAPI + Docker:连接被拒绝

每个人!

我在使用 Docker 容器部署 FastAPI 应用程序时遇到问题。我已经测试过在没有 Docker 的情况下部署它,仅使用 FastAPI,并且一切正常。但是当我使用 Docker 时,我无法访问 API,只收到“连接被拒绝”消息。

这是我正在使用的Dockerfile :

FROM python:3.7-slim

WORKDIR /app/
COPY . /app/

RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
RUN apt-get -y install curl
RUN apt-get install libgomp1

RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["uvicorn", "main:app", "--host=0.0.0.0", "--reload"]
Run Code Online (Sandbox Code Playgroud)

注意:我必须构建的 API 是以 ML 为中心的,因此我需要声明一些如上所述的包,以便可以使用 LightGBM。

构建 Dockerfile 后,我运行了以下Docker 命令

docker build -t ml_app:latest .

docker run -p 8000:8000 --name test_cont ml_app:latest

当我使用 检查正在运行的容器时docker ps …

windows docker fastapi

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