Opened 5 months ago

Closed 5 months ago

#73089 closed defect (fixed)

py39-dnspython @2.8.0_0 can not be imported

Reported by: marka63 Owned by: Schamschula (Marius Schamschula)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: py39-dnspython

Description (last modified by ryandesign (Ryan Carsten Schmidt))

The minimum python version dnspython 2.8 supports is python 3.10. Import fails in

/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/dns/enum.py

at

    @classmethod
    def make(cls: Type[TIntEnum], value: int | str) -> TIntEnum:
        """Convert text or a value into an enumerated type, if possible.

        *value*, the ``int`` or ``str`` to convert.

        Raises a class-specific exception if a ``str`` is provided that
        cannot be converted.

        Raises ``ValueError`` if the value is out of range.

        Returns an enumeration from the calling class corresponding to the
        value, if one is defined, or an ``int`` otherwise.
        """

        if isinstance(value, str):
            return cls.from_text(value)
        cls._check_value(value)
        return cls(value)

as value: int | str is not supported in python 3.9.

I would suggest rolling back py39-dnspython (and earlier) to the previous version.

Change History (4)

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

Description: modified (diff)
Owner: set to Schamschula
Port: py39-dnspython added
Status: newassigned

comment:2 Changed 5 months ago by reneeotten (Renee Otten)

Python 3.9 is almost EOL, so I'd suggest to upgrade to a more recent version. We could pin py39-dnspython to an earlier version but I'd be in favor of starting the removal process of all py39-<portname> subports instead.

comment:3 Changed 5 months ago by Schamschula (Marius Schamschula)

Agreed! It seems a lot of packages have left Python 3.9 behind at this point.

However, I see

% port echo rdepends:py39-dnspython
gr-lora-rpp0                    
py-apache-beam                  
py-authheaders                  
py-magenta                      
py-tensorflow-data-validation   
py-tensorflow-transform         
py-tfx-bsl                      
py39-apache-beam                
py39-authheaders                
py39-dns-lexicon                
py39-eventlet                   
py39-fasteners                  
py39-magenta                    
py39-maggma                     
py39-mongoengine                
py39-mp-api                     
py39-pymongo                    
py39-tensorflow-data-validation  
py39-tensorflow-transform       
py39-tfx-bsl                    
py39-xraylarch

That means that if I remove the py39 subport there are a bunch of broken dependents.

comment:4 Changed 5 months ago by Marius Schamschula <mschamschula@…>

Resolution: fixed
Status: assignedclosed

In e40521da148c83684523e8e27223183d2eb59801/macports-ports (master):

py39-dnspython: pin to version 2.7.0

Closes: #73089

Note: See TracTickets for help on using tickets.