-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding Config and db query Support (#71)
- Loading branch information
Showing
26 changed files
with
1,169 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -118,3 +118,4 @@ output/ | |
!output/.gitkeep | ||
_build/ | ||
out/ | ||
*.sqlite |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
.. hckr documentation master file, created by | ||
sphinx-quickstart on Wed Jun 12 20:06:39 2024. | ||
You can adapt this file completely to your liking, but it should at least | ||
contain the root `toctree` directive. | ||
.. important:: | ||
``DEFAULT`` config is the parent of all other configurations and others will inherit its values if not overridden | ||
|
||
.. click:: hckr.cli.config:config | ||
:prog: hckr config | ||
:nested: full |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
.. _configuration: | ||
|
||
.. important:::: | ||
``DEFAULT`` config is the parent of all other configurations and others will inherit its values if not overridden | ||
.. click:: hckr.cli.configure:configure | ||
:prog: hckr configure | ||
:nested: full |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
.. hckr documentation master file, created by | ||
sphinx-quickstart on Wed Jun 12 20:06:39 2024. | ||
You can adapt this file completely to your liking, but it should at least | ||
contain the root `toctree` directive. | ||
Configuration | ||
=============== | ||
``hckr`` supports various of config commands which helps in configuring other commands, eg. ``hckr db`` command. | ||
|
||
.. important:: | ||
``DEFAULT`` config is the parent of all other configurations and others will inherit its values if not overridden | ||
|
||
.. tip:: | ||
More commands will be added in future updates. Stay tuned! | ||
|
||
|
||
commands | ||
--------------- | ||
.. toctree:: | ||
config | ||
configure | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
.. important:: | ||
Before using these commands you need to add your database configuration in config (``.hckrcfg`` file), please refer :ref:`Configuring your databases <configuration>` | ||
|
||
|
||
.. click:: hckr.cli.db:db | ||
:prog: hckr db | ||
:nested: full |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
Database | ||
=============== | ||
``hckr`` supports various of database commands. | ||
|
||
.. important:: | ||
Before using these commands you need to add your database configuration in config (``.hckrcfg`` file), please refer :ref:`Configuring your database <configuration>` | ||
|
||
.. tip:: | ||
More commands will be added in future updates. Stay tuned! | ||
|
||
commands | ||
--------------- | ||
.. toctree:: | ||
db | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# SPDX-FileCopyrightText: 2024-present Ashish Patel <[email protected]> | ||
# | ||
# SPDX-License-Identifier: MIT | ||
__version__ = "0.3.3.dev0" | ||
__version__ = "0.4.0.dev0" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
import click | ||
|
||
from ..utils.MessageUtils import PError, PSuccess | ||
from ..utils.config.ConfigUtils import ( | ||
init_config, | ||
DEFAULT_CONFIG, | ||
configMessage, | ||
list_config, | ||
set_config_value, | ||
get_config_value, | ||
) | ||
|
||
|
||
@click.group( | ||
help="Config commands", | ||
context_settings={"help_option_names": ["-h", "--help"]}, | ||
) | ||
@click.pass_context | ||
def config(ctx): | ||
""" | ||
Defines a command group for managing application configurations. This group includes commands to set, get, show, and initialize configuration values. | ||
""" | ||
pass | ||
|
||
|
||
def common_config_options(func): | ||
func = click.option( | ||
"-c", | ||
"--config", | ||
help="Config instance, default: DEFAULT", | ||
default=DEFAULT_CONFIG, | ||
)(func) | ||
return func | ||
|
||
|
||
@config.command() | ||
@common_config_options | ||
@click.argument("key") | ||
@click.argument("value") | ||
def set(config, key, value): | ||
""" | ||
This command adds a new entry to the config file with key and value | ||
**Example Usage**: | ||
* Setting a value inside DEFAULT config | ||
.. code-block:: shell | ||
$ hckr config set database_host 127.0.0.1 | ||
* Similarly, we can also set a value in specific configuration, configuration will be created if not exists | ||
.. code-block:: shell | ||
$ hckr config set database_host 127.0.0.1 --config MY_DATABASE | ||
**Command Reference**: | ||
""" | ||
|
||
configMessage(config) | ||
set_config_value(config, key, value) | ||
PSuccess(f"[{config}] {key} <- {value}") | ||
|
||
|
||
@config.command() | ||
@common_config_options | ||
@click.argument("key") | ||
def get(config, key): | ||
""" | ||
This command returns value for a key in a configuration | ||
**Example Usage**: | ||
* Getting a value for key in DEFAULT config | ||
Note - DEFAULT config is parent of all other configurations and others will inherit its values if not overridden | ||
.. code-block:: shell | ||
$ hckr config get database_host | ||
* Similarly, we can also get a value in specific configuration | ||
.. code-block:: shell | ||
$ hckr config get database_host --config MY_DATABASE | ||
**Command Reference**: | ||
""" | ||
|
||
configMessage(config) | ||
try: | ||
value = get_config_value(config, key) | ||
PSuccess(f"[{config}] {key} = {value}") | ||
except ValueError as e: | ||
PError(f"{e}") | ||
|
||
|
||
@config.command() | ||
@common_config_options | ||
@click.option( | ||
"-a", | ||
"--all", | ||
default=False, | ||
is_flag=True, | ||
help="Whether to show all configs (default: False)", | ||
) | ||
def show(config, all): | ||
""" | ||
This command show list of all keys available in given configuration, | ||
we can also see values in all configurations by providing -a/--all flag | ||
**Example Usage**: | ||
* Getting values for keys in DEFAULT config | ||
Note - DEFAULT config is parent of all other configurations and others will inherit its values if not overridden | ||
.. code-block:: shell | ||
$ hckr config show | ||
* Similarly, we can also get all values in a specific configuration using -c/--config flag | ||
.. code-block:: shell | ||
$ hckr config show -c MY_DATABASE | ||
* Additionally, we can also see all configurations using -a/--all flag | ||
.. code-block:: shell | ||
$ hckr config show --all | ||
**Command Reference**: | ||
""" | ||
list_config(config, all) | ||
|
||
|
||
@config.command() | ||
@click.option( | ||
"-o", | ||
"--overwrite", | ||
default=False, | ||
is_flag=True, | ||
help="Whether to delete and recreate .hckrcfg file (default: False)", | ||
) | ||
def init(overwrite): | ||
""" | ||
This command Initializes the configuration for the application, | ||
we can also use this option to overwrite existing config and reinitialize. | ||
**Example Usage**: | ||
* Initialising config file .hckrcfg with default settings | ||
.. code-block:: shell | ||
$ hckr config init | ||
* Similarly, we can also delete existing file and recreate using -o/--overwrite flag | ||
.. code-block:: shell | ||
$ hckr config init --overwrite | ||
**Command Reference**: | ||
""" | ||
init_config(overwrite) |
Oops, something went wrong.