Skip to content
Merged
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest]
python-version: ['3.10']

runs-on: ${{ matrix.os }}
Expand Down
39 changes: 1 addition & 38 deletions tableauserverclient/__init__.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,6 @@
from ._version import get_versions
from .namespace import NEW_NAMESPACE as DEFAULT_NAMESPACE
from .models import (
BackgroundJobItem,
ColumnItem,
ConnectionCredentials,
ConnectionItem,
DQWItem,
DailyInterval,
DataAlertItem,
DatabaseItem,
DatasourceItem,
FlowItem,
FlowRunItem,
GroupItem,
HourlyInterval,
IntervalItem,
JobItem,
MetricItem,
MonthlyInterval,
PaginationItem,
Permission,
PermissionsRule,
PersonalAccessTokenAuth,
ProjectItem,
RevisionItem,
ScheduleItem,
SiteItem,
SubscriptionItem,
TableItem,
TableauAuth,
Target,
TaskItem,
UnpopulatedPropertyError,
UserItem,
ViewItem,
WebhookItem,
WeeklyInterval,
WorkbookItem,
)
from .models import *
from .server import (
CSVRequestOptions,
ExcelRequestOptions,
Expand Down
2 changes: 2 additions & 0 deletions tableauserverclient/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from .dqw_item import DQWItem
from .exceptions import UnpopulatedPropertyError
from .favorites_item import FavoriteItem
from .fileupload_item import FileuploadItem
from .flow_item import FlowItem
from .flow_run_item import FlowRunItem
from .group_item import GroupItem
Expand All @@ -31,6 +32,7 @@
from .table_item import TableItem
from .tableau_auth import Credentials, TableauAuth, PersonalAccessTokenAuth
from .tableau_types import Resource, TableauItem, plural_type
from .tag_item import TagItem
from .target import Target
from .task_item import TaskItem
from .user_item import UserItem
Expand Down
8 changes: 3 additions & 5 deletions tableauserverclient/models/connection_item.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
from typing import TYPE_CHECKING, List, Optional
from typing import List, Optional

from defusedxml.ElementTree import fromstring

from .connection_credentials import ConnectionCredentials

if TYPE_CHECKING:
from tableauserverclient.models.connection_credentials import ConnectionCredentials


class ConnectionItem(object):
def __init__(self):
Expand All @@ -18,7 +16,7 @@ def __init__(self):
self.server_address: Optional[str] = None
self.server_port: Optional[str] = None
self.username: Optional[str] = None
self.connection_credentials: Optional["ConnectionCredentials"] = None
self.connection_credentials: Optional[ConnectionCredentials] = None

@property
def datasource_id(self) -> Optional[str]:
Expand Down
20 changes: 6 additions & 14 deletions tableauserverclient/models/data_alert_item.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import List, Optional, TYPE_CHECKING
from datetime import datetime
from typing import List, Optional

from defusedxml.ElementTree import fromstring

Expand All @@ -8,15 +9,6 @@
property_is_boolean,
)

if TYPE_CHECKING:
from datetime import datetime


from typing import List, Optional, TYPE_CHECKING

if TYPE_CHECKING:
from datetime import datetime


class DataAlertItem(object):
class Frequency:
Expand All @@ -30,8 +22,8 @@ def __init__(self):
self._id: Optional[str] = None
self._subject: Optional[str] = None
self._creatorId: Optional[str] = None
self._createdAt: Optional["datetime"] = None
self._updatedAt: Optional["datetime"] = None
self._createdAt: Optional[datetime] = None
self._updatedAt: Optional[datetime] = None
self._frequency: Optional[str] = None
self._public: Optional[bool] = None
self._owner_id: Optional[str] = None
Expand Down Expand Up @@ -90,11 +82,11 @@ def recipients(self) -> List[str]:
return self._recipients or list()

@property
def createdAt(self) -> Optional["datetime"]:
def createdAt(self) -> Optional[datetime]:
return self._createdAt

