Browse Source

isort: make available to users

This should make it possible to integrate into more tools.

Bug: 1013096
Change-Id: Idd1502996dafc28b1e5b1bf731125bd64c4f5162
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3613833
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Mike Frysinger 3 years ago
parent
commit
9a7b7675ba
2 changed files with 61 additions and 0 deletions
  1. 31 0
      .isort.cfg
  2. 30 0
      isort

+ 31 - 0
.isort.cfg

@@ -0,0 +1,31 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# Config file for the isort python module.
+# This is used to enforce import sorting standards.
+#
+# https://pycqa.github.io/isort/docs/configuration/options.html
+
+[settings]
+# Be compatible with `black` since it also matches what we want.
+profile = black
+
+line_length = 80
+length_sort = false
+force_single_line = true
+lines_after_imports = 2
+from_first = false
+case_sensitive = false
+force_sort_within_sections = true
+order_by_type = false
+
+# Ignore generated files.
+extend_skip_glob = *_pb2.py
+
+# Allow importing multiple classes on a single line from these modules.
+# https://google.github.io/styleguide/pyguide#s2.2-imports
+single_line_exclusions =
+    abc,
+    collections.abc,
+    typing,

+ 30 - 0
isort

@@ -0,0 +1,30 @@
+#!/usr/bin/env vpython3
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Note: We use tags here instead of refs because refs will always hit the
+# network to see if there are any updates.
+
+# [VPYTHON:BEGIN]
+# python_version: "3.8"
+#
+# wheel: <
+#   name: "infra/python/wheels/isort-py3"
+#   version: "version:5.10.1"
+# >
+#
+# [VPYTHON:END]
+
+from pathlib import Path
+import sys
+
+
+THIS_DIR = Path(__file__).resolve().parent
+RC_FILE = THIS_DIR / '.isort.cfg'
+
+# Set default config options.  If a project wants to deviate, they'll have to
+# manually override.
+sys.argv = sys.argv[:1] + [f'--settings-file={RC_FILE}'] + sys.argv[1:]
+
+import isort.__main__