What is the actual meaning of Inclusive ordered comparison in python version

I have this specified in my constraints file

asgiref==3.5.0

and when I run pip3 install during docker build, it complains about

#12 24.67 ERROR: Cannot install -r /tmp/requirements.txt (line 16) because these package versions have conflicting dependencies.
#12 24.67 
#12 24.67 The conflict is caused by:
#12 24.67     django 3.2.11 depends on asgiref<4 and >=3.3.2
#12 24.67     The user requested (constraint) asgiref==3.5.0
#12 24.67 
#12 24.67 To fix this you could try to:
#12 24.67 1. loosen the range of package versions you've specified
#12 24.67 2. remove package versions to allow pip attempt to solve the dependency conflict
#12 24.67 
#12 24.67 ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies

Pip3 version is 21.2.4, Linux version is 18.04, Python 3.6.9

Maybe I have been misunderstanding the >= for the whole time, I would have thought asgiref==3.5.0 would fit the asgiref<4 and >=3.3.2 condition?

The pip3 install runs fine if I specify asgiref==3.3.3 or asgiref==3.4.0

I have the 3.5.0 installed locally fine

enter image description here

enter image description here


Not sure if I should delete my question, but I think I will put an answer to it so in case someone else encountered the same problem, I believe the culprit is during docker build it cannot find the version specified:

 > [ 8/12] RUN set -ex && pip3 install -I asgiref==3.5.0:                                                                                                  
#12 0.250 + pip3 install -I asgiref==3.5.0                                                                                                                 
#12 0.825 Looking in indexes: https://pypi.org/simple                                                                             
#12 1.051 ERROR: Could not find a version that satisfies the requirement asgiref==3.5.0 (from versions: 0.8, 0.9, 0.9.1, 0.10.0, 0.11.0, 0.11.1, 0.11.2, 0.12.0, 0.12.1, 0.13.0, 0.13.2, 0.13.3, 0.14.0, 1.0.0, 1.0.1, 1.1.0, 1.1.1, 1.1.2, 2.0.0, 2.0.1, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.6, 2.2.0, 2.3.0, 2.3.1, 2.3.2, 3.0.0, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.1)
#12 1.052 ERROR: No matching distribution found for asgiref==3.5.0

I don't know why it can't find the version though, maybe the version is specific to the OS/Python. But I checked the pypi index it seems the version is there and not tied to a specific OS:

enter image description here

Regardless, the error message was a bit confusing, should have said it can't find the version instead of "conflicting version"

I have fallen on this trap twice today, first time was my bad I set a wrong version for a package. But the second time(this question) I didn't realise it's the same problem since I have the version installed locally.