blob: 25f715e3a8bb05d4fceae24dc7f3431bccceddac [file] [log] [blame]
Christian Heimes33fe8092008-04-13 13:53:33 +00001#ifndef Py_WARNINGS_H
2#define Py_WARNINGS_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
Martin v. Löwis4d0d4712010-12-03 20:14:31 +00007#ifndef Py_LIMITED_API
Martin v. Löwis1a214512008-06-11 05:26:20 +00008PyAPI_FUNC(PyObject*) _PyWarnings_Init(void);
Martin v. Löwis4d0d4712010-12-03 20:14:31 +00009#endif
Victor Stinner1f151112017-11-23 10:43:14 +010010#ifdef Py_BUILD_CORE
11PyAPI_FUNC(PyObject*) _PyWarnings_InitWithConfig(const _PyCoreConfig *config);
12#endif
Christian Heimes33fe8092008-04-13 13:53:33 +000013
Victor Stinner555a24f2010-12-27 01:49:26 +000014PyAPI_FUNC(int) PyErr_WarnEx(
15 PyObject *category,
16 const char *message, /* UTF-8 encoded string */
17 Py_ssize_t stack_level);
18PyAPI_FUNC(int) PyErr_WarnFormat(
19 PyObject *category,
20 Py_ssize_t stack_level,
21 const char *format, /* ASCII-encoded string */
22 ...);
Victor Stinner914cde82016-03-19 01:03:51 +010023
Serhiy Storchaka34d0ac82016-12-27 14:57:39 +020024#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
Victor Stinner914cde82016-03-19 01:03:51 +010025/* Emit a ResourceWarning warning */
26PyAPI_FUNC(int) PyErr_ResourceWarning(
27 PyObject *source,
28 Py_ssize_t stack_level,
29 const char *format, /* ASCII-encoded string */
30 ...);
Serhiy Storchaka34d0ac82016-12-27 14:57:39 +020031#endif
Martin v. Löwis1c0689c2014-01-03 21:36:49 +010032#ifndef Py_LIMITED_API
Victor Stinner14e461d2013-08-26 22:28:21 +020033PyAPI_FUNC(int) PyErr_WarnExplicitObject(
34 PyObject *category,
35 PyObject *message,
36 PyObject *filename,
37 int lineno,
38 PyObject *module,
39 PyObject *registry);
Martin v. Löwis1c0689c2014-01-03 21:36:49 +010040#endif
Victor Stinner555a24f2010-12-27 01:49:26 +000041PyAPI_FUNC(int) PyErr_WarnExplicit(
42 PyObject *category,
43 const char *message, /* UTF-8 encoded string */
Victor Stinnercb428f02010-12-27 20:10:36 +000044 const char *filename, /* decoded from the filesystem encoding */
Victor Stinner555a24f2010-12-27 01:49:26 +000045 int lineno,
46 const char *module, /* UTF-8 encoded string */
47 PyObject *registry);
Christian Heimes33fe8092008-04-13 13:53:33 +000048
Martin v. Löwis1c0689c2014-01-03 21:36:49 +010049#ifndef Py_LIMITED_API
Antoine Pitrou070cb3c2013-05-08 13:23:25 +020050PyAPI_FUNC(int)
51PyErr_WarnExplicitFormat(PyObject *category,
52 const char *filename, int lineno,
53 const char *module, PyObject *registry,
54 const char *format, ...);
Martin v. Löwis1c0689c2014-01-03 21:36:49 +010055#endif
Antoine Pitrou070cb3c2013-05-08 13:23:25 +020056
Christian Heimes33fe8092008-04-13 13:53:33 +000057/* DEPRECATED: Use PyErr_WarnEx() instead. */
Martin v. Löwis4d0d4712010-12-03 20:14:31 +000058#ifndef Py_LIMITED_API
Christian Heimes33fe8092008-04-13 13:53:33 +000059#define PyErr_Warn(category, msg) PyErr_WarnEx(category, msg, 1)
Martin v. Löwis4d0d4712010-12-03 20:14:31 +000060#endif
Christian Heimes33fe8092008-04-13 13:53:33 +000061
62#ifdef __cplusplus
63}
64#endif
65#endif /* !Py_WARNINGS_H */
66