From fb84d8b2ee524a9b3bff51fa35054abb44740f1d Mon Sep 17 00:00:00 2001
From: =?utf8?q?=C5=81ukasz=20Langa?= <lukasz@langa.pl>
Date: Thu, 15 Mar 2018 23:39:45 -0700
Subject: [PATCH] Fix numpy-style array indexing

Fixes #33
---
 black.py            | 9 ++++++++-
 tests/expression.py | 2 ++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/black.py b/black.py
index 51b5b21..d011483 100644
--- a/black.py
+++ b/black.py
@@ -960,7 +960,14 @@ def whitespace(leaf: Leaf) -> str:
 
     elif p.type == syms.subscript:
         # indexing
-        if not prev or prev.type == token.COLON:
+        if not prev:
+            assert p.parent is not None, "subscripts are always parented"
+            if p.parent.type == syms.subscriptlist:
+                return SPACE
+
+            return NO
+
+        elif prev.type == token.COLON:
             return NO
 
     elif p.type == syms.atom:
diff --git a/tests/expression.py b/tests/expression.py
index a3c810e..30a20e9 100644
--- a/tests/expression.py
+++ b/tests/expression.py
@@ -88,6 +88,7 @@ slice[:]
 slice[:-1]
 slice[1:]
 slice[::-1]
+numpy[:, 0:1]
 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
 {'2.7': dead, '3.7': long_live or die_hard}
 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
@@ -219,6 +220,7 @@ slice[:]
 slice[:-1]
 slice[1:]
 slice[::-1]
+numpy[:, 0:1]
 (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None)
 {'2.7': dead, '3.7': long_live or die_hard}
 {'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'}
-- 
2.39.5