High-performance secure core framework for scalable, reliable applications
Project description
seCore
seCore is a high-performance and secure framework designed for building scalable applications. It provides developers with essential tools and libraries to streamline development, enhance security, and improve code maintainability. With support for modern programming paradigms, seCore aims to empower developers to focus on delivering robust solutions quickly.
Key Features:
- Security-First Approach: Built-in security measures to prevent common vulnerabilities.
- Scalability: Optimized to handle high loads and large-scale applications.
- Modularity: Highly modular architecture, allowing seamless integration and customization.
- Ease of Use: Developer-friendly APIs and comprehensive documentation.
Goals:
- Accelerate development time while maintaining high code quality.
- Provide a flexible foundation to meet diverse application needs.
- Ensure application security without compromising performance.
Installation:
To install seCore, use pip:
pip install seCore
CustomLogging:
from seCore import logger
if __name__ == '__main__':
"""Logs a message using the specified log level."""
logger.debug(f'Provides detailed information that’s valuable to you as a developer.')
logger.info(f'Provides general information about what’s going on with your program.')
logger.warning(f'Indicates that there’s something you should look into.')
logger.error(f'Alerts you to an unexpected problem that’s occured in your program.')
logger.critical(f'Tells you that a serious error has occurred and may have crashed your app.')
output
seCore | DEBUG | Provides detailed information that’s valuable to you as a developer.
seCore | INFO | Provides general information about what’s going on with your program.
seCore | WARNING | Indicates that there’s something you should look into.
seCore | ERROR | Alerts you to an unexpected problem that’s occured in your program.
seCore | CRITICAL | Tells you that a serious error has occurred and may have crashed your app.
ConfigSettings:
import json
from seCore import logger
from seCore import settings, settings_not_set
# from seCore.KeyManager import keyManager
# from seCore.KeyManagerVault import keyManager
# Constants
FORMAT_PADDING = 20
FORMAT_LOG_MESSAGE = '{setting:>{padding}}: {value}'
SEPARATOR_LINE = "-" * 160
def log_sorted_settings(system_settings):
"""Logs the key-value pairs of sorted settings."""
for setting_name, setting_value in system_settings:
logger.info(f'{setting_name:>{FORMAT_PADDING}}: {setting_value}')
def log_unset_settings(system_settings):
"""Logs unset settings with different log levels based on their required level."""
for setting in system_settings:
setting_value = json.loads(settings_not_set[setting])
message = FORMAT_LOG_MESSAGE.format(setting=setting, value=setting_value, padding=FORMAT_PADDING)
match setting_value["settingRequired"]["level"]:
case "CRITICAL":
logger.critical(message)
case "ERROR":
logger.error(message)
case "WARNING":
logger.warning(message)
case _:
logger.info(message)
if __name__ == '__main__':
# Log sorted settings
logger.info(SEPARATOR_LINE)
sorted_settings = sorted(settings)
log_sorted_settings(sorted_settings)
# Log unset settings
sorted_keys = sorted(settings_not_set)
log_unset_settings(sorted_keys)
output
seCore | INFO | ----------------------------------------------------------------------------------------------------------------------------------------------------------------
seCore | INFO | ENVIRONMENT: Local
seCore | INFO | FN_KEY: l911qB1keWvIykhvswzdKCQbr6h35Cabu8OeckOUbP4=
seCore | INFO | LOG_APPNAME: seCore
seCore | INFO | LOG_FORMAT: {extra[app]} | <level>{level: <8}</level> | <cyan><level>{message}</level></cyan>
seCore | INFO | LOG_LEVEL: DEBUG
seCore | INFO | MSSQL_DATABASE: {default_database}
seCore | INFO | MSSQL_HOSTNAME: {hostname}
seCore | INFO | MSSQL_PASSWORD: {password}
seCore | INFO | MSSQL_PORT: {port}
seCore | INFO | MSSQL_TRUST: {trust}
seCore | INFO | MSSQL_USERNAME: {username}
seCore | INFO | PROJECT_ROOT: /Users/rjd/GitHub/PyCharm/seCore
seCore | INFO | SETTING_1: value_1
seCore | INFO | SETTING_2: value_2
seCore | INFO | VERSION_CORE: 2025.6.0.rc1
Encryption:
from seCore import logger
from seCore import encryption
# Constants
FORMAT_PADDING = 20
WELCOME_MESSAGE = "Welcome to the seCore!"
def log_formatted(key, value):
"""Helper to standardize log output."""
logger.info(f'{key:>{FORMAT_PADDING}}: {value}')
if __name__ == '__main__':
encryption_service = encryption()
# Log encryption key
encryption_key = encryption_service.key.decode()
log_formatted("Key", encryption_key)
# Encrypt and log
encrypted_message = encryption_service.encrypt(WELCOME_MESSAGE).decode()
log_formatted("Encrypt", f"{WELCOME_MESSAGE} -> {encrypted_message}")
# Decrypt and log
decrypted_message = encryption_service.decrypt(encrypted_message)
log_formatted("Decrypt", f"{encrypted_message} -> {decrypted_message}")
output
seCore | INFO | Key: l911...UbP4=
seCore | INFO | Encrypt: Welcome to the seCore! -> gAAAAABna04F3P6S6eARPSEHgiCSPmixKnergtRf75SyDPVXd8tMOeBv5m02buuT3cP0-1MNDP_OY5pEEuFIRn9MJiePZgESBpKzS5HD_R-rVYb7g_cbnmQ=
seCore | INFO | Decrypt: gAAAAABna04F3P6S6eARPSEHgiCSPmixKnergtRf75SyDPVXd8tMOeBv5m02buuT3cP0-1MNDP_OY5pEEuFIRn9MJiePZgESBpKzS5HD_R-rVYb7g_cbnmQ= -> Welcome to the seCore!
HttpRest:
from seCore import logger
from seCore import HttpRest, HttpAction
# Constants
FORMAT_PADDING = 15
INDENTATION_LEVEL = 4
DEFAULT_HEADERS = {"Custom-Header": "value"}
def make_request_and_log(http_rest, http_action, http_url):
"""Make an HTTP request and log the result."""
result, status_code = http_rest.http_request(http_action, http_url, DEFAULT_HEADERS)
logger.info(f'{status_code} - {result}')
if __name__ == '__main__':
rest_api = HttpRest()
# List of requests to perform
requests = [
(HttpAction.GET, "https://httpbin.org/get"),
(HttpAction.POST, "https://httpbin.org/post"),
(HttpAction.PATCH, "https://httpbin.org/patch"),
]
# Process request
for action, url in requests:
make_request_and_log(rest_api, action, url)
output
seCore | INFO | 200 - {
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Custom-Header": "value",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.32.3",
"X-Amzn-Trace-Id": "Root=1-676b6675-79001edf69c8245a0128421a"
},
"origin": "185.187.171.99",
"url": "https://httpbin.org/get"
}
seCore | INFO | 200 - {
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "0",
"Custom-Header": "value",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.32.3",
"X-Amzn-Trace-Id": "Root=1-676b6675-58c7fe7b1527fa04719687ac"
},
"json": null,
"origin": "185.187.171.99",
"url": "https://httpbin.org/post"
}
seCore | INFO | 200 - {
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "0",
"Custom-Header": "value",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.32.3",
"X-Amzn-Trace-Id": "Root=1-676b6675-3460a1cb5653a05d127a7b93"
},
"json": null,
"origin": "185.187.171.99",
"url": "https://httpbin.org/patch"
}
PyVersions:
import json
from seCore import logger
from seCore import PyVersions
# Constants
FORMAT_PADDING = 15
INDENTATION_LEVEL = 4
def log_formatted(key, value):
"""Standardize log output."""
logger.info(f'{key:>{FORMAT_PADDING}}: {value}')
def log_json(key, data):
"""Log JSON formatted data."""
formatted_data = json.dumps(data, indent=INDENTATION_LEVEL)
log_formatted(key, formatted_data)
def log_py_versions(py_versions):
"""Log Python versions and releases."""
log_json("pyVersions", py_versions.versions)
log_json("pyReleases", py_versions.releases)
if __name__ == '__main__':
try:
py_versions = PyVersions()
log_py_versions(py_versions)
except Exception as e:
logger.error(f'{"pyVersions":>{FORMAT_PADDING}}: {e}')
output
seCore | INFO | pyVersions: [
{
"version": "3.13",
"status": "bugfix",
"released": "2024-10-07",
"eos": "2029-10"
},
{
"version": "3.12",
"status": "bugfix",
"released": "2023-10-02",
"eos": "2028-10"
},
{
"version": "3.11",
"status": "security",
"released": "2022-10-24",
"eos": "2027-10"
}
]
seCore | INFO | pyReleases: [
{
"version": "3.13.3",
"date": "April 8, 2025"
},
{
"version": "3.12.10",
"date": "April 8, 2025"
},
{
"version": "3.11.12",
"date": "April 8, 2025"
}
]
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 secore-2025.6.0.tar.gz.
File metadata
- Download URL: secore-2025.6.0.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e306381ae382409d2f384d702834fbe46e160724964b99a85e0ad96862713b6
|
|
| MD5 |
49edd5e1ae938ae84b1ad18d8e5c5e2b
|
|
| BLAKE2b-256 |
f8ec53ab2aaac27fd16c775a8574dd02d464b293706fcb039fdaae68547d9dfb
|
File details
Details for the file secore-2025.6.0-py3-none-any.whl.
File metadata
- Download URL: secore-2025.6.0-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd4fb59838c034a37df25c8bdaf02fa7d80e46a54fcd07ec6e60b338c44f385a
|
|
| MD5 |
9839d1877b9b3286449421b5856131c8
|
|
| BLAKE2b-256 |
6d5f9753620db4b9368d0c26178552ae88675a9df136894db2f3d5b46e839d11
|