Skip to content

Commit

Permalink
hacky pass at uuid sorting
Browse files Browse the repository at this point in the history
  • Loading branch information
kurtjx committed Oct 17, 2013
1 parent e728703 commit 2d543a0
Showing 1 changed file with 26 additions and 3 deletions.
29 changes: 26 additions & 3 deletions pycassa/contrib/stubs.py
Expand Up @@ -7,10 +7,12 @@
"""

import operator
import datetime
from uuid import UUID

from collections import MutableMapping
from pycassa import NotFoundException
from pycassa.util import OrderedDict
from pycassa.util import OrderedDict, convert_uuid_to_time, convert_time_to_uuid
from pycassa.columnfamily import gm_timestamp
from pycassa.index import EQ, GT, GTE, LT, LTE

Expand Down Expand Up @@ -111,6 +113,27 @@ def describe_schema_versions(self):
return {self._schema(): ['1.1.1.1']}


def _uuid_to_datetime(col):
if isinstance(col, tuple):
out = []
for x in col:
out.append(datetime.datetime.fromtimestamp(convert_uuid_to_time(x)) if isinstance(x, UUID) else x)
return tuple(out)
elif isinstance(col, UUID):
return datetime.datetime.fromtimestamp(convert_uuid_to_time(col))
return col

def _datetime_to_uuid(col):
if isinstance(col, tuple):
out = []
for x in col:
out.append(convert_time_to_uuid(int(x.strftime('%s')))
if isinstance(x, datetime.datetime) else x)
return tuple(out)
if isinstance(col, datetime.datetime):
return convert_time_to_uuid(int(col.strftime('%s')))


class ColumnFamilyStub(object):
"""Functional ColumnFamily stub object.
Expand Down Expand Up @@ -148,13 +171,13 @@ def get(self, key, columns=None, column_start=None, column_finish=None,
if not my_columns:
raise NotFoundException()

items = my_columns.items()
items = [_uuid_to_datetime(x) for x in my_columns.items()]
items.sort()

if column_reversed:
items.reverse()

sliced_items = [(k, get_value(v)) for (k, v) in items
sliced_items = [(_datetime_to_uuid(k), get_value(v)) for (k, v) in items
if self._is_column_in_range(k, columns,
column_start, column_finish, column_reversed)][:column_count]

Expand Down

0 comments on commit 2d543a0

Please sign in to comment.