Skip to content
This repository was archived by the owner on Dec 21, 2025. It is now read-only.
This repository was archived by the owner on Dec 21, 2025. It is now read-only.

"AttributeError: Name token redefined" when use loop to set NAME[token] = A #78

@alingse

Description

@alingse

i want use sly to parse "thrift" file (see https://github.com/alingse/thrift-parser/blob/master/simple.py )

and want to set several base_type to IDENTIFIER, but got AttributeError

    types = r'bool|byte|i8|i16|i32|i64|double|string|binary|slist'.split('|')
    for token in types:
        IDENTIFIER[token] = BASE_TYPE

see this simplify code https://github.com/alingse/thrift-parser/blob/master/demo3.py#L14-L16

i know this can be rewritten to

IDENTIFIER["bool"] = BASE_TYPE
IDENTIFIER["byte"] = BASE_TYPE
IDENTIFIER["i8"] = BASE_TYPE
IDENTIFIER["i16"] = BASE_TYPE
...

i want to known that is there any simple way to do this ?

like ?

IDENTIFIER[tuple("bool", "byte")] = BASE_TYPE

or is there some way to statement the reversed keywords for all identifier ( IDENTIFIER = r'[a-zA-Z_][a-zA-Z0-9._]*' )

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions