Re: Common objects for CLI commands with Typer

Liste des GroupesRevenir à cl python 
Sujet : Re: Common objects for CLI commands with Typer
De : 2QdxY4RzWzUUiLuE (at) *nospam* potatochowder.com
Groupes : comp.lang.python
Date : 21. Sep 2024, 12:40:37
Autres entêtes
Message-ID : <mailman.4.1726916551.2990.python-list@python.org>
References : 1 2 3
On 2024-09-21 at 06:38:05 +0100,
Barry via Python-list <python-list@python.org> wrote:

On 20 Sep 2024, at 21:01, Loris Bennett via Python-list <python-list@python.org> wrote:
 
Hi,
 
Apologies if the following description is to brief - I can expand if no
one knows what I'm on about, but maybe a short description is enough.
 
I am developing a command line application using Typer.  Most commands
need to do something in a database and also do LDAP stuff.  Currently
each command creates its own Database and LDAP objects, since each
command forms an entry point to the program.
 
With Typer, is there a way I can define the equivalent of class
attributes at a single point which are then available to all commands?
 
I do not know typer. But the general solution is to create an instance of your class
and tell typer to call member function of the instance.
 
app = Application()

typer.set_callback(app.my_handler)

Despite the fact that "everything is an object" in Python, you don't
have to put data or functions inside classes or objects.  I also know
nothing about Typer, but there's nothing wrong with functions in a
module.

There's also nothing wrong with writing a function that creates and
returns the database and LDAP connections (perhas as instances of
application-level classes), amd calling that function from within each
command.

DRY.  Yeah, yeah, yeah.  :-/ So there's one line at the top of each
comamnd that initializes things, and possibly a line at the bottom to
close those things down.  Turn those lines into a context manager, which
is actually a sub-framework inside Typer.  Don't convolute/compilicate
your design to eliminate one line at the top of each command.

Go ahead, accuse me of writing FORTRAN (all caps, no numbers or
qualifiers, as $deity intended) in Python.  But neither optimize
prematurely nor invoke the Inner Platform Effect to save one or two
lines in your not-yet-written commands, either.

Sorry for the rant.  :-)

Simple is better than complex.
Complex is better than complicated.

HTH.

Date Sujet#  Auteur
20 Sep 24 * Common objects for CLI commands with Typer7Loris Bennett
20 Sep 24 +- Re: Common objects for CLI (Posting On Python-List Prohibited)1Lawrence D'Oliveiro
21 Sep 24 +- Re: Common objects for CLI commands with Typer1Barry
21 Sep 24 +- Re: Common objects for CLI commands with Typer12QdxY4RzWzUUiLuE
23 Sep 24 +- Re: Common objects for CLI commands with Typer1Barry Scott
23 Sep 24 +- Re: Common objects for CLI commands with Typer12QdxY4RzWzUUiLuE
16 Oct 24 `- Re: Common objects for CLI commands with Typer1Roland Müller

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal