This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: tzinfo class spacing bug
Type: behavior Stage: resolved
Components: Library (Lib) Versions: Python 2.7
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: SilentGhost, bzliu94
Priority: normal Keywords:

Created on 2016-11-28 12:34 by bzliu94, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
bug.py bzliu94, 2016-11-28 12:34 Example code
example.py bzliu94, 2016-11-28 12:52 Example code
Messages (3)
msg281867 - (view) Author: B. Liu (bzliu94) Date: 2016-11-28 12:34
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
msg281871 - (view) Author: SilentGhost (SilentGhost) * (Python triager) Date: 2016-11-28 12:51
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.
msg281873 - (view) Author: B. Liu (bzliu94) Date: 2016-11-28 12:52
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:40adminsetgithub: 73005
2016-11-28 12:57:06SilentGhostsetstage: resolved
2016-11-28 12:52:51bzliu94setstatus: open -> closed
files: + example.py
resolution: not a bug
messages: + msg281873
2016-11-28 12:51:21SilentGhostsetnosy: + SilentGhost
messages: + msg281871
2016-11-28 12:36:20bzliu94settype: behavior
versions: + Python 2.7
2016-11-28 12:34:30bzliu94create