Skip to content

Request: supporting filter syntax that doesn't collide with f-strings #362

Description

@jamesbraza

Currently, filter syntax directly overlaps with f-string syntax. This make string building URLs a little more cumbersome:

import httpx

def get_user_from_substring(sub_name: str):
    # I would like to use f-string in URL, but this collides with filter syntax
    response = httpx.get(f"/users/?filter{name.icontains}={sub_name}")
    ...

def get_user_from_substring(sub_name: str):
    # Workaround 1: use `__add__`
    response = httpx.get("/users/?filter{name.icontains}=" + sub_name)
    # Workaround 2: use double curly
    response = httpx.get(f"/users/?filter{{name.icontains}}={sub_name}")
    # Workaround 3: use string concatenation (black autoformats this to Workaround 2)
    response = httpx.get(
        "/users/?filter{name.icontains}=" f"{sub_name}"
    )

    ...

Can we support an alternate syntax for filter strings, so one can avoid the workarounds? Perhaps []

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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