A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://mail.python.org/pipermail/python-checkins/2002-December/031985.html below:

[Python-checkins] python/dist/src/Modules datetimemodule.c,1.13,1.14

[Python-checkins] python/dist/src/Modules datetimemodule.c,1.13,1.14tim_one@users.sourceforge.net tim_one@users.sourceforge.net
Mon, 23 Dec 2002 21:41:29 -0800
Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv4868/python/Modules

Modified Files:
	datetimemodule.c 
Log Message:
Implemented .replace() methods for date, datetime, datetimetz, time and
timetz.


Index: datetimemodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/datetimemodule.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** datetimemodule.c	23 Dec 2002 16:17:39 -0000	1.13
--- datetimemodule.c	24 Dec 2002 05:41:27 -0000	1.14
***************
*** 2144,2147 ****
--- 2144,2149 ----
  /* Constructors. */
  
+ static char *date_kws[] = {"year", "month", "day", NULL};
+ 
  static PyObject *
  date_new(PyTypeObject *type, PyObject *args, PyObject *kw)
***************
*** 2152,2160 ****
  	int day;
  
! 	static char *keywords[] = {
! 		"year", "month", "day", NULL
! 	};
! 
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "iii", keywords,
  					&year, &month, &day)) {
  		if (check_date_args(year, month, day) < 0)
--- 2154,2158 ----
  	int day;
  
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "iii", date_kws,
  					&year, &month, &day)) {
  		if (check_date_args(year, month, day) < 0)
***************
*** 2455,2458 ****
--- 2453,2476 ----
  }
  
+ static PyObject *
+ date_replace(PyDateTime_Date *self, PyObject *args, PyObject *kw)
+ {
+ 	PyObject *clone;
+ 	PyObject *tuple;
+ 	int year = GET_YEAR(self);
+ 	int month = GET_MONTH(self);
+ 	int day = GET_DAY(self);
+ 
+ 	if (! PyArg_ParseTupleAndKeywords(args, kw, "|iii:replace", date_kws,
+ 					  &year, &month, &day))
+ 		return NULL;
+ 	tuple = Py_BuildValue("iii", year, month, day);
+ 	if (tuple == NULL)
+ 		return NULL;
+ 	clone = date_new(self->ob_type, tuple, NULL);
+ 	Py_DECREF(tuple);
+ 	return clone;
+ }
+ 
  static PyObject *date_getstate(PyDateTime_Date *self);
  
***************
*** 2603,2606 ****
--- 2621,2627 ----
  		   "Monday == 0 ... Sunday == 6")},
  
+ 	{"replace",     (PyCFunction)date_replace,      METH_KEYWORDS,
+ 	 PyDoc_STR("Return date with new specified fields.")},
+ 
  	{"__setstate__", (PyCFunction)date_setstate,	METH_O,
  	 PyDoc_STR("__setstate__(state)")},
***************
*** 2713,2716 ****
--- 2734,2742 ----
  /* Constructors. */
  
+ 
+ static char *datetime_kws[] = {"year", "month", "day",
+ 			       "hour", "minute", "second", "microsecond",
+ 			       NULL};
+ 
  static PyObject *
  datetime_new(PyTypeObject *type, PyObject *args, PyObject *kw)
***************
*** 2725,2734 ****
  	int usecond = 0;
  
! 	static char *keywords[] = {
! 		"year", "month", "day", "hour", "minute", "second",
! 		"microsecond", NULL
! 	};
! 
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "iii|iiii", keywords,
  					&year, &month, &day, &hour, &minute,
  					&second, &usecond)) {
--- 2751,2755 ----
  	int usecond = 0;
  
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "iii|iiii", datetime_kws,
  					&year, &month, &day, &hour, &minute,
  					&second, &usecond)) {
***************
*** 3202,3205 ****
--- 3223,3251 ----
  
  static PyObject *
+ datetime_replace(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)
+ {
+ 	PyObject *clone;
+ 	PyObject *tuple;
+ 	int y = GET_YEAR(self);
+ 	int m = GET_MONTH(self);
+ 	int d = GET_DAY(self);
+ 	int hh = DATE_GET_HOUR(self);
+ 	int mm = DATE_GET_MINUTE(self);
+ 	int ss = DATE_GET_SECOND(self);
+ 	int us = DATE_GET_MICROSECOND(self);
+ 
+ 	if (! PyArg_ParseTupleAndKeywords(args, kw, "|iiiiiii:replace",
+ 					  datetime_kws,
+ 					  &y, &m, &d, &hh, &mm, &ss, &us))
+ 		return NULL;
+ 	tuple = Py_BuildValue("iiiiiii", y, m, d, hh, mm, ss, us);
+ 	if (tuple == NULL)
+ 		return NULL;
+ 	clone = datetime_new(self->ob_type, tuple, NULL);
+ 	Py_DECREF(tuple);
+ 	return clone;
+ }
+ 
+ static PyObject *
  datetime_timetuple(PyDateTime_DateTime *self)
  {
***************
*** 3349,3352 ****
--- 3395,3401 ----
  	 	   "to 'T'.")},
  
