Skip to content

First release - #1

Merged
AndreuCodina merged 6 commits into
mainfrom
feature/first-release
Jun 19, 2026
Merged

AndreuCodina merged 6 commits into
mainfrom
feature/first-release

Conversation

@AndreuCodina

Copy link
Copy Markdown
Member

No description provided.

Copilot AI review requested due to automatic review settings June 19, 2026 13:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Initial release of wirio-settings: a Python settings library (with a PyO3 Rust extension scaffold) that loads configuration from YAML files, environment variables, and optional cloud secret backends (Azure Key Vault / AWS Secrets Manager), and binds values into Pydantic models.

Changes:

  • Add core settings APIs (SettingsManager, providers/sources, section navigation, Pydantic binding, key normalization).
  • Add YAML + environment-variable providers and optional Azure Key Vault / AWS Secrets Manager integrations.
  • Add test suite, packaging/build config (maturin + uv), and CI for lint/test + wheel/sdist publishing.

Reviewed changes

Copilot reviewed 48 out of 64 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
tests/yaml/test_yaml_settings_provider.py Adds YAML provider coverage (file loading, optional/missing, invalid YAML, model binding).
tests/yaml/init.py Test package marker for YAML tests.
tests/test_settings_manager.py Adds extensive SettingsManager behavior tests (values, sections, defaults, provider ordering, async loop handling).
tests/json/test_json_settings_file_parser.py Adds tests for JSON flattening/parser behavior (scalars, nesting, empties, duplicate keys).
tests/json/init.py Test package marker for JSON tests.
tests/environment_variables/test_environment_variables_settings_provider.py Adds environment variable normalization test.
tests/environment_variables/init.py Test package marker for env var tests.
tests/core/test_settings_section.py Adds tests for SettingsSection path/key behavior and delegation to root.
tests/core/test_settings_provider.py Adds basic SettingsProvider.__str__ test.
tests/core/test_settings_binder.py Adds tests for binder behavior (defaults, sequences, mappings, unions).
tests/core/test_convention_changer.py Adds tests for snake_case conversion rules.
tests/core/init.py Test package marker for core tests.
tests/azure_key_vault/test_azure_key_vault_settings_source.py Adds Azure Key Vault source build tests (optional dependency guarded).
tests/azure_key_vault/test_azure_key_vault_settings_provider.py Adds Azure Key Vault provider tests (secret filtering, name normalization, credential defaulting).
tests/azure_key_vault/init.py Test package marker for Azure tests.
tests/aws_secrets_manager/test_aws_secrets_manager_settings_source.py Adds AWS Secrets Manager source build tests (optional dependency guarded).
tests/aws_secrets_manager/test_aws_secrets_manager_settings_provider.py Adds AWS Secrets Manager provider tests (mocked boto + optional localstack integration).
tests/aws_secrets_manager/init.py Test package marker for AWS tests.
tests/init.py Root test package marker.
src/lib.rs Minimal PyO3 module entrypoint.
README.md Adds usage/install docs and feature overview.
python/wirio_settings/yaml/yaml_settings_source.py Introduces YAML SettingsSource.
python/wirio_settings/yaml/yaml_settings_provider.py Introduces YAML provider with safe YAML load + flattening.
python/wirio_settings/yaml/init.py YAML package marker.
python/wirio_settings/settings_manager.py Implements the main API: provider registration, defaults, value access, sections, async loading.
python/wirio_settings/py.typed Marks package as typed.
python/wirio_settings/environment_variables/environment_variables_settings_source.py Introduces env var SettingsSource.
python/wirio_settings/environment_variables/environment_variables_settings_provider.py Introduces env var provider with key normalization.
python/wirio_settings/environment_variables/init.py Env var package marker.
python/wirio_settings/core/wirio_undefined.py Adds sentinel type for undefined values.
python/wirio_settings/core/settings.py Defines the abstract Settings API + model binding helpers.
python/wirio_settings/core/settings_source.py Defines SettingsSource abstraction.
python/wirio_settings/core/settings_section.py Implements SettingsSection for hierarchical access.
python/wirio_settings/core/settings_root.py Implements root traversal + provider priority lookup.
python/wirio_settings/core/settings_provider.py Implements base provider normalization + lookup.
python/wirio_settings/core/settings_path.py Defines key delimiter + path utilities.
python/wirio_settings/core/settings_builder.py Defines builder interface for sources.
python/wirio_settings/core/settings_binder.py Implements Pydantic model binding from flattened key/value settings.
python/wirio_settings/core/convention_changer.py Implements snake_case normalization.
python/wirio_settings/core/_typed_type.py Adds helper for generic-aware type inspection (sequence/mapping detection).
python/wirio_settings/core/_extra_dependencies.py Adds optional dependency checks and user-facing error messages.
python/wirio_settings/core/init.py Re-exports core symbols.
python/wirio_settings/azure_key_vault/azure_key_vault_settings_source.py Adds Azure Key Vault SettingsSource.
python/wirio_settings/azure_key_vault/azure_key_vault_settings_provider.py Adds Azure Key Vault provider (async secret enumeration + normalization).
python/wirio_settings/azure_key_vault/init.py Azure package marker.
python/wirio_settings/aws_secrets_manager/aws_secrets_manager_settings_source.py Adds AWS Secrets Manager SettingsSource.
python/wirio_settings/aws_secrets_manager/aws_secrets_manager_settings_provider.py Adds AWS Secrets Manager provider (JSON parse + flatten).
python/wirio_settings/aws_secrets_manager/init.py AWS package marker.
python/wirio_settings/_json/_json_settings_file_parser.py Adds JSON/YAML flattening parser into delimiter-separated keys.
python/wirio_settings/_json/init.py JSON helpers package marker.
python/wirio_settings/init.py Exposes SettingsManager at package root.
pyproject.toml Defines Python package metadata, dependencies, tooling (ruff/ty/pytest), maturin config.
Makefile Adds developer commands for install/lint/typecheck/stubs.
Cargo.toml Defines PyO3 cdylib crate for maturin build.
Cargo.lock Adds Rust dependency lock for PyO3 build.
.gitignore Expands ignores for Python + build artifacts.
.github/workflows/ci.yml Adds CI for lint/test, wheel builds across platforms, and publish on tags.
crates/wirio-settings/src/lib.rs Removes old Rust workspace crate scaffold.
crates/wirio-settings/Cargo.toml Removes old Rust workspace crate scaffold.
crates/wirio-settings-core/src/lib.rs Removes old Rust workspace crate scaffold.
crates/wirio-settings-core/Cargo.toml Removes old Rust workspace crate scaffold.
crates/wirio-azure-key-vault/src/lib.rs Removes old Rust workspace crate scaffold.
crates/wirio-azure-key-vault/Cargo.toml Removes old Rust workspace crate scaffold.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread python/wirio_settings/core/settings_path.py
Comment thread python/wirio_settings/core/settings_binder.py Outdated
Comment thread README.md Outdated
Comment thread README.md
Comment thread README.md
Comment thread python/wirio_settings/core/_extra_dependencies.py
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread pyproject.toml

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 48 out of 64 changed files in this pull request and generated 8 comments.

Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md
Comment thread python/wirio_settings/yaml/yaml_settings_provider.py
Comment thread python/wirio_settings/settings_manager.py
Comment thread tests/environment_variables/test_environment_variables_settings_provider.py Outdated
Comment thread tests/environment_variables/test_environment_variables_settings_provider.py Outdated
Comment thread tests/azure_key_vault/test_azure_key_vault_settings_provider.py Outdated
AndreuCodina and others added 4 commits June 19, 2026 15:54
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@AndreuCodina
AndreuCodina merged commit fb7087a into main Jun 19, 2026
30 checks passed
@AndreuCodina
AndreuCodina deleted the feature/first-release branch June 19, 2026 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants