Skip to content

Casting to Python dictionaries #179

@paduszyk

Description

@paduszyk

This is another try on #35.

An interesting idea would be to add a helper for mapping-like env values like:

DATABASE_URLS="SQLite3=sqlite://:memory:,PostgreSQL=postgres://postgres:postgres@localhost:5432/postgres"

to return the respective Python dict objects. Implementation can be as simple as:

def parse_dict(value, *, item_sep=",", key_value_sep="="):
    def split_and_strip(value, sep):
        return list(map(str.strip, value.split(sep)))

    items = split_and_strip(value, item_sep)

    return dict(split_and_strip(item, key_value_sep) for item in items)

or a similar callable class.

Something similar is implemented in environs.

https://github.com/sloria/environs/blob/31d944845f52a3f6298f4b42cef92c2c887fe0a2/src/environs/__init__.py#L224-L250

but personally I prefer python-decouple as it natively supports .env file auto-reading.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions