Skip to content

chore(deps): Bump click from 8.3.1 to 8.5.0 - #328

Merged
dwolfson merged 2 commits into
mainfrom
dependabot/pip/click-8.5.0
Sep 5, 2026
Merged

dwolfson merged 2 commits into
mainfrom
dependabot/pip/click-8.5.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

Bumps click from 8.3.1 to 8.5.0.

Release notes

Sourced from click's releases.

8.5.0

This is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.

We encourage everyone to upgrade. You can read more about our Version Support Policy on our website.

PyPI: https://pypi.org/project/click/8.5.0/ Changes: https://click.palletsprojects.com/page/changes/#version-8-5-0 Milestone https://github.com/pallets/click/milestone/33

  • Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing bash, zsh, and fish completers. Use _FOO_BAR_COMPLETE=powershell_source foo-bar to generate the completion script. #2672 #3637
  • Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. #2986 #3505
  • {class}Argument accepts a help parameter, and help output includes a Positional arguments section when argument help is available. #2983 #3473
  • confirm() and prompt() strip ANSI color and style codes from the prompt when the output stream does not support them, matching echo(). This stripping was lost in 8.4.0 when #2969 began writing the prompt with input() directly. #3572 #3653
  • {class}Path with allow_dash=True no longer triggers a BytesWarning, an error under python -bb, when checking a value against the - convention. #2877 #3642
  • Add {func}custom_version_option, a --version option whose output is produced by a callback, covering cases {func}version_option intentionally does not. The feature set of {func}version_option is now frozen; see [discussion #3527](`@version_option` future direction pallets/click#3527). #3581
  • style() and secho() no longer silently drop the 256-color index 0 (black) passed as fg or bg, and now validate color arguments. Invalid colors raise a ValueError instead of a TypeError. #3677
  • The automatic help option stores its value under the reserved name _click_default_help instead of help, so a parameter named help no longer breaks parsing. The new name is visible in {meth}Command.to_info_dict output. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). #2819 #3678
  • unstyle and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. #3681
  • Streamline Option flag handling: the flag-kind, type, lazy-default and validation steps in Option.__init__ move into focused helpers, and flag_value and default keep their unset sentinel at construction (resolved lazily on read) so is UNSET reliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}Parameter.to_info_dict now resolves default=True on a feature switch to its flag_value, matching what the function receives at call

... (truncated)

Changelog

Sourced from click's changelog.

Version 8.5.0

Released 2026-08-24

  • Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing bash, zsh, and fish completers. Use _FOO_BAR_COMPLETE=powershell_source foo-bar to generate the completion script. {issue}2672 {pr}3637
  • Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. {issue}2986 {pr}3505
  • {class}Argument accepts a help parameter, and help output includes a Positional arguments section when argument help is available. {issue}2983 {pr}3473
  • confirm() and prompt() strip ANSI color and style codes from the prompt when the output stream does not support them, matching echo(). This stripping was lost in 8.4.0 when {pr}2969 began writing the prompt with input() directly. {issue}3572 {pr}3653
  • Fix test failures when using pytest >= 9.1. {pr}3656
  • {class}Path with allow_dash=True no longer triggers a BytesWarning, an error under python -bb, when checking a value against the - convention. {issue}2877 {pr}3642
  • Add {func}custom_version_option, a --version option whose output is produced by a callback, covering cases {func}version_option intentionally does not. The feature set of {func}version_option is now frozen; see [discussion #3527](`@version_option` future direction pallets/click#3527). {pr}3581
  • style() and secho() no longer silently drop the 256-color index 0 (black) passed as fg or bg, and now validate color arguments. Invalid colors raise a ValueError instead of a TypeError. {pr}3677
  • The automatic help option stores its value under the reserved name _click_default_help instead of help, so a parameter named help no longer breaks parsing. The new name is visible in {meth}Command.to_info_dict output. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). {issue}2819 {pr}3678
  • unstyle and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. {pr}3681
  • Streamline Option flag handling: the flag-kind, type, lazy-default and validation steps in Option.__init__ move into focused helpers, and flag_value and default keep their unset sentinel at construction (resolved lazily on read) so is UNSET reliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}Parameter.to_info_dict now resolves default=True on a feature switch to its flag_value, matching what the function receives at call time. {pr}3641
  • {func}get_binary_stream and {func}get_text_stream are deprecated and will be removed in Click 9.0. {issue}3481 {pr}3695
  • The following click.utils names were never intentionally public and are now private (_-prefixed). The old names remain available with a DeprecationWarning until Click 9.0: LazyFile, KeepOpenFile,

