Re: #2483 - Add pgAdmin users via a CLI or script call

Поиск
Список
Период
Сортировка
От Akshay Joshi
Тема Re: #2483 - Add pgAdmin users via a CLI or script call
Дата
Msg-id CANxoLDf0W3U5AMJQqPgwfkwi67dEV1eHBwbYja=L8g2UbMWuFw@mail.gmail.com
обсуждение исходный текст
Ответ на #2483 - Add pgAdmin users via a CLI or script call  (Khushboo Vashi <khushboo.vashi@enterprisedb.com>)
Список pgadmin-hackers
Seems good to me.

On Mon, Sep 4, 2023 at 5:20 PM Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hello hackers,

I am working on #2483 - Add pgAdmin users via a CLI or script call.
As we want a consistent and centralised CLI, I suggest replacing Argparse with the Typer package.
The main advantage of the Typer is that it decreases the complexity and is built upon CLICK, the most used library for Python CLI.

We will use the setup.py file for all the CLI modules; we can introduce one function per CLI feature (per command) as described below.
So, the below line will cover all the combinations of Load server functionality.
@app.command()
def load_servers(loadservers: str, user: Optional[str] = None, sqlite_path: Optional[str] = None, replace: Optional[bool] = False):

The command will be like this:
python setup.py load-servers test.json
python setup.py load-servers test.json --replace      
python setup.py load-servers a.json --user 'test@gmail.com' --replace      

======================================================================
An example of reducing complexity:

ArgParse code:
if __name__ == '__main__':
# Configuration settings
parser = argparse.ArgumentParser(description='Setup the pgAdmin config DB')

imp_group = parser.add_argument_group('Load server config')
imp_group.add_argument('--load-servers', metavar="INPUT_FILE",
help='Load servers into the DB', required=False)
imp_group.add_argument('--replace', dest='replace', action='store_true',
help='replace server configurations',
required=False)

imp_group.set_defaults(replace=False)

args, extra = parser.parse_known_args()

# What to do?
if args.dump_servers is not None:
try:
dump_servers(args)
except Exception as e:
print(str(e))
======================================================================
Equivalent Typer code:
@app.command()
def load_servers(loadservers: str, user: Optional[str] = None, sqlite_path: Optional[str] = None, replace: Optional[bool] = False):
.......
app = typer.Typer()
if __name__ == "__main__":
app()


If anyone has any suggestions/questions, do let me know.

Thanks,
Khushboo
 

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: "dependabot[bot]"
Дата:
Сообщение: [pgadmin-org/pgadmin4] 9d09ee: Python dependency: Bump werkzeug from 2.2.3 to 2.3.7
Следующее
От: Aditya Toshniwal
Дата:
Сообщение: Replace jasmine+karma with jest