Skip to content

chore: markdown linter #909

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 2 commits into from
Jun 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@ on:
- '**/remove-old-artifacts.yml'

jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
use-quiet-mode: 'yes'
folder-path: 'docs'
build:
runs-on: ubuntu-latest
strategy:
Expand Down
8 changes: 4 additions & 4 deletions docs/development-guide/DevelopmentGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ The AWS Advanced Python Driver uses the following tests to verify its correctnes

The AWS Advanced Python Driver has the following tests to verify its performance:

| Tests | Description |
|--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Connection plugin manager benchmarks | The [benchmarks](../../benchmarks/README.md) subproject measures the overhead from executing Python method calls with multiple connection plugins enabled. |
| Manually-triggered performance tests | The [failover plugin performance tests](../../tests/integration/container/test_failover_performance.py) and [enhanced failure monitoring performance tests](../..tests/integration/container/test_read_write_splitting_performance.py) measure the plugins' performance under different configurations |
| Tests | Description |
|--------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Connection plugin manager benchmarks | The [benchmarks](../../benchmarks/README.md) subproject measures the overhead from executing Python method calls with multiple connection plugins enabled. |
| Manually-triggered performance tests | The [failover plugin performance tests](../../tests/integration/container/test_failover_performance.py) and [enhanced failure monitoring performance tests](../../tests/integration/container/test_read_write_splitting_performance.py) measure the plugins' performance under different configurations |

### Running the Tests

Expand Down
14 changes: 7 additions & 7 deletions docs/development-guide/LoadablePlugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,29 +26,29 @@ A short example of these steps is provided [below](#Example).

### Creating Custom Plugins

To create a custom plugin, create a new class that extends the [Plugin](/aws_advanced_python_wrapper/plugin.py) class.
To create a custom plugin, create a new class that extends the [Plugin](../../aws_advanced_python_wrapper/plugin.py) class.

The `Plugin` class provides a simple implementation for all `Plugin` methods. By default, requested Python database methods will be called without additional operations. This is helpful when the custom plugin only needs to override one (or a few) methods from the `Plugin` interface.
See the following classes for examples:

- [IamAuthPlugin](/aws_advanced_python_wrapper/iam_plugin.py)
- [IamAuthPlugin](../../aws_advanced_python_wrapper/iam_plugin.py)
- The `IamAuthPlugin` class only overrides the `connect` method because the plugin is only concerned with creating
database connections with IAM database credentials.

- [ExecuteTimePlugin](/aws_advanced_python_wrapper/execute_time_plugin.py)
- [ExecuteTimePlugin](../../aws_advanced_python_wrapper/execute_time_plugin.py)
- The `ExecuteTimePlugin` only overrides the `execute` method because it is only concerned with elapsed time during execution. It does not establish new connections or set up any host list provider.

A `PluginFactory` implementation is also required for the new custom plugin. This factory class is used to register and initialize custom plugins. See [ExecuteTimePluginFactory](/aws_advanced_python_wrapper/execute_time_plugin.py) for a simple implementation example.
A `PluginFactory` implementation is also required for the new custom plugin. This factory class is used to register and initialize custom plugins. See [ExecuteTimePluginFactory](../../aws_advanced_python_wrapper/execute_time_plugin.py) for a simple implementation example.

### Subscribed Methods

When executing a Python method, the plugin manager will only call a specific plugin method if the Python method is within its set of subscribed methods. For example, the [ReadWriteSplittingPlugin](/aws_advanced_python_wrapper/read_write_splitting_plugin.py) subscribes to Python methods and setters that change the read-only value of the connection, but does not subscribe to other common `Connection` or `Cursor` methods. Consequently, this plugin will not be triggered by method calls like `Connection.commit` or `Cursor.execute`.
When executing a Python method, the plugin manager will only call a specific plugin method if the Python method is within its set of subscribed methods. For example, the [ReadWriteSplittingPlugin](../../aws_advanced_python_wrapper/read_write_splitting_plugin.py) subscribes to Python methods and setters that change the read-only value of the connection, but does not subscribe to other common `Connection` or `Cursor` methods. Consequently, this plugin will not be triggered by method calls like `Connection.commit` or `Cursor.execute`.

The `subscribed_methods` attribute specifies the set of Python methods that a plugin is subscribed to in the form of a set of strings (`Set[str]`). All plugins must implement/define the `subscribed_methods` attribute.

Plugins can subscribe to any of the standard PEP249 [Connection methods](https://peps.python.org/pep-0249/#connection-methods) or [Cursor methods](https://peps.python.org/pep-0249/#cursor-methods). They can also subscribe to the target driver methods listed in the corresponding driver dialect's `_network_bound_methods` attribute:
- [Postgres network bound methods](/aws_advanced_python_wrapper/pg_driver_dialect.py)
- [MySQL network bound methods](/aws_advanced_python_wrapper/mysql_driver_dialect.py)
- [Postgres network bound methods](../../aws_advanced_python_wrapper/pg_driver_dialect.py)
- [MySQL network bound methods](../../aws_advanced_python_wrapper/mysql_driver_dialect.py)

Plugins can also subscribe to specific [pipelines](./Pipelines.md) by including the subscription key in their `subscribed_methods` attribute and implementing the equivalent pipeline method:

Expand Down
6 changes: 3 additions & 3 deletions docs/using-the-python-driver/SupportForRDSMultiAzDBCluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ We have created many examples in the [examples](../examples) folder demonstratin

The following plugins have been tested and confirmed to work with Amazon RDS Multi-AZ DB Clusters:

* [Aurora Connection Tracker Plugin](/docs/using-the-python-driver/using-plugins/UsingTheAuroraConnectionTrackerPlugin.md)
* [Failover Connection Plugin](/docs/using-the-python-driver/using-plugins/UsingTheFailoverPlugin.md)
* [Host Monitoring Connection Plugin](/docs/using-the-python-driver/using-plugins/UsingTheHostMonitoringPlugin.md)
* [Aurora Connection Tracker Plugin](../using-the-python-driver/using-plugins/UsingTheAuroraConnectionTrackerPlugin.md)
* [Failover Connection Plugin](../using-the-python-driver/using-plugins/UsingTheFailoverPlugin.md)
* [Host Monitoring Connection Plugin](../using-the-python-driver/using-plugins/UsingTheHostMonitoringPlugin.md)

The compatibility of other plugins has not been tested at this time. They may function as expected or potentially result in unhandled behavior.
Use at your own discretion.
71 changes: 0 additions & 71 deletions tests/unit/test_verify_links.py

This file was deleted.