Skip to content

Commit 7169791

Browse files
committed
chore: no implicit reexport
Mypy has a setting to check for implicit reexports. In separate testing I have found that explicit exports, like what is used in this commit, make it easier for language servers to detect what is actually exported by the library which makes use by end users easier. PEP8 specifies that "relative imports for intra-package imports are highly discouraged. Always use the absolute package path for all imports." This commit also makes imports absolute to comply with PEP8.
1 parent 2f8fd5d commit 7169791

6 files changed

Lines changed: 303 additions & 83 deletions

File tree

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ disable_error_code = [
4949
files = ["tableauserverclient", "test"]
5050
show_error_codes = true
5151
ignore_missing_imports = true # defusedxml library has no types
52+
no_implicit_reexport = true
53+
5254
[tool.pytest.ini_options]
5355
testpaths = ["test"]
5456
addopts = "--junitxml=./test.junit.xml"

tableauserverclient/__init__.py

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from ._version import get_versions
2-
from .namespace import NEW_NAMESPACE as DEFAULT_NAMESPACE
3-
from .models import (
1+
from tableauserverclient._version import get_versions
2+
from tableauserverclient.namespace import NEW_NAMESPACE as DEFAULT_NAMESPACE
3+
from tableauserverclient.models import (
44
BackgroundJobItem,
55
ColumnItem,
66
ConnectionCredentials,
@@ -43,7 +43,8 @@
4343
WeeklyInterval,
4444
WorkbookItem,
4545
)
46-
from .server import (
46+
47+
from tableauserverclient.server import (
4748
CSVRequestOptions,
4849
ExcelRequestOptions,
4950
ImageRequestOptions,
@@ -57,3 +58,62 @@
5758
Server,
5859
Sort,
5960
)
61+
62+
__all__ = [
63+
"get_versions",
64+
"DEFAULT_NAMESPACE",
65+
"BackgroundJobItem",
66+
"BackgroundJobItem",
67+
"ColumnItem",
68+
"ConnectionCredentials",
69+
"ConnectionItem",
70+
"CustomViewItem",
71+
"DQWItem",
72+
"DailyInterval",
73+
"DataAlertItem",
74+
"DatabaseItem",
75+
"DataFreshnessPolicyItem",
76+
"DatasourceItem",
77+
"FavoriteItem",
78+
"FlowItem",
79+
"FlowRunItem",
80+
"FileuploadItem",
81+
"GroupItem",
82+
"HourlyInterval",
83+
"IntervalItem",
84+
"JobItem",
85+
"JWTAuth",
86+
"MetricItem",
87+
"MonthlyInterval",
88+
"PaginationItem",
89+
"Permission",
90+
"PermissionsRule",
91+
"PersonalAccessTokenAuth",
92+
"ProjectItem",
93+
"RevisionItem",
94+
"ScheduleItem",
95+
"SiteItem",
96+
"ServerInfoItem",
97+
"SubscriptionItem",
98+
"TableItem",
99+
"TableauAuth",
100+
"Target",
101+
"TaskItem",
102+
"UserItem",
103+
"ViewItem",
104+
"WebhookItem",
105+
"WeeklyInterval",
106+
"WorkbookItem",
107+
"CSVRequestOptions",
108+
"ExcelRequestOptions",
109+
"ImageRequestOptions",
110+
"PDFRequestOptions",
111+
"RequestOptions",
112+
"MissingRequiredFieldError",
113+
"NotSignedInError",
114+
"ServerResponseError",
115+
"Filter",
116+
"Pager",
117+
"Server",
118+
"Sort",
119+
]
Lines changed: 88 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,94 @@
1-
from .column_item import ColumnItem
2-
from .connection_credentials import ConnectionCredentials
3-
from .connection_item import ConnectionItem
4-
from .custom_view_item import CustomViewItem
5-
from .data_acceleration_report_item import DataAccelerationReportItem
6-
from .data_alert_item import DataAlertItem
7-
from .database_item import DatabaseItem
8-
from .data_freshness_policy_item import DataFreshnessPolicyItem
9-
from .datasource_item import DatasourceItem
10-
from .dqw_item import DQWItem
11-
from .exceptions import UnpopulatedPropertyError
12-
from .favorites_item import FavoriteItem
13-
from .fileupload_item import FileuploadItem
14-
from .flow_item import FlowItem
15-
from .flow_run_item import FlowRunItem
16-
from .group_item import GroupItem
17-
from .interval_item import (
1+
from tableauserverclient.models.column_item import ColumnItem
2+
from tableauserverclient.models.connection_credentials import ConnectionCredentials
3+
from tableauserverclient.models.connection_item import ConnectionItem
4+
from tableauserverclient.models.custom_view_item import CustomViewItem
5+
from tableauserverclient.models.data_acceleration_report_item import DataAccelerationReportItem
6+
from tableauserverclient.models.data_alert_item import DataAlertItem
7+
from tableauserverclient.models.database_item import DatabaseItem
8+
from tableauserverclient.models.data_freshness_policy_item import DataFreshnessPolicyItem
9+
from tableauserverclient.models.datasource_item import DatasourceItem
10+
from tableauserverclient.models.dqw_item import DQWItem
11+
from tableauserverclient.models.exceptions import UnpopulatedPropertyError
12+
from tableauserverclient.models.favorites_item import FavoriteItem
13+
from tableauserverclient.models.fileupload_item import FileuploadItem
14+
from tableauserverclient.models.flow_item import FlowItem
15+
from tableauserverclient.models.flow_run_item import FlowRunItem
16+
from tableauserverclient.models.group_item import GroupItem
17+
from tableauserverclient.models.interval_item import (
1818
IntervalItem,
1919
DailyInterval,
2020
WeeklyInterval,
2121
MonthlyInterval,
2222
HourlyInterval,
2323
)
24-
from .job_item import JobItem, BackgroundJobItem
25-
from .metric_item import MetricItem
26-
from .pagination_item import PaginationItem
27-
from .permissions_item import PermissionsRule, Permission
28-
from .project_item import ProjectItem
29-
from .revision_item import RevisionItem
30-
from .schedule_item import ScheduleItem
31-
from .server_info_item import ServerInfoItem
32-
from .site_item import SiteItem
33-
from .subscription_item import SubscriptionItem
34-
from .table_item import TableItem
35-
from .tableau_auth import Credentials, TableauAuth, PersonalAccessTokenAuth, JWTAuth
36-
from .tableau_types import Resource, TableauItem, plural_type
37-
from .tag_item import TagItem
38-
from .target import Target
39-
from .task_item import TaskItem
40-
from .user_item import UserItem
41-
from .view_item import ViewItem
42-
from .webhook_item import WebhookItem
43-
from .workbook_item import WorkbookItem
24+
from tableauserverclient.models.job_item import JobItem, BackgroundJobItem
25+
from tableauserverclient.models.metric_item import MetricItem
26+
from tableauserverclient.models.pagination_item import PaginationItem
27+
from tableauserverclient.models.permissions_item import PermissionsRule, Permission
28+
from tableauserverclient.models.project_item import ProjectItem
29+
from tableauserverclient.models.revision_item import RevisionItem
30+
from tableauserverclient.models.schedule_item import ScheduleItem
31+
from tableauserverclient.models.server_info_item import ServerInfoItem
32+
from tableauserverclient.models.site_item import SiteItem
33+
from tableauserverclient.models.subscription_item import SubscriptionItem
34+
from tableauserverclient.models.table_item import TableItem
35+
from tableauserverclient.models.tableau_auth import Credentials, TableauAuth, PersonalAccessTokenAuth, JWTAuth
36+
from tableauserverclient.models.tableau_types import Resource, TableauItem, plural_type
37+
from tableauserverclient.models.tag_item import TagItem
38+
from tableauserverclient.models.target import Target
39+
from tableauserverclient.models.task_item import TaskItem
40+
from tableauserverclient.models.user_item import UserItem
41+
from tableauserverclient.models.view_item import ViewItem
42+
from tableauserverclient.models.webhook_item import WebhookItem
43+
from tableauserverclient.models.workbook_item import WorkbookItem
44+
45+
__all__ = [
46+
"ColumnItem",
47+
"ConnectionCredentials",
48+
"ConnectionItem",
49+
"Credentials",
50+
"CustomViewItem",
51+
"DataAccelerationReportItem",
52+
"DataAlertItem",
53+
"DatabaseItem",
54+
"DataFreshnessPolicyItem",
55+
"DatasourceItem",
56+
"DQWItem",
57+
"UnpopulatedPropertyError",
58+
"FavoriteItem",
59+
"FileuploadItem",
60+
"FlowItem",
61+
"FlowRunItem",
62+
"GroupItem",
63+
"IntervalItem",
64+
"JobItem",
65+
"DailyInterval",
66+
"WeeklyInterval",
67+
"MonthlyInterval",
68+
"HourlyInterval",
69+
"BackgroundJobItem",
70+
"MetricItem",
71+
"PaginationItem",
72+
"Permission",
73+
"PermissionsRule",
74+
"ProjectItem",
75+
"RevisionItem",
76+
"ScheduleItem",
77+
"ServerInfoItem",
78+
"SiteItem",
79+
"SubscriptionItem",
80+
"TableItem",
81+
"TableauAuth",
82+
"PersonalAccessTokenAuth",
83+
"JWTAuth",
84+
"Resource",
85+
"TableauItem",
86+
"plural_type",
87+
"TagItem",
88+
"Target",
89+
"TaskItem",
90+
"UserItem",
91+
"ViewItem",
92+
"WebhookItem",
93+
"WorkbookItem",
94+
]
Lines changed: 83 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,91 @@
11
# These two imports must come first
2-
from .request_factory import RequestFactory
3-
from .request_options import (
2+
from tableauserverclient.server.request_factory import RequestFactory
3+
from tableauserverclient.server.request_options import (
44
CSVRequestOptions,
55
ExcelRequestOptions,
66
ImageRequestOptions,
77
PDFRequestOptions,
88
RequestOptions,
99
)
10+
from tableauserverclient.server.filter import Filter
11+
from tableauserverclient.server.sort import Sort
12+
from tableauserverclient.server.server import Server
13+
from tableauserverclient.server.pager import Pager
14+
from tableauserverclient.server.endpoint.exceptions import NotSignedInError
1015

11-
from .filter import Filter
12-
from .sort import Sort
13-
from .endpoint import *
14-
from .server import Server
15-
from .pager import Pager
16-
from .endpoint.exceptions import NotSignedInError
16+
from tableauserverclient.server.endpoint import (
17+
Auth,
18+
CustomViews,
19+
DataAccelerationReport,
20+
DataAlerts,
21+
Databases,
22+
Datasources,
23+
QuerysetEndpoint,
24+
MissingRequiredFieldError,
25+
Endpoint,
26+
Favorites,
27+
Fileuploads,
28+
FlowRuns,
29+
Flows,
30+
FlowTasks,
31+
Groups,
32+
Jobs,
33+
Metadata,
34+
Metrics,
35+
Projects,
36+
Schedules,
37+
ServerInfo,
38+
ServerResponseError,
39+
Sites,
40+
Subscriptions,
41+
Tables,
42+
Tasks,
43+
Users,
44+
Views,
45+
Webhooks,
46+
Workbooks,
47+
)
48+
49+
__all__ = [
50+
"RequestFactory",
51+
"CSVRequestOptions",
52+
"ExcelRequestOptions",
53+
"ImageRequestOptions",
54+
"PDFRequestOptions",
55+
"RequestOptions",
56+
"Filter",
57+
"Sort",
58+
"Server",
59+
"Pager",
60+
"NotSignedInError",
61+
"Auth",
62+
"CustomViews",
63+
"DataAccelerationReport",
64+
"DataAlerts",
65+
"Databases",
66+
"Datasources",
67+
"QuerysetEndpoint",
68+
"MissingRequiredFieldError",
69+
"Endpoint",
70+
"Favorites",
71+
"Fileuploads",
72+
"FlowRuns",
73+
"Flows",
74+
"FlowTasks",
75+
"Groups",
76+
"Jobs",
77+
"Metadata",
78+
"Metrics",
79+
"Projects",
80+
"Schedules",
81+
"ServerInfo",
82+
"ServerResponseError",
83+
"Sites",
84+
"Subscriptions",
85+
"Tables",
86+
"Tasks",
87+
"Users",
88+
"Views",
89+
"Webhooks",
90+
"Workbooks",
91+
]

0 commit comments

Comments
 (0)