aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAng Li <angli@google.com>2024-01-30 22:47:58 -0800
committerGitHub <noreply@github.com>2024-01-30 22:47:58 -0800
commit7b938e0579ce4bf5f183b19bab8d7273674752b5 (patch)
treecf74cb1a943c4b229985cbd26c914e25e485e213
parent68724d8fa39e779c7d6f960a7f4d4822ae26903c (diff)
downloadmobly-7b938e0579ce4bf5f183b19bab8d7273674752b5.tar.gz
Switch to pyproject.toml completely (#911)
* Remove `setup.py` and `setup.cfg` * Remove `typing_extensions` as we now require Python 3.11+.
-rw-r--r--mobly/utils.py9
-rw-r--r--pyproject.toml40
-rw-r--r--setup.cfg6
-rwxr-xr-xsetup.py71
4 files changed, 40 insertions, 86 deletions
diff --git a/mobly/utils.py b/mobly/utils.py
index 3964a81..64dc3f1 100644
--- a/mobly/utils.py
+++ b/mobly/utils.py
@@ -30,17 +30,10 @@ import subprocess
import threading
import time
import traceback
-from typing import Tuple, overload
+from typing import Literal, Tuple, overload
import portpicker
-# TODO(#851): Remove this try/except statement and typing_extensions from
-# install_requires when Python 3.8 is the minimum version we support.
-try:
- from typing import Literal
-except ImportError:
- from typing_extensions import Literal
-
# File name length is limited to 255 chars on some OS, so we need to make sure
# the file names we output fits within the limit.
MAX_FILENAME_LEN = 255
diff --git a/pyproject.toml b/pyproject.toml
index ecf4aa7..dafc7af 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,44 @@
+[build-system]
+requires = [ "setuptools>=61.2",]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "mobly"
+version = "1.12.2"
+description = "Automation framework for special end-to-end test cases"
+requires-python = ">=3.11"
+dependencies = [ "portpicker", "pywin32; platform_system == \"Windows\"", "pyyaml",]
+
+[[project.maintainers]]
+name = "Ang Li"
+email = "mobly-github@googlegroups.com"
+
+[project.license]
+text = "Apache2.0"
+
+[project.urls]
+Homepage = "https://github.com/google/mobly"
+Download = "https://github.com/google/mobly/tarball/1.12.2"
+
+[project.optional-dependencies]
+testing = [ "mock", "pytest", "pytz",]
+
+[tool.setuptools]
+include-package-data = false
+script-files = [ "tools/sl4a_shell.py", "tools/snippet_shell.py",]
+
[tool.pyink]
line-length = 80
preview = true
pyink-indentation = 2
pyink-use-majority-quotes = true
-extend-exclude = '.*\/venv/.*|.*\/\.tox\/.*' \ No newline at end of file
+extend-exclude = '.*\/venv/.*|.*\/\.tox\/.*'
+
+[tool.pytest.ini_options]
+python_classes = [ "*Test",]
+python_files = [ "*_test.py",]
+testpaths = [ "tests/mobly",]
+
+[tool.setuptools.packages.find]
+exclude = [ "tests",]
+namespaces = false
diff --git a/setup.cfg b/setup.cfg
deleted file mode 100644
index 3b9eef9..0000000
--- a/setup.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-[metadata]
-description_file = README.md
-[tool:pytest]
-python_classes = *Test
-python_files = *_test.py
-testpaths = tests/mobly
diff --git a/setup.py b/setup.py
deleted file mode 100755
index d45f5fb..0000000
--- a/setup.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 2016 Google Inc.
-#
-# 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.
-
-import platform
-import setuptools
-from setuptools.command import test
-import sys
-
-install_requires = [
- 'portpicker',
- 'pyyaml',
- 'typing_extensions>=4.1.1; python_version>="3.11"',
-]
-
-if platform.system() == 'Windows':
- install_requires.append('pywin32')
-
-
-class PyTest(test.test):
- """Class used to execute unit tests using PyTest. This allows us to execute
- unit tests without having to install the package.
- """
-
- def finalize_options(self):
- test.test.finalize_options(self)
- self.test_args = ['-x', 'tests/mobly']
- self.test_suite = True
-
- def run_tests(self):
- import pytest
-
- errno = pytest.main(self.test_args)
- sys.exit(errno)
-
-
-def main():
- setuptools.setup(
- name='mobly',
- version='1.12.2',
- maintainer='Ang Li',
- maintainer_email='mobly-github@googlegroups.com',
- description='Automation framework for special end-to-end test cases',
- license='Apache2.0',
- url='https://github.com/google/mobly',
- download_url='https://github.com/google/mobly/tarball/1.12.2',
- packages=setuptools.find_packages(exclude=['tests']),
- include_package_data=False,
- scripts=['tools/sl4a_shell.py', 'tools/snippet_shell.py'],
- tests_require=[
- 'mock',
- 'pytest',
- 'pytz',
- ],
- install_requires=install_requires,
- cmdclass={'test': PyTest},
- )
-
-
-if __name__ == '__main__':
- main()