我有一个端点应该获取一个method应该符合 Axios type 的参数Method。
如何使用 Zod 创建一个架构来验证该值是否使用该类型Schema?
import { Method } from 'axios';
const Schema = zod.object({
method: zod.someHowUseTheTypeFrom(Method),
});
Run Code Online (Sandbox Code Playgroud)
MethodAxios 包中的类型是:
export type Method =
| 'get' | 'GET'
| 'delete' | 'DELETE'
| 'head' | 'HEAD'
| 'options' | 'OPTIONS'
| 'post' | 'POST'
| 'put' | 'PUT'
| 'patch' | 'PATCH'
| 'purge' | 'PURGE'
| 'link' | 'LINK'
| 'unlink' | 'UNLINK'
Run Code Online (Sandbox Code Playgroud) 出于测试目的,我正在尝试在python中创建一个Response()对象,但事实证明它听起来更难.
我试过这个:
from requests.models import Response
the_response = Response()
the_response.code = "expired"
the_response.error_type = "expired"
the_response.status_code = 400
Run Code Online (Sandbox Code Playgroud)
但是当我试图the_response.json()得到一个错误,因为函数试图得到len(self.content)并且a.content为空.所以我设置,a._content = "{}"但后来我得到一个编码错误,所以我必须改变a.encoding,但然后它无法解码内容....这一直在继续.有没有一种简单的方法来创建一个功能齐全且具有任意status_code和内容的Response对象?
我在不同的AWS机器上运行气流服务器和工作人员.我已经同步了它们之间airflow initdb的dags 文件夹,在两者上运行,并检查当我运行时dag_id是相同的airflow list_tasks <dag_id>
当我运行调度程序和worker时,我在worker上遇到了这个错误:
airflow.exceptions.AirflowException:找不到dag_id :. dag不存在或者无法解析.[...]命令...-- local -sd /home/ubuntu/airflow/dags/airflow_tutorial.py'
似乎问题是路径错误(/home/ubuntu/airflow/dags/airflow_tutorial.py),因为正确的路径是/ home/hadoop/...
在服务器机器上,路径是使用ubuntu,但在两个配置文件上它都是简单的 ~/airflow/...
是什么让工人看到这条路而不是正确的呢?
我怎么告诉它看它自己的家庭目录?
编辑:
grep -R ubuntu了,唯一出现在日志中ubuntu东西时,一切正常.这使我相信,由于某种原因,气流为工人提供了完成任务的全部途径我是Airflow的新手.
我有一个DAG,其中包含一个应该在特定机器上运行的任务(在我的情况下是EMR集群).如何告诉气流在哪里运行特定任务,以便每次运行它只会在该机器上执行此操作?
假设我想编写一个脚本,ls为每个文件名添加一个前缀。我试过了
ls | xargs -n 1 echo prefix_
Run Code Online (Sandbox Code Playgroud)
但是结果是
prefix_ first_file
prefix_ second_file
...
Run Code Online (Sandbox Code Playgroud)
如何删除前缀和文件名之间的空格?即我如何使xargs将变量放在命令后,没有空格?(或在其他任何地方)
我在python中有一个main()函数,它获取命令行参数.有没有办法让我为这个函数编写pytest测试并在代码中定义参数?
例如
def main():
# argparse code
args, other = arg_parser.parse_known_args()
return args.first_arg
def test_main():
res = main() # call with first_arg = "abc"
assert(res == "abc")
Run Code Online (Sandbox Code Playgroud) 我有一个名为 myProtos 的库,如下所示
\n\n.\n|-- proto\n|---- hello.proto\n|\n|-- generated\n\xe2\x94\x94---- hello.pb.go\nRun Code Online (Sandbox Code Playgroud)\n\n我有一个外部的 .proto 文件,example.proto应该导入hello.proto
所以文件的顶部看起来像这样:
\n\nsyntax = "proto3";\npackage example;\nimport "path/to/myProtos/proto/hello.proto"\nRun Code Online (Sandbox Code Playgroud)\n\n现在,当我编译时example.proto,出现导入错误example.pb.go因为它有导入行 import "path/to/myProtos/proto/hello.pb.go"
我尝试添加两个导入路径,但收到“导入但未使用错误”。我还尝试进行相对导入并将两个目录作为标志传递给 protoc,这有效,但我需要 go 文件中的导入路径是绝对的。
\n\n我如何告诉 protoc go 文件上的路径不同?
\n\n在这种情况下有更好的“最佳实践”吗?
\n假设我有一个foo获取一些参数的函数
def foo(width, height, depth=0):
...
Run Code Online (Sandbox Code Playgroud)
我想编写一个包装器函数来获取所有foo参数并将它们传递给它,例如
def goo(width, height, depth=0):
...
foo(width, height, depth)
...
Run Code Online (Sandbox Code Playgroud)
但这很难看,因为我必须重复变量和默认值.
在python中执行此操作的惯用方法是什么?
我想到的几个选项:
传递到goo一个叫做foo_params和调用的字典,foo(**foo_params)但后来很容易出错,因为我不知道所有的参数都在那里
为foo编写另一个包装器,用于检查具有默认值的参数是否为None,如果是,则不传递它们
将默认值作为常量,所以我不会重复它们
我安装某些python软件包时遇到了麻烦,因为我有TLS 1.0版本。如何升级到TLS 1.2?
python -c "import urllib2; import json; print(json.loads(urllib2.urlopen('https://www.howsmyssl.com/a/check').read())['tls_version'])"
TLS 1.0
Run Code Online (Sandbox Code Playgroud)
我的macOS版本:10.13.4(17E202)
python版本:Python 2.7.13
openssl版本:LibreSSL 2.2.7
我试图升级openssl,但它没有升级LibreSSL。我记得一年前我遇到了一些与openssl的问题,我可能已经手动将其链接了,或者::(
我有一个地形列表
a = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
有没有办法让我*2在列表上应用一个函数(例如),以获得
b = [2,4,6,8]
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种插值语法,也许map(a, _*2),甚至是类似的东西
variable "b" {
count = "${length(a)}"
value = "${element(a, count.index)} * 2
}
Run Code Online (Sandbox Code Playgroud)
据我所知,不存在这样的事情。我错过了什么吗?