def get_executor_price_rate()

in analytics/circleci_analyze.py [0:0]


def get_executor_price_rate(executor):
    (etype, eclass) = executor['type'], executor['resource_class']
    assert etype in ['machine', 'external', 'docker', 'macos', 'runner'], f'Unexpected type {etype}:{eclass}'
    if etype == 'machine':
        return {
            'medium': 10,
            'large': 20,
            'xlarge': 100,
            '2xlarge': 200,
            'gpu.medium': 160,
            'gpu.large': 320,
            'gpu.small': 80,
            'windows.medium': 40,
            'windows.large': 120,
            'windows.xlarge': 210,
            'windows.2xlarge': 500,
            'windows.gpu.nvidia.medium': 500,
            'gpu.nvidia.small': 160,
            'gpu.nvidia.medium': 240,
            'gpu.nvidia.large': 1000,
        }[eclass]
    if etype == 'macos':
        return {
            'medium': 50,
            'large': 100,
        }[eclass]
    if etype == 'docker':
        return {
            'small': 5,
            'medium': 10,
            'medium+': 15,
            'large': 20,
            'xlarge': 40,
            '2xlarge': 80,
            '2xlarge+': 100,
        }[eclass]
    if etype == 'runner' or etype == 'external':
        return {
            'pytorch/amd-gpu': 0,
        }[eclass]
    raise RuntimeError(f'Undefined executor {etype}:{eclass}')