Skip to main content

A project to make a lib to start FastAPI quickly

Project description

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...

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alphaz-next-0.7.4.0.tar.gz (32.9 kB view details)

Uploaded Source

Built Distribution

alphaz_next-0.7.4.0-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

Details for the file alphaz-next-0.7.4.0.tar.gz.

File metadata

  • Download URL: alphaz-next-0.7.4.0.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for alphaz-next-0.7.4.0.tar.gz
Algorithm Hash digest
SHA256 4eb7a723652585a6a9cac0d09ed77600ac88263fd5bda5a58b2f519948600ea3
MD5 32db08a3d405b0c4823e52e7bd237fcc
BLAKE2b-256 5f897563e7b6e61d5a8e737575a377daefeb1319705dfd6fd46189cf97effc61

See more details on using hashes here.

File details

Details for the file alphaz_next-0.7.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for alphaz_next-0.7.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ec348e17479d10a81b710519f01b0a0bfcd783de66cf9c62532aeda11dd4426
MD5 582a3ef123d3ffd607e718cd193f8762
BLAKE2b-256 08020380cef586907698530201f862713214a00a0aa2292825bf3a9d246ebb15

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page