python类tzoffset()的实例源码

parser.py 文件源码 项目:slack_scholar 作者: xLeitix 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def parse(cls, string):

        tzinfo = None

        if string == 'local':
            tzinfo = tz.tzlocal()

        elif string in ['utc', 'UTC']:
            tzinfo = tz.tzutc()

        else:

            iso_match = cls._TZINFO_RE.match(string)

            if iso_match:
                sign, hours, minutes = iso_match.groups()
                if minutes is None:
                    minutes = 0
                seconds = int(hours) * 3600 + int(minutes) * 60

                if sign == '-':
                    seconds *= -1

                tzinfo = tz.tzoffset(None, seconds)

            else:
                tzinfo = tz.gettz(string)

        if tzinfo is None:
            raise ParserError('Could not parse timezone expression "{0}"', string)

        return tzinfo
test_dumps.py 文件源码 项目:javaproperties 作者: jwodder 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_dumps_aware_datetime():
    assert dumps(
        {"key": "value"},
        timestamp=datetime.fromtimestamp(1473703254, tzoffset('PDT', -25200))
    ) == '#Mon Sep 12 11:00:54 PDT 2016\nkey=value\n'
bloomsky_api.py 文件源码 项目:bloomsky-api 作者: tylerdave 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def _timestamp_to_iso_format(timestamp, offset_hours=0):
        try:
            pseudo_timezone = tz.tzoffset('Unknown', int(offset_hours * 3600))
            return datetime.fromtimestamp(timestamp, pseudo_timezone).isoformat()
        except:
            raise
            return None
test_i18n.py 文件源码 项目:bernard 作者: BernardFW 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_make_date():
    d = datetime.date(2000, 1, 1)
    assert make_date(d) == d

    d2 = datetime.datetime(2000, 1, 1, 0, 0)
    assert make_date(d2) == d

    d3 = '2000-01-01T00:00:00.000000Z'
    assert make_date(d3) == d

    test_tz = pytz.timezone('America/Cancun')
    assert make_date(d3, test_tz) != d

    test_tz = tz.tzoffset('IST', -3600)
    assert make_date(d3, test_tz) != d
test_i18n.py 文件源码 项目:bernard 作者: BernardFW 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_format_date():
    test_tz = tz.tzoffset('IST', -3600)
    f = I18nFormatter('fr', test_tz)

    d = '2000-01-01T00:00:00.000000Z'

    assert f.format('Posté le {post_date:date:medium}', post_date=d) == \
        'Posté le 1 janv. 2000'
platform.py 文件源码 项目:bernard 作者: BernardFW 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_timezone(self) -> Optional[tzinfo]:
        """
        We can't exactly know the time zone of the user from what Facebook
        gives (fucking morons) but we can still give something that'll work
        until next DST.
        """

        u = await self._get_user()
        diff = float(u.get('timezone', 0)) * 3600.0

        return tz.tzoffset('ITC', diff)
parser.py 文件源码 项目:yatta_reader 作者: sound88 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def parse(cls, string):

        tzinfo = None

        if string == 'local':
            tzinfo = tz.tzlocal()

        elif string in ['utc', 'UTC']:
            tzinfo = tz.tzutc()

        else:

            iso_match = cls._TZINFO_RE.match(string)

            if iso_match:
                sign, hours, minutes = iso_match.groups()
                if minutes is None:
                    minutes = 0
                seconds = int(hours) * 3600 + int(minutes) * 60

                if sign == '-':
                    seconds *= -1

                tzinfo = tz.tzoffset(None, seconds)

            else:
                tzinfo = tz.gettz(string)

        if tzinfo is None:
            raise ParserError('Could not parse timezone expression "{0}"'.format(string))

        return tzinfo
