| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -25,8 +25,15 @@ import ( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					var normalizer = strings.NewReplacer(".", "-", "_", "-") | 
					 | 
					 | 
					 | 
					var normalizer = strings.NewReplacer(".", "-", "_", "-") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					var nameMatcher = regexp.MustCompile(`\A[a-zA-Z0-9\.\-_]+\z`) | 
					 | 
					 | 
					 | 
					var nameMatcher = regexp.MustCompile(`\A[a-zA-Z0-9\.\-_]+\z`) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// https://www.python.org/dev/peps/pep-0440/#appendix-b-parsing-version-strings-with-regular-expressions
 | 
					 | 
					 | 
					 | 
					// https://peps.python.org/pep-0440/#appendix-b-parsing-version-strings-with-regular-expressions
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					var versionMatcher = regexp.MustCompile(`^([1-9][0-9]*!)?(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))*((a|b|rc)(0|[1-9][0-9]*))?(\.post(0|[1-9][0-9]*))?(\.dev(0|[1-9][0-9]*))?$`) | 
					 | 
					 | 
					 | 
					var versionMatcher = regexp.MustCompile(`\Av?` + | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						`(?:[0-9]+!)?` + // epoch
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						`[0-9]+(?:\.[0-9]+)*` + // release segment
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						`(?:[-_\.]?(?:a|b|c|rc|alpha|beta|pre|preview)[-_\.]?[0-9]*)?` + // pre-release
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						`(?:-[0-9]+|[-_\.]?(?:post|rev|r)[-_\.]?[0-9]*)?` + // post release
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						`(?:[-_\.]?dev[-_\.]?[0-9]*)?` + // dev release
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						`(?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)?` + // local version
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						`\z`) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					func apiError(ctx *context.Context, status int, obj interface{}) { | 
					 | 
					 | 
					 | 
					func apiError(ctx *context.Context, status int, obj interface{}) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						helper.LogAndProcessError(ctx, status, obj, func(message string) { | 
					 | 
					 | 
					 | 
						helper.LogAndProcessError(ctx, status, obj, func(message string) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |