third_party.pigweed.src/pw_cmd/py/setup.py

43 lines
1.2 KiB
Python
Raw Normal View History

pw_cmd: Convert 'pw' into Python module; tweaks This reworks the 'pw' single-file script into a proper Python module with a setup.py and appropriate main() handling. It also splits the 'watch' command into a separate file. This is the first step in adding more 'pw' subcommands. Other minor tweaks: - Drop coloredlogs dependency in favor of simpler solution - Make level log component 3 characters only - Change colors to better separate command output from logs - Make a new "logdemo" command to illustrate all log levels - Make a new "help" command to show top-level help - Put some space around command output for visual separation New 'pw help' output -------------------- % pw help ▒█████▄ █▓ ▄███▒ ▒█ ▒█ ░▓████▒ ░▓████▒ ▒▓████▄ ▒█░ █░ ░█▒ ██▒ ▀█▒ ▒█░ █ ▒█ ▒█ ▀ ▒█ ▀ ▒█ ▀█▌ ▒█▄▄▄█░ ░█▒ █▓░ ▄▄░ ▒█░ █ ▒█ ▒███ ▒███ ░█ █▌ ▒█▀ ░█░ ▓█ █▓ ░█░ █ ▒█ ▒█ ▄ ▒█ ▄ ░█ ▄█▌ ▒█ ░█░ ░▓███▀ ▒█▓▀▓█░ ░▓████▒ ░▓████▒ ▒▓████▀ usage: pw [-h] {help,watch,logdemo} ... The Pigweed command line interface (CLI) Example uses: pw watch Watch for changes and re-build pw logdemo Show log examples positional arguments: {help,watch,logdemo} pw subcommand to run help Show the Pigweed CLI help watch Watch files for changes logdemo Show how logs look at different levels optional arguments: -h, --help show this help message and exit Change-Id: I8730f0fdd7fef91c4c4a5ba40e7251b45ee38b83
2019-11-21 23:48:02 +00:00
# Copyright 2019 The Pigweed 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
#
# https://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.
"""pw_cmd"""
import unittest
import setuptools
def test_suite():
"""Test suite for pw_cmd module."""
return unittest.TestLoader().discover('./', pattern='*_test.py')
setuptools.setup(
name='pw_cmd',
version='0.0.1',
author='Pigweed Authors',
author_email='pigweed-developers@googlegroups.com',
description='Pigweed swiss-army knife',
packages=setuptools.find_packages(),
test_suite='setup.test_suite',
entry_points={
'console_scripts': [
'pw = pw_cmd.__main__:main'
]
},
install_requires=[
'watchdog',
],
)