// Copyright 2017 The LUCI Authors. All rights reserved.
// Use of this source code is governed under the Apache License, Version 2.0
// that can be found in the LICENSE file.

syntax = "proto3";

package vpython;

// Represents a Python PEP425 tag.
message PEP425Tag {
  // Python is the PEP425 python tag (e.g., "cp27").
  string python  = 1;
  // ABI is the PEP425 "python ABI" tag (e.g., "cp27mu", "none").
  string abi = 2;
  // Platform is the PEP425 "python platform" tag (e.g., "linux_x86_64",
  // "armv7l", "any").
  string platform = 3;
}
