小编Ali*_*MAR的帖子

从周数获取日期

请问我的代码有什么问题:

import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d, "%Y-W%W")
print(r)
Run Code Online (Sandbox Code Playgroud)

显示"2013-01-01 00:00:00",谢谢.

python datetime strptime

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

kubernetes列出所有正在运行的pods名称

我正在寻找列出所有豆荚名称的选项

怎么做没有awk(或削减).现在我正在使用此命令

kubectl get --no-headers=true pods -o name | awk -F "/" '{print $2}'
Run Code Online (Sandbox Code Playgroud)

kubernetes

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

Gcloud命令行获取默认的project_id

我正在寻找一个单行来获取默认项目ID

gcloud config list core/project 给我

Your active configuration is: [default]
[core]
project = myproject_id
Run Code Online (Sandbox Code Playgroud)

虽然我想只有myproject_id.目标是在脚本中使用结果.

gcloud gcloud-cli

36
推荐指数
5
解决办法
2万
查看次数

循环期间可用内存

我的代码中遇到内存错误.我的解析器可以总结如下:

# coding=utf-8
#! /usr/bin/env python
import sys
import json
from collections import defaultdict


class MyParserIter(object):

    def _parse_line(self, line):
        for couple in line.split(","):
            key, value = couple.split(':')[0], couple.split(':')[1]
            self.__hash[key].append(value)

    def __init__(self, line):
        # not the real parsing just a example to parse each
        # line to a dict-like obj
        self.__hash = defaultdict(list)
        self._parse_line(line)

    def __iter__(self):
        return iter(self.__hash.values())

    def to_dict(self):
        return self.__hash

    def __getitem__(self, item):
        return self.__hash[item]

    def free(self, item):
        self.__hash[item] = None

    def free_all(self):
        for k in self.__hash:
            self.free(k)

    def …
Run Code Online (Sandbox Code Playgroud)

python optimization performance json out-of-memory

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

Python2.7 contextlib.ExitStack等效

要以编程方式组合上下文管理器,我使用以下代码:

== helpers.py ==

from contextlib import nested
import mock

def multiple_patch(obj_to_be_patch, *methods):
    return nested(
        *[mock.patch.object(obj_to_be_patch, method) for method in methods]
    )
Run Code Online (Sandbox Code Playgroud)

== tests.py ==

def test_foo(self):
    with helpers.multiple_patch(Foo, "method1", "method2", "method3",    "method3") as mocks:
         mock_method1 = mocks[0]
         ....
         # asserts on mocks
Run Code Online (Sandbox Code Playgroud)

因为我坚持使用这个版本的python我不能使用contextlib.ExitStack并且不推荐使用contextlib.nested.

谢谢

mocking contextmanager python-2.7

9
推荐指数
1
解决办法
2049
查看次数

使用supervisord管理docker容器的最佳方法

我必须在同一台服务器上设置"dockerized"环境(集成,qa和生产)(客户端的要求).每个环境将按如下方式组成:

  • 的RabbitMQ
  • 芹菜
  • 基于python 3的应用程序称为"A"(每个环境的特定分支)

在他们之上,jenkins将基于CI处理部署.

每个环境使用一组容器听起来像是最好的方法.

但现在我需要,流程经理来运行和监督所有这些:

  • 3个兔子容器,
  • 3个芹菜/花卉容器,
  • 3"A"容器,
  • 1 jenkins容器.

Supervisord似乎是最好的选择,但在我的测试中,我无法"正确"重启容器.这是supervisord.conf的片段

[program:docker-rabbit]
command=/usr/bin/docker run -p 5672:5672 -p 15672:15672 tutum/rabbitmq
startsecs=20
autorestart=unexpected
exitcodes=0,1
stopsignal=KILL
Run Code Online (Sandbox Code Playgroud)

所以我想知道什么是分离每个环境的最佳方式,并能够管理和监督每个服务(一个容器).

[编辑我的解决方案受托马斯回应的启发]

每个容器都由一个看起来像的.sh脚本运行

rabbit-integration.py

#!/bin/bash

#set -x
SERVICE="rabbitmq"
SH_S = "/path/to_shs"
export MY_ENV="integration"
. $SH_S/env_.sh
. $SH_S/utils.sh

SERVICE_ENV=$SERVICE-$MY_ENV
ID_FILE=/tmp/$SERVICE_ENV.name # pid file 

trap stop SIGHUP SIGINT SIGTERM  # trap signal for calling the stop function
run_rabbitmq   
Run Code Online (Sandbox Code Playgroud)

$ SH_S/env_.sh看起来像:

# set env variable 
...
case $MONARCH_ENV in
    $INTEGRATION)
       AMQP_PORT="5672"
       AMQP_IP="172.17.42.1"
     ... …
Run Code Online (Sandbox Code Playgroud)

python continuous-integration jenkins docker

8
推荐指数
2
解决办法
7150
查看次数

7
推荐指数
3
解决办法
1038
查看次数

BigQuery导出表到csv文件

我正在尝试将BigQuery表单UI导出到Google存储表但面临此错误:

错误:表格gs://mybucket/delta.csv.gz太大而无法导出到单个文件.指定包含分片导出的uri.(错误代码:无效)

在查询后尝试导出时,我得到:

下载不可用此结果集包含太多要下载的行.请使用"另存为表",然后导出结果表.

google-bigquery

6
推荐指数
2
解决办法
6869
查看次数

在构建期间跳过dockerfile中的错误

只是想知道是否有更好的方法来跳过可能失败的命令(因为我正在使用jenkins来构建和部署应用程序)

现在我正在做这样的事情

RUN unlink /run/supervisor.sock && etc/init.d/supervisor stop || echo "supervisor was not started"
Run Code Online (Sandbox Code Playgroud)

docker jenkins-docker

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

用于展平列表的Python Counter元素

现在要压扁Counter元素我正在使用代码

import operator
from collections import Counter
from functools import reduce

p = Counter({'a': 2, 'p': 1})
n_p = [[e] * p[e] for e in p]
f_p = reduce(operator.add, n_p)

# result: ['a', 'a', 'p']
Run Code Online (Sandbox Code Playgroud)

所以我很想知道,如果可以更直接地完成.

python counter python-collections

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

带返回语句的生成器

在我的报道中,我对以下案例感到头疼(python 3.4)

def simple_gen_function(str_in, sep=""):
    if sep == "":
        yield str_in[0]
        for c in str_in[1:]:
            yield c
    else:
        return str_in
        # yield from str_in

str_in = "je teste "
t = "".join(simple_gen_function(str_in))
p = "".join(simple_gen_function(str_in, "\n"))

print("%r %r" % (t, p))
# 'je teste' ''
Run Code Online (Sandbox Code Playgroud)

在生成器中使用 return ,在使用时没有“达到”回报yield from str_in我有预期的结果。

这个问题看起来很简单,但我相信在生成器中使用 return 是可以实现的。

python generator

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

上下文评估有什么功能

我知道,如果没有显式return,则返回最近评估的表达式,但我不清楚它在这段代码中是如何应用的.

use strict;
use warnings;

sub f1 {
    return "test 1\n";
}

sub f2 {
    f1();
}

sub f3 {
    f2();
}

my $r = f3();

print $r; # prints "test 1"
Run Code Online (Sandbox Code Playgroud)

在这种情况下,返回的值来自内部二级调用.我正在寻找一个参考来解释关于这一点的规则.如何确定上下文评估的功能?

perl

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