3131import os .path
3232import pathlib
3333import shutil
34- from typing import Dict , List , Sequence , Set , Union
34+ from typing import Dict , List , Sequence , Union
3535
3636# 3rd party
3737import css_parser # type: ignore
4242from domdf_python_tools .paths import PathPlus
4343from domdf_python_tools .typing import PathLike
4444from domdf_python_tools .utils import enquote_value
45- from packaging .requirements import Requirement
4645from shippinglabel import normalize
47- from shippinglabel .requirements import RequirementsManager , combine_requirements , read_requirements
46+ from shippinglabel .requirements import (
47+ ComparableRequirement ,
48+ RequirementsManager ,
49+ combine_requirements ,
50+ read_requirements
51+ )
4852
4953# this package
5054import repo_helper
8892
8993class DocRequirementsManager (RequirementsManager ):
9094 target_requirements = {
91- Requirement ("sphinxcontrib-httpdomain>=1.7.0" ),
92- Requirement ("sphinxemoji>=0.1.6" ),
93- Requirement ("sphinx-notfound-page>=0.5" ),
94- Requirement ("sphinx-tabs>=1.1.13" ),
95- Requirement ("autodocsumm>=0.2.0" ),
96- # Requirement ("sphinx-gitstamp"),
97- # Requirement ("gitpython"),
98- # Requirement ("sphinx_autodoc_typehints>=1.11.0"),
99- Requirement ("sphinx-copybutton>=0.2.12" ),
100- Requirement ("sphinx-prompt>=1.1.0" ),
101- Requirement ("sphinx>=3.0.3" ),
95+ ComparableRequirement ("sphinxcontrib-httpdomain>=1.7.0" ),
96+ ComparableRequirement ("sphinxemoji>=0.1.6" ),
97+ ComparableRequirement ("sphinx-notfound-page>=0.5" ),
98+ ComparableRequirement ("sphinx-tabs>=1.1.13" ),
99+ ComparableRequirement ("autodocsumm>=0.2.0" ),
100+ # ComparableRequirement ("sphinx-gitstamp"),
101+ # ComparableRequirement ("gitpython"),
102+ # ComparableRequirement ("sphinx_autodoc_typehints>=1.11.0"),
103+ ComparableRequirement ("sphinx-copybutton>=0.2.12" ),
104+ ComparableRequirement ("sphinx-prompt>=1.1.0" ),
105+ ComparableRequirement ("sphinx>=3.0.3" ),
102106 }
103107
104108 def __init__ (self , repo_path : PathLike , templates : jinja2 .Environment ):
@@ -117,10 +121,10 @@ def compile_target_requirements(self) -> None:
117121
118122 for name , specifier in theme_versions .items ():
119123 if name == self ._globals ["sphinx_html_theme" ]:
120- self .target_requirements .add (Requirement (f"{ name } { specifier } " ))
124+ self .target_requirements .add (ComparableRequirement (f"{ name } { specifier } " ))
121125 break
122126 else :
123- self .target_requirements .add (Requirement (self ._globals ["sphinx_html_theme" ]))
127+ self .target_requirements .add (ComparableRequirement (self ._globals ["sphinx_html_theme" ]))
124128
125129 # Mapping of pypi_name to version specifier
126130 my_sphinx_extensions = {
@@ -133,7 +137,7 @@ def compile_target_requirements(self) -> None:
133137
134138 for name , specifier in my_sphinx_extensions .items ():
135139 if name != self ._globals ["pypi_name" ]:
136- self .target_requirements .add (Requirement (f"{ name } { specifier } " ))
140+ self .target_requirements .add (ComparableRequirement (f"{ name } { specifier } " ))
137141
138142 def merge_requirements (self ) -> List [str ]:
139143 current_requirements , comments = read_requirements (self .req_file )
@@ -142,7 +146,7 @@ def merge_requirements(self) -> List[str]:
142146 req .name = normalize (req .name )
143147 if req .name not in self .get_target_requirement_names ():
144148 if req .name == "sphinx-rtd-theme" and self ._globals ["sphinx_html_theme" ] == "domdf_sphinx_theme" :
145- self .target_requirements .add (Requirement ("domdf-sphinx-theme>=0.1.0" ))
149+ self .target_requirements .add (ComparableRequirement ("domdf-sphinx-theme>=0.1.0" ))
146150 elif req .name == "sphinx-autodoc-typehints" :
147151 continue
148152 else :
0 commit comments