Python Core Package.
Project description
probable-fiesta
There's probably a fiesta somewhere.
Python Package Core
A Python package core for building a Python package.
Installation
Installation using pip
pip install probable-fiesta
Installation with automatic build and install
It is recommended to setup a virtual environment.
To install locally with automatic build and install, run the following command in the root directory of the project.
git clone https://github.com/sergio-munoz/probable-fiesta.git
cd probable-fiesta
chmod +x scripts/build_install.sh
./scripts/build_install.sh
Installation with manual build and install
Setup a new virtual environment and install packages in requirements.txt.
python -m venv build_venv
source build_venv/bin/activate
(build_venv) $ pip install -r build_requirements.txt
(build_venv) $ hatch build
(build_venv) $ pip install dist/probable_fiesta-${VERSION}.tar.gz
Installation in Jupyter Notebook
To install the into the Jupyter Notebook kernel:
import sys
!{sys.executable} -m pip install -U --no-deps probable-fiesta
Usage
probable_fiesta --help
Build and Run
Build and Run command
Build and a command. Pass flags, for example --version:
./scripts/build_install.sh & probable_fiesta --version
Tests
Automatic
./scripts/test_coverage.sh
Developer Reference
This package contains various modules that can be used to build a Python package.
Modules
probable_fiesta: Main module.probable_fiesta.app: Main application.probable_fiesta.app.main: Main application.probable_fiesta.cli: Command line interface.probable_fiesta.command: Internal command implementation.probable_fiesta.config: Configuration.probable_fiesta.logger: Logging.
Create Application Example
Create a new application using the probable_fiesta package.
- Create a main module, for example
main.py:
# Path: main.py
from probable_fiesta.config.variables import DotEnvDef
from probable_fiesta.config.builder.config_builder import ConfigBuilder
from probable_fiesta.logger.builder.logger_factory import LoggerFactory
from probable_fiesta.app.builder.context_factory import ContextFactory as CF
from probable_fiesta.app.builder.app_builder import AppBuilder
# Import or add your business logic here
# For example the next get version functions:
def get_version_echo(version):
return version
def get_version():
return "v0"
# Create custom dotenv definition from DotEnvDef
class MyDotEnvDef(DotEnvDef):
def __init__(self):
super().__init__()
self.version_echo = "v0" # This will be overwritten by .env file
# make the class iterable
def __iter__(self):
for attr, value in self.__dict__.items():
yield value # only yield the values
# Create main function
def main(args):
# Create config, will be replaced by a Factory in the future
cB = ConfigBuilder()
config = (
cB.logger.set_logger(
LoggerFactory.new_logger_get_logger("main_app", "INFO")
)
.dotenv.load_dotenv() # Load .env file if exists
.set_vars(MyDotEnvDef())
.build()
)
# Create main app
main_app = (
aB.name.set_name("main_app")
.arguments.set_arguments(args)
# Add your arguments
.args_parser.add_argument(
"--version", action="store_true", help="show version builder"
)
# Add your commands that do not require parsed arguments
.context.add_context(
CF.new_context_one_new_command("version", "version", get_version, None)
)
# Define which are executable
.set_executables(["version"])
.config.set_config(config)
.validate()
.build()
)
# Create commands that require parsed arguments
c3 = CF.new_context_one_new_command(
"--version-echo",
"version_echo",
get_version_echo,
main_app.get_arg("version_echo"), # CLI overrides .env
)
# Add commands to main app
main_app.context.add_context(c3)
# Check build errors
if main_app.args_parser.error:
print(main_app.args_parser.error)
return
# Run main app
run_context = main_app.run()
history = run_context.get_run_history()
print(history)
return history
This allows you to call the main function from the command line:
python main.py --version
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file probable_fiesta-0.2.5.tar.gz.
File metadata
- Download URL: probable_fiesta-0.2.5.tar.gz
- Upload date:
- Size: 101.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8e458ac94f745696fcdfca045f8f4344cd4409d2d119e69cc36e08498cc5e35
|
|
| MD5 |
bd47ff6c1d70642b6aa573e9f0ea62be
|
|
| BLAKE2b-256 |
8b32aa86978e777c3d6a8412bf031cf204d566912ec69d68ce8616398def236e
|
File details
Details for the file probable_fiesta-0.2.5-py3-none-any.whl.
File metadata
- Download URL: probable_fiesta-0.2.5-py3-none-any.whl
- Upload date:
- Size: 28.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bff8ecad9f7e712e75e0503d389c8311b46f402d6cc52eab85010902a2f4fa9e
|
|
| MD5 |
2c239abf71e9ead6bb8fe8f2244d9253
|
|
| BLAKE2b-256 |
ec13f1a9ccf443d942a902abb9c125e63136263a8c7759281f638fa10b5840e9
|