Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CG-10731: Add ChainedAttribute.attribute_chain #383

Merged
merged 8 commits into from
Feb 10, 2025

Conversation

tawsifkamal
Copy link
Contributor

  • Adds ChainedAttribute.attribute_chain to be able view all members of a lengthy chained attribute in a list
  • Can easily now traverse a lengthy chained attribute
  • i.e calling attribute_chain on one of the functionCalls or one of the ChainedAttributes of a().b().c.d.e() -> [FunctionCall(name=a), FunctionCall(name=b), Name(source=c), Name(source=d), FunctionCall(name=e)]

@tawsifkamal tawsifkamal requested review from codegen-team and a team as code owners February 10, 2025 01:41
Copy link

codecov bot commented Feb 10, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

✅ All tests successful. No failed tests found.

Additional details and impacted files

Verified

This commit was signed with the committer’s verified signature.
eadwu Edmund Wu

Verified

This commit was signed with the committer’s verified signature.
eadwu Edmund Wu
EdwardJXLi and others added 4 commits February 10, 2025 12:08
# Motivation

<!-- Why is this change necessary? -->

# Content

<!-- Please include a summary of the change -->

# Testing

<!-- How was the change tested? -->

# Please check the following before marking your PR as ready for review

- [ ] I have added tests for my changes
- [ ] I have updated the documentation or added new documentation as
needed
Updates the requirements on
[plotly](https://github.com/plotly/plotly.py) to permit the latest
version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/plotly/plotly.py/releases">plotly's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h2>[6.0.0] - 2025-01-28</h2>
<h3>Added</h3>
<ul>
<li>Add <code>plotly[express]</code> extra for easily installing Plotly
Express dependencies [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4644">#4644</a>]</li>
<li>Add <code>subtitle</code> attribute to all Plotly Express traces [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4830">#4830</a>].</li>
</ul>
<h3>Removed</h3>
<ul>
<li>Drop deprecated <code>pointcloud</code> and <code>heatmapgl</code>
traces from the API [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4815">#4815</a>]</li>
<li>Drop <code>tenacity</code> dependency [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4831">#4831</a>]</li>
<li>Drop support for Jupyter Notebook version 6 and earlier [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4822">#4822</a>].
The minimum supported version is now 7.0.0.</li>
</ul>
<h3>Updated</h3>
<ul>
<li>Update Plotly.js from version 2.34.2 to version 3.0.0 See the <a
href="https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#300----2025-01-27">plotly.js
CHANGELOG</a> for more information. These changes are reflected in the
auto-generated <code>plotly.graph_objects</code> module. Notable changes
include:
<ul>
<li>Make offsetgroup work with barmode &quot;stacked&quot; and
&quot;relative&quot; for bar traces [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7009">#7009</a>]</li>
<li>Drop support for deprecated attributes <code>titlefont</code>,
<code>titleposition</code>, <code>titleside</code>, and
<code>titleoffset</code> [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7212">#7212</a>].</li>
<li>Drop deprecated pointcloud and heatmapgl traces and gl2d subplots
[<a
href="https://redirect.github.com/plotly/plotly.js/pull/7213">#7213</a>]</li>
<li>Drop support for deprecated <code>bardir</code> attribute (use
<code>orientation</code> instead) [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7214">#7214</a>]</li>
<li>Drop support for deprecated <code>annotation.ref</code> attribute
(use <code>annotation.xref</code> and <code>annotation.yref</code>
instead) [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7215">#7215</a>]</li>
<li>Drop support for deprecated error bar <code>opacity</code> attribute
(use alpha channel of error bar <code>color</code> attribute instead)
[<a
href="https://redirect.github.com/plotly/plotly.js/pull/7216">#7214</a>]</li>
<li>Drop support for deprecated attribute
<code>gl3d.cameraposition</code> (use <code>gl3d.camera</code> instead)
[<a
href="https://redirect.github.com/plotly/plotly.js/pull/7217">#7217</a>]</li>
<li>Drop deprecated <code>plot3dPixelRatio</code> from config [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7231">#7231</a>]</li>
<li>Drop deprecated <code>zauto</code>, <code>zmin</code> and
<code>zmax</code> from the surface trace [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7234">#7234</a>]</li>
<li>Drop deprecated <code>autotick</code> attributes from cartesian axes
[<a
href="https://redirect.github.com/plotly/plotly.js/pull/7236">#7236</a>]</li>
<li>Drop <code>transforms</code> from the API [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7240">#7240</a>,
<a
href="https://redirect.github.com/plotly/plotly.js/pull/7254">#7254</a>]</li>
</ul>
</li>
<li>Deprecate Mapbox-based traces.[<a
href="https://redirect.github.com/plotly/plotly.py/pull/4900">#4900</a>].
See the <a href="https://plotly.com/python/mapbox-to-maplibre/">MapLibre
Migration</a> page for details on migrating from Mapbox to
Maplibre.</li>
<li>Update plotly.py to use base64 encoding of typed arrays e.g. numpy
in plotly JSON to keep precision intact and improve performance [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4470">#4470</a>].</li>
<li>Make plotly-express dataframe agnostic via Narwhals [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4790">#4790</a>].</li>
<li>Update <code>go.FigureWidget</code> to use <code>anywidget</code>
[<a
href="https://redirect.github.com/plotly/plotly.py/pull/4823">#4823</a>]</li>
<li>Use modern <a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules">native
ES6 import</a> to load plotly.js bundle instead of requirejs which is <a
href="https://github.com/requirejs/r.js/compare/2.3.6...2.3.7">no longer
under active development</a> [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4763">#4736</a>]</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix a bug in JupyterLab &gt;= 4 and Jupyter Notebook &gt;= 7 that
caused LaTeX to not render in plotly charts [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4763">#4763</a>].</li>
<li>Fix <code>go.FigureWidget.show</code> to return
<code>FigureWidget</code> instead of displaying <code>Figure</code> [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4869">#4869</a>]</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md">plotly's
changelog</a>.</em></p>
<blockquote>
<h2>[6.0.0] - 2025-01-28</h2>
<h3>Added</h3>
<ul>
<li>Add <code>plotly[express]</code> extra for easily installing Plotly
Express dependencies [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4644">#4644</a>]</li>
<li>Add <code>subtitle</code> attribute to all Plotly Express traces [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4830">#4830</a>].</li>
</ul>
<h3>Removed</h3>
<ul>
<li>Drop deprecated <code>pointcloud</code> and <code>heatmapgl</code>
traces from the API [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4815">#4815</a>]</li>
<li>Drop <code>tenacity</code> dependency [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4831">#4831</a>]</li>
<li>Drop support for Jupyter Notebook version 6 and earlier [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4822">#4822</a>].
The minimum supported version is now 7.0.0.</li>
</ul>
<h3>Updated</h3>
<ul>
<li>Update Plotly.js from version 2.34.2 to version 3.0.0 See the <a
href="https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#300----2025-01-27">plotly.js
CHANGELOG</a> for more information. These changes are reflected in the
auto-generated <code>plotly.graph_objects</code> module. Notable changes
include:
<ul>
<li>Make offsetgroup work with barmode &quot;stacked&quot; and
&quot;relative&quot; for bar traces [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7009">#7009</a>]</li>
<li>Drop support for deprecated attributes <code>titlefont</code>,
<code>titleposition</code>, <code>titleside</code>, and
<code>titleoffset</code> [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7212">#7212</a>].</li>
<li>Drop deprecated pointcloud and heatmapgl traces and gl2d subplots
[<a
href="https://redirect.github.com/plotly/plotly.js/pull/7213">#7213</a>]</li>
<li>Drop support for deprecated <code>bardir</code> attribute (use
<code>orientation</code> instead) [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7214">#7214</a>]</li>
<li>Drop support for deprecated <code>annotation.ref</code> attribute
(use <code>annotation.xref</code> and <code>annotation.yref</code>
instead) [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7215">#7215</a>]</li>
<li>Drop support for deprecated error bar <code>opacity</code> attribute
(use alpha channel of error bar <code>color</code> attribute instead)
[<a
href="https://redirect.github.com/plotly/plotly.js/pull/7216">#7214</a>]</li>
<li>Drop support for deprecated attribute
<code>gl3d.cameraposition</code> (use <code>gl3d.camera</code> instead)
[<a
href="https://redirect.github.com/plotly/plotly.js/pull/7217">#7217</a>]</li>
<li>Drop deprecated <code>plot3dPixelRatio</code> from config [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7231">#7231</a>]</li>
<li>Drop deprecated <code>zauto</code>, <code>zmin</code> and
<code>zmax</code> from the surface trace [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7234">#7234</a>]</li>
<li>Drop deprecated <code>autotick</code> attributes from cartesian axes
[<a
href="https://redirect.github.com/plotly/plotly.js/pull/7236">#7236</a>]</li>
<li>Drop <code>transforms</code> from the API [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7240">#7240</a>,
<a
href="https://redirect.github.com/plotly/plotly.js/pull/7254">#7254</a>]</li>
</ul>
</li>
<li>Deprecate Mapbox-based traces.[<a
href="https://redirect.github.com/plotly/plotly.py/pull/4900">#4900</a>].
See the <a href="https://plotly.com/python/mapbox-to-maplibre/">MapLibre
Migration</a> page for details on migrating from Mapbox to
Maplibre.</li>
<li>Update plotly.py to use base64 encoding of typed arrays e.g. numpy
in plotly JSON to keep precision intact and improve performance [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4470">#4470</a>].</li>
<li>Make plotly-express dataframe agnostic via Narwhals [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4790">#4790</a>].</li>
<li>Update <code>go.FigureWidget</code> to use <code>anywidget</code>
[<a
href="https://redirect.github.com/plotly/plotly.py/pull/4823">#4823</a>]</li>
<li>Use modern <a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules">native
ES6 import</a> to load plotly.js bundle instead of requirejs which is <a
href="https://github.com/requirejs/r.js/compare/2.3.6...2.3.7">no longer
under active development</a> [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4763">#4736</a>]</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix a bug in JupyterLab &gt;= 4 and Jupyter Notebook &gt;= 7 that
caused LaTeX to not render in plotly charts [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4763">#4763</a>].</li>
<li>Fix <code>go.FigureWidget.show</code> to return
<code>FigureWidget</code> instead of displaying <code>Figure</code> [<a
href="https://redirect.github.com/plotly/plotly.py/pull/4869">#4869</a>]</li>
</ul>
<h2>[5.24.1] - 2024-09-12</h2>
<h3>Updated</h3>
<ul>
<li>Updated Plotly.js from version 2.35.0 to version 3.0.0-rc.0. See the
<a
href="https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2352----2024-11-11">plotly.js
CHANGELOG</a> for more information.</li>
</ul>
<h2>[5.24.0] - 2024-08-29</h2>
<h3>Added</h3>
<ul>
<li>New <code>px</code> functions for maps: <code>scatter_map</code>,
<code>line_map</code>, <code>choropleth_map</code>, and
<code>density_map</code>.</li>
</ul>
<h3>Updated</h3>
<ul>
<li>Updated Plotly.js from version 2.34.0 to version 2.35.0. See the <a
href="https://github.com/plotly/plotly.js/blob/master/CHANGELOG.md#2350----2024-08-29">plotly.js
CHANGELOG</a> for more information. These changes are reflected in the
auto-generated <code>plotly.graph_objects</code> module. Notable changes
include:
<ul>
<li>Add new traces: scattermap, choroplethmap and densitymap and map
subplots which use maplibre to render maps [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7015">#7015</a>,
<a
href="https://redirect.github.com/plotly/plotly.js/pull/7060">#7060</a>,
<a
href="https://redirect.github.com/plotly/plotly.js/pull/7085">#7085</a>,
<a
href="https://redirect.github.com/plotly/plotly.js/pull/7088">#7088</a>,
<a
href="https://redirect.github.com/plotly/plotly.js/pull/7090">#7090</a>,
<a
href="https://redirect.github.com/plotly/plotly.js/pull/7092">#7092</a>,
<a
href="https://redirect.github.com/plotly/plotly.js/pull/7094">#7094</a>,
<a
href="https://redirect.github.com/plotly/plotly.js/pull/7134">#7134</a>]</li>
<li>Deprecate mapbox traces and mapbox subplot [<a
href="https://redirect.github.com/plotly/plotly.js/pull/7087">#7087</a>]</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/plotly/plotly.py/commit/49581b8a19a808a78172c9294d7e39969c9d0248"><code>49581b8</code></a>
version changes for v6.0.0</li>
<li><a
href="https://github.com/plotly/plotly.py/commit/769d12fd90d2ea803f20e3610396aa951df1bf68"><code>769d12f</code></a>
Merge pull request <a
href="https://redirect.github.com/plotly/plotly.py/issues/4987">#4987</a>
from plotly/upgrade-plotlyjs-3.0</li>
<li><a
href="https://github.com/plotly/plotly.py/commit/fe7147b593412be0e1dbb050760fb496b0c2d9ea"><code>fe7147b</code></a>
Update to plotly.js 3.0.0</li>
<li><a
href="https://github.com/plotly/plotly.py/commit/0ca20aae5ad0a9de567e27f1ac4aef54ac595532"><code>0ca20aa</code></a>
Merge pull request <a
href="https://redirect.github.com/plotly/plotly.py/issues/4976">#4976</a>
from plotly/update-docs-for-dataframes</li>
<li><a
href="https://github.com/plotly/plotly.py/commit/357ad0c450d5ba2d6f85351c0aa5722c69831a62"><code>357ad0c</code></a>
Update doc/python/px-arguments.md</li>
<li><a
href="https://github.com/plotly/plotly.py/commit/2aa76bfb1637d534b0758088dea86b7fdafa2cfc"><code>2aa76bf</code></a>
add note on dicts and arrays</li>
<li><a
href="https://github.com/plotly/plotly.py/commit/3d36f1468f79277d483151fd1af9b25d7bf30de6"><code>3d36f14</code></a>
Merge pull request <a
href="https://redirect.github.com/plotly/plotly.py/issues/4966">#4966</a>
from plotly/merge-recent-docs-changes</li>
<li><a
href="https://github.com/plotly/plotly.py/commit/d8313053a8c1ec42336a0b36587a44484dab26b2"><code>d831305</code></a>
Merge pull request <a
href="https://redirect.github.com/plotly/plotly.py/issues/4969">#4969</a>
from plotly/marthacryan-patch-1</li>
<li><a
href="https://github.com/plotly/plotly.py/commit/666c025b197c9d6d68ed215d6c624d0cad6f20f8"><code>666c025</code></a>
Merge pull request <a
href="https://redirect.github.com/plotly/plotly.py/issues/4968">#4968</a>
from plotly/figure-widget-updates</li>
<li><a
href="https://github.com/plotly/plotly.py/commit/3410e9d9d50939590e351b9184bf3be093cf35e6"><code>3410e9d</code></a>
Remove instructions to change version in README</li>
<li>Additional commits viewable in <a
href="https://github.com/plotly/plotly.py/compare/v5.24.0...v6.0.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ellen Agarwal <ellenagarwal897@gmail.com>
Co-authored-by: Edward Li <jiaxi.edwardli@gmail.com>

Verified

This commit was signed with the committer’s verified signature. The key has expired.
vbgl Vincent Laporte
@tawsifkamal tawsifkamal merged commit e7d2b6c into develop Feb 10, 2025
25 of 26 checks passed
@tawsifkamal tawsifkamal deleted the tawsif-add-attribute-chain branch February 10, 2025 20:19
tkfoss pushed a commit that referenced this pull request Feb 10, 2025
- Adds ChainedAttribute.attribute_chain to be able view all members of a
lengthy chained attribute in a list
- Can easily now traverse a lengthy chained attribute
- i.e calling attribute_chain on one of the functionCalls or one of the
ChainedAttributes of `a().b().c.d.e()` -> `[FunctionCall(name=a),
FunctionCall(name=b), Name(source=c), Name(source=d),
FunctionCall(name=e)]`

---------

Signed-off-by: dependabot[bot] <support@github.com>
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.

None yet

3 participants