... (truncated)

Commits
  • 8b19813 Release version 8.5.0
  • 2c8cd3a Add FAQ entry about UnicodeEncodeError on Windows (#3778)
  • 131c86a Add FAQ entry about UnicodeEncodeError on Windows
  • e1fd594 Add support of pathlib.Path to edit (#3781)
  • a1d8785 Add support of pathlib.Path to edit
  • 2103e15 Forward all user's parameters set in PAGER and improve flag detection (#3777)
  • a6256bf Forwards all user's parameters set in PAGER
  • 61b69e9 Resolve the pager command once, in _pager_contextmanager (#3776)
  • 9835b0f Resolve the pager command once, in _pager_contextmanager
  • f36d58b Refactor pager stream handling (#3767)
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Aug 31, 2026
@dependabot
dependabot Bot force-pushed the dependabot/pip/click-8.5.0 branch from 3e3403d to e802547 Compare August 31, 2026 20:14
Bumps [click](https://github.com/pallets/click) from 8.3.1 to 8.5.0.
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.md)
- [Commits](pallets/click@8.3.1...8.5.0)

---
updated-dependencies:
- dependency-name: click
  dependency-version: 8.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/pip/click-8.5.0 branch from e802547 to 91b27ae Compare September 4, 2026 02:12
@dwolfson
dwolfson merged commit cdff152 into main Sep 5, 2026
2 checks passed
@dwolfson
dwolfson deleted the dependabot/pip/click-8.5.0 branch September 5, 2026 19:10
pcoldico pushed a commit to pcoldico/egeria-python that referenced this pull request Sep 7, 2026
Bumps [click](https://github.com/pallets/click) from 8.3.1 to 8.5.0.
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.md)
- [Commits](pallets/click@8.3.1...8.5.0)

---
updated-dependencies:
- dependency-name: click
  dependency-version: 8.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
dwolfson added a commit that referenced this pull request Sep 8, 2026
* End of day backup, added my bookmarks functionality, not yet tested, included in auto tests or added to documentation

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

* Save changes to enable my_bookmarks functionality

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

* Updates to the flows in Shop for Data and a new MD doc covering all return codes across the application

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

* fix+feat: ISSUE-87/80/86 fixed, ISSUE-88 corrected as not-a-bug (report-spec review batch) (#342)

* docs(PYEGERIA_ISSUES): ISSUE-87/86/80 fixed, ISSUE-88 corrected as not-a-bug

ISSUE-88: not a bug. GovernanceZone (0424) is a GovernanceDefinition
subtype like every other one create_governance_definition already
handles -- pass GovernanceDefinitionProperties with typeName:
"GovernanceZone" (same generic mechanism as
BusinessImperative/RegulationArticle/etc.). Confirmed against
GOV_DEF_PROPERTIES_LIST (pyegeria/omvs/governance_officer.py) and the
.http ground truth, which has no separate governance-zones create
endpoint at all. Moved to the 'Not a bug / n/a' section; kept the
original report for history. Real, separate follow-up noted: the
method's own docstring doesn't list GovernanceZone (or other
0401-family subtypes) as valid typeName values -- a documentation
gap, not an API gap.

ISSUE-87, ISSUE-80, ISSUE-86: entries updated to record the fixes
landed in this same session (see the corresponding code commits) --
docstring correction, MCP tool exposure, and bearer-token support in
exec_report_spec, respectively.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* fix(classification-explorer): ISSUE-87 -- correct OwnerProperties -> OwnershipProperties in add_ownership_to_element docstrings

_async_add_ownership_to_element/add_ownership_to_element documented a
sample body with "class": "OwnerProperties", but the method itself
validates against prop=["OwnershipProperties"] -- the documented body
was rejected client-side (PyegeriaInvalidParameterException,
'unexpected property class name') before any HTTP call, 100% of the
time. .http ground truth already used OwnershipProperties and agreed
with the code; the docstring was the outlier, repeated in both the
async and sync wrapper.

Fix: both docstrings corrected to OwnershipProperties. Swept every
other _async_new_classification_request caller in the file (matched
by function boundary, not naive line-proximity, to avoid false
positives from adjacent functions) -- this was the only class-name/
prop= mismatch in classification_explorer.py.

Verified: TypeAdapter(NewClassificationRequestBody).validate_python(...)
with the corrected body now validates cleanly (previously raised
ValidationError). Full pytest tests/micro-tests/ green.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* feat(format-set-executor): ISSUE-86 -- exec_report_spec accepts a bearer token, not just user/user_pass

exec_report_spec (and its two client-building helpers, _exec_analytic_chart
and _run_analytic_function) always built a fresh EgeriaTech/client from
user/user_pass and called create_egeria_bearer_token() -- no way to run a
report as a caller who already holds a bearer token for the calling user.
Egeria Advisor's app JWT carries the user's Egeria bearer token and no
longer their password (matching the Portal's existing X-Egeria-Token +
set_bearer_token() pattern), so report execution had to fall back to a
service account, and Egeria's provenance recorded that service account
instead of the person who ran the report.

Fix: added token: Optional[str] = None to exec_report_spec,
_exec_analytic_chart, and _run_analytic_function, threaded through every
client-building call site. When token is given, the client is
authenticated with set_bearer_token(token) instead of
create_egeria_bearer_token(); when omitted, behavior is byte-for-byte
unchanged. NewElementRequestBody-style constructors already accept a
token= kwarg directly (confirmed: EgeriaTech.__init__ and ServerClient
.__init__ both do, and lazily-instantiated sub-clients inherit self.token
via _get_subclient), so no model changes were needed.

New test tests/micro-tests/test_exec_report_spec_token.py (2 tests,
monkeypatched EgeriaTech, no live server): confirms token routes through
set_bearer_token with zero calls to create_egeria_bearer_token, and
confirms the no-token path is unchanged. Full pytest tests/micro-tests/
green.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* feat(mcp): ISSUE-80 -- expose find_report_specs_by_perspective/by_question as MCP tools; ISSUE-86 -- thread bearer token through run_report

ISSUE-80: find_report_specs_by_perspective/find_report_specs_by_question
(pyegeria/view/base_report_formats.py) were real, working, tested
functions with no MCP tool or CLI command exposing them -- only their
own functional test exercised them. Added run_find_report_specs_by_
perspective/run_find_report_specs_by_question adapters (same thin-wrapper
pattern as the existing run_find_report_specs) and registered them as
MCP tools find_report_specs_by_perspective/find_report_specs_by_question,
alongside the existing find_report_specs tool. Pure additive wiring, no
change to the underlying functions. hey_egeria CLI exposure (the
issue's 'and/or' half) left undone -- MCP was the natural fit given the
existing find_report_specs tool precedent.

ISSUE-86: run_report and _execute_egeria_call_blocking (mcp_adapter.py)
now accept token: Optional[str] = None and pass it through to
exec_report_spec, so a caller that already holds a bearer token for the
calling user can run a report as that user instead of the user/user_pass
service account. describe_report doesn't build a client (pure registry
lookup) so needed no change. mcp_server.py's own run_report MCP tool
takes a different, already-token-capable path (a pre-built egeria_client
passed to _async_run_report_tool, not exec_report_spec's builder) and is
out of scope here.

Full pytest tests/micro-tests/ green throughout.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

---------

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump actions/checkout from 4.4.0 to 7.0.1 (#330)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.4.0 to 7.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@11d5960...3d3c42e)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump click from 8.3.1 to 8.5.0 (#328)

Bumps [click](https://github.com/pallets/click) from 8.3.1 to 8.5.0.
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.md)
- [Commits](pallets/click@8.3.1...8.5.0)

---
updated-dependencies:
- dependency-name: click
  dependency-version: 8.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump altair from 6.0.0 to 6.2.2 (#327)

Bumps [altair](https://github.com/vega/altair) from 6.0.0 to 6.2.2.
- [Release notes](https://github.com/vega/altair/releases)
- [Commits](vega/altair@v6.0.0...v6.2.2)

---
updated-dependencies:
- dependency-name: altair
  dependency-version: 6.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump astral-sh/setup-uv from 3.2.4 to 10.0.1 (#326)

Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 3.2.4 to 10.0.1.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@caf0cab...20cfd1b)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 10.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump softprops/action-gh-release from 1 to 2 (#325)

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@de2c0eb...3bb1273)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '2'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump github/codeql-action/init from 3.37.9 to 4.37.9 (#329)

Bumps [github/codeql-action/init](https://github.com/github/codeql-action) from 3.37.9 to 4.37.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@6f5948d...cdf488f)

---
updated-dependencies:
- dependency-name: github/codeql-action/init
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump github/codeql-action/analyze from 3.37.9 to 4.37.9 (#331)

Bumps [github/codeql-action/analyze](https://github.com/github/codeql-action) from 3.37.9 to 4.37.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@6f5948d...cdf488f)

---
updated-dependencies:
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(release): bump version to 6.1.10 (#343)

First tagged/CI-built release since 6.1.8 (6.1.9 was an out-of-band
publish, never tagged). Includes: click 8.3.1->8.5.0, altair
6.0.0->6.2.2, actions/checkout/setup-uv/codeql-action/action-gh-release
CI bumps (#325-#331), and ISSUE-86/87/80 fixes (#342).

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* Some small fixes  (#344)

* docs(PYEGERIA_ISSUES): log ISSUE-91 -- mcp dependency floor too loose

pyproject.toml declares mcp >=0.1 but pyegeria/core/mcp_server.py imports
mcp.server.mcpserver.MCPServer, which requires mcp>=2.0 (confirmed live:
this dev venv has mcp==2.0.0 installed and the import works; the module
path doesn't exist in the 0.x/1.x mcp package line). Found by Egeria
Advisor rebuilding its demo deployment against pyegeria 6.1.10 -- worked
fine because they pinned mcp==2.1.1 explicitly, not because pyegeria's
own floor would have caught an older mcp.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* test(view): cover ISSUE-86's caller-held bearer token in exec_report_spec

format_set_executor.py's `token` parameter (ISSUE-86 — let a caller that
already holds an Egeria bearer token run a report without a password) is on
main with no dedicated test.

These tests existed only on an unpushed local branch,
claude/cranky-chebyshev-be2494, alongside a second, parallel implementation
of the same feature that main had meanwhile gained by another route.
Pushing that branch would have added a duplicate implementation; the tests
were the part worth keeping, so they are salvaged here on their own.

They were written against that branch's `_authenticate_client()` helper,
which main does not have — verified they pass unchanged against main's
inline implementation (7 passed), so they test the behaviour rather than
that refactor's shape.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

---------

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* Update to base_report_formats to add the GUID to the Data-Product-Catalog-MyE report format

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

* Update to base_report_formats to add GUID to Data-Product-Catalog-MyE, previous commit was just the test code

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

---------

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
pcoldico added a commit to pcoldico/egeria-python that referenced this pull request Sep 8, 2026
* End of day backup, added my bookmarks functionality, not yet tested, included in auto tests or added to documentation

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

* Save changes to enable my_bookmarks functionality

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

* Updates to the flows in Shop for Data and a new MD doc covering all return codes across the application

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

* fix+feat: ISSUE-87/80/86 fixed, ISSUE-88 corrected as not-a-bug (report-spec review batch) (odpi#342)

* docs(PYEGERIA_ISSUES): ISSUE-87/86/80 fixed, ISSUE-88 corrected as not-a-bug

ISSUE-88: not a bug. GovernanceZone (0424) is a GovernanceDefinition
subtype like every other one create_governance_definition already
handles -- pass GovernanceDefinitionProperties with typeName:
"GovernanceZone" (same generic mechanism as
BusinessImperative/RegulationArticle/etc.). Confirmed against
GOV_DEF_PROPERTIES_LIST (pyegeria/omvs/governance_officer.py) and the
.http ground truth, which has no separate governance-zones create
endpoint at all. Moved to the 'Not a bug / n/a' section; kept the
original report for history. Real, separate follow-up noted: the
method's own docstring doesn't list GovernanceZone (or other
0401-family subtypes) as valid typeName values -- a documentation
gap, not an API gap.

ISSUE-87, ISSUE-80, ISSUE-86: entries updated to record the fixes
landed in this same session (see the corresponding code commits) --
docstring correction, MCP tool exposure, and bearer-token support in
exec_report_spec, respectively.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* fix(classification-explorer): ISSUE-87 -- correct OwnerProperties -> OwnershipProperties in add_ownership_to_element docstrings

_async_add_ownership_to_element/add_ownership_to_element documented a
sample body with "class": "OwnerProperties", but the method itself
validates against prop=["OwnershipProperties"] -- the documented body
was rejected client-side (PyegeriaInvalidParameterException,
'unexpected property class name') before any HTTP call, 100% of the
time. .http ground truth already used OwnershipProperties and agreed
with the code; the docstring was the outlier, repeated in both the
async and sync wrapper.

Fix: both docstrings corrected to OwnershipProperties. Swept every
other _async_new_classification_request caller in the file (matched
by function boundary, not naive line-proximity, to avoid false
positives from adjacent functions) -- this was the only class-name/
prop= mismatch in classification_explorer.py.

Verified: TypeAdapter(NewClassificationRequestBody).validate_python(...)
with the corrected body now validates cleanly (previously raised
ValidationError). Full pytest tests/micro-tests/ green.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* feat(format-set-executor): ISSUE-86 -- exec_report_spec accepts a bearer token, not just user/user_pass

exec_report_spec (and its two client-building helpers, _exec_analytic_chart
and _run_analytic_function) always built a fresh EgeriaTech/client from
user/user_pass and called create_egeria_bearer_token() -- no way to run a
report as a caller who already holds a bearer token for the calling user.
Egeria Advisor's app JWT carries the user's Egeria bearer token and no
longer their password (matching the Portal's existing X-Egeria-Token +
set_bearer_token() pattern), so report execution had to fall back to a
service account, and Egeria's provenance recorded that service account
instead of the person who ran the report.

Fix: added token: Optional[str] = None to exec_report_spec,
_exec_analytic_chart, and _run_analytic_function, threaded through every
client-building call site. When token is given, the client is
authenticated with set_bearer_token(token) instead of
create_egeria_bearer_token(); when omitted, behavior is byte-for-byte
unchanged. NewElementRequestBody-style constructors already accept a
token= kwarg directly (confirmed: EgeriaTech.__init__ and ServerClient
.__init__ both do, and lazily-instantiated sub-clients inherit self.token
via _get_subclient), so no model changes were needed.

New test tests/micro-tests/test_exec_report_spec_token.py (2 tests,
monkeypatched EgeriaTech, no live server): confirms token routes through
set_bearer_token with zero calls to create_egeria_bearer_token, and
confirms the no-token path is unchanged. Full pytest tests/micro-tests/
green.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* feat(mcp): ISSUE-80 -- expose find_report_specs_by_perspective/by_question as MCP tools; ISSUE-86 -- thread bearer token through run_report

ISSUE-80: find_report_specs_by_perspective/find_report_specs_by_question
(pyegeria/view/base_report_formats.py) were real, working, tested
functions with no MCP tool or CLI command exposing them -- only their
own functional test exercised them. Added run_find_report_specs_by_
perspective/run_find_report_specs_by_question adapters (same thin-wrapper
pattern as the existing run_find_report_specs) and registered them as
MCP tools find_report_specs_by_perspective/find_report_specs_by_question,
alongside the existing find_report_specs tool. Pure additive wiring, no
change to the underlying functions. hey_egeria CLI exposure (the
issue's 'and/or' half) left undone -- MCP was the natural fit given the
existing find_report_specs tool precedent.

ISSUE-86: run_report and _execute_egeria_call_blocking (mcp_adapter.py)
now accept token: Optional[str] = None and pass it through to
exec_report_spec, so a caller that already holds a bearer token for the
calling user can run a report as that user instead of the user/user_pass
service account. describe_report doesn't build a client (pure registry
lookup) so needed no change. mcp_server.py's own run_report MCP tool
takes a different, already-token-capable path (a pre-built egeria_client
passed to _async_run_report_tool, not exec_report_spec's builder) and is
out of scope here.

Full pytest tests/micro-tests/ green throughout.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

---------

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump actions/checkout from 4.4.0 to 7.0.1 (odpi#330)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.4.0 to 7.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@11d5960...3d3c42e)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump click from 8.3.1 to 8.5.0 (odpi#328)

Bumps [click](https://github.com/pallets/click) from 8.3.1 to 8.5.0.
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.md)
- [Commits](pallets/click@8.3.1...8.5.0)

---
updated-dependencies:
- dependency-name: click
  dependency-version: 8.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump altair from 6.0.0 to 6.2.2 (odpi#327)

Bumps [altair](https://github.com/vega/altair) from 6.0.0 to 6.2.2.
- [Release notes](https://github.com/vega/altair/releases)
- [Commits](vega/altair@v6.0.0...v6.2.2)

---
updated-dependencies:
- dependency-name: altair
  dependency-version: 6.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump astral-sh/setup-uv from 3.2.4 to 10.0.1 (odpi#326)

Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 3.2.4 to 10.0.1.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@caf0cab...20cfd1b)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 10.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump softprops/action-gh-release from 1 to 2 (odpi#325)

Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@de2c0eb...3bb1273)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '2'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump github/codeql-action/init from 3.37.9 to 4.37.9 (odpi#329)

Bumps [github/codeql-action/init](https://github.com/github/codeql-action) from 3.37.9 to 4.37.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@6f5948d...cdf488f)

---
updated-dependencies:
- dependency-name: github/codeql-action/init
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(deps): Bump github/codeql-action/analyze from 3.37.9 to 4.37.9 (odpi#331)

Bumps [github/codeql-action/analyze](https://github.com/github/codeql-action) from 3.37.9 to 4.37.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@6f5948d...cdf488f)

---
updated-dependencies:
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* chore(release): bump version to 6.1.10 (odpi#343)

First tagged/CI-built release since 6.1.8 (6.1.9 was an out-of-band
publish, never tagged). Includes: click 8.3.1->8.5.0, altair
6.0.0->6.2.2, actions/checkout/setup-uv/codeql-action/action-gh-release
CI bumps (odpi#325-odpi#331), and ISSUE-86/87/80 fixes (odpi#342).

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* Some small fixes  (odpi#344)

* docs(PYEGERIA_ISSUES): log ISSUE-91 -- mcp dependency floor too loose

pyproject.toml declares mcp >=0.1 but pyegeria/core/mcp_server.py imports
mcp.server.mcpserver.MCPServer, which requires mcp>=2.0 (confirmed live:
this dev venv has mcp==2.0.0 installed and the import works; the module
path doesn't exist in the 0.x/1.x mcp package line). Found by Egeria
Advisor rebuilding its demo deployment against pyegeria 6.1.10 -- worked
fine because they pinned mcp==2.1.1 explicitly, not because pyegeria's
own floor would have caught an older mcp.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

* test(view): cover ISSUE-86's caller-held bearer token in exec_report_spec

format_set_executor.py's `token` parameter (ISSUE-86 — let a caller that
already holds an Egeria bearer token run a report without a password) is on
main with no dedicated test.

These tests existed only on an unpushed local branch,
claude/cranky-chebyshev-be2494, alongside a second, parallel implementation
of the same feature that main had meanwhile gained by another route.
Pushing that branch would have added a duplicate implementation; the tests
were the part worth keeping, so they are salvaged here on their own.

They were written against that branch's `_authenticate_client()` helper,
which main does not have — verified they pass unchanged against main's
inline implementation (7 passed), so they test the behaviour rather than
that refactor's shape.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>

---------

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* Update to base_report_formats to add the GUID to the Data-Product-Catalog-MyE report format

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

* Update to base_report_formats to add GUID to Data-Product-Catalog-MyE, previous commit was just the test code

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>

---------

Signed-off-by: Peter Coldicott <86156876+pcoldico@users.noreply.github.com>
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant