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": {}}.
    • Repeated landtable nodes will create a list.
  • version 1 -> {"version": 1}
    • Repeated version nodes will create a list.
      alias "High Seas"
      alias "hs"
      
      Will turn into {"alias": ["High Seas", "hs"]}
  • landtable version=1 {} -> {"landtable": {"version": 1}}
  • strategy "Nest Postgres" {} -> {"strategy": {"Nest Postgres": {}}}
    • Repeated strategy nodes will add another entry to the dict.

cuddly_dicts (as of v3) supports value converters, so you can do things like this:

  • definitely_encrypted_ssn (base64)"QUFBLUdHLVNTU1M="

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-3.0.1.tar.gz (5.4 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-3.0.1-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cuddly_dicts-3.0.1.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cuddly_dicts-3.0.1.tar.gz
Algorithm Hash digest
SHA256 4f4d2dee9c27bef709e0bf43fcc22e65a4a983acda20730e35ffa0dc6cb979be
MD5 1c059e8b747c5cab1065837f58ae30ec
BLAKE2b-256 56b3313551971c5135a76e806b4c16d1beb75f80a3908c7b3d0a46d1638ac25c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuddly_dicts-3.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-3.0.1-py3-none-any.whl.

File metadata

  • Download URL: cuddly_dicts-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cuddly_dicts-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 51ba1e636a249bb0e776042c7005cd158321fdd6db995203b994ea1168ca2bad
MD5 8c6a212440a2e3a748ef33953dc30bfa
BLAKE2b-256 261300fcc19e09eb43ff87c1540b34d088186941dc8586275fbd3f17bf6a6ac1

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuddly_dicts-3.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