Opened 17 months ago

Last modified 6 months ago

#66440 assigned defect

py27-m2r @0.2.1: AttributeError: 'module' object has no attribute 'BlockGrammar'

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version: 2.8.0
Keywords: Cc: stromnov (Andrey Stromnov)
Port: py27-m2r, py27-mistune

Description

I can't install py27-m2r:

Executing:  cd "/opt/bblocal/var/macports/build/_opt_bblocal_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-m2r/py27-m2r/work/m2r-0.2.1" && /opt/bblocal/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 setup.py --no-user-cfg build 
DEBUG: system:  cd "/opt/bblocal/var/macports/build/_opt_bblocal_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-m2r/py27-m2r/work/m2r-0.2.1" && /opt/bblocal/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 setup.py --no-user-cfg build 
Traceback (most recent call last):
  File "setup.py", line 14, in <module>
    from m2r import parse_from_file
  File "/opt/bblocal/var/macports/build/_opt_bblocal_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-m2r/py27-m2r/work/miyakogi-m2r-7fe542c/m2r.py", line 59, in <module>
    class RestBlockGrammar(mistune.BlockGrammar):
AttributeError: 'module' object has no attribute 'BlockGrammar'
Command failed:  cd "/opt/bblocal/var/macports/build/_opt_bblocal_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-m2r/py27-m2r/work/m2r-0.2.1" && /opt/bblocal/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 setup.py --no-user-cfg build 
Exit code: 1

Change History (5)

comment:1 Changed 17 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: stromnov added
Port: py-mistune added

According to this tribler issue:

the API in version 2.0.0 of mistune has changed, and for the m2r library to work correctly, we need to use a previous version of mistune (0.8.4)

py-mistune was updated to 2.0.2 in April, reverted to 0.8.4 the next day, and updated to 2.0.4 in August.

py-m2r could be updated to version 0.3.1 but only for python37 and later and it will not fix this problem; it still requires py-mistune < 2. py-m2r has been archived by its developer so there probably won't be further updates after that.

comment:2 in reply to:  1 Changed 17 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to ryandesign:

According to this tribler issue:

the API in version 2.0.0 of mistune has changed, and for the m2r library to work correctly, we need to use a previous version of mistune (0.8.4)

Downgrading py27-mistune to 0.8.4 does fix the problem for me. (Not saying that's what we should do necessarily, just confirming that it's the same issue.)

py-mistune was updated to 2.0.2 in April, reverted to 0.8.4 the next day,

because it broke py-nbconvert

and updated to 2.0.4 in August.

but nobody who had the downgraded 0.8.4 received the 2.0.4 update because the epoch was decreased.

comment:3 Changed 16 months ago by kencu (Ken)

Keywords: ventura removed

comment:4 Changed 14 months ago by ryandesign (Ryan Carsten Schmidt)

py-mistune was updated to 2.0.5 on February 15 but as I said above nobody who had the downgraded 0.8.4 is receiving these updates because the epoch was decreased (which it never can be). Please either increase the epoch back to what it was and fix py-m2r to be compatible with this new py-mistune, or else increase the epoch to greater than what it was before and downgrade back to 0.8.4 once more to fix py-m2r.

comment:5 Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)

Port: py27-m2r py27-mistune added; py-m2r py-mistune removed

This is still an issue. It came up for me again today when trying to set up a macOS Sonoma buildbot worker since these ports are in the dependency chain for buildbot-slave-0.8. For now I will copy the old py-mistune @0.8.4 Portfile into the private ports collection that I use for the buildbot machines.

Note: See TracTickets for help on using tickets.