小编Men*_*kov的帖子

Jaxb可以在没有根元素的情况下编组子元素吗?

我不确定jaxb是否可以使用以下问题,但无论如何我都会问.

在某个项目中,我们使用带有定义模式的jaxb来创建xml文件的下一个结构.

<aaa>
     <bbb>
        more inner children here
     </bbb>
     <bbb>
        more inner children here
     </bbb>
</aaa>
Run Code Online (Sandbox Code Playgroud)

我们还使用自动类生成jaxb来创建类:aaa和bbb,其中aaa是作为@XmlRootElement生成的.

我们现在想要在新项目中使用相同的模式,该模式也将与之前的项目兼容.我想做的是使用相同的jaxb生成的类,而不对模式进行任何更改,以便只将一个bbb对象编组为xml.

JAXBContext jc = JAXBContext.newInstance("generated");
Marshaller marshaller = jc.createMarshaller();
marshaller.marshal(bbb, writer);
Run Code Online (Sandbox Code Playgroud)

所以我们会得到下一个结果:

 <bbb>
    <inner child1/>
    <inner child2/>
    ...
 </bbb>
Run Code Online (Sandbox Code Playgroud)

我目前无法这样做,因为marshaller大喊我没有定义@XmlRootElement.

我们实际上试图避免将模式分成2个模式的情况,其中一个是bbb,另一个是aaa导入bbb.

提前致谢!

java xml jaxb marshalling

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

Python 联合 - 在另一个装饰器中收集多个 @patch 装饰器

我正在编写一个内部单元测试框架,它涉及模拟多个函数/类。
@patch 似乎非常适合我的需求,但由于有许多测试需要修补许多不同的类/函数,我希望避免在每次测试之前编写多个 @patch,并可能将它们全部封装到另一个装饰器中。为了更好地说明我的需求:

当前状态:

@patch('p.A', mockedA)
@patch('p.B', mockedB)
.
.
@patch('p.N', mockedN)
def test_this()
Run Code Online (Sandbox Code Playgroud)

期望状态:

@patch_all
def test_this()
Run Code Online (Sandbox Code Playgroud)

是否有可能实现这样的东西?,到目前为止,我无法实现,因为@patch 需要遵循 def 或另一个 @。

编辑 2:
我已经尝试过 Michele 的建议,但测试不再被识别为测试:
在将 functools.wraps 添加到 patch_all 装饰器后,它起作用了。

def patch_all(f):
@patch('p.A', moduleA.classA.methodA)
@patch('p.B', moduleB.classB.methodB)
.
.
@patch('p.N', moduleN.classN.methodN)
wraps(f)
def functor(*args, **kwargs):
    return f(*args, **kwargs)
return functor


class TestWrapper(unittest.TestCase):
    @patch_all
    def my_test(self):
        my test goes here...
Run Code Online (Sandbox Code Playgroud)

使用@patch_all 装饰器,这就是我得到的:

nosetests Tester.py --nocapture 

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
Run Code Online (Sandbox Code Playgroud)

如果我删除它:

$ nosetests Tester.py --nocapture 
. …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking python-2.7 python-decorators

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

气流任务卡在排队状态

我们正在使用 KubernetesExecutor 和 KubernetesPodOperator 运行 Airflow 1.10.12。这几天,我们看到任务卡在队列状态很长时间(说实话,除非我们重新启动调度程序,否则它会一直卡在那个状态),同一个 DAG 的新任务被正确调度.

唯一有帮助的是手动清除它,或重新启动调度程序服务

我们通常会在运行 E2E 测试时看到它发生,这会为我们的 3 个 DAG 中的每个 DAG 生成大约 20 个 DAG,由于并行性有限,有些将排队(这对我们来说很好)

这些是我们的并行参数 airflow.cfg

parallelism = 32
dag_concurrency = 16
max_active_runs_per_dag = 16
Run Code Online (Sandbox Code Playgroud)

我们的 2 个 DAG,覆盖the max_active_runs并将其设置为 10

知道是什么原因造成的吗?

kubernetes airflow airflow-scheduler

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

寻找一种从Python代码中分割MongoDB集合的方法

我正在寻找一种在python(2.7)程序中远程执行现有集合的分片的方法.我无法找到执行该功能的API(pymongo),或者可能只是看起来不够好.

这样的事可能吗?

提前致谢

python sharding mongodb pymongo python-2.7

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