@property
def updatedAt(self) -> Optional["datetime"]:
def updatedAt(self) -> Optional[datetime]:
return self._updatedAt

@property
Expand Down
36 changes: 13 additions & 23 deletions tableauserverclient/models/datasource_item.py
Original file line number Diff line number Diff line change
@@ -1,31 +1,21 @@
import copy
import datetime
import xml.etree.ElementTree as ET
from typing import Dict, List, Optional, Set, Tuple, TYPE_CHECKING
from typing import Dict, List, Optional, Set, Tuple

from defusedxml.ElementTree import fromstring

from tableauserverclient.datetime_helpers import parse_datetime
from .connection_item import ConnectionItem
from .exceptions import UnpopulatedPropertyError
from .permissions_item import PermissionsRule
from .property_decorators import (
property_not_nullable,
property_is_boolean,
property_is_enum,
)
from .revision_item import RevisionItem
from .tag_item import TagItem
from ..datetime_helpers import parse_datetime

if TYPE_CHECKING:
from .permissions_item import PermissionsRule
from .connection_item import ConnectionItem
from .revision_item import RevisionItem
import datetime

from typing import Dict, List, Optional, Set, Tuple, TYPE_CHECKING, Union

if TYPE_CHECKING:
from .permissions_item import PermissionsRule
from .connection_item import ConnectionItem
from .revision_item import RevisionItem
import datetime


class DatasourceItem(object):
Expand Down Expand Up @@ -64,23 +54,23 @@ def __init__(self, project_id: str, name: Optional[str] = None) -> None:
return None

@property
def ask_data_enablement(self) -> Optional["DatasourceItem.AskDataEnablement"]:
def ask_data_enablement(self) -> Optional[AskDataEnablement]:
return self._ask_data_enablement

@ask_data_enablement.setter
@property_is_enum(AskDataEnablement)
def ask_data_enablement(self, value: Optional["DatasourceItem.AskDataEnablement"]):
def ask_data_enablement(self, value: Optional[AskDataEnablement]):
self._ask_data_enablement = value

@property
def connections(self) -> Optional[List["ConnectionItem"]]:
def connections(self) -> Optional[List[ConnectionItem]]:
if self._connections is None:
error = "Datasource item must be populated with connections first."
raise UnpopulatedPropertyError(error)
return self._connections()

@property
def permissions(self) -> Optional[List["PermissionsRule"]]:
def permissions(self) -> Optional[List[PermissionsRule]]:
if self._permissions is None:
error = "Project item must be populated with permissions first."
raise UnpopulatedPropertyError(error)
Expand All @@ -91,7 +81,7 @@ def content_url(self) -> Optional[str]:
return self._content_url

@property
def created_at(self) -> Optional["datetime.datetime"]:
def created_at(self) -> Optional[datetime.datetime]:
return self._created_at

@property
Expand Down Expand Up @@ -162,7 +152,7 @@ def description(self, value: str):
self._description = value

@property
def updated_at(self) -> Optional["datetime.datetime"]:
def updated_at(self) -> Optional[datetime.datetime]:
return self._updated_at

@property
Expand All @@ -179,7 +169,7 @@ def webpage_url(self) -> Optional[str]:
return self._webpage_url

@property
def revisions(self) -> List["RevisionItem"]:
def revisions(self) -> List[RevisionItem]:
if self._revisions is None:
error = "Datasource item must be populated with revisions first."
raise UnpopulatedPropertyError(error)
Expand Down
2 changes: 1 addition & 1 deletion tableauserverclient/models/dqw_item.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from defusedxml.ElementTree import fromstring

from ..datetime_helpers import parse_datetime
from tableauserverclient.datetime_helpers import parse_datetime


class DQWItem(object):
Expand Down
33 changes: 13 additions & 20 deletions tableauserverclient/models/flow_item.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,36 @@
import copy
import datetime
import xml.etree.ElementTree as ET
from typing import List, Optional, TYPE_CHECKING, Set
from typing import List, Optional, Set

