Skip to main content
error loading Epitech Logo error loading Jarbin-ToolKit Logo

📦 Jarbin-ToolKit:Config v0.1.2.3

Deterministic configuration management system based on structured INI file abstraction over Python ConfigParser


🔹 Short Description

Jarbin-ToolKit Config is a lightweight configuration management layer that provides deterministic read/write access to INI-based configuration files through a structured object-oriented interface.

It enables:

  • structured configuration creation and persistence
  • typed retrieval of configuration values
  • safe modification of configuration entries
  • filesystem-backed deterministic state management

It is not a database system, but a lightweight deterministic file-based configuration abstraction layer.


🔹 Authors

  • Nathan (Jarjarbin06)
  • Jarbin Studio

🔹 License

GPL v3


🔹 Target Audience

This library is intended for:

  • Python developers requiring persistent configuration systems
  • system-level tool developers
  • CLI application designers
  • automation and workflow engineers
  • projects requiring deterministic file-based state storage

🔹 Platform Support

  • Python ≥ 3.10

  • Standard library only (configparser, os, platform)

  • Cross-platform support:

    • Linux
    • Windows
    • macOS

🔹 Purpose

Jarbin-ToolKit Config aims to:

  • provide structured access to INI configuration files
  • abstract Python’s ConfigParser into a deterministic interface
  • ensure persistent and reproducible configuration state
  • unify read/write/config lifecycle handling

It is not a database abstraction layer, but a file-based deterministic configuration system.


🔹 Key Features

  • INI-based configuration management
  • automatic file creation and initialization
  • typed getters (str, int, float, bool)
  • persistent write-through updates
  • static existence validation
  • platform-aware path normalization

🔹 Architecture Overview

User Code
   │
   ▼
Config(path, file_name, data)
   │
   ▼
ConfigParser Layer
   │
   ├───────────────┐
   ▼               ▼
Read Mode      Write Mode
   │               │
   ▼               ▼
Memory State   File System (.ini)
   │
   ▼
Typed Access API (get / set)

🔹 Core Concept

The system is based on a dual-state model:

1. In-Memory Configuration

Stored using Python ConfigParser:

self.config

2. Persistent File State

Stored as an .ini file:

path/file_name

🔹 Configuration Lifecycle

Creation

If file does not exist:

  • file is created
  • empty or provided structure is written

Loading

If file exists:

  • content is read into ConfigParser
  • memory state is synchronized

Persistence

Every modification is immediately written to disk.


🔹 API / Function Documentation

🔹 Config

Name Description
__init__ Initializes configuration file and loads or creates persistent state
set Updates a configuration value and persists it
get Retrieves a value with optional type casting
get_bool Retrieves a boolean value
get_int Retrieves an integer value
get_float Retrieves a float value
delete Removes configuration file from filesystem
exist Static check for configuration file existence and validity
__repr__ Debug representation of configuration object

🔹 Project Structure

jarbin_toolkit_config/
├── config.py
└── __init__.py

🔹 Usage Section

🔹 Create Configuration

from jarbin_toolkit_config import Config

cfg = Config(
    path="./config",
    data={
        "database": {
            "host": "localhost",
            "port": "5432"
        }
    },
    file_name="app.ini"
)

🔹 Set Value

cfg.set("database", "user", "admin")

🔹 Get Value

host = cfg.get("database", "host")
port = cfg.get_int("database", "port")

🔹 Boolean / Float Access

enabled = cfg.get_bool("feature", "enabled")
ratio = cfg.get_float("config", "ratio")

🔹 Delete Configuration

cfg.delete()

🔹 Build / Installation

Installation

pip install jarbin-toolkit-config

🔹 Execution Behavior

  • Configuration is loaded at initialization
  • Any set() operation triggers immediate file write
  • File system is the source of truth after initialization
  • No background synchronization exists

🔹 Memory Model

  • ConfigParser is the in-memory state container
  • file system is persistent storage layer
  • no caching layer beyond runtime object
  • optional in-memory retention after deletion (cached=True)

🔹 Design Philosophy

  • deterministic file-state synchronization
  • explicit read/write separation
  • minimal abstraction over standard library
  • cross-platform compatibility by design
  • immediate persistence over lazy writes

🔹 Current State

⚠️ Core configuration system is functional but requires robustness improvements

Status:

  • INI file creation implemented
  • typed getters implemented
  • write-through persistence implemented
  • file existence validation implemented

Limitations:

  • no schema validation
  • no encryption support
  • no concurrent access protection
  • no transaction system
  • limited error handling robustness

🔹 Limitations

  • no atomic write mechanism
  • no multi-process locking
  • no configuration schema enforcement
  • no rollback system
  • platform path handling partially inconsistent in edge cases

🔹 Extension / Contribution

Possible extensions:

  • schema-based configuration validation
  • transaction-based config updates
  • file locking system for concurrency safety
  • encrypted configuration storage layer
  • JSON/YAML backend support

🔹 Notes

This system is designed as a minimal deterministic abstraction over INI configuration files, not a full configuration framework.

It prioritizes:

  • simplicity
  • explicit behavior
  • direct filesystem mapping

🔹 Identity Summary

Jarbin-ToolKit Config is:

  • a deterministic INI configuration manager
  • a structured persistence abstraction layer
  • a lightweight system-level configuration tool
  • a minimal interface over Python ConfigParser

🔹 Final Rule

If configuration state is not explicitly written, it does not exist.


Metadata

Release files for jarbin-toolkit-config 0.1.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jarbin-toolkit-config 0.1.2.3
File Size Uploaded Provenance Actions
jarbin_toolkit_config-0.1.2.3.tar.gz 28.9 kB Without provenance Details for jarbin_toolkit_config-0.1.2.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jarbin-toolkit-config 0.1.2.3
File Interpreter ABI Platform Actions
jarbin_toolkit_config-0.1.2.3-py3-none-any.whl Python 3 none any Details for jarbin_toolkit_config-0.1.2.3-py3-none-any.whl

Total release size: 47.2 kB

Release files / jarbin_toolkit_config-0.1.2.3.tar.gz

Download URL jarbin_toolkit_config-0.1.2.3.tar.gz
Size 28.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6fd28f02c14a71b7f92dd0548a10446b4eb3799e69445da6b235333da9b5bce5
BLAKE2b-256 checksum
How to use checksums
2bbbb91e7d84d4a25863396d1f76fd3a3921a5793ad085aefc10eb6fbe7ba55f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13

Release files / jarbin_toolkit_config-0.1.2.3-py3-none-any.whl

Download URL jarbin_toolkit_config-0.1.2.3-py3-none-any.whl
Size 18.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5817887d6309d3627f746d81473fc8c667faf6b74294bf334896f0169b1f9057
BLAKE2b-256 checksum
How to use checksums
134981131be39949984191c0e4988708f5838f00717a7caf2701f1becfcf39f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13

Security for jarbin-toolkit-config 0.1.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page