小编tot*_*ooo的帖子

一次创建完整目录树

我想在bash脚本中创建一个复杂的目录结构,并认为以下内容可行:

mkdir -p tmpdir/{trunk/sources/{includes,docs},branches,tags}
Run Code Online (Sandbox Code Playgroud)

这将创建:

          tmpdir
    ________|______
   |        |      |
branches   tags  trunk
                   |
                 sources
               ____|_____
              |          |
          includes     docs
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的脚本时,我最终得到:

tmpdir
   |
trunk
Run Code Online (Sandbox Code Playgroud)

有没有一种快速简便的方法来做到这一点,或者我将不得不诉诸

mkdir -p tmpdir/trunk/sources/includes
mkdir -p tmpdir/trunk/sources/docs
mkdir -p tmpdir/branches
mkdir -p tmpdir/tags
Run Code Online (Sandbox Code Playgroud)

linux bash

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

链接,嵌套的dict()在python中调用

我正在使用dict.get('keyword')方法查询嵌套字典.目前我的语法是......

M = cursor_object_results_of_db_query

for m in M:
    X = m.get("gparents").get("parent").get("child")
    for x in X:
        y = x.get("key")
Run Code Online (Sandbox Code Playgroud)

但是,有时其中一个"父"或"子"标签不存在,我的脚本失败.我知道使用get()我可以在表格中不存在密钥的情况下包含默认值...

get("parent", '') or
get("parent", 'orphan') 
Run Code Online (Sandbox Code Playgroud)

但是,如果我包含任何Null,''或者我可以想到的空,则链接.get("child")在调用时失败,''.get("child")因为""没有方法.get().

现在我解决这个的方法是使用一束连续的try-except围绕每个.get("")电话,但似乎愚蠢和unpython ---有没有办法为默认的回报"skip""pass"什么的,将仍然支持链接和失败智能,而不是深 - 潜入不存在的钥匙?

理想情况下,我希望这是对表单的列表理解:

[m.get("gparents").get("parent").get("child") for m in M]
Run Code Online (Sandbox Code Playgroud)

但是当缺席的父母导致.get("child")呼叫终止我的程序时,这当前是不可能的.

python dictionary list-comprehension

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

是否可以使用 fastapi 强加请求正文的列表属性的长度?

是否可以在请求正文(或响应)的架构中指定列表的长度?支持使用查询函数验证 url 中传递的字符串的长度,但我没有看到任何列表。可能的用例是发送固定大小的浮点数列表以馈送到 ML 模型。

pydantic fastapi

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

.user.yml 文件是什么?它的目的是什么?

我从 DBT 开始。当我运行我的项目时,它创建了一个.user.yml文件。其内容:

{id: c8e8abd2-09a3-4699-b444-3ef7ee5b04e5}
Run Code Online (Sandbox Code Playgroud)

这个 github 问题来看,它似乎是某种 cookie,但我无法在任何地方找到有关其作用的任何信息。

有人可以解释一下这个文件的用途吗?我应该将其添加到我的.gitignore吗?

dbt

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

强制 Airflow 的回填命令按顺序运行

有什么方法可以在不进行多任务处理的情况下按顺序运行回填?例如,如果我使用多个日期运行回填,例如气流回填 [dag] -s "2017-07-01" -e "2017-07-10",有没有办法在运行到第二天之前完成每个 dag ? 现在它在去下一个任务之前完成每项任务的所有日子。

谢谢。

python python-2.7 airflow

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

领导节点CPU高的主要原因

我经常看到我们 Redshift 集群的领导节点在 100% CPU 时达到峰值。我已经确定了一个可能的原因:许多并发查询,以及许多领导者要计算的执行计划。这个假设似乎很有可能,因为我们收到最多查询的时间似乎与我们看到的 100% 领先者相同。

为了解决这个问题,我们想知道:是否还有其他可能导致领导者 CPU 高的主要原因?

(我精确的情况是只有领导节点处于高 CPU 并且工作人员看起来很好)

amazon-web-services amazon-redshift

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

指向结构的指针的切片文字的 golang 快捷语法

给定的

type foo struct {
    id int
}
Run Code Online (Sandbox Code Playgroud)

两者看起来相当

var foos = []*foo{
    {1},
    {2},
    {3}}

var foos = []*foo{
    &foo{1},
    &foo{2},
    &foo{3}}
Run Code Online (Sandbox Code Playgroud)

这是为什么?虽然在 TGPL 中找不到提及它。

https://play.golang.org/p/JXxZaybbWnV

pointers literals go

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

为什么 memory_usage() 和 memory_usage(deep=True) 之间有如此大的差异?

有人可以详细说明调用 DataFrame 的 memory_usage 方法时参数 deep=True 的作用吗?我从文档中了解到,它“钻取”到具有对象数据类型的列,以查看这些值实际占用内存的量。但什么是“正确”的值呢?DataFrame 实际上占用了我多少内存?

我在 DataFrame 的磁盘上加载了一个大约 2GB 的文件df。如果没有深度,我感觉我有正确的值,因为我得到了接近文件大小的东西。...我得到deep=true了这个值的 7 倍,而我的电脑甚至没有足够的 RAM 来容纳这个!

