aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYilei Yang (杨一磊) <yileiyang@google.com>2022-06-01 13:34:06 -0700
committerYilei Yang (杨一磊) <yileiyang@google.com>2022-06-01 13:34:06 -0700
commit432398f4f280cf1aa5f31d1873d8a5a1468aa6f4 (patch)
treefaf738843747b43d4bc5f9b46ec8ea33436a62ad
parentce06222fa6feae6f7569310e7af6b9baa97e388a (diff)
parent6b3c1b8bdd9371d263793b0a4e5480802fd40f8c (diff)
downloadabsl-py-432398f4f280cf1aa5f31d1873d8a5a1468aa6f4.tar.gz
Merge commit for internal changes.
-rw-r--r--CHANGELOG.md5
-rw-r--r--WORKSPACE13
-rw-r--r--absl/BUILD7
-rw-r--r--absl/_collections_abc.py28
-rw-r--r--absl/flags/BUILD6
-rw-r--r--absl/flags/__init__.py5
-rw-r--r--absl/flags/_argument_parser.py37
-rw-r--r--absl/flags/_flag.py9
-rw-r--r--absl/flags/_flag.pyi2
-rw-r--r--absl/flags/_flagvalues.py70
-rw-r--r--absl/flags/_flagvalues.pyi1
-rw-r--r--absl/flags/_helpers.py8
-rw-r--r--absl/logging/BUILD1
-rw-r--r--absl/logging/__init__.py2
-rw-r--r--absl/testing/BUILD3
-rw-r--r--absl/testing/absltest.py2
-rw-r--r--absl/testing/parameterized.py6
-rw-r--r--absl/testing/tests/absltest_py3_test.py1
-rw-r--r--absl/testing/tests/parameterized_test.py2
-rw-r--r--setup.py7
-rwxr-xr-xsmoke_tests/smoke_test.sh4
-rw-r--r--third_party/BUILD2
-rw-r--r--third_party/six.BUILD14
23 files changed, 46 insertions, 189 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7b41a67..3c36751 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,9 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com).
## Unreleased
+Nothing notable unreleased.
+
+## 1.1.0 (2022-06-01)
+
* `Flag` instances now raise an error if used in a bool context. This prevents
the occasional mistake of testing an instance for truthiness rather than
testing `flag.value`.
+* `absl-py` no longer depends on `six`.
## 1.0.0 (2021-11-09)
diff --git a/WORKSPACE b/WORKSPACE
index 1370aae..a964e21 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -12,16 +12,3 @@
# See the License for the specific language governing permissions and
# limitations under the License.
workspace(name = "io_abseil_py")
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-http_archive(
- name = "six_archive",
- build_file = "@//third_party:six.BUILD",
- sha256 = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a",
- strip_prefix = "six-1.10.0",
- urls = [
- "http://mirror.bazel.build/pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz",
- "https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz",
- ],
-)
diff --git a/absl/BUILD b/absl/BUILD
index 496b0e3..4e747ea 100644
--- a/absl/BUILD
+++ b/absl/BUILD
@@ -22,13 +22,6 @@ py_library(
)
py_library(
- name = "_collections_abc",
- srcs = ["_collections_abc.py"],
- visibility = [":__subpackages__"],
- deps = ["@six_archive//:six"],
-)
-
-py_library(
name = "tests/app_test_helper",
testonly = 1,
srcs = ["tests/app_test_helper.py"],
diff --git a/absl/_collections_abc.py b/absl/_collections_abc.py
deleted file mode 100644
index 1d06f05..0000000
--- a/absl/_collections_abc.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2019 The Abseil Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Python 2/3 compatibility module for collections.abc."""
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
-import six
-
-# pylint: disable=g-importing-member
-# pylint: disable=unused-import
-if six.PY3:
- from collections import abc
-else:
- import collections as abc
diff --git a/absl/flags/BUILD b/absl/flags/BUILD
index c180599..33a7b07 100644
--- a/absl/flags/BUILD
+++ b/absl/flags/BUILD
@@ -13,7 +13,6 @@ py_library(
":_flagvalues",
":_helpers",
":_validators",
- "@six_archive//:six",
],
)
@@ -31,7 +30,6 @@ py_library(
srcs_version = "PY2AND3",
deps = [
":_helpers",
- "@six_archive//:six",
],
)
@@ -66,8 +64,6 @@ py_library(
":_argument_parser",
":_exceptions",
":_helpers",
- "//absl:_collections_abc",
- "@six_archive//:six",
],
)
@@ -80,7 +76,6 @@ py_library(
":_flag",
":_helpers",
":_validators_classes",
- "@six_archive//:six",
],
)
@@ -88,7 +83,6 @@ py_library(
name = "_helpers",
srcs = ["_helpers.py"],
srcs_version = "PY2AND3",
- deps = ["@six_archive//:six"],
)
py_library(
diff --git a/absl/flags/__init__.py b/absl/flags/__init__.py
index 99501bb..e6014a6 100644
--- a/absl/flags/__init__.py
+++ b/absl/flags/__init__.py
@@ -25,10 +25,6 @@ The specific function used determines how the flag is parsed, checked,
and optionally type-converted, when it's seen on the command line.
"""
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
import getopt
import os
import re
@@ -43,7 +39,6 @@ from absl.flags import _flag
from absl.flags import _flagvalues
from absl.flags import _helpers
from absl.flags import _validators
-import six
# Initialize the FLAGS_MODULE as early as possible.
# It's only used by adopt_module_key_flags to take SPECIAL_FLAGS into account.
diff --git a/absl/flags/_argument_parser.py b/absl/flags/_argument_parser.py
index 4f6bd69..9c6c8c6 100644
--- a/absl/flags/_argument_parser.py
+++ b/absl/flags/_argument_parser.py
@@ -18,22 +18,17 @@ Do NOT import this module directly. Import the flags package and use the
aliases defined at the package level instead.
"""
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
import collections
import csv
import io
import string
from absl.flags import _helpers
-import six
def _is_integer_type(instance):
"""Returns True if instance is an integer, and not a bool."""
- return (isinstance(instance, six.integer_types) and
+ return (isinstance(instance, int) and
not isinstance(instance, bool))
@@ -95,7 +90,7 @@ class _ArgumentParserCache(type):
# inherit from `ArgumentParser` and not `ArgumentParser[SomeType]`.
# The corresponding DEFINE_someType method (the public API) can be annotated
# to return FlagHolder[SomeType].
-class ArgumentParser(six.with_metaclass(_ArgumentParserCache, object)):
+class ArgumentParser(metaclass=_ArgumentParserCache):
"""Base class used to parse and convert arguments.
The parse() method checks to make sure that the string argument is a
@@ -128,7 +123,7 @@ class ArgumentParser(six.with_metaclass(_ArgumentParserCache, object)):
Returns:
The parsed value in native type.
"""
- if not isinstance(argument, six.string_types):
+ if not isinstance(argument, str):
raise TypeError('flag value must be a string, found "{}"'.format(
type(argument)))
return argument
@@ -228,7 +223,7 @@ class FloatParser(NumericParser):
def convert(self, argument):
"""Returns the float value of argument."""
if (_is_integer_type(argument) or isinstance(argument, float) or
- isinstance(argument, six.string_types)):
+ isinstance(argument, str)):
return float(argument)
else:
raise TypeError(
@@ -274,7 +269,7 @@ class IntegerParser(NumericParser):
"""Returns the int value of argument."""
if _is_integer_type(argument):
return argument
- elif isinstance(argument, six.string_types):
+ elif isinstance(argument, str):
base = 10
if len(argument) > 2 and argument[0] == '0':
if argument[1] == 'o':
@@ -296,14 +291,14 @@ class BooleanParser(ArgumentParser):
def parse(self, argument):
"""See base class."""
- if isinstance(argument, six.string_types):
+ if isinstance(argument, str):
if argument.lower() in ('true', 't', '1'):
return True
elif argument.lower() in ('false', 'f', '0'):
return False
else:
raise ValueError('Non-boolean argument to boolean flag', argument)
- elif isinstance(argument, six.integer_types):
+ elif isinstance(argument, int):
# Only allow bool or integer 0, 1.
# Note that float 1.0 == True, 0.0 == False.
bool_value = bool(argument)
@@ -433,7 +428,7 @@ class EnumClassParser(ArgumentParser):
"""
if isinstance(argument, self.enum_class):
return argument
- elif not isinstance(argument, six.string_types):
+ elif not isinstance(argument, str):
raise ValueError(
'{} is not an enum member or a name of a member in {}'.format(
argument, self.enum_class))
@@ -496,18 +491,10 @@ class CsvListSerializer(ArgumentSerializer):
def serialize(self, value):
"""Serializes a list as a CSV string or unicode."""
- if six.PY2:
- # In Python2 csv.writer doesn't accept unicode, so we convert to UTF-8.
- output = io.BytesIO()
- writer = csv.writer(output, delimiter=self.list_sep)
- writer.writerow([unicode(x).encode('utf-8') for x in value]) # pylint: disable=undefined-variable
- serialized_value = output.getvalue().decode('utf-8').strip()
- else:
- # In Python3 csv.writer expects a text stream.
- output = io.StringIO()
- writer = csv.writer(output, delimiter=self.list_sep)
- writer.writerow([str(x) for x in value])
- serialized_value = output.getvalue().strip()
+ output = io.StringIO()
+ writer = csv.writer(output, delimiter=self.list_sep)
+ writer.writerow([str(x) for x in value])
+ serialized_value = output.getvalue().strip()
# We need the returned value to be pure ascii or Unicodes so that
# when the xml help is generated they are usefully encodable.
diff --git a/absl/flags/_flag.py b/absl/flags/_flag.py
index a1c53ff..d7ad944 100644
--- a/absl/flags/_flag.py
+++ b/absl/flags/_flag.py
@@ -18,18 +18,13 @@ Do NOT import this module directly. Import the flags package and use the
aliases defined at the package level instead.
"""
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
+from collections import abc
import copy
import functools
-from absl._collections_abc import abc
from absl.flags import _argument_parser
from absl.flags import _exceptions
from absl.flags import _helpers
-import six
@functools.total_ordering
@@ -411,7 +406,7 @@ class MultiFlag(Flag):
def _parse(self, arguments):
if (isinstance(arguments, abc.Iterable) and
- not isinstance(arguments, six.string_types)):
+ not isinstance(arguments, str)):
arguments = list(arguments)
if not isinstance(arguments, list):
diff --git a/absl/flags/_flag.pyi b/absl/flags/_flag.pyi
index f28bbf3..9b4a3d3 100644
--- a/absl/flags/_flag.pyi
+++ b/absl/flags/_flag.pyi
@@ -17,10 +17,8 @@
import copy
import functools
-from absl._collections_abc import abc
from absl.flags import _argument_parser
import enum
-import six
from typing import Text, TypeVar, Generic, Iterable, Type, List, Optional, Any, Union, Sequence
diff --git a/absl/flags/_flagvalues.py b/absl/flags/_flagvalues.py
index c9be720..1b54fb3 100644
--- a/absl/flags/_flagvalues.py
+++ b/absl/flags/_flagvalues.py
@@ -17,36 +17,26 @@ Do NOT import this module directly. Import the flags package and use the
aliases defined at the package level instead.
"""
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
import copy
import itertools
import logging
import os
import sys
+from typing import Generic, TypeVar
from xml.dom import minidom
from absl.flags import _exceptions
from absl.flags import _flag
from absl.flags import _helpers
from absl.flags import _validators_classes
-import six
-
-# pylint: disable=unused-import
-try:
- import typing
- from typing import Text, Optional
-except ImportError:
- typing = None
-# pylint: enable=unused-import
# Add flagvalues module to disclaimed module ids.
_helpers.disclaim_module_ids.add(id(sys.modules[__name__]))
+_T = TypeVar('_T')
+
-class FlagValues(object):
+class FlagValues:
"""Registry of 'Flag' objects.
A 'FlagValues' can then scan command line arguments, passing flag
@@ -247,7 +237,7 @@ class FlagValues(object):
for flags_by_module_dict in (self.flags_by_module_dict(),
self.flags_by_module_id_dict(),
self.key_flags_by_module_dict()):
- for flags_in_module in six.itervalues(flags_by_module_dict):
+ for flags_in_module in flags_by_module_dict.values():
# While (as opposed to if) takes care of multiple occurrences of a
# flag in the list for the same module.
while flag_obj in flags_in_module:
@@ -313,7 +303,7 @@ class FlagValues(object):
registered_flag = self._flags().get(flagname)
if registered_flag is None:
return default
- for module, flags in six.iteritems(self.flags_by_module_dict()):
+ for module, flags in self.flags_by_module_dict().items():
for flag in flags:
# It must compare the flag with the one in _flags. This is because a
# flag might be overridden only for its long name (or short name),
@@ -338,7 +328,7 @@ class FlagValues(object):
registered_flag = self._flags().get(flagname)
if registered_flag is None:
return default
- for module_id, flags in six.iteritems(self.flags_by_module_id_dict()):
+ for module_id, flags in self.flags_by_module_id_dict().items():
for flag in flags:
# It must compare the flag with the one in _flags. This is because a
# flag might be overridden only for its long name (or short name),
@@ -389,7 +379,7 @@ class FlagValues(object):
Args:
flag_values: FlagValues, the FlagValues instance from which to copy flags.
"""
- for flag_name, flag in six.iteritems(flag_values._flags()): # pylint: disable=protected-access
+ for flag_name, flag in flag_values._flags().items(): # pylint: disable=protected-access
# Each flags with short_name appears here twice (once under its
# normal name, and again with its short name). To prevent
# problems (DuplicateFlagError) with double flag registration, we
@@ -485,18 +475,8 @@ class FlagValues(object):
if self.__dict__['__flags_parsed'] or fl[name].present:
return fl[name].value
else:
- error_message = ('Trying to access flag --%s before flags were parsed.' %
- name)
- if six.PY2:
- # In Python 2, hasattr returns False if getattr raises any exception.
- # That means if someone calls hasattr(FLAGS, 'flag'), it returns False
- # instead of raises UnparsedFlagAccessError even if --flag is already
- # defined. To make the error more visible, the best we can do is to
- # log an error message before raising the exception.
- # Don't log a full stacktrace here since that makes other callers
- # get too much noise.
- logging.error(error_message)
- raise _exceptions.UnparsedFlagAccessError(error_message)
+ raise _exceptions.UnparsedFlagAccessError(
+ 'Trying to access flag --%s before flags were parsed.' % name)
def __setattr__(self, name, value):
"""Sets the 'value' attribute of the flag --name."""
@@ -507,7 +487,7 @@ class FlagValues(object):
"""Sets multiple flag values together, triggers validators afterwards."""
fl = self._flags()
known_flags = set()
- for name, value in six.iteritems(attributes):
+ for name, value in attributes.items():
if name in self.__dict__['__hiddenflags']:
raise AttributeError(name)
if name in fl:
@@ -528,7 +508,7 @@ class FlagValues(object):
validator.
"""
all_validators = set()
- for flag in six.itervalues(self._flags()):
+ for flag in self._flags().values():
all_validators.update(flag.validators)
self._assert_validators(all_validators)
@@ -858,7 +838,7 @@ class FlagValues(object):
def flag_values_dict(self):
"""Returns a dictionary that maps flag names to flag values."""
- return {name: flag.value for name, flag in six.iteritems(self._flags())}
+ return {name: flag.value for name, flag in self._flags().items()}
def __str__(self):
"""Returns a help string for all known flags."""
@@ -887,11 +867,10 @@ class FlagValues(object):
else:
output_lines = []
# Just print one long list of flags.
- values = six.itervalues(self._flags())
+ values = self._flags().values()
if include_special_flags:
- values = itertools.chain(values,
- six.itervalues(
- _helpers.SPECIAL_FLAGS._flags())) # pylint: disable=protected-access
+ values = itertools.chain(
+ values, _helpers.SPECIAL_FLAGS._flags().values()) # pylint: disable=protected-access
self._render_flag_list(values, output_lines, prefix)
return '\n'.join(output_lines)
@@ -912,7 +891,7 @@ class FlagValues(object):
if include_special_flags:
self._render_module_flags(
'absl.flags',
- six.itervalues(_helpers.SPECIAL_FLAGS._flags()), # pylint: disable=protected-access
+ _helpers.SPECIAL_FLAGS._flags().values(), # pylint: disable=protected-access
output_lines,
prefix)
return '\n'.join(output_lines)
@@ -1291,11 +1270,8 @@ class FlagValues(object):
is_key=is_key))
outfile = outfile or sys.stdout
- if six.PY2:
- outfile.write(doc.toprettyxml(indent=' ', encoding='utf-8'))
- else:
- outfile.write(
- doc.toprettyxml(indent=' ', encoding='utf-8').decode('utf-8'))
+ outfile.write(
+ doc.toprettyxml(indent=' ', encoding='utf-8').decode('utf-8'))
outfile.flush()
def _check_method_name_conflicts(self, name, flag):
@@ -1316,14 +1292,8 @@ class FlagValues(object):
FLAGS = FlagValues()
-if typing:
- _T = typing.TypeVar('_T')
- _Base = typing.Generic[_T]
-else:
- _Base = object
-
-class FlagHolder(_Base):
+class FlagHolder(Generic[_T]):
"""Holds a defined flag.
This facilitates a cleaner api around global state. Instead of
diff --git a/absl/flags/_flagvalues.pyi b/absl/flags/_flagvalues.pyi
index 9f1e1a5..e25c6dd 100644
--- a/absl/flags/_flagvalues.pyi
+++ b/absl/flags/_flagvalues.pyi
@@ -16,7 +16,6 @@
from absl.flags import _flag
-import six
from typing import Any, Dict, Generic, Iterable, Iterator, List, Optional, Sequence, Text, Type, TypeVar
diff --git a/absl/flags/_helpers.py b/absl/flags/_helpers.py
index 68b8cfc..37ae360 100644
--- a/absl/flags/_helpers.py
+++ b/absl/flags/_helpers.py
@@ -34,9 +34,6 @@ try:
except ImportError:
termios = None
-import six
-from six.moves import range # pylint: disable=redefined-builtin
-
_DEFAULT_HELP_WIDTH = 80 # Default width of help output.
_MIN_HELP_WIDTH = 40 # Minimal "sane" width of help output. We assume that any
@@ -172,9 +169,6 @@ def create_xml_dom_element(doc, name, value):
An instance of minidom.Element.
"""
s = str_or_unicode(value)
- if six.PY2 and not isinstance(s, unicode):
- # Get a valid unicode string.
- s = s.decode('utf-8', 'ignore')
if isinstance(value, bool):
# Display boolean values as the C++ flag library does: no caps.
s = s.lower()
@@ -340,7 +334,7 @@ def flag_dict_to_args(flag_map, multi_flags=None):
Yields:
sequence of string suitable for a subprocess execution.
"""
- for key, value in six.iteritems(flag_map):
+ for key, value in flag_map.items():
if value is None:
yield '--%s' % key
elif isinstance(value, bool):
diff --git a/absl/logging/BUILD b/absl/logging/BUILD
index e666d7a..6c0d1bc 100644
--- a/absl/logging/BUILD
+++ b/absl/logging/BUILD
@@ -7,7 +7,6 @@ py_library(
visibility = ["//visibility:public"],
deps = [
":converter",
- "//absl:_collections_abc",
"//absl/flags",
],
)
diff --git a/absl/logging/__init__.py b/absl/logging/__init__.py
index a475bd5..8804490 100644
--- a/absl/logging/__init__.py
+++ b/absl/logging/__init__.py
@@ -72,6 +72,7 @@ The differences in behavior are historical and unfortunate.
"""
import collections
+from collections import abc
import getpass
import io
import itertools
@@ -88,7 +89,6 @@ import types
import warnings
from absl import flags
-from absl._collections_abc import abc
from absl.logging import converter
try:
diff --git a/absl/testing/BUILD b/absl/testing/BUILD
index 6dbbaea..b608c8c 100644
--- a/absl/testing/BUILD
+++ b/absl/testing/BUILD
@@ -8,7 +8,6 @@ py_library(
deps = [
":_pretty_print_reporter",
":xml_reporter",
- "//absl:_collections_abc",
"//absl:app",
"//absl/flags",
"//absl/logging",
@@ -34,7 +33,6 @@ py_library(
visibility = ["//visibility:public"],
deps = [
":absltest",
- "//absl:_collections_abc",
],
)
@@ -225,7 +223,6 @@ py_test(
deps = [
":absltest",
":parameterized",
- "//absl:_collections_abc",
],
)
diff --git a/absl/testing/absltest.py b/absl/testing/absltest.py
index 1303fd4..cebb1ca 100644
--- a/absl/testing/absltest.py
+++ b/absl/testing/absltest.py
@@ -18,6 +18,7 @@ This module contains base classes and high-level functions for Abseil-style
tests.
"""
+from collections import abc
import contextlib
import difflib
import enum
@@ -55,7 +56,6 @@ except ImportError:
from absl import app
from absl import flags
from absl import logging
-from absl._collections_abc import abc
from absl.testing import _pretty_print_reporter
from absl.testing import xml_reporter
diff --git a/absl/testing/parameterized.py b/absl/testing/parameterized.py
index f318b98..ec6a529 100644
--- a/absl/testing/parameterized.py
+++ b/absl/testing/parameterized.py
@@ -204,10 +204,7 @@ as [asynctest](https://github.com/Martiusweb/asynctest):
self.assertEqual(actual, expected)
"""
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
+from collections import abc
import functools
import inspect
import itertools
@@ -215,7 +212,6 @@ import re
import types
import unittest
-from absl._collections_abc import abc
from absl.testing import absltest
diff --git a/absl/testing/tests/absltest_py3_test.py b/absl/testing/tests/absltest_py3_test.py
index d39b501..7c5f500 100644
--- a/absl/testing/tests/absltest_py3_test.py
+++ b/absl/testing/tests/absltest_py3_test.py
@@ -1,4 +1,3 @@
-# Lint as: python3
# Copyright 2020 The Abseil Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/absl/testing/tests/parameterized_test.py b/absl/testing/tests/parameterized_test.py
index 7f63d01..8acbd93 100644
--- a/absl/testing/tests/parameterized_test.py
+++ b/absl/testing/tests/parameterized_test.py
@@ -14,10 +14,10 @@
"""Tests for absl.testing.parameterized."""
+from collections import abc
import sys
import unittest
-from absl._collections_abc import abc
from absl.testing import absltest
from absl.testing import parameterized
diff --git a/setup.py b/setup.py
index bf67a9f..13b2353 100644
--- a/setup.py
+++ b/setup.py
@@ -31,10 +31,6 @@ except ImportError:
if sys.version_info < (3, 6):
raise RuntimeError('Python version 3.6+ is required.')
-INSTALL_REQUIRES = [
- 'six',
-]
-
setuptools_version = tuple(
int(x) for x in setuptools.__version__.split('.')[:2])
@@ -51,7 +47,7 @@ with open(_README_PATH, 'rb') as fp:
setuptools.setup(
name='absl-py',
- version='1.0.0',
+ version='1.1.0',
description=(
'Abseil Python Common Libraries, '
'see https://github.com/abseil/abseil-py.'),
@@ -62,7 +58,6 @@ setuptools.setup(
packages=setuptools.find_packages(exclude=[
'*.tests', '*.tests.*', 'tests.*', 'tests',
]),
- install_requires=INSTALL_REQUIRES,
include_package_data=True,
license='Apache 2.0',
classifiers=[
diff --git a/smoke_tests/smoke_test.sh b/smoke_tests/smoke_test.sh
index cde5185..99307a4 100755
--- a/smoke_tests/smoke_test.sh
+++ b/smoke_tests/smoke_test.sh
@@ -54,8 +54,7 @@ set -u
trap 'deactivate' EXIT
# When running macOS <= 10.12, pip 9.0.3 is required to connect to PyPI.
-# So we need to manually use the latest pip to install `six`,
-# then install absl-py. See:
+# So we need to manually use the latest pip to install absl-py. See:
# https://mail.python.org/pipermail/distutils-sig/2018-April/032114.html
if [[ "$(python -c "import sys; print(sys.version_info.major, sys.version_info.minor)")" == "3 6" ]]; then
# Latest get-pip.py no longer supports Python 3.6.
@@ -64,7 +63,6 @@ else
curl https://bootstrap.pypa.io/get-pip.py | python
fi
pip --version
-pip install six
python --version
python setup.py install
diff --git a/third_party/BUILD b/third_party/BUILD
deleted file mode 100644
index 7b80db4..0000000
--- a/third_party/BUILD
+++ /dev/null
@@ -1,2 +0,0 @@
-# This BUILD file is empty. It is only needed so that this directory is a bazel
-# package and its files can be referenced by `http_archive.build_file`.
diff --git a/third_party/six.BUILD b/third_party/six.BUILD
deleted file mode 100644
index a1b2f7b..0000000
--- a/third_party/six.BUILD
+++ /dev/null
@@ -1,14 +0,0 @@
-# Description:
-# Six provides simple utilities for wrapping over differences between Python 2
-# and Python 3.
-
-licenses(["notice"]) # MIT
-
-exports_files(["LICENSE"])
-
-py_library(
- name = "six",
- srcs = ["six.py"],
- srcs_version = "PY2AND3",
- visibility = ["//visibility:public"],
-)