[ https://issues.apache.org/jira/browse/CASSANDRA-18914?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brad Schoening updated CASSANDRA-18914: --------------------------------------- Change Category: Code Clarity Complexity: Normal Assignee: Brad Schoening Status: Open (was: Triage Needed) > Refactor and separate CQLSH 'Shell' repl class > ---------------------------------------------- > > Key: CASSANDRA-18914 > URL: https://issues.apache.org/jira/browse/CASSANDRA-18914 > Project: Cassandra > Issue Type: Improvement > Components: CQL/Interpreter > Reporter: Brad Schoening > Assignee: Brad Schoening > Priority: Normal > > CQSH's core Read-Eval-Print-Loop (REPL) class *Shell* implements the Python > stdlib *Cmd* framework for writing line-oriented command interpreters. It is > the core of CQLSH. While a subclass of _Lib/cmd.py,_ its currently > commingled with command line parsing into a jumbo _cqlshmain.py_ file. It's > role as a class is easily missed as there is only one line defining it and > one line invoking it. > This Jira will separate the class Shell (inherited from cmd.Cmd) into its own > class file, shell.py. > Benefits: > * size - excessively large files can be ugly, and cqlshmain is almost 2400 > lines. > * separation of concerns - argument parsing and interactive interpreters are > very different responsibilities. Code is improved and more reusable when > unrelated behavior is in separate source file. > * clarity - reading cqlshmain, its currently not obvious that 75% of the > code is implementing interfaces in the cmd.Cmd library class. There is > currently no class comment explaining how the Shell class is implemented. > New state: > * cqlshmain.py – existing startup and argparse code > * shell.py – existing Shell REPL for CQL -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org