aws / aws/aws-advanced-python-wrapper

Support for PyMySQL

Aperta
#752 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Python
Stelle
98
Fork
22
Merge medio
1g 9h
PR unite (30g)
5

Descrizione

### 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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia da prepare_connect_info e traccia il percorso con cui la sua proprietà port raggiunge la validazione di PyMySQL connections.py. Verifica il flusso di connessione esistente con una porta intera e conferma che il supporto funzioni senza compromettere gli altri connettori; il lavoro è completato quando una connessione PyMySQL accetta la porta configurata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
mysql, python
Ambito
databases
Tipo di issue
Funzionalità
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.