Opened 12 years ago

Closed 12 years ago

#10941 closed Bug Report - General (Fixed)

Error in submitting hardware profile (hardwareprofile/sendProfile.py)

Reported by: rune.evjen@… Owned by: Raymond Wagner
Priority: minor Milestone: 0.26
Component: Bindings - Python Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

I get an error in mythfrontend on all my frontends both when running 0.25 and master (using mythbuntu packages, version below).

I have attached the output of the python script when run from a terminal with the same user as the one running mythtv.

I can assist in testing if needed.

Best regards, Rune

My locale is:

locale
LANG=nb_NO.UTF-8
LANGUAGE=nb_NO:nb:no_NO:no:nn_NO:nn:en
LC_CTYPE="nb_NO.UTF-8"
LC_NUMERIC="nb_NO.UTF-8"
LC_TIME="nb_NO.UTF-8"
LC_COLLATE="nb_NO.UTF-8"
LC_MONETARY="nb_NO.UTF-8"
LC_MESSAGES="nb_NO.UTF-8"
LC_PAPER="nb_NO.UTF-8"
LC_NAME="nb_NO.UTF-8"
LC_ADDRESS="nb_NO.UTF-8"
LC_TELEPHONE="nb_NO.UTF-8"
LC_MEASUREMENT="nb_NO.UTF-8"
LC_IDENTIFICATION="nb_NO.UTF-8"
LC_ALL=

Mythtv version:

mythfrontend --version
Please attach all output as a file in bug reports.
MythTV Version : v0.26-alpha-38-g643ad3e
MythTV Branch : master
Network Protocol : 75
Library API : 0.26.20120724-1
QT Version : 4.8.1
Options compiled in:
 linux profile use_hidesyms using_alsa using_oss using_pulse using_pulseoutput using_backend using_bindings_perl using_bindings_python using_bindings_php using_crystalhd using_dvb using_firewire using_frontend using_hdhomerun using_ceton using_hdpvr using_iptv using_ivtv using_joystick_menu using_libcec using_libcrypto using_libdns_sd using_libxml2 using_lirc using_mheg using_opengl_video using_qtwebkit using_qtscript using_qtdbus using_v4l2 using_x11 using_xrandr using_xv using_bindings_perl using_bindings_python using_bindings_php using_mythtranscode using_opengl using_vaapi using_vdpau using_ffmpeg_threads using_live using_mheg using_libass using_libxml2

Running sendProfile.py manually:

 /usr/share/mythtv/hardwareprofile/sendProfile.py --submitOnly -a
Processing MythTV Data
Traceback (most recent call last):
  File "/usr/share/mythtv/hardwareprofile/sendProfile.py", line 420, in <module>
    main()
  File "/usr/share/mythtv/hardwareprofile/sendProfile.py", line 403, in main
    profile = read_profile(gate, smolt.read_uuid())
  File "/usr/share/mythtv/hardwareprofile/sendProfile.py", line 299, in read_profile
    profile = smolt.create_profile(gate, uuid)
  File "/usr/share/mythtv/hardwareprofile/smolt.py", line 1251, in create_profile
    return create_profile_nocatch(gate, uuid)
  File "/usr/share/mythtv/hardwareprofile/smolt.py", line 1243, in create_profile_nocatch
    return _HardwareProfile(gate, uuid)
  File "/usr/share/mythtv/hardwareprofile/smolt.py", line 517, in __init__
    self.distro_specific = self.get_distro_specific_data(gate)
  File "/usr/share/mythtv/hardwareprofile/smolt.py", line 530, in get_distro_specific_data
    d.gather(gate, debug=True)
  File "/usr/share/mythtv/hardwareprofile/distros/mythtv_data/main.py", line 42, in gather
    features = create_mythtv_data(gate)
  File "/usr/share/mythtv/hardwareprofile/distros/mythtv_data/data_mythtv.py", line 514, in create_mythtv_data
    return _Mythtv_data(gate)
  File "/usr/share/mythtv/hardwareprofile/distros/mythtv_data/data_mythtv.py", line 41, in __init__
    self.get_data(gate)
  File "/usr/share/mythtv/hardwareprofile/distros/mythtv_data/data_mythtv.py", line 463, in get_data
    self._data.update(self.ProcessPrograms())
  File "/usr/share/mythtv/hardwareprofile/distros/mythtv_data/data_mythtv.py", line 85, in ProcessPrograms
    upcoming = list(_BE.getUpcomingRecordings())
  File "/usr/lib/python2.7/dist-packages/MythTV/mythproto.py", line 753, in __call__
    return self.sortedrun(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/MythTV/mythproto.py", line 790, in sortedrun
    key=lambda p: p.starttime))
  File "/usr/lib/python2.7/dist-packages/MythTV/mythproto.py", line 783, in run
    db=self.inst.db)
  File "/usr/lib/python2.7/dist-packages/MythTV/mythproto.py", line 851, in __init__
    DictData.__init__(self, raw)
  File "/usr/lib/python2.7/dist-packages/MythTV/altdict.py", line 141, in __init__
    data = self._process(data)
  File "/usr/lib/python2.7/dist-packages/MythTV/altdict.py", line 157, in _process
    data[i] = self._trans[self._field_type[i]](v)
  File "/usr/lib/python2.7/dist-packages/MythTV/altdict.py", line 103, in <lambda>
    lambda x: datetime.fromTimestamp(x, datetime.UTCTZ()),
  File "/usr/lib/python2.7/dist-packages/MythTV/utility/dt.py", line 55, in fromTimestamp
    return cls.fromtimestamp(float(posix), tz)
  File "/usr/lib/python2.7/dist-packages/MythTV/utility/dt.py", line 141, in fromtimestamp
    obj = super(datetime, cls).fromtimestamp(tz)
TypeError: a float is required

Change History (4)

comment:1 Changed 12 years ago by Raymond Wagner

Milestone: unknown0.26
Status: newaccepted

The error as reported only applies to 0.26, and the incomplete handling of timezone within the Python bindings, with the database now being UTC. Please open a separate ticket with whatever problem you are having in 0.25.

comment:3 Changed 12 years ago by Raymond Wagner

Milestone: 0.26unknown

comment:4 Changed 12 years ago by Raymond Wagner

Milestone: unknown0.26

comment:5 Changed 12 years ago by Raymond Wagner

Resolution: Fixed
Status: acceptedclosed

In b393cbc969f26c470e0ae38e48d9780b67dad604/mythtv:

Complete timezone handling in Python bindings following UTC change.

This adds proper timezone handling to the Python bindings, parsing zone
information out of the system TZif files. On systems without those
tables available, the code will revert to a simple offset, yielding
potentially inaccurate times when used on old recordings.

All user interaction with datetimes will be in local time, unless forced
otherwise by a timezone-aware datetime object. Times are converted to
UTC automatically for interfacing with MySQL and mythbackend.

Refs #10941

I'm leaving this ticket open for now, as the timezones will still need
to be created in a different manner on Windows, and potentially OSX.

Note: See TracTickets for help on using tickets.