Support for PyMySQL

Aperta
#752 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

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

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.

Descrizione

enhancement
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
  • 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

Lingua principale
Python
Stelle
99
Fork
22
Merge medio
55m
PR unite (30g)
2

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di aws/aws-advanced-python-wrapper

Tutte le issue di aws/aws-advanced-python-wrapper

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.