-
Notifications
You must be signed in to change notification settings - Fork 2
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
feat: implement database to store users email #8
base: main
Are you sure you want to change the base?
Conversation
fix: use absolute path to address database position
style: move pylint comments near the line causing the issue
fix: use ApplicationBuilder.post_init() to add_commands refactor: rename login to register
db_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "db.sqlite3") | ||
engine = create_engine("sqlite:///" + db_path) | ||
Session = sessionmaker(engine) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Evita sempre di mettere direttive a questo livello, in quanto verranno eseguite nel momento in cui il modulo viene importato. Senza saperlo sto provocando un side-effect (creando un file).
Inoltre rendi piu' delicati i test (cosa succede se voglio usare un altro path invece di db.sqlite?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Per cui come dovrei fare?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Essenzialmente l'ideale sarebbe rinchiudere tutto dentro una funzione da chiamare al momento del bisogno, possibilmente anche dal main.
Non c'è bisogno di avere una sessione globale: puoi crearne una nuova ogni volta che ti serve, è praticamente equivalente. Leggi questa risposta da uno degli sviluppatori per approfondire.
Se proprio pensi di aver bisogno di uno stato globale, un Singleton potrebbe fare al caso tuo. Almeno puoi controllare il momento in cui viene inizializzato, piuttosto che fare tutto nel momento il cui il modulo viene importato
HELP_CMD_TEXT = '\n'.join(( | ||
"📬 /report Fornisce la possibilità di poter inviare una segnalazione agli sviluppatori riguardante qualsiasi disservizio", | ||
"🔑 /register Permette di effettuare la registrazione al sistema" | ||
)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Puoi usare una stringa piu' lunga con le triple vigolette o il backslash, non c'e' bisogno di creare una tupla e fare il join.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mi sembrava meglio farla cosi' per un discorso di leggibilita' del file in se, pero' se avete fatto sempre con le triple quotes mi adeguo
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Qua ci sono alcune opzioni per ottenere lo stesso risultato. Vedi quali preferisci.
ORIGINAL = "\n".join(
(
"📬 /report Fornisce la possibilità di poter inviare una segnalazione agli sviluppatori riguardante qualsiasi disservizio",
"🔑 /register Permette di effettuare la registrazione al sistema",
)
)
BACKSLASH = "📬 /report Fornisce la possibilità di poter inviare una segnalazione agli sviluppatori riguardante qualsiasi disservizio\n\
🔑 /register Permette di effettuare la registrazione al sistema"
TRIPLE_QUOTE = """📬 /report Fornisce la possibilità di poter inviare una segnalazione agli sviluppatori riguardante qualsiasi disservizio
🔑 /register Permette di effettuare la registrazione al sistema"""
CONCATENING = (
"📬 /report Fornisce la possibilità di poter inviare una segnalazione agli sviluppatori riguardante qualsiasi disservizio\n"
"🔑 /register Permette di effettuare la registrazione al sistema"
)
Closes #3 with the following changes:
python-telegram-bot
from13.6
to latest (currently20.6
).SQLAlchemy 2.0.23
.Something to know:
RuntimeWarning
due toadd_commands
being anasync
function not beingawait
-ed inside themain
function.data/db/__init_.py
there's a very weird import to create the tables, most likely it can be done in a much better way.