小编ait*_*rhh的帖子

使用python-click为cli命令添加未指定的选项

我想使用python-click库向cli命令添加未指定的选项.所以我的cli功能可能如下所示

$ my-cmd --option1 value1 --options2 value2 --unknown_var value3
Run Code Online (Sandbox Code Playgroud)

我目前的代码:

import click

@click.option('--option1')
@click.option('--option2')
@click.command(name='my-cmd')
def cli(option1, option2):
  click.echo("my test")
Run Code Online (Sandbox Code Playgroud)

我希望看到如下内容:

import click

@click.option('--option1')
@click.option('--option2')
@click.command(name='my-cmd')
def cli(option1, option2, **kwargs):
  click.echo("my test")
  # Manually manage **kwargs
Run Code Online (Sandbox Code Playgroud)

python python-click

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

Gitlab 交叉引用项目

我正在尝试找到在 Gitlab 中记录我的项目的最佳方法。我发现了两种不同的选择:

  • 实际存储库中的 Markdown ( my-repo.git)
  • 使用 Markdown 的 Wiki ( my-repo/wiki.git)

请注意,后缀.git表明这是两个不同的 git 存储库。

我喜欢使用网页中的 markdown 来简单修改 Wiki 的方法(为了每个人的简单性),但我缺少如何在它们或 Gitlab 中的任何其他项目之间进行链接。

文档中提供了一些链接(问题、提交等)到其他项目的信息,但没有像README.md和其他文档那样链接文件。

有这样的功能吗?

markdown gitlab

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

在 asyncio 异常处理程序上从未来获取参数

我正在尝试创建一个自定义异常处理程序,以便Exceptionasynio.

有一个协程,如:

@asyncio.coroutine
def process_notification(device):
    results = yield from get_notifications(device)
    # here I am creating other tasks
    return result
Run Code Online (Sandbox Code Playgroud)

自定义异常处理程序定义如下:

def custom_exception_handler(loop, context):
    asyncio.base_events.BaseEventLoop.default_exception_handler(loop, context)

    future = context.get('future')
    #TODO: how to get the argument device and create a new task with it
Run Code Online (Sandbox Code Playgroud)

在应用程序中:

...
loop = asyncio.get_event_loop()
loop.set_exception_handler(custom_exception_handler)

task = asyncio.ensure_future(process_notification(device))
...
Run Code Online (Sandbox Code Playgroud)

正如所见,在 TODO 中,我缺少如何从任务初始调用中获取参数。

python python-asyncio

5
推荐指数
0
解决办法
354
查看次数

尽管 externalTrafficPolicy 设置为 Local,Kubernetes 仍提供内部源 IP

我们的 Kubernetes 集群包含一个 nginx 负载均衡器,用于将请求转发到其他 Pod。

但是,nginx 看到本地源 IP,因此无法设置正确的 X-Real-IP 标头。我尝试将 nginx 的 externalTrafficPolicy 值设置为“Local”,但 IP 没有改变。

nginx 服务配置部分:

 "selector": {
  "app": "nginx-ingress",
  "component": "controller",
  "release": "loping-lambkin"
},
"clusterIP": "10.106.1.182",
"type": "LoadBalancer",
"sessionAffinity": "None",
"externalTrafficPolicy": "Local",
"healthCheckNodePort": 32718
Run Code Online (Sandbox Code Playgroud)

结果:

GET / HTTP/1.1
Host: example.com:444
X-Request-ID: dd3310a96bf154d2ac38c8877dec312c
X-Real-IP: 10.39.0.0
X-Forwarded-For: 10.39.0.0
Run Code Online (Sandbox Code Playgroud)

我们使用带有 Metallb 的裸机集群。

load-balancing kubernetes weave kubernetes-ingress nginx-ingress

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

使用 helm 向 nginx 入口提供 nodeSelector

我花了一些时间研究如何将参数传递给 helm 以便nodeSelector正确配置。

不同的尝试导致不同的错误,例如:

Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.nodeSelector.kubernetes): invalid type for io.k8s.api.core.v1.PodSpec.nodeSelector: got "map", expected "string"
Run Code Online (Sandbox Code Playgroud)
coalesce.go:196: warning: cannot overwrite table with non table for nodeSelector (map[])
Run Code Online (Sandbox Code Playgroud)

kubernetes nginx-ingress

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

为什么在Scala中默认情况下Map是不可变的?

使用scala(2.12.2),在类中创建新Map时

private var myMap = Map.empty[String, ActorRef]
Run Code Online (Sandbox Code Playgroud)

默认情况下,我得到一个不可变的类

scala.collection.immutable.Map[String,akka.actor.ActorRef]
Run Code Online (Sandbox Code Playgroud)

我期待它是可变的,因为我把它定义为'var'

scala scala-2.12

-1
推荐指数
1
解决办法
248
查看次数