Skip to content

Fix #109: connect --language and --country to export request options - #449

Open
jacalata wants to merge 1 commit into
developmentfrom
jac/109-export-language-country
Open

Fix #109: connect --language and --country to export request options#449
jacalata wants to merge 1 commit into
developmentfrom
jac/109-export-language-country

Conversation

@jacalata

@jacalata jacalata commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • --language was already threading through to request_options.language on export, but --country never reached the REST API. tabcmd Classic combined the two into a BCP 47 locale (e.g. en-GB, de-DE, pt-BR) so exports formatted numbers, dates, and currency for that region.
  • Add _resolve_locale() that joins language + country when both are set, falls back to language alone, and drops country-only (matching Classic which required --language with --country).
  • Route apply_png_options / apply_pdf_options / apply_csv_options through the helper.
  • Relax --country choices from language codes (de|en|es|fr|it|...) to any 2-letter code (upper-cased), so users can actually pass country codes like GB, MX, BR.

Closes #109.

Test plan

  • tests/commands/test_datasources_and_workbooks_command.py — 6 new tests cover combined locale for PNG/PDF/CSV, country-only drop, language-only pass-through
  • Full test_datasources_and_workbooks_command.py suite: 30 passed

🤖 Generated with Claude Code

--language was already threading through to
request_options.language on export, but --country never reached the
REST API. tabcmd Classic combined the two into a BCP 47 locale like
en-GB or de-DE so exports formatted numbers, dates, and currency for
that region.

- Add _resolve_locale() that joins language + country when both are set,
  falls back to language alone, and drops country-only (matching Classic
  which required --language with --country).
- Route apply_png_options / apply_pdf_options / apply_csv_options
  through the helper.
- Relax --country choices from language codes to any 2-letter code
  (upper-cased), so users can pass real country codes like GB, MX, BR.

Fixes #109.
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Coverage

Coverage Report
FileStmtsMissCoverMissing
tabcmd
   __main__.py121212 0%
   _version.py111111 0%
   tabcmd.py151515 0%
   version.py955 44%
tabcmd/commands
   commands.py101010 0%
   constants.py771818 77%
   server.py1351818 87%
tabcmd/commands/auth
   session.py3945050 87%
tabcmd/commands/datasources_and_workbooks
   datasources_and_workbooks_command.py1671818 89%
   datasources_workbooks_views_url_parser.py14255 96%
   delete_command.py601616 73%
   export_command.py1202525 79%
   get_url_command.py1274747 63%
   publish_command.py1232828 77%
   runschedule_command.py2177 67%
tabcmd/commands/extracts
   create_extracts_command.py4288 81%
   decrypt_extracts_command.py2722 93%
   delete_extracts_command.py3766 84%
   encrypt_extracts_command.py2722 93%
   extracts.py2022 90%
   reencrypt_extracts_command.py2722 93%
   refresh_extracts_command.py481010 79%
tabcmd/commands/group
   create_group_command.py2955 83%
   delete_group_command.py2722 93%
tabcmd/commands/project
   create_project_command.py4688 83%
   delete_project_command.py3544 89%
   publish_samples_command.py3044 87%
tabcmd/commands/site
   create_site_command.py3455 85%
   delete_site_command.py2722 93%
   edit_site_command.py3822 95%
   list_command.py771212 84%
   list_sites_command.py2922 93%
tabcmd/commands/user
   add_users_command.py2955 83%
   create_site_users.py581111 81%
   create_users_command.py5999 85%
   delete_site_users_command.py4355 88%
   user_data.py2223131 86%
tabcmd/execution
   _version.py222 0%
   global_options.py12588 94%
   localize.py661111 83%
   logger_config.py6066 90%
   tabcmd_controller.py4277 83%
TOTAL288345884% 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant