psvutils 0.0.7
Basic util library for progress bar and cron trigger and mssql db check related operation
Keywords: python,psvutils,quartz,quartzcron,quartz cron,cron,cron triggers,quartzcron triggers,mssql_db_check


# psvutils

Under construction! Not ready for use yet! Currently experimenting and planning!

Developed by Pritam Sarkar 1995 from [pritamSarkar123](https://github.com/pritamSarkar123) (c) 2023

## Examples of How To Use (Alpha Version + Buggy)

Creating A Progressbar

```python
from psvutils import Progressbar

pb = ProgressBar(total=200)

for _ in range(200):
    """main code block"""
    pb.update()

```

```
(venv) C:\***\***>python main.py
████████████████████████████████████████████████████████████████████████████████████████████████████|100.00%
```

```python
"""
    Args:
        total (int): The total number of items in the task.
        progress (int, optional): The current progress value (default is 0).
        counter (int, optional): The amount by which the progress increases in each update (default is 1).
        color (str, optional): The color to use for the progress bar (default is colorama.Fore.YELLOW).
        end_color (str, optional): The color to use for the progress bar when it reaches 100% (default is colorama.Fore.GREEN).
    Returns:
        A Progressbar instance
"""
```

Creating a quartz cron based trigger

```python
from psvutils import Trigger
tr = Trigger("0 * 0 ? * * *", start_date=datetime.datetime.now())

print(Trigger.check_valid_cron_or_not("0 * 0 ? * * *"))

for _ in range(20):
    """next 20 triggers"""
    print(tr.get_next())
```

```
(venv) C:\***\***>python main.py
True
2023-10-19 13:49:00
2023-10-19 13:50:00
2023-10-19 13:51:00
2023-10-19 13:52:00
2023-10-19 13:53:00
2023-10-19 13:54:00
2023-10-19 13:55:00
2023-10-19 13:56:00
2023-10-19 13:57:00
2023-10-19 13:58:00
2023-10-19 13:59:00
2027-10-14 13:49:00
2027-10-14 13:50:00
2027-10-14 13:51:00
2027-10-14 13:52:00
2027-10-14 13:53:00
2027-10-14 13:54:00
2027-10-14 13:55:00
2027-10-14 13:56:00
2027-10-14 13:57:00
```

```python
"""
    Args:
        quartz_expression (str): A Quartz Cron expression.
        infinite (bool): Whether the trigger should run infinitely.
        start_date (datetime.datetime, optional): The start date for the trigger.
        end_date (datetime.datetime, optional): The end date for a finite run.
        default_week_delta (int, optional): The default number of weeks to run.

    Returns:
        A Trigger instance
"""
```

```python
from psvutils import check_mssql_db_connection
databaseConfigs = {'username': 'xxxx', 'password':'xxxx', 'windows_integrated_auth':False, 'domain': '', 'server_name': 'DESKTOP-G2UIUMK\SQLEXPESS,1435', 'database':'xxx','driver_name':'SQL Server' }
query = "SELECT * FROM sys.tables"


print(check_mssql_db_connection(databaseConfigs, query)) # incorrect databaseConfigs or query
print(check_mssql_db_connection(databaseConfigs, query)) # correct databaseConfigs or query
print(check_mssql_db_connection(databaseConfigs)) # incorrect databaseConfigs or query
print(check_mssql_db_connection(databaseConfigs)) # correct databaseConfigs or query
```

```
C:\***\***>python main.py
(False, 'Database Connection Failed!')
(True, 'Connection Established And Found Tables!')
(False, 'Database Connection Failed!')
(True, 'Connection Established And Found Tables!')
(False, 'Database Connection Failed!')
```

```python
"""
    Checks the database connection and executes a SELECT query.

    Parameters:
    - databaseConfigs (Dict[str, str]): A dictionary containing the configuration settings for the database connection. It should include keys such as 'host', 'port', 'user', 'password', 'database', and any other required parameters, all of type str.
    - query (str): The SQL query to be executed, which is expected to be a SELECT query.

    Returns:
    - Tuple (bool, str):
        - A boolean value indicating the success of the operation.
            - True if the connection is established and the query returns results.
            - False if there are any failures during the operation.
        - A message describing the outcome of the operation.

    Note:
    - This function updates the 'query' key in the 'databaseConfigs' dictionary with the provided query.
    - It attempts to establish a database connection and execute the given SELECT query.
    - If the query is a SELECT query and the connection is successful, it checks if any tables are returned.
    - If tables are found, it returns True and a success message. Otherwise, it returns False and a relevant error message.
    - If there are any exceptions during the operation, it returns False and an error message.

    Example Usage:
    database_config = {
        'host': 'localhost',
        'port': '3306',
        'user': 'username',
        'password': 'password',
        'database': 'my_database',
    }
    query = "SELECT * FROM my_table"
    success, message = check(database_config, query)
    if success:
        print(message)  # Connection Established And Found Tables!
    else:
        print(message)  # Database Connection Failed!
    """
```