loadfig

One-liner Python pyproject config loader. Lightweight, simple, and VCS-aware with root auto-discovery.

https://github.com/open-nudge/loadfig

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

One-liner Python pyproject config loader. Lightweight, simple, and VCS-aware with root auto-discovery.

Basic Info
Statistics
  • Stars: 4
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created 8 months ago · Last pushed 8 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Codeowners Security Support Governance Roadmap

README.md

loadfig

One-liner Python pyproject config loader. Lightweight, simple, and VCS-aware with root auto-discovery.

![PyPI - Python Version](https://img.shields.io/pypi/v/loadfig?style=for-the-badge&label=release&labelColor=grey&color=blue) ![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fopen-nudge%2Floadfig%2Fmain%2Fpyproject.toml&style=for-the-badge&label=python&labelColor=grey&color=blue) ![License](https://img.shields.io/badge/License-Apache_2.0-blue?style=for-the-badge) ![Coverage Hardcoded](https://img.shields.io/badge/coverage-100%25-green?style=for-the-badge) ![OSSF-Scorecard Score](https://img.shields.io/ossf-scorecard/github.com/open-nudge/loadfig?style=for-the-badge&label=OSSF)

Features 🚀 Quick start 📚 Documentation 🤝 Contribute 👍 Adopters 📜 Legal


Features

loadfig is a Python package designed to load TOML configuration files adhering to modern standards:

  • Unified: Load your configuration either from .mytool.toml or pyproject.toml (section [tool.mytool]).
  • One-liner: loadfig.config(name="mytool") returns a basic Python dictionary and that is all you need.
  • No dependencies: Python-only, no third-party dependencies.
  • Do one thing well: Only load the configuration, use other libraries like python-dotenv for bells and whistles.
  • Git-aware: Automatically detects project's root using git (or other VCS), no need to specify the path to your configuration file.

Quick start

Installation

```sh

pip install loadfig ```

Usage

Assume you have the following section in your pyproject.toml file at the root of your project:

toml [tool.mytool] name = "My Tool" version = "1.0.0"

You can load the configuration for mytool using:

```python import loadfig

config = loadfig.config("mytool") config["name"] # "My Tool" config["version"] # "1.0.0" ```

That is all you will likely need to do to load your configuration for your Python project (in a modern, unified way).

[!IMPORTANT] pyproject.toml can be located at the root of your project, while the loading file can be in a subfolder (e.g. src/mytool/loader.py).

See documentation for more details about the arguments and options available.

Contribute

We welcome your contributions! Start here:

Legal

  • This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
  • This project is copyrighted by open-nudge - the appropriate copyright notice is included in each file.

Owner

  • Name: opennudge
  • Login: open-nudge
  • Kind: organization
  • Email: opensource@opennudge.com

Citation (CITATION.cff)

# SPDX-FileCopyrightText: © 2024 open-nudge <https://github.com/open-nudge>
# SPDX-FileContributor: szymonmaszke <github@maszke.co>
#
# SPDX-License-Identifier: Apache-2.0

---
cff-version: "1.2.0"
abstract: >-
  One-liner Python pyproject config loader. Lightweight, simple, and VCS-aware with root auto-discovery.
message: "If you use this software, please cite it as below."
authors:
  - family-names: "open-nudge"
url: "https://github.com/open-nudge/loadfig"
repository-code: "https://github.com/open-nudge/loadfig"
title: "loadfig"
license: "Apache-2.0"
keywords:
  - "python"

GitHub Events

Total
  • Create event: 6
  • Release event: 1
  • Issues event: 2
  • Watch event: 3
  • Push event: 2
  • Pull request event: 2
Last Year
  • Create event: 6
  • Release event: 1
  • Issues event: 2
  • Watch event: 3
  • Push event: 2
  • Pull request event: 2

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 48 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 1
  • Total maintainers: 1
pypi.org: loadfig

One-liner Python pyproject config loader. Lightweight, simple, and VCS-aware with root auto-discovery.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 48 Last month
Rankings
Dependent packages count: 8.8%
Average: 29.3%
Dependent repos count: 49.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/actions/git-setup/action.yml actions
.github/actions/pdm-compatibility/action.yml actions
.github/actions/pdm-setup/action.yml actions
  • open-nudge/opentemplate/.github/actions/pdm-compatibility main composite
  • pdm-project/setup-pdm 94a823180e06fcde4ad29308721954a521c96ed0 composite
.github/actions/pull-request/action.yml actions
.github/actions/release-sbom-setup/action.yml actions
.github/actions/sarif-upload/action.yml actions
  • actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
  • github/codeql-action/upload-sarif fca7ace96b7d713c7035871441bd52efbe39e27e composite
.github/actions/template-setup/action.yml actions
  • pdm-project/setup-pdm 94a823180e06fcde4ad29308721954a521c96ed0 composite
.github/workflows/cache-item-reusable.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • open-nudge/opentemplate/.github/actions/pdm-setup main composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/cache-reusable.yml actions
.github/workflows/cache-test.yml actions
.github/workflows/cache.yml actions
.github/workflows/citation-renovate.yml actions
.github/workflows/citation-reusable.yml actions
.github/workflows/citation.yml actions
.github/workflows/code-renovate.yml actions
.github/workflows/code-reusable.yml actions
.github/workflows/code.yml actions
.github/workflows/commit-renovate.yml actions
.github/workflows/commit-reusable.yml actions
.github/workflows/commit.yml actions
.github/workflows/docs-renovate.yml actions
.github/workflows/docs-reusable.yml actions
.github/workflows/docs.yml actions
.github/workflows/generation-renovate.yml actions
.github/workflows/generation-reusable.yml actions
.github/workflows/generation-update-reusable.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • open-nudge/opentemplate/.github/actions/git-setup main composite
  • open-nudge/opentemplate/.github/actions/pdm-setup main composite
  • open-nudge/opentemplate/.github/actions/pull-request main composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/generation-update-test.yml actions
.github/workflows/generation-update.yml actions
.github/workflows/generation.yml actions
.github/workflows/github-actionlint.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • docker://rhysd/actionlint 1.7.1 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/github-actions-reusable.yml actions
.github/workflows/github-actions.yml actions
.github/workflows/github-all-renovate.yml actions
.github/workflows/github-renovate-reusable.yml actions
.github/workflows/github-renovate.yml actions
.github/workflows/github-reusable.yml actions
.github/workflows/github-workflows-reusable.yml actions
.github/workflows/github-workflows.yml actions
.github/workflows/github.yml actions
.github/workflows/harden.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/ini-renovate.yml actions
.github/workflows/ini-reusable.yml actions
.github/workflows/ini.yml actions
.github/workflows/labeler.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • actions/labeler 8558fd74291d67161a8a78ce36a881fa63b766a9 composite
  • github/issue-labeler c1b0f9f52a63158c4adc09425e858e87b32e9685 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/legal-renovate.yml actions
.github/workflows/legal-reusable.yml actions
.github/workflows/legal.yml actions
.github/workflows/markdown-renovate.yml actions
.github/workflows/markdown-reusable.yml actions
.github/workflows/markdown.yml actions
.github/workflows/policy.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • siderolabs/conform 43d9fb6d85d5f01b391245805eefd258db160197 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/pre-commit-config.yml actions
.github/workflows/pre-commit-hooks.yml actions
.github/workflows/pre-commit-reusable.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • open-nudge/opentemplate/.github/actions/git-setup main composite
  • open-nudge/opentemplate/.github/actions/pdm-setup main composite
  • open-nudge/opentemplate/.github/actions/pull-request main composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/pre-commit-update.yml actions
.github/workflows/pre-commit.yml actions
.github/workflows/prose.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
.github/workflows/pull-request.yml actions
  • amannn/action-semantic-pull-request 0723387faaf9b38adef4775cd42cfd5155ed6017 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/pyproject-renovate.yml actions
.github/workflows/pyproject-reusable.yml actions
.github/workflows/pyproject.yml actions
.github/workflows/python-renovate.yml actions
.github/workflows/python-reusable.yml actions
.github/workflows/python.yml actions
.github/workflows/release-check-renovate.yml actions
.github/workflows/release-check-reusable.yml actions
.github/workflows/release-check.yml actions
.github/workflows/release-sarifs-reusable.yml actions
.github/workflows/release-sbom-attest-reusable.yml actions
  • actions/attest-sbom 115c3be05ff3974bcbd596578934b3f9ce39bf68 composite
  • actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
  • actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/release-sbom-run-reusable.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
  • open-nudge/opentemplate/.github/actions/git-setup main composite
  • open-nudge/opentemplate/.github/actions/pdm-compatibility main composite
  • open-nudge/opentemplate/.github/actions/pdm-setup main composite
  • open-nudge/opentemplate/.github/actions/release-sbom-setup main composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/release-sboms-reusable.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
  • open-nudge/opentemplate/.github/actions/release-sbom-setup main composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/release-sboms-test.yml actions
.github/workflows/release-slsa-provenance-reusable.yml actions
  • actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/release-slsa-provenance-test.yml actions
.github/workflows/release-upload.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/release.yml actions
  • actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
  • actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
  • pypa/gh-action-pypi-publish 76f52bc884231f62b9a034ebfe128415bbaabdfc composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/renovate.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
  • suzuki-shunsuke/github-action-renovate-config-validator c22827f47f4f4a5364bdba19e1fe36907ef1318e composite
.github/workflows/run-check-reusable.yml actions
.github/workflows/run-reusable.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
  • actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
  • open-nudge/opentemplate/.github/actions/git-setup main composite
  • open-nudge/opentemplate/.github/actions/pdm-compatibility main composite
  • open-nudge/opentemplate/.github/actions/pdm-setup main composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/security-osv-scanner-reusable.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • google/osv-scanner/actions/scanner a2a23858b9650035f019219937f91ae615474b4d composite
  • open-nudge/opentemplate/.github/actions/sarif-upload main composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/security-osv-scanner-update.yml actions
.github/workflows/security-osv-scanner.yml actions
.github/workflows/security-scorecard-reusable.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
  • github/codeql-action/upload-sarif fca7ace96b7d713c7035871441bd52efbe39e27e composite
  • ossf/scorecard-action 05b42c624433fc40578a4040d5cf5e36ddca8cde composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/security-scorecard-test.yml actions
.github/workflows/security-scorecard-update.yml actions
.github/workflows/security-secrets.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
  • trufflesecurity/trufflehog 90694bf9af66e7536abc5824e7a87246dbf933cb composite
.github/workflows/security-semgrep-renovate.yml actions
.github/workflows/security-semgrep-reusable.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • open-nudge/opentemplate/.github/actions/pdm-compatibility main composite
  • open-nudge/opentemplate/.github/actions/pdm-setup main composite
  • open-nudge/opentemplate/.github/actions/sarif-upload main composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/security-semgrep-update.yml actions
.github/workflows/security-semgrep.yml actions
.github/workflows/shell-renovate.yml actions
.github/workflows/shell-reusable.yml actions
.github/workflows/shell.yml actions
.github/workflows/stale.yml actions
  • actions/stale 5bef64f19d7facfb25b37b414482c7164d639639 composite
  • step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
.github/workflows/template-update-reusable.yml actions
.github/workflows/template-update.yml actions
.github/workflows/tests-renovate.yml actions
.github/workflows/tests-reusable.yml actions
.github/workflows/tests.yml actions
.github/workflows/typing-renovate.yml actions