Skip to content

Commit f941eb8

Browse files
committed
Consolidate entry points
1 parent c6934c7 commit f941eb8

4 files changed

Lines changed: 77 additions & 41 deletions

File tree

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ def get_version_and_cmdclass(pkg_path):
5151
name='teensytoany',
5252
entry_points={
5353
'console_scripts': [
54-
'teensytoany_programmer=teensytoany.programmer:teensytoany_programmer',
54+
'teensytoany=teensytoany.cli:teensytoany_cli',
55+
'teensytoany_programmer=teensytoany.programmer:main',
5556
'teensytoany_i2c_scan=teensytoany.i2c_scan:main',
5657
'teensytoany_list=teensytoany.list:main',
5758
],

teensytoany/i2c_scan.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import click
2+
import warnings
23
from packaging.version import Version
34

45
import teensytoany
@@ -52,6 +53,7 @@ def main(
5253
baud_rate=100_100,
5354
verbose=False,
5455
):
56+
click.echo("WARNING: teensytoany_i2c_scan is deprecated. Use 'teensytoany i2c_scan' instead.", err=True)
5557
return i2c_scan(
5658
serial_number=serial_number,
5759
interface=interface,

teensytoany/list.py

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,32 @@
11
import sys
2+
import warnings
23

34
import click
45

56
import teensytoany
67
from teensytoany import TeensyToAny
78

89

10+
def teensytoany_list(
11+
manufacturer="TeensyToAny",
12+
teensyduino=False,
13+
):
14+
"""
15+
List available TeensyToAny devices.
16+
"""
17+
if teensyduino:
18+
manufacturer = "Teensyduino"
19+
20+
try:
21+
device_serial_numbers = TeensyToAny.device_serial_number_pairs(manufacturer=manufacturer)
22+
except RuntimeError:
23+
click.echo(f"Error: Could not find any devices with manufacturer '{manufacturer}'.")
24+
sys.exit(1)
25+
26+
for device, serial_number in device_serial_numbers:
27+
click.echo(f"Port: {device} -- Serial Number: {serial_number}")
28+
29+
930
@click.command(epilog=f"Version {teensytoany.__version__}")
1031
@click.option(
1132
'--manufacturer',
@@ -31,14 +52,8 @@ def main(
3152
"""
3253
List available TeensyToAny devices.
3354
"""
34-
if teensyduino:
35-
manufacturer = "Teensyduino"
36-
37-
try:
38-
device_serial_numbers = TeensyToAny.device_serial_number_pairs(manufacturer=manufacturer)
39-
except RuntimeError:
40-
click.echo(f"Error: Could not find any devices with manufacturer '{manufacturer}'.")
41-
sys.exit(1)
42-
43-
for device, serial_number in device_serial_numbers:
44-
click.echo(f"Port: {device} -- Serial Number: {serial_number}")
55+
click.echo("WARNING: teensytoany_list is deprecated. Use 'teensytoany list' instead.", err=True)
56+
teensytoany_list(
57+
manufacturer=manufacturer,
58+
teensyduino=teensyduino,
59+
)

teensytoany/programmer.py

Lines changed: 47 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,45 @@
33
import teensytoany
44

55

6+
def teensytoany_programmer(
7+
serial_number=None,
8+
mcu='TEENSY40',
9+
firmware_version=None,
10+
firmware_variant=None,
11+
download_only=False
12+
):
13+
"""Program a Teensy device with a given firmware version"""
14+
variant_str = f"variant {firmware_variant} of " if firmware_variant else ""
15+
if download_only:
16+
for mcu_to_download in ['TEENSY40', 'TEENSY32']:
17+
if firmware_version is None:
18+
firmware_version = teensytoany.TeensyToAny.get_latest_available_firmware_version(
19+
mcu=mcu_to_download, online=True, local=False
20+
)
21+
print(
22+
f"Downloading {variant_str} firmware version {firmware_version} "
23+
f"for {mcu_to_download}."
24+
)
25+
teensytoany.TeensyToAny.download_firmware(
26+
mcu=mcu_to_download,
27+
version=firmware_version,
28+
variant=firmware_variant
29+
)
30+
return
31+
32+
print('Programming please wait...')
33+
teensytoany.TeensyToAny.program_firmware(
34+
serial_number,
35+
mcu=mcu,
36+
version=firmware_version,
37+
variant=firmware_variant
38+
)
39+
with teensytoany.TeensyToAny(serial_number) as teensy:
40+
print(f"TeensyToAny version: {teensy.version}")
41+
print(f"TeensyToAny variant: {firmware_variant}")
42+
print(f"TeensyToAny serial_number: {teensy.serial_number}")
43+
44+
645
@click.command(epilog=f"Version {teensytoany.__version__}")
746
@click.option(
847
'--serial-number',
@@ -40,44 +79,23 @@
4079
)
4180
# Make the epligue print the version
4281
@click.version_option(teensytoany.__version__)
43-
def teensytoany_programmer(
82+
def main(
4483
serial_number=None,
4584
mcu='TEENSY40',
4685
firmware_version=None,
4786
firmware_variant=None,
4887
download_only=False
4988
):
5089
"""Program a Teensy device with a given firmware version"""
51-
variant_str = f"variant {firmware_variant} of " if firmware_variant else ""
52-
if download_only:
53-
for mcu_to_download in ['TEENSY40', 'TEENSY32']:
54-
if firmware_version is None:
55-
firmware_version = teensytoany.TeensyToAny.get_latest_available_firmware_version(
56-
mcu=mcu_to_download, online=True, local=False
57-
)
58-
print(
59-
f"Downloading {variant_str} firmware version {firmware_version} "
60-
f"for {mcu_to_download}."
61-
)
62-
teensytoany.TeensyToAny.download_firmware(
63-
mcu=mcu_to_download,
64-
version=firmware_version,
65-
variant=firmware_variant
66-
)
67-
return
68-
69-
print('Programming please wait...')
70-
teensytoany.TeensyToAny.program_firmware(
71-
serial_number,
90+
click.echo("WARNING: teensytoany_programmer is deprecated. Use 'teensytoany programmer' instead.", err=True)
91+
teensytoany_programmer(
92+
serial_number=serial_number,
7293
mcu=mcu,
73-
version=firmware_version,
74-
variant=firmware_variant
94+
firmware_version=firmware_version,
95+
firmware_variant=firmware_variant,
96+
download_only=download_only
7597
)
76-
with teensytoany.TeensyToAny(serial_number) as teensy:
77-
print(f"TeensyToAny version: {teensy.version}")
78-
print(f"TeensyToAny variant: {firmware_variant}")
79-
print(f"TeensyToAny serial_number: {teensy.serial_number}")
8098

8199

82100
if __name__ == '__main__':
83-
teensytoany_programmer()
101+
main()

0 commit comments

Comments
 (0)