| 
									
										
										
										
											1996-05-28 22:30:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-08-04 04:20:48 +00:00
										 |  |  | /* Return the full version string. */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-09-18 21:40:19 +00:00
										 |  |  | #include "Python.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-08-04 04:20:48 +00:00
										 |  |  | #include "patchlevel.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-15 09:45:11 -07:00
										 |  |  | static int initialized = 0; | 
					
						
							| 
									
										
										
										
											2024-05-18 15:44:40 -04:00
										 |  |  | static char version[300]; | 
					
						
							| 
									
										
										
										
											2022-11-15 09:45:11 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | void _Py_InitVersion(void) | 
					
						
							| 
									
										
										
										
											1995-08-04 04:20:48 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2022-11-15 09:45:11 -07:00
										 |  |  |     if (initialized) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     initialized = 1; | 
					
						
							| 
									
										
										
										
											2024-05-18 15:44:40 -04:00
										 |  |  | #ifdef Py_GIL_DISABLED
 | 
					
						
							| 
									
										
										
										
											2025-06-16 23:32:52 +09:00
										 |  |  |     const char *buildinfo_format = "%.80s free-threading build (%.80s) %.80s"; | 
					
						
							| 
									
										
										
										
											2024-05-18 15:44:40 -04:00
										 |  |  | #else
 | 
					
						
							|  |  |  |     const char *buildinfo_format = "%.80s (%.80s) %.80s"; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  |     PyOS_snprintf(version, sizeof(version), buildinfo_format, | 
					
						
							| 
									
										
										
										
											2017-11-28 17:56:10 +02:00
										 |  |  |                   PY_VERSION, Py_GetBuildInfo(), Py_GetCompiler()); | 
					
						
							| 
									
										
										
										
											2022-11-15 09:45:11 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const char * | 
					
						
							|  |  |  | Py_GetVersion(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     _Py_InitVersion(); | 
					
						
							| 
									
										
										
										
											2017-11-28 17:56:10 +02:00
										 |  |  |     return version; | 
					
						
							| 
									
										
										
										
											1995-08-04 04:20:48 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2021-12-10 01:52:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // Export the Python hex version as a constant.
 | 
					
						
							|  |  |  | const unsigned long Py_Version = PY_VERSION_HEX; |