blob: dcb992b1afbeb32b3a75d614667a846f669dfbb2 [file] [log] [blame]
Serhiy Storchaka1009bf12015-04-03 23:53:51 +03001/*[clinic input]
2preserve
3[clinic start generated code]*/
4
5PyDoc_STRVAR(datetime_datetime_now__doc__,
6"now($type, /, tz=None)\n"
7"--\n"
8"\n"
9"Returns new datetime object representing current time local to tz.\n"
10"\n"
11" tz\n"
12" Timezone object.\n"
13"\n"
14"If no tz is specified, uses local timezone.");
15
16#define DATETIME_DATETIME_NOW_METHODDEF \
Victor Stinner37e4ef72016-09-09 20:00:13 -070017 {"now", (PyCFunction)datetime_datetime_now, METH_FASTCALL|METH_CLASS, datetime_datetime_now__doc__},
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030018
19static PyObject *
20datetime_datetime_now_impl(PyTypeObject *type, PyObject *tz);
21
22static PyObject *
Victor Stinner37e4ef72016-09-09 20:00:13 -070023datetime_datetime_now(PyTypeObject *type, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030024{
25 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +030026 static const char * const _keywords[] = {"tz", NULL};
27 static _PyArg_Parser _parser = {"|O:now", _keywords, 0};
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030028 PyObject *tz = Py_None;
29
Victor Stinner37e4ef72016-09-09 20:00:13 -070030 if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030031 &tz)) {
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030032 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030033 }
Serhiy Storchaka1009bf12015-04-03 23:53:51 +030034 return_value = datetime_datetime_now_impl(type, tz);
35
36exit:
37 return return_value;
38}
Victor Stinner37e4ef72016-09-09 20:00:13 -070039/*[clinic end generated code: output=8aaac0705add61ca input=a9049054013a1b77]*/