Skip to main content

No project description provided

Project description

cuddly_dicts

Turn a KDL document like this:

landtable version=1 {
    // Minimum compatible Landtable version
    ensure_landtable_version "0.0.1"
    
    provisioning {
        // Whether to allow runtime provisioning
        // (whether you can add/remove fields via the API or the web)
        allow_runtime_provisioning true
        
        // A provisioning strategy defines how a new database can be
        // created.
        strategy "Nest Postgres" {
            primary {
                using "postgres_provisioning_plugin"
                hostname "hackclub.app"
                
                authentication "userpass" {
                    username "sarah"
                    password "i_l0ve_hC!"
                }
                
                // or:
                
                authentication "vault-pg" {
                    path "database/creds/landtable"
                }
            }
        }
    }
}

Into a dict like this:

{
    "landtable": {
        "version": 1,
        "ensure_landtable_version": "0.0.1",
        "provisioning": {
            "allow_runtime_provisioning": True,
            "strategy": {
                "Nest Postgres": {
                    "primary": {
                        "using": "postgres_provisioning_plugin",
                        "hostname": "hackclub.app",
                        "authentication": {
                            "userpass": {
                                "username": "sarah",
                                "password": "i_l0ve_hC!"
                            }
                        }
                    }
                }
            }
        }
    }
}

Motivation

  • Keep using Landtable's existing validation library (Pydantic)
  • Support multiple configuration languages (TOML, JSON, YAML, whatever!) by making them all compile down to the same representation that can be validated

Conversion rules

  • KDL node -> dict result
  • landtable {} -> {"landtable": {}}.
  • version 1 -> {"version": 1}
  • landtable version=1 {} -> {"landtable": {"version": 1}}
  • strategy "Nest Postgres" {} -> {"strategy": {"Nest Postgres": {}}}
    • Repeated strategy nodes will add another entry to the dict.

License

MIT or WTFPL, depending on how much of a prude you are

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cuddly_dicts-0.0.1.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cuddly_dicts-0.0.1-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file cuddly_dicts-0.0.1.tar.gz.

File metadata

  • Download URL: cuddly_dicts-0.0.1.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for cuddly_dicts-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f367eac61742dec79f143c64a80989a18fe5e95fd1265a44c82346fa58718c30
MD5 ef187e1979f7dca6aac89fc91422c9bb
BLAKE2b-256 3c086d93292276bf139406a9cc8bf07c3f637b701dafb93ac11c8ad130501c63

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuddly_dicts-0.0.1.tar.gz:

Publisher: workflow.yml on iamawatermelo/cuddly-dicts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cuddly_dicts-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: cuddly_dicts-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for cuddly_dicts-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6e0731b40bd7f200bf2d523adc39fe825eb18c113c3bca7d37aa4bbae592901d
MD5 edc30ac8ba109b6af13d497ca0483d8c
BLAKE2b-256 5668b0195ada145d6fa18effec98c2dd1dfba408fbebb644408076595f9b031f

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuddly_dicts-0.0.1-py3-none-any.whl:

Publisher: workflow.yml on iamawatermelo/cuddly-dicts

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page