---
Function {
    argument: None,
    arguments: FunctionArguments {
        arguments: [
            FunctionArgument {
                identifier: "pythonOlder",
                default: None,
            },
            FunctionArgument {
                identifier: "isPy3k",
                default: None,
            },
            FunctionArgument {
                identifier: "mock",
                default: None,
            },
            FunctionArgument {
                identifier: "pyasn1",
                default: None,
            },
            FunctionArgument {
                identifier: "unittest2",
                default: None,
            },
            FunctionArgument {
                identifier: "fetchPypi",
                default: None,
            },
            FunctionArgument {
                identifier: "buildPythonPackage",
                default: None,
            },
            FunctionArgument {
                identifier: "lib",
                default: None,
            },
        ],
        ellipsis: false,
    },
    definition: FunctionApplication {
        function: Variable {
            identifier: "buildPythonPackage",
            position: (11, 1),
        },
        arguments: [
            Map {
                bindings: [
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "pname",
                                    position: (12, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "rsa",
                                    position: (12, 12),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "version",
                                    position: (13, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "4.8",
                                    position: (13, 14),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "src",
                                    position: (15, 3),
                                },
                            ],
                        },
                        FunctionApplication {
                            function: Variable {
                                identifier: "fetchPypi",
                                position: (15, 9),
                            },
                            arguments: [
                                Map {
                                    bindings: [
                                        Inherit(
                                            None,
                                            [
                                                Raw {
                                                    content: "pname",
                                                    position: (16, 13),
                                                },
                                                Raw {
                                                    content: "version",
                                                    position: (16, 19),
                                                },
                                            ],
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "sha256",
                                                        position: (17, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17",
                                                        position: (17, 15),
                                                    },
                                                ],
                                            },
                                        ),
                                    ],
                                    recursive: false,
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "checkInputs",
                                    position: (20, 3),
                                },
                            ],
                        },
                        List {
                            elements: [
                                Variable {
                                    identifier: "unittest2",
                                    position: (20, 19),
                                },
                                Variable {
                                    identifier: "mock",
                                    position: (20, 29),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "propagatedBuildInputs",
                                    position: (21, 3),
                                },
                            ],
                        },
                        List {
                            elements: [
                                Variable {
                                    identifier: "pyasn1",
                                    position: (21, 29),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "preConfigure",
                                    position: (23, 3),
                                },
                            ],
                        },
                        FunctionApplication {
                            function: PropertyAccess {
                                expression: Variable {
                                    identifier: "lib",
                                    position: (23, 18),
                                },
                                attribute_path: AttributePath {
                                    attributes: [
                                        Raw {
                                            content: "optionalString",
                                            position: (23, 22),
                                        },
                                    ],
                                },
                                default: None,
                            },
                            arguments: [
                                BinaryOperation {
                                    operator: LogicalAnd,
                                    operands: [
                                        Variable {
                                            identifier: "isPy3k",
                                            position: (23, 38),
                                        },
                                        FunctionApplication {
                                            function: Variable {
                                                identifier: "pythonOlder",
                                                position: (23, 48),
                                            },
                                            arguments: [
                                                String {
                                                    parts: [
                                                        Raw {
                                                            content: "3.7",
                                                            position: (23, 61),
                                                        },
                                                    ],
                                                },
                                            ],
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "substituteInPlace setup.py --replace \"open('README.md')\" \"open('README.md',encoding='utf-8')\"\n",
                                            position: (24, 1),
                                        },
                                    ],
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "doCheck",
                                    position: (28, 3),
                                },
                            ],
                        },
                        Variable {
                            identifier: "false",
                            position: (28, 13),
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "meta",
                                    position: (30, 3),
                                },
                            ],
                        },
                        With {
                            expression: Variable {
                                identifier: "lib",
                                position: (30, 15),
                            },
                            target: Map {
                                bindings: [
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "homepage",
                                                    position: (31, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "https://stuvel.eu/rsa",
                                                    position: (31, 17),
                                                },
                                            ],
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "license",
                                                    position: (32, 5),
                                                },
                                            ],
                                        },
                                        PropertyAccess {
                                            expression: Variable {
                                                identifier: "licenses",
                                                position: (32, 15),
                                            },
                                            attribute_path: AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "asl20",
                                                        position: (32, 24),
                                                    },
                                                ],
                                            },
                                            default: None,
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "description",
                                                    position: (33, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "A pure-Python RSA implementation",
                                                    position: (33, 20),
                                                },
                                            ],
                                        },
                                    ),
                                ],
                                recursive: false,
                            },
                        },
                    ),
                ],
                recursive: true,
            },
        ],
    },
}