In Python 2.7, the following works: import datetime ZERO = timedelta(0) class UTC(datetime.tzinfo): """UTC""" # can be configured here def utcoffset(self, dt): return ZERO def tzname(self, dt): return "UTC" def dst(self, dt): return ZERO def extraMethod(self): return "here is an extra method" utc = UTC() epoch = datetime.datetime.utcfromtimestamp(0) print datetime.datetime.fromtimestamp(epoch, utc) But, the following does not work: import datetime ZERO = timedelta(0) class UTC(datetime.tzinfo): """UTC""" # can be configured here def utcoffset(self, dt): return ZERO def tzname(self, dt): return "UTC" def dst(self, dt): return ZERO def extraMethod(self): return "here is an extra method" utc = UTC() epoch = datetime.datetime.utcfromtimestamp(0) print datetime.datetime.fromtimestamp(epoch, utc) The difference is that there is a space after the class line. Is this an issue with grammar or some issue with the library's C code? If it is an issue with grammar, I appear to have not run into this issue with non-datetime-related code. If this not an issue, please correct me. Thanks! Brian
What do you mean by "work" and "does not work"? Both versions raise TypeError, because you're passing epoch to fromtimestamp, but once that's fixed both versions return identical output. Python is not sensitive to empty lines in class definitions, so I'd be surprised if anyone was able to reproduce your issue.
Nevermind, the code I submitted was incomplete/buggy. This is embarrassing. The issue was that I was using an interpreter and a class definition that had spaces was happy to be read incompletely. Attached is working demonstration code that doesn't work as expected when entered in an interpreter. Sorry, SilentGhost. As fast as I tried to edit this, you still beat me.
History
Date
User
Action
Args
2022-04-11 14:58:40
admin
set
github: 73005
2016-11-28 12:57:06
SilentGhost
set
stage: resolved
2016-11-28 12:52:51
bzliu94
set
status: open -> closedfiles: + example.pyresolution: not a bugmessages: +