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 tologging.INFO
.stream_output
(bool, optional): If set toTrue
, the logs will also be output to the console. Defaults toTrue
.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 to1
.backup_count
(int, optional): The number of backup log files to keep. Defaults to10
.file_name
(str, optional): The name of the log file. If not provided, the log file will be named after the logger. Defaults toNone
.logging_formatter
(str, optional): The format string for the log messages. Defaults toDEFAULT_FORMAT
.date_formatter
(str, optional): The format string for the date in the log messages. Defaults toDEFAULT_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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4eb7a723652585a6a9cac0d09ed77600ac88263fd5bda5a58b2f519948600ea3 |
|
MD5 | 32db08a3d405b0c4823e52e7bd237fcc |
|
BLAKE2b-256 | 5f897563e7b6e61d5a8e737575a377daefeb1319705dfd6fd46189cf97effc61 |
File details
Details for the file alphaz_next-0.7.4.0-py3-none-any.whl
.
File metadata
- Download URL: alphaz_next-0.7.4.0-py3-none-any.whl
- Upload date:
- Size: 48.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ec348e17479d10a81b710519f01b0a0bfcd783de66cf9c62532aeda11dd4426 |
|
MD5 | 582a3ef123d3ffd607e718cd193f8762 |
|
BLAKE2b-256 | 08020380cef586907698530201f862713214a00a0aa2292825bf3a9d246ebb15 |