test_contrib.py 文件源码 项目:trafaret 作者: Deepwalker 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def test_datetime(self):
        check = DateTime()
        self.assertEqual(check('2017-09-01 23:59'),
                         datetime.datetime(2017, 9, 1, 23, 59))
        self.assertEqual(
            check('Fri Sep 1 23:59:59 UTC 2017'),
            datetime.datetime(2017, 9, 1, 23, 59, 59, tzinfo=tzutc()))
        self.assertEqual(
            check('Fri Sep 1 23:59:59 2017'),
            datetime.datetime(2017, 9, 1, 23, 59, 59))
        self.assertEqual(
            check('Fri, 1 Sep 2017 23:59:59 -0300'),
            datetime.datetime(2017, 9, 1, 23, 59, 59,
                              tzinfo=tzoffset(None, -10800)))
        self.assertEqual(
            check('2017-09-01T23:59:59.5-03:00'),
            datetime.datetime(2017, 9, 1, 23, 59, 59, 500000,
                              tzinfo=tzoffset(None, -10800)))
        self.assertEqual(
            check('20170901T235959.5-0300'),
            datetime.datetime(2017, 9, 1, 23, 59, 59, 500000,
                              tzinfo=tzoffset(None, -10800)))
        self.assertEqual(
            check('20170901T235959-0300'),
            datetime.datetime(2017, 9, 1, 23, 59, 59,
                              tzinfo=tzoffset(None, -10800)))
        self.assertEqual(check('2017-09-01T23:59:59'),
                         datetime.datetime(2017, 9, 1, 23, 59, 59))
        self.assertEqual(check('20170901T235959'),
                         datetime.datetime(2017, 9, 1, 23, 59, 59))
        self.assertEqual(check('20170901235959'),
                         datetime.datetime(2017, 9, 1, 23, 59, 59))
        self.assertEqual(check('2017-09-01T23:59'),
                         datetime.datetime(2017, 9, 1, 23, 59))
        self.assertEqual(check('20170901T2359'),
                         datetime.datetime(2017, 9, 1, 23, 59))
        self.assertEqual(check('2017-09-01T23'),
                         datetime.datetime(2017, 9, 1, 23))
        self.assertEqual(check('20170901T23'),
                         datetime.datetime(2017, 9, 1, 23))
        self.assertEqual(check('2017-09-01'),
                         datetime.datetime(2017, 9, 1))
        self.assertEqual(check('20170901'),
                         datetime.datetime(2017, 9, 1))
        self.assertEqual(check('09-01-2017'),
                         datetime.datetime(2017, 9, 1))
        self.assertEqual(check('09-01-17'),
                         datetime.datetime(2017, 9, 1))
        self.assertEqual(check('2017.Sep.01'),
                         datetime.datetime(2017, 9, 1))
        self.assertEqual(check('2017/09/01'),
                         datetime.datetime(2017, 9, 1))
        self.assertEqual(check('2017 09 01'),
                         datetime.datetime(2017, 9, 1))
        self.assertEqual(check('1st of September 2017'),
                         datetime.datetime(2017, 9, 1))

        # Note: to equality here we need to pass extra params to parse() method
        self.assertNotEqual(check('01-09-2017'),
                            datetime.datetime(2017, 9, 1))
pipelines.py 文件源码 项目:mailingListScraper 作者: gaalcaras 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def process_item(self, item, spider):
        times = {
            'timestampSent': 'timeSent',
            'timestampReceived': 'timeReceived'
        }

        time_format = "%Y-%m-%d %H:%M:%S%z"

        # Define a default time zone according to the email server setting
        if spider.name == 'hypermail':
            def_tz = tz.tzoffset('EST', -18000)
        elif spider.name == 'marc':
            def_tz = tz.tzoffset('EDT', -14400)

        for key, val in times.items():
            if item[val] == "":
                item[val] = "NA"
                item[key] = "NA"
                continue

            try:
                parsed_time = dateParser(item[val])
            except ValueError:
                try:
                    # "... HH:MM:SS +0200"
                    pattern = r'(.* \d{2}:\d{2}:\d{2}(\s?[+,-]\d{4})?)'
                    simpler = re.search(pattern, item[val])
                    parsed_time = dateParser(simpler.group(1))
                except AttributeError:
                    message = '<' + item['url'] + '> '
                    message += 'ParseTimeFields could not parse ' + val + ', '
                    message += key + ' will be NA.'
                    LOGGER.warning(message)
                    item[key] = "NA"
                    continue

            if parsed_time.tzinfo is None:
                parsed_time = parsed_time.replace(tzinfo=def_tz)

            item[key] = parsed_time.strftime(time_format)

        return item
