Frankly I think upstream should have called it py3doc_enhanced and left out sphinx and theme, but that's beside the point.
Based
on the package naming conventions [1], you name is mainly correct (more
on this later). In the Python modules section [2], it says:
The
package name should reflect the upstream name of the Python module, and
should generally take into account the name of the module used when
importing it in Python scripts. This name will be prefixed depending on
the type of the package.
Based on that, the name should really be python-sphinx-theme-sphinx_py3doc_enhanced_theme, but that is overly confusing. I think there are two legitimate names:
python-sphinx-theme-py3doc_enhanced
python-sphinx_py3doc_enhanced_theme
Some
might argue you could replace the underscore in the first one with a
dash, and I wouldn't see a huge problem with that, but I think it's not
necessary. It is justified though because the name is already changed
from the import name and the tarball for the package uses dashes instead
of underscores.
As far those underscores, that's covered in the separator section [3]:
There are a few exceptions to the no underscore '_' rule.
...
- packages where the upstream name naturally contains an underscore are excluded from this.