Skip to content

Release to staging: strict push_to_dds argument checks and clearer call errors (ref #306883) - #79

Merged
oskaresparza merged 9 commits into
stagingfrom
development
Oct 2, 2026
Merged

oskaresparza merged 9 commits into
stagingfrom
development

Conversation

@oskaresparza

Copy link
Copy Markdown
Collaborator

Promotes development to staging. Ref #306883.

What's in it

  • target_name must be a valid file name (0d55474).
    • It must be a str. An SdiMetadata passed there gets a hint to use metadata=.
    • Empty names, paths, and characters no file system accepts (< > : " | ? *, control characters) are rejected.
    • %metadata push_to_dds checks its arguments before looking up any DDS or Dremio settings.
  • Strict argument types in push_to_dds (36e14dc).
    • Every argument's type is checked in parameter order, whether passed by position or by name.
    • str and bool parameters take nothing else, and the message names the argument and its position, e.g. argument 5 (force) must be bool, not int.
  • Clearer call errors.
    • A call that doesn't fit the signature (unknown keyword, an argument given twice, too many arguments) gives the reason plus the correct usage: line.
    • A magic line that isn't valid Python, such as push_to_dds(DDS_PATH, metadata=metadata, True), names the unnamed argument, suggests parameters its value fits (force=True or check_catalog=True), and shows the usage. This applies to every magic.
  • README install-example sync commits from main (Sync main back into development (v0.1.22) #78), which are already on development.

Tests

503 passed, 1 skipped (the live SDI test).

🤖 Generated with Claude Code

oskaresparza and others added 9 commits October 1, 2026 11:06
Release 0.1.20: SDI metadata extraction, %sdi and %metadata magics (ref #306883)
Release 0.1.21: catalog/storage paths and Dremio catalog check in %metadata
Release 0.1.22: target_name for push_to_dds (ref #306883)
Sync main back into development (v0.1.22)
…f #306883

- target_name must be a str file name: an SdiMetadata passed there raises
  with a hint to use metadata=; empty names, paths and characters no file
  system accepts (< > : " | ? * and control characters) raise ValueError.
- %metadata push_to_dds validates its arguments before looking up any DDS
  or Dremio settings, so the error names the bad argument.
- metadata_path accepts the record in place of its UUID; a non-str uuid
  raises TypeError.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Redmine-Hook: v1
…306883

- push_to_dds (session and controller) checks every argument's type in
  parameter order, positional or named: str/bool parameters take nothing
  else, and the message names the argument and its position.
- A call that doesn't fit the signature (unknown keyword, an argument given
  twice, too many arguments) reports why plus the correct form of the call.
- A magic line that isn't valid Python (e.g. an unnamed argument after a
  name=value one) names the offending argument, suggests parameters its
  value fits, and shows the usage, for every magic.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Redmine-Hook: v1
@oskaresparza
oskaresparza merged commit 44600bf into staging Oct 2, 2026
11 checks passed
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