+ 	{"replace",     (PyCFunction)datetime_replace,	METH_KEYWORDS,
+ 	 PyDoc_STR("Return datetime with new specified fields.")},
+ 
  	{"__setstate__", (PyCFunction)datetime_setstate, METH_O,
  	 PyDoc_STR("__setstate__(state)")},
***************
*** 3458,3461 ****
--- 3507,3512 ----
  /* Constructors. */
  
+ static char *time_kws[] = {"hour", "minute", "second", "microsecond", NULL};
+ 
  static PyObject *
  time_new(PyTypeObject *type, PyObject *args, PyObject *kw)
***************
*** 3467,3475 ****
  	int usecond = 0;
  
- 	static char *keywords[] = {
- 		"hour", "minute", "second", "microsecond", NULL
- 	};
  
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "|iiii", keywords,
  					&hour, &minute, &second, &usecond)) {
  		if (check_time_args(hour, minute, second, usecond) < 0)
--- 3518,3523 ----
  	int usecond = 0;
  
  
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "|iiii", time_kws,
  					&hour, &minute, &second, &usecond)) {
  		if (check_time_args(hour, minute, second, usecond) < 0)
***************
*** 3670,3673 ****
--- 3718,3743 ----
  }
  
+ static PyObject *
+ time_replace(PyDateTime_Time *self, PyObject *args, PyObject *kw)
+ {
+ 	PyObject *clone;
+ 	PyObject *tuple;
+ 	int hh = TIME_GET_HOUR(self);
+ 	int mm = TIME_GET_MINUTE(self);
+ 	int ss = TIME_GET_SECOND(self);
+ 	int us = TIME_GET_MICROSECOND(self);
+ 
+ 	if (! PyArg_ParseTupleAndKeywords(args, kw, "|iiii:replace",
+ 					  time_kws,
+ 					  &hh, &mm, &ss, &us))
+ 		return NULL;
+ 	tuple = Py_BuildValue("iiii", hh, mm, ss, us);
+ 	if (tuple == NULL)
+ 		return NULL;
+ 	clone = time_new(self->ob_type, tuple, NULL);
+ 	Py_DECREF(tuple);
+ 	return clone;
+ }
+ 
  static int
  time_nonzero(PyDateTime_Time *self)
***************
*** 3760,3763 ****
--- 3830,3836 ----
  	 PyDoc_STR("format -> strftime() style string.")},
  
+ 	{"replace",     (PyCFunction)time_replace,	METH_KEYWORDS,
+ 	 PyDoc_STR("Return datetime with new specified fields.")},
+ 
  	{"__setstate__", (PyCFunction)time_setstate,	METH_O,
  	 PyDoc_STR("__setstate__(state)")},
***************
*** 3978,3981 ****
--- 4051,4057 ----
   */
  
+ static char *timetz_kws[] = {"hour", "minute", "second", "microsecond",
+ 			     "tzinfo", NULL};
+ 
  static PyObject *
  timetz_new(PyTypeObject *type, PyObject *args, PyObject *kw)
***************
*** 3988,3996 ****
  	PyObject *tzinfo = Py_None;
  