>>> memus = df.memory_usage()
>>> memusdeep = df.memory_usage(deep=True)
>>> print(memus.sum() / 10**9, 'GB')
1.874067408 GB
>>> print(memusdeep.sum() / 10**9, 'GB') # that's very much!
13.897614776 GB
Run Code Online (Sandbox Code Playgroud)

如果我在任务管理器中查看 python 程序使用的内存,我会看到一个值从 250MB 到大约 1.87GB 不等(与 相同deep=False)。这是否意味着我的列在不使用时会从内存中“释放”,并且如果我使用所有列,总内存使用量可能会达到 宣布的 13.9 GB deep=True

python pandas

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

为什么无法在没有自定义域(及其 TLS 证书)的情况下创建具有 HTTPS 侦听器的 ALB?

我想向我的 AWS Application Load Balancer 添加 HTTPS 侦听器。我从这个线程中看到,如果没有自定义域(以及对其进行身份验证的证书),这是不可能的。我的问题是为什么?难道就不能有一个属于 AWS 的证书吗?当人们连接到我的 ALB 时,它会证明“是的,您确实在使用 HTTPS 域 blabla.us-west-1.elb.amazonaws.com 进行对话”?

aws-application-load-balancer

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

pip在新的虚拟环境上安装apache-airflow然后是airit initdb:SyntaxError

$ virtualenv --version
16.3.0
$ pip --version
pip 19.0.1
Run Code Online (Sandbox Code Playgroud)

我创造了一个新鲜的环境。并运行

pip install apache-airflow
Run Code Online (Sandbox Code Playgroud)

安装成功

apache-airflow   1.10.2 
Run Code Online (Sandbox Code Playgroud)

但是然后我运行

 airflow initdb
Run Code Online (Sandbox Code Playgroud)

我得到了错误

ERROR [airflow.models.DagBag] Failed to import: /Users/admin/workshops/apache/airflow/lib/python3.7/site-packages/airflow/example_dags/example_http_operator.py
    Traceback (most recent call last):
      File "/Users/admin/workshops/apache/airflow/lib/python3.7/site-packages/airflow/models.py", line 374, in process_file
        m = imp.load_source(mod_name, filepath)
      File "/Users/admin/workshops/apache/airflow/lib/python3.7/imp.py", line 171, in load_source
        module = _load(spec)
      File "<frozen importlib._bootstrap>", line 696, in _load
      File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 728, in exec_module
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "/Users/admin/workshops/apache/airflow/lib/python3.7/site-packages/airflow/example_dags/example_http_operator.py", …
Run Code Online (Sandbox Code Playgroud)

pip airflow

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

python中的Apache Beam:如何在另一个PCollection上重用完全相同的转换

我的几个 PCollections(来自不同来源)必须以相同的方式解码。

hits = (msgs | 'Parse' >> beam.Map(parse)
    | 'Decode' >> beam.Map(decode_hit))
Run Code Online (Sandbox Code Playgroud)

然后:

dummy_hits = (dummy_msgs | 'Parse' >> beam.Map(parse)
    | 'Decode' >> beam.Map(decode_hit))
Run Code Online (Sandbox Code Playgroud)

多亏了我之前给它们的名字,如果我可以重用这些转换,那就太好了。我天真地尝试了这个:

dummy_hits = (dummy_msgs | 'Parse'
    | 'Decode')
Run Code Online (Sandbox Code Playgroud)

但我的管道不会建立。(类型错误:需要一个 PTransform 对象,得到解析)。

我认为有可能作为管道模块的文档说明:“如果需要应用相同的转换实例,则应使用右移运算符来指定新名称(例如input | "label" >> my_tranform)”

这样做的方法是什么?只有这可能吗?

python google-cloud-dataflow apache-beam

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

迭代dict或其键并更改值是不好的做法吗?

在python 2我用过:

d = {'a': 1, 'b': 2, 'c': 3}
for k in d.keys():
    d[k] = d[k] * 2
print(d)
# {'a': 2, 'b': 4, 'c': 6}
Run Code Online (Sandbox Code Playgroud)

在python 3中我使用:

d = {'a': 1, 'b': 2, 'c': 3}
for k in d:
    d[k] = d[k] * 2
print(d)
# {'a': 2, 'b': 4, 'c': 6}
Run Code Online (Sandbox Code Playgroud)

这种新语法让我觉得我正在迭代某些东西(dict)并修改它,这很糟糕.但实际上我只是在重复按键,所以这不应该带来任何麻烦,对吧?

python iteration dictionary

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

是否不再可以对 Slack 应用程序使用 chat:write:bot 范围

我希望我的应用程序使用和参数连接chat.postMessage到 Slack,以便我有时更改显示的图标和名称。icon_emojiusername

从该方法的文档来看,我似乎必须设置as_user为 false。但是当我这样做时,我收到了 Missing_scope 错误:我需要范围 chat:write:bot。(无论我使用 OAuth 访问令牌还是 OAuth 机器人用户访问令牌,都会出现相同的错误)

但从这个页面我得知它们正在消失?那么我想使用的参数(icon_emoji 和用户名)也会消失吗?

slack-api

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