-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
69 lines (64 loc) · 2.36 KB
/
Copy pathpyproject.toml
File metadata and controls
69 lines (64 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
[build-system]
requires = ["setuptools>=65.0.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "tabcloud-platform-data-loader"
version = "0.1.0"
description = "Retrieve, transform, and load Tableau Cloud activity logs into Hyper extracts and Tableau data sources."
readme = "README.md"
license = { file = "LICENSE.txt" }
requires-python = ">=3.9"
dependencies = [
"requests>=2.28.0",
"pyarrow>=14.0.0",
"pyyaml>=6.0",
"pantab>=5.3.0",
# Python 3.12+ removed distutils; pantab (or a dependency) may require it.
"setuptools>=65.0.0",
]
[project.optional-dependencies]
# Multi-backend storage: install with `.[s3]` only when using the S3 backend.
s3 = [
"fsspec>=2023.6.0",
"s3fs>=2023.6.0",
"boto3>=1.28.0",
]
# Secure local secrets management (OS keychain): install with `.[secrets]`.
# Required to use keyring: references in config. After installing, run:
# tabcloud-secrets set tabcloud extractor-pat (store your TCM PAT)
# tabcloud-secrets set tabcloud publish-pat (store your Tableau PAT)
# tabcloud-secrets doctor (verify the backend)
# Then in config.ini:
# token_secret = keyring:tabcloud/extractor-pat
secrets = [
"keyring>=24",
]
# Captioned TDSX generation with full Hyper column types: install with `.[tdsx]`.
# Without it, build_tdsx_with_auto_captions still works via pantab (name-only, text types).
tdsx = [
"tableauhyperapi>=0.0.18825",
]
# Development / testing tooling.
dev = [
"pytest>=8.0",
]
[project.scripts]
tabcloud-extractor = "extractor.extractor_cli:main"
tabcloud-transformer = "transformer.transformer_cli:main"
tabcloud-loader = "loader.loader_cli:main"
tabcloud-run = "runner.cli:main"
tabcloud-secrets = "secrets_cli:main"
[tool.setuptools.packages.find]
where = ["src"]
[tool.pytest.ini_options]
pythonpath = ["src"]
testpaths = ["tests"]
# Integration tests (live test tenant + stored credentials) are opt-in. They are
# excluded from the default run via the marker filter below; enable them with:
# pytest -m integration (run ONLY integration tests)
# pytest -m "" (run EVERYTHING, ignoring the default filter)
# Integration tests also self-skip when config/config.test.ini is absent.
addopts = "-m 'not integration'"
markers = [
"integration: requires a live test tenant + stored credentials (see tests/integration/README.md)",
]