! 	static char *keywords[] = {
! 		"hour", "minute", "second", "microsecond", "tzinfo", NULL
! 	};
! 
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "|iiiiO", keywords,
  					&hour, &minute, &second, &usecond,
  					&tzinfo)) {
--- 4064,4068 ----
  	PyObject *tzinfo = Py_None;
  
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "|iiiiO", timetz_kws,
  					&hour, &minute, &second, &usecond,
  					&tzinfo)) {
***************
*** 4079,4082 ****
--- 4151,4177 ----
  /* Note:  tp_richcompare and tp_hash are inherited from time. */
  
+ static PyObject *
+ timetz_replace(PyDateTime_TimeTZ *self, PyObject *args, PyObject *kw)
+ {
+ 	PyObject *clone;
+ 	PyObject *tuple;
+ 	int hh = TIME_GET_HOUR(self);
+ 	int mm = TIME_GET_MINUTE(self);
+ 	int ss = TIME_GET_SECOND(self);
+ 	int us = TIME_GET_MICROSECOND(self);
+ 	PyObject *tzinfo = self->tzinfo;
+ 
+ 	if (! PyArg_ParseTupleAndKeywords(args, kw, "|iiiiO:replace",
+ 					  timetz_kws,
+ 					  &hh, &mm, &ss, &us, &tzinfo))
+ 		return NULL;
+ 	tuple = Py_BuildValue("iiiiO", hh, mm, ss, us, tzinfo);
+ 	if (tuple == NULL)
+ 		return NULL;
+ 	clone = timetz_new(self->ob_type, tuple, NULL);
+ 	Py_DECREF(tuple);
+ 	return clone;
+ }
+ 
  static int
  timetz_nonzero(PyDateTime_TimeTZ *self)
***************
*** 4205,4208 ****
--- 4300,4306 ----
  	 PyDoc_STR("Return self.tzinfo.dst(self).")},
  
+ 	{"replace",     (PyCFunction)timetz_replace,	METH_KEYWORDS,
+ 	 PyDoc_STR("Return timetz with new specified fields.")},
+ 
  	{"__setstate__", (PyCFunction)timetz_setstate,	METH_O,
  	 PyDoc_STR("__setstate__(state)")},
***************
*** 4315,4318 ****
--- 4413,4421 ----
  }
  
+ static char *datetimetz_kws[] = {
+ 	"year", "month", "day", "hour", "minute", "second",
+ 	"microsecond", "tzinfo", NULL
+ };
+ 
  static PyObject *
  datetimetz_new(PyTypeObject *type, PyObject *args, PyObject *kw)
***************
*** 4328,4337 ****
  	PyObject *tzinfo = Py_None;
  
! 	static char *keywords[] = {
! 		"year", "month", "day", "hour", "minute", "second",
! 		"microsecond", "tzinfo", NULL
! 	};
! 
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "iii|iiiiO", keywords,
  					&year, &month, &day, &hour, &minute,
  					&second, &usecond, &tzinfo)) {
--- 4431,4435 ----
  	PyObject *tzinfo = Py_None;
  
! 	if (PyArg_ParseTupleAndKeywords(args, kw, "iii|iiiiO", datetimetz_kws,
  					&year, &month, &day, &hour, &minute,
  					&second, &usecond, &tzinfo)) {
***************
*** 4573,4576 ****
--- 4671,4701 ----
  
  static PyObject *
+ datetimetz_replace(PyDateTime_DateTimeTZ *self, PyObject *args, PyObject *kw)
+ {
+ 	PyObject *clone;
+ 	PyObject *tuple;
+ 	int y = GET_YEAR(self);
+ 	int m = GET_MONTH(self);
+ 	int d = GET_DAY(self);
+ 	int hh = DATE_GET_HOUR(self);
+ 	int mm = DATE_GET_MINUTE(self);
+ 	int ss = DATE_GET_SECOND(self);
+ 	int us = DATE_GET_MICROSECOND(self);
+ 	PyObject *tzinfo = self->tzinfo;
+ 
+ 	if (! PyArg_ParseTupleAndKeywords(args, kw, "|iiiiiiiO:replace",
+ 					  datetimetz_kws,
+ 					  &y, &m, &d, &hh, &mm, &ss, &us,
+ 					  &tzinfo))
+ 		return NULL;
+ 	tuple = Py_BuildValue("iiiiiiiO", y, m, d, hh, mm, ss, us, tzinfo);
+ 	if (tuple == NULL)
+ 		return NULL;
+ 	clone = datetimetz_new(self->ob_type, tuple, NULL);
+ 	Py_DECREF(tuple);
+ 	return clone;
+ }
+ 
+ static PyObject *
  datetimetz_timetuple(PyDateTime_DateTimeTZ *self)
  {
***************
*** 4780,4783 ****
--- 4905,4911 ----
  	{"dst",		(PyCFunction)datetimetz_dst, METH_NOARGS,
  	 PyDoc_STR("Return self.tzinfo.dst(self).")},
+ 
+ 	{"replace",     (PyCFunction)datetimetz_replace,	METH_KEYWORDS,
+ 	 PyDoc_STR("Return datetimetz with new specified fields.")},
  
  	{"__setstate__", (PyCFunction)datetimetz_setstate, METH_O,





RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4