Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions tableauserverclient/server/query.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from typing import Tuple
from .filter import Filter
from .request_options import RequestOptions
from .sort import Sort
import math


def to_camel_case(word):
def to_camel_case(word: str) -> str:
return word.split("_")[0] + "".join(x.capitalize() or "_" for x in word.split("_")[1:])


Expand Down Expand Up @@ -85,18 +86,21 @@ def _fetch_all(self):
if self._result_cache is None:
self._result_cache, self._pagination_item = self.model.get(self.request_options)

def __len__(self) -> int:
return self.total_available

@property
def total_available(self):
def total_available(self) -> int:
self._fetch_all()
return self._pagination_item.total_available

@property
def page_number(self):
def page_number(self) -> int:
self._fetch_all()
return self._pagination_item.page_number

@property
def page_size(self):
def page_size(self) -> int:
self._fetch_all()
return self._pagination_item.page_size

Expand All @@ -121,7 +125,7 @@ def paginate(self, **kwargs):
self.request_options.pagesize = kwargs["page_size"]
return self

def _parse_shorthand_filter(self, key):
def _parse_shorthand_filter(self, key: str) -> Tuple[str, str]:
tokens = key.split("__", 1)
if len(tokens) == 1:
operator = RequestOptions.Operator.Equals
Expand All @@ -135,7 +139,7 @@ def _parse_shorthand_filter(self, key):
raise ValueError("Field name `{}` is not valid.".format(field))
return (field, operator)

def _parse_shorthand_sort(self, key):
def _parse_shorthand_sort(self, key: str) -> Tuple[str, str]:
direction = RequestOptions.Direction.Asc
if key.startswith("-"):
direction = RequestOptions.Direction.Desc
Expand Down