)]}'
{"gnocchi/carbonara.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ab7ec3eb0cae828f1b3cd9205d8154178e0bd268","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        start \u003d deserial[0]"},{"line_number":242,"context_line":"        timestamps \u003d [start]"},{"line_number":243,"context_line":"        for delta in itertools.islice(deserial, 1, nb_points):"},{"line_number":244,"context_line":"            start \u003d start + delta"},{"line_number":245,"context_line":"            timestamps.append(start)"},{"line_number":246,"context_line":"        timestamps \u003d numpy.array(timestamps, dtype\u003d\u0027datetime64[ns]\u0027)"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_50e6a2b0","line":244,"updated":"2017-01-17 16:03:04.000000000","message":"+\u003d delta ;)","commit_id":"3f49db08c0856e4bb2b718b90482b9ebe8f94cf0"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"c25ab8759dfe90c4dea144ded0b71efb0a5caf47","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        start \u003d deserial[0]"},{"line_number":242,"context_line":"        timestamps \u003d [start]"},{"line_number":243,"context_line":"        for delta in itertools.islice(deserial, 1, nb_points):"},{"line_number":244,"context_line":"            start \u003d start + delta"},{"line_number":245,"context_line":"            timestamps.append(start)"},{"line_number":246,"context_line":"        timestamps \u003d numpy.array(timestamps, dtype\u003d\u0027datetime64[ns]\u0027)"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_45724c12","line":244,"in_reply_to":"7a3c09a3_50e6a2b0","updated":"2017-01-17 23:20:32.000000000","message":"Done","commit_id":"3f49db08c0856e4bb2b718b90482b9ebe8f94cf0"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ab7ec3eb0cae828f1b3cd9205d8154178e0bd268","unresolved":false,"context_lines":[{"line_number":512,"context_line":"    def unserialize(cls, data, start, agg_method, sampling):"},{"line_number":513,"context_line":"        x, y \u003d [], []"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        # NOTE(sileht): Is that safe ?"},{"line_number":516,"context_line":"        start \u003d int(float(start))"},{"line_number":517,"context_line":"        if data:"},{"line_number":518,"context_line":"            if cls.is_compressed(data):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_d0a8d222","line":515,"updated":"2017-01-17 16:03:04.000000000","message":"it might not be because if start is a sub-second precision you will lose it\n\ni\u0027m not sure we have a test like that though, but it\u0027s possible that start is a splitkey like 0.5","commit_id":"3f49db08c0856e4bb2b718b90482b9ebe8f94cf0"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"c25ab8759dfe90c4dea144ded0b71efb0a5caf47","unresolved":false,"context_lines":[{"line_number":512,"context_line":"    def unserialize(cls, data, start, agg_method, sampling):"},{"line_number":513,"context_line":"        x, y \u003d [], []"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        # NOTE(sileht): Is that safe ?"},{"line_number":516,"context_line":"        start \u003d int(float(start))"},{"line_number":517,"context_line":"        if data:"},{"line_number":518,"context_line":"            if cls.is_compressed(data):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_6563c842","line":515,"in_reply_to":"7a3c09a3_d0a8d222","updated":"2017-01-17 23:20:32.000000000","message":"Done","commit_id":"3f49db08c0856e4bb2b718b90482b9ebe8f94cf0"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"6bf21531e633121ada6accf552a7792f61b594c8","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    @staticmethod"},{"line_number":132,"context_line":"    def _timestamps_and_values_from_dict(values):"},{"line_number":133,"context_line":"        timestamps \u003d numpy.array(list(values.keys()), dtype\u003d\u0027datetime64[ns]\u0027)"},{"line_number":134,"context_line":"        timestamps \u003d pandas.to_datetime(timestamps)"},{"line_number":135,"context_line":"        v \u003d list(values.values())"},{"line_number":136,"context_line":"        if v:"},{"line_number":137,"context_line":"            return timestamps, v"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_802fbf3d","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":51},"updated":"2017-01-17 23:20:12.000000000","message":"i\u0027m just curious, but why is this better? is there something stupid happening in to_datetime that it\u0027s not doing ^","commit_id":"9a643253127625e9f7eca5190996032d364a254a"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2a49180691068182a05f4c2748bd250d53321107","unresolved":false,"context_lines":[{"line_number":547,"context_line":"                    y.append(start + (i * sampling))"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027float64\u0027) * 10e8"},{"line_number":550,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027int\u0027)"},{"line_number":551,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027datetime64[ns]\u0027)"},{"line_number":552,"context_line":"            y \u003d pandas.to_datetime(y)"},{"line_number":553,"context_line":"        return cls.from_data(sampling, agg_method, y, x)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_93c2bbe7","line":550,"range":{"start_line":550,"start_character":0,"end_line":550,"end_character":43},"updated":"2017-01-18 00:11:44.000000000","message":"do you need this? it worked fine for me without it.","commit_id":"338f36261440dba72f0b8f71ccbe4f1547c42543"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"7b226f2d9839aa9c7c60e492e9719615683e0b7a","unresolved":false,"context_lines":[{"line_number":547,"context_line":"                    y.append(start + (i * sampling))"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027float64\u0027) * 10e8"},{"line_number":550,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027int\u0027)"},{"line_number":551,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027datetime64[ns]\u0027)"},{"line_number":552,"context_line":"            y \u003d pandas.to_datetime(y)"},{"line_number":553,"context_line":"        return cls.from_data(sampling, agg_method, y, x)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_d84d37c5","line":550,"range":{"start_line":550,"start_character":0,"end_line":550,"end_character":43},"in_reply_to":"7a3c09a3_93c2bbe7","updated":"2017-01-18 06:52:32.000000000","message":"Indeed useless. Removed.","commit_id":"338f36261440dba72f0b8f71ccbe4f1547c42543"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2a49180691068182a05f4c2748bd250d53321107","unresolved":false,"context_lines":[{"line_number":548,"context_line":""},{"line_number":549,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027float64\u0027) * 10e8"},{"line_number":550,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027int\u0027)"},{"line_number":551,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027datetime64[ns]\u0027)"},{"line_number":552,"context_line":"            y \u003d pandas.to_datetime(y)"},{"line_number":553,"context_line":"        return cls.from_data(sampling, agg_method, y, x)"},{"line_number":554,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_93bc7bbc","line":551,"updated":"2017-01-18 00:11:44.000000000","message":"so i tried this with a list of 100 unix timestamps and wtf?!?! it\u0027s actually slower if you set dtype\u003d\u0027datetime64[s]\u0027 but faster if you set dtype\u003d\u0027datetime64[ns]\u0027\n\n\u003e\u003e\u003e def time_now():\n...     with timeutils.StopWatch() as sw:\n...         for __ in range(10000):\n...             y \u003d pandas.to_datetime(times, unit\u003d\u0027s\u0027)\n...         print sw.elapsed()\n... \n\u003e\u003e\u003e time_now()\n0.950268357992\n\u003e\u003e\u003e time_now()\n0.942901003\n\u003e\u003e\u003e time_now()\n0.950971104961\n\u003e\u003e\u003e def time_new():\n...     with timeutils.StopWatch() as sw:\n...         for __ in range(10000):\n...             y \u003d np.array(times, dtype\u003d\u0027float64\u0027) * 10e8\n...             y \u003d np.array(y, dtype\u003d\u0027int\u0027)\n...             y \u003d np.array(y, dtype\u003d\u0027datetime64[s]\u0027)\n...             y \u003d pandas.to_datetime(y)\n...         print sw.elapsed()\n... \n\u003e\u003e\u003e time_new()\n0.989459468983\n\u003e\u003e\u003e time_new()\n0.990815134021\n\u003e\u003e\u003e time_new()\n0.989570010977\n\u003e\u003e\u003e def time_new():\n...     with timeutils.StopWatch() as sw:\n...         for __ in range(10000):\n...             y \u003d np.array(times, dtype\u003d\u0027float64\u0027) * 10e8\n...             y \u003d np.array(y, dtype\u003d\u0027int\u0027)\n...             y \u003d np.array(y, dtype\u003d\u0027datetime64[ns]\u0027)\n...             y \u003d pandas.to_datetime(y)\n...         print sw.elapsed()\n... \n\u003e\u003e\u003e time_new()\n0.519088778005\n\u003e\u003e\u003e time_new()\n0.519030449039\n\u003e\u003e\u003e time_new()\n0.515325133048","commit_id":"338f36261440dba72f0b8f71ccbe4f1547c42543"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"7b226f2d9839aa9c7c60e492e9719615683e0b7a","unresolved":false,"context_lines":[{"line_number":548,"context_line":""},{"line_number":549,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027float64\u0027) * 10e8"},{"line_number":550,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027int\u0027)"},{"line_number":551,"context_line":"            y \u003d numpy.array(y, dtype\u003d\u0027datetime64[ns]\u0027)"},{"line_number":552,"context_line":"            y \u003d pandas.to_datetime(y)"},{"line_number":553,"context_line":"        return cls.from_data(sampling, agg_method, y, x)"},{"line_number":554,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_98572f57","line":551,"in_reply_to":"7a3c09a3_93bc7bbc","updated":"2017-01-18 06:52:32.000000000","message":"Yes, only \u0027datetime64[ns]\u0027 skip the pandas magic for us.\n\nThe really slow method is _convert_listlike here: \n\nhttps://github.com/pandas-dev/pandas/blob/master/pandas/tseries/tools.py#L306\n\nThe code have two numpy shortcuts datetime64tz and datetime64[ns]:\n\nhttps://github.com/pandas-dev/pandas/blob/master/pandas/tseries/tools.py#L311","commit_id":"338f36261440dba72f0b8f71ccbe4f1547c42543"}]}
