0

Given a class like this:

from enum import IntEnum
class T(IntEnum):
    a = 0x10
    b = 0x20

When documenting the attributes of this class, is it possible to have Sphinx document the enumerations with the hexadecimal representation instead of the default decimal?

edit

I have tried using autodoc-process-signature and this works except that attribute references break and I can no longer cross reference attributes anymore.

I am using it like this:

def attribute_hex_render(app, what, name, obj, options, signature, return_annotation):
    if 'TestObject.' in name and what == 'attribute':
        return f" = {obj:#06x}", return_annotation
    return signature, return_annotation #no-op

def setup(app):
    # -- Document attributes in hex
    app.connect('autodoc-process-signature', attribute_hex_render)
Community
  • 1
  • 1
Gregory Kuhn
  • 1,627
  • 2
  • 22
  • 34
  • Are you using `autoattribute`? – mzjn Nov 25 '18 at 14:03
  • No, or at least I don't think so. I have sphinx.ext.autodoc in my list of extensions in my `conf.py`. I then use `sphinx-apidoc` to automatically document the various python files I have in my project. I have all the documentation for the various enumerations generated just as I want them. The only thing thats missing is that the radix is how I'd like it. – Gregory Kuhn Nov 25 '18 at 19:10
  • You could use `autoattribute` with the `annotation` option. See https://stackoverflow.com/a/20079303/407651 and https://stackoverflow.com/a/14503035/407651 – mzjn Nov 29 '18 at 16:53

0 Answers0