Socket
Book a DemoInstallSign in
Socket

alphaz-next

Package Overview
Dependencies
Maintainers
1
Versions
138
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

alphaz-next

A project to make a lib to start FastAPI quickly

pipPyPI
Version
0.7.4.0
Maintainers
1

Alphaz-Next

Alphaz-Next is a Python library designed to simplify the setup of REST APIs using FastAPI & Pydantic. It provides a useful toolkit for setting up Logger, Config, and more.

Installing

To install alphaz-next, if you already have Python, you can install with:

pip install alphaz-next

Usage

To use Alphaz-Next in your Python code, import the necessary classes and functions like this:

from alphaz-next import DataBase, Logger
from alphaz-next.models.config.config_settings import create_config_settings

Features

Logger Setup

The Logger class provides a custom logging functionality with various log levels and output options. It is imported from the alphaz_next.utils.logger module.

Initialization

The Logger class is initialized with the following parameters:

  • name (str): The name of the logger.
  • directory (str): The directory where the log files will be stored.
  • level (int, optional): The log level. Defaults to logging.INFO.
  • stream_output (bool, optional): If set to True, the logs will also be output to the console. Defaults to True.
  • when (str, optional): Specifies when to rotate the log file. Defaults to "midnight".
  • interval (int, optional): The interval at which the log file should be rotated. Defaults to 1.
  • backup_count (int, optional): The number of backup log files to keep. Defaults to 10.
  • file_name (str, optional): The name of the log file. If not provided, the log file will be named after the logger. Defaults to None.
  • logging_formatter (str, optional): The format string for the log messages. Defaults to DEFAULT_FORMAT.
  • date_formatter (str, optional): The format string for the date in the log messages. Defaults to DEFAULT_DATE_FORMAT.

Usage

Here's an example of how to use the Logger class:

from alphaz_next.utils.logger import Logger

logger = Logger(
    name="my_logger",
    directory="/path/to/log/files",
    level=logging.INFO,
    stream_output=True,
    when="midnight",
    interval=1,
    backup_count=10,
    file_name=None,
    logging_formatter=DEFAULT_FORMAT,
    date_formatter=DEFAULT_DATE_FORMAT
)

logger.info("This is an info log message.")

Database Connection Setup

The Database class represents a database connection and provides methods for various database operations.

Initialization

The Database class is initialized with the following parameters:

  • databases_config (_DataBaseConfigTypedDict): A dictionary containing the configuration for the databases.
  • logger (Logger): The logger object to be used for logging.
  • base (DeclarativeMeta): The base class for the declarative models.
  • metadata_views (List[MetaData] | None, optional): A list of metadata views. Defaults to None.

Usage

Here's an example of how to use the DataBase class:

from alphaz_next import DataBase, Logger

# Initialize the logger
logger = Logger(
    name='sqlalchemy.engine', 
    file_name="database", 
    stream_output=False, 
    level=logging.DEBUG
)

# Create the database configuration
databases_config = {
    "mydb1": {
        "host": "srv-mydb1-db-dev.example.com",
        "password": "MyDB1Dev_123",
        "username": "mydb1adm",
        "port": 1234,
        "driver": "oracledb",
        "service_name": "mydb1",
        "ini": false
    },
    "mydb2": {
        "path": "{{project}}/mydb2.sqlite",
        "driver": "sqlite",
        "ini": true,
        "init_database_dir_json": "{{project}}/tests/mydb2/ini",
        "connect_args": {
            "check_same_thread": false
        }
    }
}

# Initialize the database connection
database = DataBase(
    databases_config=databases_config, 
    logger=logger, 
    base=Base
)

# Use the database connection
with database.session_factory() as session:
    # Perform database operations...

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts