annotate Python/getcompiler.c @ 84103:8a0ed9f63c6e

Issue #15767: Introduce ModuleNotFoundError, a subclass of ImportError. The exception is raised by import when a module could not be found. Technically this is defined as no viable loader could be found for the specified module. This includes ``from ... import`` statements so that the module usage is consistent for all situations where import couldn't find what was requested. This should allow for the common idiom of:: try: import something except ImportError: pass to be updated to using ModuleNotFoundError and not accidentally mask ImportError messages that should propagate (e.g. issues with a loader). This work was driven by the fact that the ``from ... import`` statement needed to be able to tell the difference between an ImportError that simply couldn't find a module (and thus silence the exception so that ceval can raise it) and an ImportError that represented an actual problem.
author Brett Cannon <brett@python.org>
date Wed, 12 Jun 2013 16:59:46 -0400
parents 4306107b1395
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3589
bd20c04274ff Added copyright.
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
1
3621
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 3589
diff changeset
2 /* Return the compiler identification, if possible. */
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 3589
diff changeset
3
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 3589
diff changeset
4 #include "Python.h"
3589
bd20c04274ff Added copyright.
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
5
bd20c04274ff Added copyright.
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
6 #ifndef COMPILER
3621
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 3589
diff changeset
7
2896
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 #ifdef __GNUC__
14410
4306107b1395 The GCC version is loooooooooong; put it on a new line.
Guido van Rossum <guido@python.org>
parents: 14375
diff changeset
9 #define COMPILER "\n[GCC " __VERSION__ "]"
2896
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 #endif
3621
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 3589
diff changeset
11
3589
bd20c04274ff Added copyright.
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
12 #endif /* !COMPILER */
2896
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
13
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 #ifndef COMPILER
3621
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 3589
diff changeset
15
2896
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 #ifdef __cplusplus
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 #define COMPILER "[C++]"
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 #else
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 #define COMPILER "[C]"
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 #endif
3621
f158edccc72c grand renaming; added copyright to some files
Guido van Rossum <guido@python.org>
parents: 3589
diff changeset
21
3589
bd20c04274ff Added copyright.
Guido van Rossum <guido@python.org>
parents: 2896
diff changeset
22 #endif /* !COMPILER */
2896
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
23
5860
728a083242a2 Make it return a _const_ char*.
Guido van Rossum <guido@python.org>
parents: 4503
diff changeset
24 const char *
13658
f79434ee41fa Mass ANSIfication of function definitions. Doesn't cover all 'extern'
Thomas Wouters <thomas@python.org>
parents: 13256
diff changeset
25 Py_GetCompiler(void)
2896
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
26 {
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 return COMPILER;
f0d9f800a4aa Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 }