小编MaV*_*Art的帖子

文件不在客户端上

自从我开始实现工作空间感知以来,我遇到了一个非常奇怪的P4Python问题.

情况如下:

我有一个"P4Commands"模块,它继承了P4并连接在 __init__()

然后,我分别有以下几个类:

  • P4USER
  • P4Workspace
  • P4Changelist

P4Commands模块继承P4并调用其父级的"run"方法,同时还注入了我实现的一些自定义缓存,以加速大量调用.run方法被调用如下:

result = super(P4Commands, self).run(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

然后记录并返回.

当我在一个文件上调用一个操作时,我首先通过P4User来确定该文件所在的工作空间.然后,我在找到匹配的工作空间实例上执行以下操作:

def run(self, *args, **kwargs):
    # run whatever commands have to be run, with client temporarily set 
    # to this instance's client setting.
    with self.FUNCS.saved_context(client=self.client) as _:
        return self.FUNCS.run(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

其中FUNCS是P4Commands模块实例.

我得到的问题是,当我在其上调用fstat时返回信息的文件,我将"文件不在客户端上"作为错误,只有当我调用"编辑"命令时.其他所有命令(add,fstat,where等)似乎都能正常工作.这只发生在编辑命令上.

奇怪的是,当我使用完全相同的参数运行方法时,我没有得到错误,但是在工作空间上下文管理器之外(直接在P4User模块上).

它变得更加怪异:我尝试禁用上下文管理器,仍然没有乐趣.

还有一件事要添加到古怪,在阅读本文时,你可能会想"哦,客户端没有正确设置".我尝试记录客户端工作区,并且正确设置和取消设置.就像我说的,所有其他命令都有效,只是没有编辑.

剩下的唯一情况是多个P4模块实例的连接正在干扰.我尝试将P4Commands设置为静态全局,每个模块只共享一个实例.这也没有结束.

我尝试了各种方法,但此时我有点卡住了.有没有人知道如何解决这个问题?

python p4python

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

sphinx-apidoc获取子模块,但autodoc不会记录它们

我一直在研究PyQt5的项目(在这里找到:https://github.com/MaVCArt/StyledPyQt5),它使用包结构使导入更合乎逻辑.到目前为止,我已经相对成功地使用Sphinx记录了代码,至少在我介绍包结构之前.(以前,一切都在一个文件夹中)

以下是问题:当我运行sphinx-apidoc时,一切运行正常,没有错误.更重要的是,autodoc很好地接收了我所有的子模块.这是我的一个文件的内容:

styledpyqt package
==================

Subpackages
-----------

.. toctree::
    :maxdepth: 8

    styledpyqt.core

Submodules
----------

styledpyqt.StyleOptions module
------------------------------

.. automodule:: styledpyqt.StyleOptions
    :members:
    :undoc-members:
    :show-inheritance:

styledpyqt.StyleSheet module
----------------------------

.. automodule:: styledpyqt.StyleSheet
    :members:
    :undoc-members:
    :show-inheritance:


Module contents
---------------

.. automodule:: styledpyqt
    :members:
    :undoc-members:
    :show-inheritance:
Run Code Online (Sandbox Code Playgroud)

如您所知,所有子模块都被拾取.

但是,当我在此运行make html时,这些模块都没有被记录(意味着标题存在,但没有显示任何方法,类或成员).在生成的HTML中,它们只是标题,下面没有任何内容.我知道他们在代码注释中已正确设置,因为代码在现在和包结构的设置之间没有改变,也就是当文档确实有效时.

有没有人有任何想法可能是什么原因?

注意:为了帮助解决这个问题,这里是我的文件夹结构的简短细分:

styledpyqt
+    core
+    +    base
+    +    +    __init__.py ( containing a class definition )
+    +    +    AnimationGroups.py
+    +    +    Animations.py
+    +    __init__.py
+ …
Run Code Online (Sandbox Code Playgroud)

python python-sphinx autodoc

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

标签 统计

python ×2

autodoc ×1

p4python ×1

python-sphinx ×1