@@ -563,7 +563,7 @@ def _parse(version_str, strict = True):
563563
564564 return parts
565565
566- def version (version_str , strict = False ):
566+ def parse (version_str , strict = False ):
567567 """Parse a PEP4408 compliant version
568568
569569 See https://packaging.python.org/en/latest/specifications/binary-distribution-format/#escaping-and-unicode
@@ -581,7 +581,7 @@ def version(version_str, strict = False):
581581 if not parts :
582582 return None
583583
584- return _new_version (
584+ return struct (
585585 epoch = _parse_epoch (parts ["epoch" ]),
586586 release = _parse_release (parts ["release" ]),
587587 pre = _parse_pre (parts ["pre" ]),
@@ -644,25 +644,6 @@ def _parse_post(value):
644644 # it. Use `ord` and `chr` functions to find a good value.
645645 return ("~" , post )
646646
647- def _new_version (** kwargs ):
648- self = struct (** kwargs )
649-
650- return struct (
651- # methods, keep sorted
652- compatible = mkmethod (self , _version_compatible ),
653- eq = mkmethod (self , _version_eq ),
654- eqq = mkmethod (self , _version_eqq ),
655- ge = mkmethod (self , _version_ge ),
656- gt = mkmethod (self , _version_gt ),
657- key = mkmethod (self , _version_key ),
658- le = mkmethod (self , _version_le ),
659- lt = mkmethod (self , _version_lt ),
660- ne = mkmethod (self , _version_ne ),
661-
662- # attrs are the same as self
663- ** kwargs
664- )
665-
666647def _pad_zeros (release , n ):
667648 padding = n - len (release )
668649 if padding <= 0 :
@@ -846,3 +827,18 @@ def _version_key(self, *, local = True):
846827 # PEP440 - post release ordering: .devN, <no suffix>
847828 self .dev or release_key ,
848829 )
830+
831+ version = struct (
832+ normalize = normalize_pep440 ,
833+ parse = parse ,
834+ # methods, keep sorted
835+ key = _version_key ,
836+ is_compatible = _version_compatible ,
837+ is_eq = _version_eq ,
838+ is_eeq = _version_eqq ,
839+ is_ge = _version_ge ,
840+ is_gt = _version_gt ,
841+ is_le = _version_le ,
842+ is_lt = _version_lt ,
843+ is_ne = _version_ne ,
844+ )
0 commit comments