tableau-cli 0.1.1__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/.claude/settings.local.json +3 -1
  2. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/PKG-INFO +1 -1
  3. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/pyproject.toml +1 -1
  4. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/skills/references/installation.md +7 -1
  5. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/cli.py +26 -1
  6. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/.claude/skills/tableau-cli +0 -0
  7. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/.gitignore +0 -0
  8. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/LICENSE +0 -0
  9. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/NOTICE +0 -0
  10. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/README.md +0 -0
  11. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/skills/SKILL.md +0 -0
  12. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/skills/references/cli.md +0 -0
  13. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/skills-lock.json +0 -0
  14. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/__init__.py +0 -0
  15. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/api/__init__.py +0 -0
  16. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/api/client.py +0 -0
  17. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/auth/__init__.py +0 -0
  18. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/auth/with_auth.py +0 -0
  19. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/commands/__init__.py +0 -0
  20. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/commands/config_cmd.py +0 -0
  21. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/commands/convert_cmd.py +0 -0
  22. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/commands/datasources_cmd.py +0 -0
  23. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/commands/search_cmd.py +0 -0
  24. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/commands/views_cmd.py +0 -0
  25. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/commands/workbooks_cmd.py +0 -0
  26. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/config/__init__.py +0 -0
  27. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/config/store.py +0 -0
  28. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/config/types.py +0 -0
  29. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/errors/__init__.py +0 -0
  30. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/errors/cli_error.py +0 -0
  31. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/errors/vds_error_handler.py +0 -0
  32. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/output/__init__.py +0 -0
  33. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/output/format.py +0 -0
  34. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/output/json_output.py +0 -0
  35. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/output/table_output.py +0 -0
  36. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/utils/__init__.py +0 -0
  37. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/utils/convert.py +0 -0
  38. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/utils/datasource_metadata_utils.py +0 -0
  39. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/utils/paginate.py +0 -0
  40. {tableau_cli-0.1.1 → tableau_cli-0.1.2}/src/tableau_cli/utils/search_content_utils.py +0 -0
@@ -12,7 +12,9 @@
12
12
  "Bash(pip index:*)",
13
13
  "Bash(pip install:*)",
14
14
  "Bash(bash -l -c \"history\")",
15
- "Bash(twine --version)"
15
+ "Bash(twine --version)",
16
+ "Bash(tableau-cli:*)",
17
+ "Bash(twine upload:*)"
16
18
  ]
17
19
  }
18
20
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tableau-cli
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: CLI for Tableau Server/Cloud, designed for AI agent integration
5
5
  Project-URL: Repository, https://github.com/i-richardwang/tableau-cli
6
6
  Author: Richard Wang
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "tableau-cli"
7
- version = "0.1.1"
7
+ version = "0.1.2"
8
8
  description = "CLI for Tableau Server/Cloud, designed for AI agent integration"
9
9
  license = "Apache-2.0"
10
10
  requires-python = ">=3.10"
@@ -9,7 +9,13 @@ description: Installation and authentication setup for tableau-cli. Load when th
9
9
  pip install "tableau-cli[convert]"
10
10
  ```
11
11
 
12
- Without `[convert]`, only core features are available (search, datasources, views, workbooks) — the `convert` command will not work.
12
+ Without `[convert]`, only core features are available (search, datasources, views, workbooks) — the `convert` command and `ds download --to parquet/csv` will not work.
13
+
14
+ ## Upgrade
15
+
16
+ ```bash
17
+ pip install --upgrade "tableau-cli[convert]"
18
+ ```
13
19
 
14
20
  ## Authentication
15
21
 
@@ -78,7 +78,32 @@ def to_error_output(err: Exception) -> dict[str, Any]:
78
78
  }
79
79
 
80
80
 
81
+ def _check_for_update() -> str | None:
82
+ """Check PyPI for a newer version. Returns a notice string, or None if up to date."""
83
+ try:
84
+ from importlib.metadata import version as installed_version
85
+
86
+ current = installed_version("tableau-cli")
87
+ resp = httpx.get("https://pypi.org/pypi/tableau-cli/json", timeout=3)
88
+ resp.raise_for_status()
89
+ latest = resp.json()["info"]["version"]
90
+ if latest != current:
91
+ return (
92
+ f"Update available: {current} → {latest}. "
93
+ 'Run `pip install --upgrade "tableau-cli[convert]"` to update.'
94
+ )
95
+ except Exception:
96
+ pass
97
+ return None
98
+
99
+
81
100
  class TableauCli(click.Group):
101
+ def format_help(self, ctx: click.Context, formatter: click.HelpFormatter) -> None:
102
+ super().format_help(ctx, formatter)
103
+ notice = _check_for_update()
104
+ if notice:
105
+ formatter.write(f"\n{notice}\n")
106
+
82
107
  def invoke(self, ctx: click.Context) -> Any:
83
108
  try:
84
109
  return super().invoke(ctx)
@@ -95,7 +120,7 @@ class TableauCli(click.Group):
95
120
 
96
121
 
97
122
  @click.group(cls=TableauCli)
98
- @click.version_option("0.1.1")
123
+ @click.version_option("0.1.2")
99
124
  def cli():
100
125
  """CLI tool for interacting with Tableau Server/Cloud."""
101
126
 
File without changes
File without changes
File without changes
File without changes
File without changes