aws / aws/aws-advanced-python-wrapper
Support for PyMySQL
- Vorherrschende Sprache
- Python
- Sterne
- 98
- Forks
- 22
- Ø Merge
- 1 T. 9 Std.
- Gemergte PRs (30 T.)
- 5
Beschreibung
### Describe the feature
Support the usage of the pymysql connector
### Use Case
The project I'm working on uses pymysql, I tried to pass the `Connect` class to the `AwsWrapperConnection`, however, it's failing because it's casting the port argument to a `string`, even though I'm passing an `int`.
Code that's turning the port into a string:
```
def prepare_connect_info(self, host_info: HostInfo, props: Properties) -> Properties:
prop_copy: Properties = Properties(props.copy())
prop_copy["host"] = host_info.host
if host_info.is_port_specified():
prop_copy["port"] = str(host_info.port)
PropertiesUtils.remove_wrapper_props(prop_copy)
return prop_copy
```
pymysql code enforcing the int type:
`connections.py`
```
// ...
self.port = port or 3306
if type(self.port) is not int:
raise ValueError("port should be of type int")
// ...
```
I wonder if it's possible to remove that cast to string or adapt somehow to support pymysql. I'm not sure if that's all it's going to take, though.
### Proposed Solution
Remove the cast to string for the port
```
if host_info.is_port_specified():
prop_copy["port"] = host_info.port
```
or a condition for the pymysql library
### Other Information
_No response_
### Acknowledgements
- [ ] I may be able to implement this feature request
- [X] This feature might incur a breaking change
### The AWS Advanced Python Wrapper version used
1.1.1
### Python version used
3.12
### Operating System and version
Ubuntu 22.04
Beitragsleitfaden
Rechercherichtung
Beginne bei prepare_connect_info und verfolge, wie dessen port-Eigenschaft die Validierung in PyMySQL connections.py erreicht. Prüfe den bestehenden Verbindungsablauf mit einem ganzzahligen Port und bestätige, dass die Unterstützung funktioniert, ohne andere Connectoren zu beeinträchtigen; abgeschlossen ist die Aufgabe, wenn eine PyMySQL-Verbindung den konfigurierten Port akzeptiert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- mysql, python
- Bereich
- databases
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100