calendar_image.py 文件源码 项目:docker-iot-calendar 作者: masterandrey 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test():
    from io import BytesIO
    x = [datetime.datetime(2017, 4, 6, 0, 0), datetime.datetime(2017, 4, 7, 0, 0), datetime.datetime(2017, 4, 8, 0, 0), datetime.datetime(2017, 4, 11, 0, 0), datetime.datetime(2017, 4, 12, 0, 0), datetime.datetime(2017, 4, 13, 0, 0), datetime.datetime(2017, 4, 14, 0, 0), datetime.datetime(2017, 4, 16, 0, 0), datetime.datetime(2017, 4, 17, 0, 0),
         datetime.datetime(2017, 4, 18, 0, 0), datetime.datetime(2017, 4, 19, 0, 0), datetime.datetime(2017, 4, 20, 0, 0), datetime.datetime(2017, 4, 22, 0, 0), datetime.datetime(2017, 4, 23, 0, 0)]
    y = [[0.0, 15.0, 9.0, 0.0, 9.0, 5.0, 6.0, 0.0, 11.0, 9.0, 5.0, 6.0, 0.0, 11.0],
         [15.0, 17.0, 0.0, 20.0, 20.0, 19.0, 30.0, 32.0, 23.0, 20.0, 19.0, 30.0, 32.0, 23.0]]
    grid = [
        [{'date': datetime.datetime(2017, 4, 3, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 4, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 5, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 6, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [  0.,  15.]}, {'date': datetime.datetime(2017, 4, 7, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 15.,  17.]}, {'date': datetime.datetime(2017, 4, 8, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 9.,  0.]}, {'date': datetime.datetime(2017, 4, 9, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}],
        [{'date': datetime.datetime(2017, 4, 10, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 11, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [  0.,  20.]}, {'date': datetime.datetime(2017, 4, 12, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [  9.,  20.]}, {'date': datetime.datetime(2017, 4, 13, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [  5.,  19.]}, {'date': datetime.datetime(2017, 4, 14, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [  6.,  30.]}, {'date': datetime.datetime(2017, 4, 15, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 16, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [  0.,  32.]}],
        [{'date': datetime.datetime(2017, 4, 17, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 11.,  23.]}, {'date': datetime.datetime(2017, 4, 18, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 19, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 20, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 21, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 22, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 23, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}],
        [{'date': datetime.datetime(2017, 4, 24, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 11.,  23.]}, {'date': datetime.datetime(2017, 4, 25, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 26, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 27, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 28, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 29, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}, {'date': datetime.datetime(2017, 4, 30, 0, 0, tzinfo=tzoffset(None, 10800)), 'values': [ 0.,  0.]}]
            ]
    dashboard = {
        "summary": "Anna work-out",
        "empty_image": "../amazon-dash-private/images/old-woman.png",
        "images_folder": "../amazon-dash-private/images/"
    }
    labels = [
        {"summary": "Morning work-out", "image": "../amazon-dash-private/images/morning4.png"},
        {"summary": "Physiotherapy", "image": "../amazon-dash-private/images/evening2.png"}
    ]
    absent_labels = [
        {'image_grid': '../amazon-dash-private/images/absent_ill_grid.png',
         'image_plot': '../amazon-dash-private/images/absent_ill_plot.png',
        'summary': 'Sick'},
        {'image_grid': '../amazon-dash-private/images/absent_vacation_grid.png',
         'image_plot': '../amazon-dash-private/images/absent_vacation_plot.png',
         'summary': 'Vacation'}
    ]
    weather = {'day': [datetime.datetime(2017, 4, 22, 0, 0),
                       datetime.datetime(2017, 4, 23, 0, 0),
                       datetime.datetime(2017, 4, 24, 0, 0),
                       datetime.datetime(2017, 4, 25, 0, 0)],
               'icon': ['sct', 'ovc', 'hi_shwrs', 'sn'],
               'temp_max': [6.64, 6.38, 4.07, 6.91],
               'temp_min': [-0.58, -2.86, -1.87, -1.91],
               'images_folder': '../amazon-dash-private/images/'}
    t0 = datetime.datetime.now()
    image_data = draw_calendar(grid, x, y, weather, dashboard, labels, absent_labels,
                               ImageParams(
                                   dashboard='',
                                   format='gif',
                                   style='seaborn-talk',
                                   xkcd=1,
                                   rotate=0
                               )
                               )
    t1 = datetime.datetime.now()
    print(t1 - t0)
    image_file = BytesIO(image_data)
    image = PIL.Image.open(image_file)
    image.show()
    # with open('test.png', 'wb') as png_file:
    #     png_file.write(image)
    #plt.show()
    #todo speed it up. too many rescalings as I see from profiling.
    # may be using artists (http://stackoverflow.com/questions/41453902/is-it-possible-to-patch-an-image-in-matplotlib)
    # will reduce number of rescaling?
    # now it looks like matplotlib rescales after each operation


问题


面经


文章

微信
公众号

扫码关注公众号