from defusedxml.ElementTree import fromstring

from tableauserverclient.datetime_helpers import parse_datetime
from .connection_item import ConnectionItem
from .dqw_item import DQWItem
from .exceptions import UnpopulatedPropertyError
from .permissions_item import Permission
from .property_decorators import property_not_nullable
from .tag_item import TagItem
from ..datetime_helpers import parse_datetime

if TYPE_CHECKING:
import datetime

from typing import List, Optional, TYPE_CHECKING, Set

if TYPE_CHECKING:
import datetime
from .connection_item import ConnectionItem
from .permissions_item import Permission
from .dqw_item import DQWItem


class FlowItem(object):
def __init__(self, project_id: str, name: Optional[str] = None) -> None:
self._webpage_url: Optional[str] = None
self._created_at: Optional["datetime.datetime"] = None
self._created_at: Optional[datetime.datetime] = None
self._id: Optional[str] = None
self._initial_tags: Set[str] = set()
self._project_name: Optional[str] = None
self._updated_at: Optional["datetime.datetime"] = None
self._updated_at: Optional[datetime.datetime] = None
self.name: Optional[str] = name
self.owner_id: Optional[str] = None
self.project_id: str = project_id
self.tags: Set[str] = set()
self.description: Optional[str] = None

self._connections = None
self._permissions = None
self._data_quality_warnings = None
self._connections: Optional[ConnectionItem] = None
self._permissions: Optional[Permission] = None
self._data_quality_warnings: Optional[DQWItem] = None

@property
def connections(self):
Expand All @@ -58,7 +51,7 @@ def webpage_url(self) -> Optional[str]:
return self._webpage_url

@property
def created_at(self) -> Optional["datetime.datetime"]:
def created_at(self) -> Optional[datetime.datetime]:
return self._created_at

@property
Expand Down Expand Up @@ -94,7 +87,7 @@ def project_name(self) -> Optional[str]:
return self._project_name

@property
def updated_at(self) -> Optional["datetime.datetime"]:
def updated_at(self) -> Optional[datetime.datetime]:
return self._updated_at

def _set_connections(self, connections):
Expand Down
21 changes: 7 additions & 14 deletions tableauserverclient/models/flow_run_item.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,19 @@
import itertools
from typing import Dict, List, Optional, Type, TYPE_CHECKING
from datetime import datetime
from typing import Dict, List, Optional, Type

from defusedxml.ElementTree import fromstring

from ..datetime_helpers import parse_datetime

if TYPE_CHECKING:
from datetime import datetime

from typing import Dict, List, Optional, Type, TYPE_CHECKING

if TYPE_CHECKING:
from datetime import datetime
from tableauserverclient.datetime_helpers import parse_datetime


class FlowRunItem(object):
def __init__(self) -> None:
self._id: str = ""
self._flow_id: Optional[str] = None
self._status: Optional[str] = None
self._started_at: Optional["datetime"] = None
self._completed_at: Optional["datetime"] = None
self._started_at: Optional[datetime] = None
self._completed_at: Optional[datetime] = None
self._progress: Optional[str] = None
self._background_job_id: Optional[str] = None

Expand All @@ -37,11 +30,11 @@ def status(self) -> Optional[str]:
return self._status

@property
def started_at(self) -> Optional["datetime"]:
def started_at(self) -> Optional[datetime]:
return self._started_at

@property
def completed_at(self) -> Optional["datetime"]:
def completed_at(self) -> Optional[datetime]:
return self._completed_at

@property
Expand Down
2 changes: 1 addition & 1 deletion tableauserverclient/models/group_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from .user_item import UserItem

if TYPE_CHECKING:
from ..server import Pager
from tableauserverclient.server import Pager


class GroupItem(object):
Expand Down
Loading