/usr/lib/python2.7/dist-packages/fiona/rfc3339.py is in python-fiona 1.7.10-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79  | # Fiona's date and time is founded on RFC 3339.
#
# OGR knows 3 time "zones": GMT, "local time", amd "unknown". Fiona, when
# writing will convert times with a timezone offset to GMT (Z) and otherwise
# will write times with the unknown zone.
import datetime
import logging
import re
log = logging.getLogger("Fiona")
# Fiona's 'date', 'time', and 'datetime' types are sub types of 'str'.
class FionaDateType(str):
    """Dates without time."""
class FionaTimeType(str):
    """Times without dates."""
class FionaDateTimeType(str):
    """Dates and times."""
pattern_date = re.compile(r"(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)")
pattern_time = re.compile(
    r"(\d\d)(:)?(\d\d)(:)?(\d\d)?(\.\d+)?(Z|([+-])?(\d\d)?(:)?(\d\d))?" )
pattern_datetime = re.compile(
    r"(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)(T)?(\d\d)(:)?(\d\d)(:)?(\d\d)?(\.\d+)?(Z|([+-])?(\d\d)?(:)?(\d\d))?" )
class group_accessor(object):
    def __init__(self, m):
        self.match = m
    def group(self, i):
        try:
            return self.match.group(i) or 0
        except IndexError:
            return 0
def parse_time(text):
    """Given a RFC 3339 time, returns a tz-naive datetime tuple"""
    match = re.search(pattern_time, text)
    if match is None:
        raise ValueError("Time data '%s' does not match pattern" % text)
    g = group_accessor(match)
    log.debug("Match groups: %s", match.groups())
    return (0, 0, 0,
        int(g.group(1)), 
        int(g.group(3)), 
        int(g.group(5)), 
        1000000.0*float(g.group(6)) )
def parse_date(text):
    """Given a RFC 3339 date, returns a tz-naive datetime tuple"""
    match = re.search(pattern_date, text)
    if match is None:
        raise ValueError("Time data '%s' does not match pattern" % text)
    g = group_accessor(match)
    log.debug("Match groups: %s", match.groups())
    return (
        int(g.group(1)), 
        int(g.group(3)), 
        int(g.group(5)),
        0, 0, 0, 0.0 )
def parse_datetime(text):
    """Given a RFC 3339 datetime, returns a tz-naive datetime tuple"""
    match = re.search(pattern_datetime, text)
    if match is None:
        raise ValueError("Time data '%s' does not match pattern" % text)
    g = group_accessor(match)
    log.debug("Match groups: %s", match.groups())
    return (
        int(g.group(1)), 
        int(g.group(3)), 
        int(g.group(5)),
        int(g.group(7)), 
        int(g.group(9)), 
        int(g.group(11)), 
        1000000.0*float(g.group(12)) )
 |