4242 Union ,
4343)
4444
45- import pkg_resources
45+ from packaging . requirements import InvalidRequirement , Requirement
4646from strenum import StrEnum
4747
4848import descarteslabs .exceptions as exceptions
@@ -711,11 +711,6 @@ def _include_init_files(self, dir_path, archive, sys_path):
711711 def _bundle_requirements (self , requirements ):
712712 """Bundle the requirements into the archive."""
713713
714- if not pkg_resources :
715- warnings .warn (
716- "Your Python does not have a recent version of `setuptools`. "
717- "For a better experience update your environment by running `pip install -U setuptools`."
718- )
719714 if isinstance (requirements , str ):
720715 return self ._requirements_file (requirements )
721716 else :
@@ -735,29 +730,29 @@ def _requirements_file(self, requirements):
735730 def _requirements_list (self , requirements ):
736731 """Validate the requirements list."""
737732
738- if pkg_resources :
739- bad_requirements = []
740- for requirement in requirements :
741- try :
742- pkg_resources .Requirement .parse (requirement )
743- except ValueError :
744- # comment or pip-specific option not understood by pkg_resources
745- if requirement .startswith ("#" ) or requirement .startswith ("-" ):
746- continue
747- if requirement .startswith ("https://" ):
733+ bad_requirements = []
734+ for requirement in requirements :
735+ try :
736+ Requirement (requirement )
737+ except InvalidRequirement :
738+ # comment or pip-specific option not understood by packaging
739+ if requirement .startswith ("#" ) or requirement .startswith ("-" ):
740+ continue
741+ if requirement .startswith ("https://" ):
742+ continue
743+ # e.g. torch-2.0.1+cpu which packaging doesn't understand
744+ if "+" in requirement :
745+ try :
746+ Requirement (requirement .rsplit ("+" )[0 ])
748747 continue
749- # e.g. torch-2.0.1+cpu which pkg_resource doesn't understand
750- if "+" in requirement :
751- try :
752- pkg_resources .Requirement .parse (requirement .rsplit ("+" )[0 ])
753- continue
754- except ValueError :
755- pass
756- bad_requirements .append (requirement )
757- if bad_requirements :
758- raise ValueError (
759- "Invalid Python requirements: {}" .format ("," .join (bad_requirements ))
760- )
748+ except InvalidRequirement :
749+ pass
750+ bad_requirements .append (requirement )
751+ if bad_requirements :
752+ raise ValueError (
753+ "Invalid Python requirements: {}" .format ("," .join (bad_requirements ))
754+ )
755+
761756 return "\n " .join (requirements )
762757
763758 def _sys_path_prefix (self , path ):
0 commit comments