8000 add parameter `immutable` to some graph operations in `sage/graphs/generic_graph.py` by dcoudert · Pull Request #39280 · sagemath/sage · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

add parameter immutable to some graph operations in sage/graphs/generic_graph.py #39280

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

Merged
merged 11 commits into from
Feb 10, 2025

Conversation

dcoudert
Copy link
Contributor
@dcoudert dcoudert commented Jan 4, 2025

As proposed in #39177, we add parameter immutable to (some) graph operations.

  • add tests to add_clique, add_path, and add_cycle to prevent modifying an immutable graph
  • add the parameter to method complement
  • ensure that method to_undirected behaves as expected
  • propose a more direct version of disjoint_union to ensure a correct behavior
  • ensure that method union behaves as expected

This is only a beginning. More to come in future PRs.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

Copy link
github-actions bot commented Jan 5, 2025

Documentation preview for this PR (built with commit 4aeb7dd; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@mantepse
Copy link
Contributor
mantepse commented Jan 5, 2025

I must say that I would like it much better if graphs were immutable by default :-(

@dcoudert
Copy link
Contributor Author
dcoudert commented Jan 5, 2025

Before debating such drastic change, we must make sure that the entire graph library, including generators, is consistent.

@fchapoton
Copy link
Contributor

maybe you could create a function "scream_if_immutable" to avoid repeating ?

@dcoudert
Copy link
Contributor Author
dcoudert commented Jan 8, 2025

maybe you could create a function "scream_if_immutable" to avoid repeating ?

I'm adding this idea to my todo list. It should certainly be done also in backends...

vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 28, 2025
sagemathgh-39285: add parameter `immutable` to some graph products in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to some graph product operations defined in
`sage/graphs/generic_graph.py`:
- `cartesian_product`
- `tensor_product`
- `lexicographic_product`
- `strong_product`
- `disjunctive_product`


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39285
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 29, 2025
sagemathgh-39285: add parameter `immutable` to some graph products in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to some graph product operations defined in
`sage/graphs/generic_graph.py`:
- `cartesian_product`
- `tensor_product`
- `lexicographic_product`
- `strong_product`
- `disjunctive_product`


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39285
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 30, 2025
sagemathgh-39285: add parameter `immutable` to some graph products in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to some graph product operations defined in
`sage/graphs/generic_graph.py`:
- `cartesian_product`
- `tensor_product`
- `lexicographic_product`
- `strong_product`
- `disjunctive_product`


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39285
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 31, 2025
sagemathgh-39285: add parameter `immutable` to some graph products in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to some graph product operations defined in
`sage/graphs/generic_graph.py`:
- `cartesian_product`
- `tensor_product`
- `lexicographic_product`
- `strong_product`
- `disjunctive_product`


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39285
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 3, 2025
sagemathgh-39285: add parameter `immutable` to some graph products in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to some graph product operations defined in
`sage/graphs/generic_graph.py`:
- `cartesian_product`
- `tensor_product`
- `lexicographic_product`
- `strong_product`
- `disjunctive_product`


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39285
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 4, 2025
sagemathgh-39285: add parameter `immutable` to some graph products in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to some graph product operations defined in
`sage/graphs/generic_graph.py`:
- `cartesian_product`
- `tensor_product`
- `lexicographic_product`
- `strong_product`
- `disjunctive_product`


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39285
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
Copy link
Contributor
@fchapoton fchapoton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, good

vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 9, 2025
sagemathgh-39280: add parameter `immutable` to some graph operations in `sage/graphs/generic_graph.py`
    
As proposed in sagemath#39177, we add parameter `immutable` to (some) graph
operations.

- add tests to `add_clique`, `add_path`, and `add_cycle` to prevent
modifying an immutable graph
- add the parameter to method `complement`
- ensure that method `to_undirected` behaves as expected
- propose a more direct version of `disjoint_union` to ensure a correct
behavior
- ensure that method `union` behaves as expected

This is only a beginning. More to come in future PRs.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39280
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 9, 2025
sagemathgh-39285: add parameter `immutable` to some graph products in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to some graph product operations defined in
`sage/graphs/generic_graph.py`:
- `cartesian_product`
- `tensor_product`
- `lexicographic_product`
- `strong_product`
- `disjunctive_product`


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39285
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 9, 2025
sagemathgh-39280: add parameter `immutable` to some graph operations in `sage/graphs/generic_graph.py`
    
As proposed in sagemath#39177, we add parameter `immutable` to (some) graph
operations.

- add tests to `add_clique`, `add_path`, and `add_cycle` to prevent
modifying an immutable graph
- add the parameter to method `complement`
- ensure that method `to_undirected` behaves as expected
- propose a more direct version of `disjoint_union` to ensure a correct
behavior
- ensure that method `union` behaves as expected

This is only a beginning. More to come in future PRs.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39280
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 9, 2025
sagemathgh-39285: add parameter `immutable` to some graph products in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to some graph product operations defined in
`sage/graphs/generic_graph.py`:
- `cartesian_product`
- `tensor_product`
- `lexicographic_product`
- `strong_product`
- `disjunctive_product`


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39285
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 10, 2025
sagemathgh-39285: add parameter `immutable` to some graph products in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to some graph product operations defined in
`sage/graphs/generic_graph.py`:
- `cartesian_product`
- `tensor_product`
- `lexicographic_product`
- `strong_product`
- `disjunctive_product`


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39285
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 10, 2025
sagemathgh-39297: more care about parameter `immutable` in `sage/graphs/generic_graph.py`
    
Following sagemath#39280, sagemath#39285, sagemath#39287, sagemath#39296 and discussions in sagemath#39177, we
add parameter immutable to methods  in `sage/graphs/generic_graph.py`:
- `longest_cycle`
- `longest_path`
- `hamiltonian_path`
- and add tests in `cycle_basis`

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39297
Reported by: David Coudert
Reviewer(s): Kwankyu Lee
@vbraun vbraun merged commit 5a55953 into sagemath:develop Feb 10, 2025
19 of 23 checks passed
vbraun pushed a commit to vbraun/sage that referenced this pull request Mar 9, 2025
sagemathgh-39287: add parameter `immutable` to transitive closure methods in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to methods related to transitive closure in
`sage/graphs/generic_graph.py` and `sage/graphs/generic_graph_pyx.pyx`:
- `transitive_closure`. We also fix the use of parameter `loops` that
was previously ignored
- `transitive_reduction`
- `transitive_reduction_acyclic`
- `is_transitively_reduced`. Here we ensure that the method accepts
immutable digraphs.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39287
Reported by: David Coudert
Reviewer(s): Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Mar 9, 2025
sagemathgh-39287: add parameter `immutable` to transitive closure methods in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to methods related to transitive closure in
`sage/graphs/generic_graph.py` and `sage/graphs/generic_graph_pyx.pyx`:
- `transitive_closure`. We also fix the use of parameter `loops` that
was previously ignored
- `transitive_reduction`
- `transitive_reduction_acyclic`
- `is_transitively_reduced`. Here we ensure that the method accepts
immutable digraphs.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39287
Reported by: David Coudert
Reviewer(s): Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Mar 19, 2025
sagemathgh-39296: fix the behavior for immutable graphs in methods related to isomorphisms in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to methods related to graph isomorphisms in
`sage/graphs/generic_graph.py` and `bliss.pyx`:
- `canonical_form`
- `automorphism_group`
- `is_isomorphic`
- `graph_isom_equivalent_non_edge_labeled_graph`
- and also `cayley_graph`

We also fix the behavior of method `canonical_label` in
`BipartiteGraph`.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39296
Reported by: David Coudert
Reviewer(s): Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Mar 22, 2025
sagemathgh-39296: fix the behavior for immutable graphs in methods related to isomorphisms in `sage/graphs/generic_graph.py`
    
Following sagemath#39280 and discussions in sagemath#39177, we add parameter `immutable`
to methods related to graph isomorphisms in
`sage/graphs/generic_graph.py` and `bliss.pyx`:
- `canonical_form`
- `automorphism_group`
- `is_isomorphic`
- `graph_isom_equivalent_non_edge_labeled_graph`
- and also `cayley_graph`

We also fix the behavior of method `canonical_label` in
`BipartiteGraph`.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39296
Reported by: David Coudert
Reviewer(s): Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 15, 2025
sagemathgh-39755: add helper method `_scream_if_immutable` to graphs
    
As proposed in
sagemath#39280 (comment), we
add a helper method `_scream_if_immutable` to (di)graphs. We then use it
in several methods trying to modify the graph.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39755
Reported by: David Coudert
Reviewer(s): Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 17, 2025
sagemathgh-39755: add helper method `_scream_if_immutable` to graphs
    
As proposed in
sagemath#39280 (comment), we
add a helper method `_scream_if_immutable` to (di)graphs. We then use it
in several methods trying to modify the graph.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39755
Reported by: David Coudert
Reviewer(s): Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 18, 2025
sagemathgh-39755: add helper method `_scream_if_immutable` to graphs
    
As proposed in
sagemath#39280 (comment), we
add a helper method `_scream_if_immutable` to (di)graphs. We then use it
in several methods trying to modify the graph.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39755
Reported by: David Coudert
Reviewer(s): Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 21, 2025
sagemathgh-39755: add helper method `_scream_if_immutable` to graphs
    
As proposed in
sagemath#39280 (comment), we
add a helper method `_scream_if_immutable` to (di)graphs. We then use it
in several methods trying to modify the graph.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39755
Reported by: David Coudert
Reviewer(s): Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 25, 2025
sagemathgh-39755: add helper method `_scream_if_immutable` to graphs
    
As proposed in
sagemath#39280 (comment), we
add a helper method `_scream_if_immutable` to (di)graphs. We then use it
in several methods trying to modify the graph.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39755
Reported by: David Coudert
Reviewer(s): Frédéric Chapoton
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants
0