Open-AutoTools 0.0.4rc2__tar.gz → 0.0.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. open_autotools-0.0.6/Open_AutoTools.egg-info/PKG-INFO +125 -0
  2. open_autotools-0.0.6/Open_AutoTools.egg-info/SOURCES.txt +115 -0
  3. open_autotools-0.0.6/Open_AutoTools.egg-info/entry_points.txt +12 -0
  4. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/Open_AutoTools.egg-info/requires.txt +14 -1
  5. open_autotools-0.0.6/PKG-INFO +125 -0
  6. open_autotools-0.0.6/README.md +63 -0
  7. open_autotools-0.0.6/autotools/autocaps/commands.py +34 -0
  8. open_autotools-0.0.6/autotools/autocolor/commands.py +60 -0
  9. open_autotools-0.0.6/autotools/autocolor/core.py +99 -0
  10. open_autotools-0.0.6/autotools/autoconvert/commands.py +79 -0
  11. open_autotools-0.0.6/autotools/autoconvert/conversion/convert_audio.py +24 -0
  12. open_autotools-0.0.6/autotools/autoconvert/conversion/convert_image.py +39 -0
  13. open_autotools-0.0.6/autotools/autoconvert/conversion/convert_text.py +101 -0
  14. open_autotools-0.0.6/autotools/autoconvert/conversion/convert_video.py +25 -0
  15. open_autotools-0.0.6/autotools/autoconvert/core.py +54 -0
  16. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autoip/commands.py +38 -1
  17. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autoip/core.py +99 -42
  18. open_autotools-0.0.6/autotools/autolower/commands.py +34 -0
  19. open_autotools-0.0.6/autotools/autonote/__init__.py +0 -0
  20. open_autotools-0.0.6/autotools/autonote/commands.py +70 -0
  21. open_autotools-0.0.6/autotools/autonote/core.py +106 -0
  22. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autopassword/commands.py +39 -1
  23. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autotest/commands.py +36 -6
  24. open_autotools-0.0.6/autotools/autotodo/__init__.py +87 -0
  25. open_autotools-0.0.6/autotools/autotodo/commands.py +115 -0
  26. open_autotools-0.0.6/autotools/autotodo/core.py +567 -0
  27. open_autotools-0.0.6/autotools/autounit/__init__.py +0 -0
  28. open_autotools-0.0.6/autotools/autounit/commands.py +55 -0
  29. open_autotools-0.0.6/autotools/autounit/core.py +36 -0
  30. open_autotools-0.0.6/autotools/autozip/__init__.py +0 -0
  31. open_autotools-0.0.6/autotools/autozip/commands.py +88 -0
  32. open_autotools-0.0.6/autotools/autozip/core.py +107 -0
  33. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/cli.py +66 -62
  34. open_autotools-0.0.6/autotools/utils/commands.py +144 -0
  35. open_autotools-0.0.6/autotools/utils/smoke.py +246 -0
  36. open_autotools-0.0.6/autotools/utils/text.py +73 -0
  37. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/requirements.txt +5 -1
  38. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/setup.py +10 -2
  39. open_autotools-0.0.6/tests/__init__.py +0 -0
  40. open_autotools-0.0.6/tests/autotools/autocolor/__init__.py +0 -0
  41. open_autotools-0.0.6/tests/autotools/autocolor/test_autocolor_core.py +299 -0
  42. open_autotools-0.0.6/tests/autotools/autocolor/test_autocolor_integration.py +153 -0
  43. open_autotools-0.0.6/tests/autotools/autoconvert/__init__.py +0 -0
  44. open_autotools-0.0.6/tests/autotools/autoconvert/conftest.py +63 -0
  45. open_autotools-0.0.6/tests/autotools/autoconvert/integration/__init__.py +0 -0
  46. open_autotools-0.0.6/tests/autotools/autoconvert/integration/test_convert_commands.py +187 -0
  47. open_autotools-0.0.6/tests/autotools/autoconvert/unit/__init__.py +0 -0
  48. open_autotools-0.0.6/tests/autotools/autoconvert/unit/test_convert_audio.py +58 -0
  49. open_autotools-0.0.6/tests/autotools/autoconvert/unit/test_convert_core.py +236 -0
  50. open_autotools-0.0.6/tests/autotools/autoconvert/unit/test_convert_image.py +165 -0
  51. open_autotools-0.0.6/tests/autotools/autoconvert/unit/test_convert_text.py +93 -0
  52. open_autotools-0.0.6/tests/autotools/autoconvert/unit/test_convert_video.py +60 -0
  53. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autoip/test_autoip_core.py +150 -25
  54. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autoip/test_autoip_integration.py +12 -5
  55. open_autotools-0.0.6/tests/autotools/autonote/__init__.py +0 -0
  56. open_autotools-0.0.6/tests/autotools/autonote/conftest.py +29 -0
  57. open_autotools-0.0.6/tests/autotools/autonote/test_autonote_core.py +177 -0
  58. open_autotools-0.0.6/tests/autotools/autonote/test_autonote_integration.py +210 -0
  59. open_autotools-0.0.6/tests/autotools/autotest/__init__.py +0 -0
  60. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autotest/test_autotest_core.py +16 -13
  61. open_autotools-0.0.6/tests/autotools/autotodo/__init__.py +0 -0
  62. open_autotools-0.0.6/tests/autotools/autotodo/conftest.py +41 -0
  63. open_autotools-0.0.6/tests/autotools/autotodo/test_autotodo_coverage.py +421 -0
  64. open_autotools-0.0.6/tests/autotools/autotodo/test_autotodo_file_operations.py +29 -0
  65. open_autotools-0.0.6/tests/autotools/autotodo/test_autotodo_integration.py +295 -0
  66. open_autotools-0.0.6/tests/autotools/autotodo/test_autotodo_operations.py +213 -0
  67. open_autotools-0.0.6/tests/autotools/autotodo/test_autotodo_sections.py +827 -0
  68. open_autotools-0.0.6/tests/autotools/autotodo/test_autotodo_tasks.py +680 -0
  69. open_autotools-0.0.6/tests/autotools/autotodo/test_autotodo_utils.py +217 -0
  70. open_autotools-0.0.6/tests/autotools/autounit/__init__.py +0 -0
  71. open_autotools-0.0.6/tests/autotools/autounit/test_autounit_core.py +215 -0
  72. open_autotools-0.0.6/tests/autotools/autounit/test_autounit_integration.py +136 -0
  73. open_autotools-0.0.6/tests/autotools/autozip/__init__.py +0 -0
  74. open_autotools-0.0.6/tests/autotools/autozip/test_autozip_core.py +585 -0
  75. open_autotools-0.0.6/tests/autotools/autozip/test_autozip_integration.py +337 -0
  76. open_autotools-0.0.6/tests/autotools/utils/__init__.py +0 -0
  77. open_autotools-0.0.6/tests/autotools/utils/test_commands_discovery.py +126 -0
  78. open_autotools-0.0.6/tests/autotools/utils/test_smoke.py +801 -0
  79. open_autotools-0.0.6/tests/autotools/utils/test_text.py +221 -0
  80. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/test_cli.py +174 -55
  81. open_autotools-0.0.4rc2/Open_AutoTools.egg-info/PKG-INFO +0 -91
  82. open_autotools-0.0.4rc2/Open_AutoTools.egg-info/SOURCES.txt +0 -57
  83. open_autotools-0.0.4rc2/Open_AutoTools.egg-info/entry_points.txt +0 -6
  84. open_autotools-0.0.4rc2/PKG-INFO +0 -91
  85. open_autotools-0.0.4rc2/README.md +0 -43
  86. open_autotools-0.0.4rc2/autotools/autocaps/commands.py +0 -13
  87. open_autotools-0.0.4rc2/autotools/autolower/commands.py +0 -13
  88. open_autotools-0.0.4rc2/autotools/utils/commands.py +0 -13
  89. open_autotools-0.0.4rc2/autotools/utils/text.py +0 -16
  90. open_autotools-0.0.4rc2/tests/autotools/utils/test_text.py +0 -93
  91. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/LICENSE +0 -0
  92. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/MANIFEST.in +0 -0
  93. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/Open_AutoTools.egg-info/dependency_links.txt +0 -0
  94. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/Open_AutoTools.egg-info/top_level.txt +0 -0
  95. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/__init__.py +0 -0
  96. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autocaps/__init__.py +0 -0
  97. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autocaps/core.py +0 -0
  98. {open_autotools-0.0.4rc2/autotools/autolower → open_autotools-0.0.6/autotools/autocolor}/__init__.py +0 -0
  99. {open_autotools-0.0.4rc2/tests → open_autotools-0.0.6/autotools/autoconvert}/__init__.py +0 -0
  100. {open_autotools-0.0.4rc2/tests/autotools/autotest → open_autotools-0.0.6/autotools/autoconvert/conversion}/__init__.py +0 -0
  101. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autoip/__init__.py +0 -0
  102. {open_autotools-0.0.4rc2/tests/autotools/utils → open_autotools-0.0.6/autotools/autolower}/__init__.py +0 -0
  103. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autolower/core.py +0 -0
  104. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autopassword/__init__.py +0 -0
  105. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autopassword/core.py +0 -0
  106. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/autotest/__init__.py +0 -0
  107. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/utils/__init__.py +0 -0
  108. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/utils/loading.py +0 -0
  109. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/utils/performance.py +0 -0
  110. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/utils/requirements.py +0 -0
  111. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/utils/updates.py +0 -0
  112. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/autotools/utils/version.py +0 -0
  113. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/pyproject.toml +0 -0
  114. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/setup.cfg +0 -0
  115. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autocaps/__init__.py +0 -0
  116. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autocaps/test_autocaps_core.py +0 -0
  117. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autocaps/test_autocaps_integration.py +0 -0
  118. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autoip/__init__.py +0 -0
  119. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autolower/__init__.py +0 -0
  120. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autolower/test_autolower_core.py +0 -0
  121. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autolower/test_autolower_integration.py +0 -0
  122. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autopassword/test_autopassword_core.py +0 -0
  123. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/autopassword/test_autopassword_integration.py +0 -0
  124. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/utils/test_performance.py +0 -0
  125. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/utils/test_requirements.py +0 -0
  126. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/utils/test_updates.py +0 -0
  127. {open_autotools-0.0.4rc2 → open_autotools-0.0.6}/tests/autotools/utils/test_version.py +0 -0
@@ -0,0 +1,125 @@
1
+ Metadata-Version: 2.4
2
+ Name: Open-AutoTools
3
+ Version: 0.0.6
4
+ Summary: A suite of automated tools accessible via CLI with a simple `autotools` command
5
+ Home-page: https://github.com/BabylooPro/Open-AutoTools
6
+ Author: BabylooPro
7
+ Author-email: maxremy.dev@gmail.com
8
+ License: MIT
9
+ Project-URL: Bug Tracker, https://github.com/BabylooPro/Open-AutoTools/issues
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Classifier: Operating System :: OS Independent
16
+ Requires-Python: >=3.10
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: click>=8.1.3
20
+ Requires-Dist: requests>=2.31.0
21
+ Requires-Dist: python-dotenv>=1.0.0
22
+ Requires-Dist: packaging>=23.0
23
+ Requires-Dist: halo>=0.0.31
24
+ Requires-Dist: pyperclip>=1.8.2
25
+ Requires-Dist: speedtest-cli>=2.1.3
26
+ Requires-Dist: psutil>=5.9.0
27
+ Requires-Dist: cryptography>=42.0.2
28
+ Requires-Dist: Pillow>=10.0.0
29
+ Requires-Dist: pillow-heif>=0.16.0
30
+ Requires-Dist: pydub>=0.25.1
31
+ Requires-Dist: moviepy>=1.0.3
32
+ Requires-Dist: pint>=0.23
33
+ Provides-Extra: dev
34
+ Requires-Dist: build>=1.4.0; extra == "dev"
35
+ Requires-Dist: wheel>=0.45.1; extra == "dev"
36
+ Requires-Dist: pytest>=7.4.0; extra == "dev"
37
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
38
+ Requires-Dist: pytest-sugar>=1.0.0; extra == "dev"
39
+ Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
40
+ Requires-Dist: pytest-timeout>=2.2.0; extra == "dev"
41
+ Provides-Extra: test
42
+ Requires-Dist: build>=1.4.0; extra == "test"
43
+ Requires-Dist: wheel>=0.45.1; extra == "test"
44
+ Requires-Dist: pytest>=7.4.0; extra == "test"
45
+ Requires-Dist: pytest-cov>=4.1.0; extra == "test"
46
+ Requires-Dist: pytest-sugar>=1.0.0; extra == "test"
47
+ Requires-Dist: pytest-xdist>=3.5.0; extra == "test"
48
+ Requires-Dist: pytest-timeout>=2.2.0; extra == "test"
49
+ Dynamic: author
50
+ Dynamic: author-email
51
+ Dynamic: classifier
52
+ Dynamic: description
53
+ Dynamic: description-content-type
54
+ Dynamic: home-page
55
+ Dynamic: license
56
+ Dynamic: license-file
57
+ Dynamic: project-url
58
+ Dynamic: provides-extra
59
+ Dynamic: requires-dist
60
+ Dynamic: requires-python
61
+ Dynamic: summary
62
+
63
+ # OPEN-AUTOTOOLS
64
+
65
+ [PYPI_BADGE]: https://badge.fury.io/py/Open-AutoTools.svg
66
+ [PYPI_URL]: https://pypi.org/project/Open-AutoTools/
67
+
68
+ [PYPI_DOWNLOADS_BADGE]: https://img.shields.io/pypi/dm/Open-AutoTools
69
+ [PYPI_DOWNLOADS_URL]: https://pypi.org/project/Open-AutoTools/
70
+
71
+ [PYTHON_BADGE]: https://img.shields.io/badge/Python-3.10+-blue.svg
72
+ [PYTHON_URL]: https://www.python.org/downloads/
73
+
74
+ [CHANGELOG_BADGE]: https://img.shields.io/badge/CHANGELOG-red.svg
75
+ [CHANGELOG_URL]: CHANGELOG.md
76
+
77
+ [TODO_BADGE]: https://img.shields.io/badge/TODO-purple.svg
78
+ [TODO_URL]: TODO.md
79
+
80
+ [![PyPI][PYPI_BADGE]][PYPI_URL]
81
+ [![Python][PYTHON_BADGE]][PYTHON_URL]
82
+ [![Downloads][PYPI_DOWNLOADS_BADGE]][PYPI_DOWNLOADS_URL]
83
+ [![CHANGELOG][CHANGELOG_BADGE]][CHANGELOG_URL]
84
+ [![TODO][TODO_BADGE]][TODO_URL]
85
+
86
+ Python CLI toolkit for everyday developer tasks. Boost productivity directly from your terminal.
87
+
88
+ https://github.com/user-attachments/assets/f959327b-b4ae-481d-8be0-c8957fb6ad36
89
+
90
+ ## Quick Install
91
+
92
+ ```bash
93
+ pip install open-autotools
94
+ ```
95
+
96
+ - **Platform**: Windows 10/11 ✓ | macOS ✓ | Linux ✓
97
+ - **Python**: 3.10 | 3.11 | 3.12 | 3.13 | 3.14
98
+
99
+ See [Installation Guide](docs/installation.md) for more details.
100
+
101
+ ## Tools
102
+
103
+ - **[AutoCaps](docs/tools/autocaps.md)** - Convert text to uppercase
104
+ - **[AutoLower](docs/tools/autolower.md)** - Convert text to lowercase
105
+ - **[AutoPassword](docs/tools/autopassword.md)** - Generate secure passwords and encryption keys
106
+ - **[AutoIP](docs/tools/autoip.md)** - Display network information and diagnostics
107
+ - **[AutoConvert](docs/tools/autoconvert.md)** - Convert text, images, audio, and video between formats
108
+ - **[AutoColor](docs/tools/autocolor.md)** - Convert color codes between different formats (hex, RGB, HSL, etc)
109
+ - **[AutoUnit](docs/tools/autounit.md)** - Convert measurement units (meters to feet, liters to gallons, etc)
110
+ - **[AutoZip](docs/tools/autozip.md)** - Compress files and directories into various archive formats (ZIP, TAR.GZ, TAR.BZ2, TAR.XZ, TAR)
111
+ - **[AutoTodo](docs/tools/autotodo.md)** - Create and manage a simple task list in a Markdown file
112
+ - **[AutoNote](docs/tools/autonote.md)** - Takes quick notes and saves them to a Markdown file
113
+ - **[Test Suite](docs/tools/autotest.md)** - Run the test suite (development only)
114
+
115
+ ## Documentation
116
+
117
+ - [Installation](docs/installation.md) - Install the CLI and verify your setup
118
+ - [Development](docs/development.md) - Dev environment, tooling, and contribution workflow
119
+ - [Testing](docs/testing.md) - Run tests, install test deps, and check coverage
120
+ - [Performance](docs/performance.md) - Performance metrics: what’s collected and how to enable them
121
+ - [Docker Support](docs/docker.md) - Run the toolkit and tests in Docker
122
+
123
+ ## License
124
+
125
+ MIT - see [LICENSE](LICENSE).
@@ -0,0 +1,115 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ requirements.txt
6
+ setup.py
7
+ Open_AutoTools.egg-info/PKG-INFO
8
+ Open_AutoTools.egg-info/SOURCES.txt
9
+ Open_AutoTools.egg-info/dependency_links.txt
10
+ Open_AutoTools.egg-info/entry_points.txt
11
+ Open_AutoTools.egg-info/requires.txt
12
+ Open_AutoTools.egg-info/top_level.txt
13
+ autotools/__init__.py
14
+ autotools/cli.py
15
+ autotools/autocaps/__init__.py
16
+ autotools/autocaps/commands.py
17
+ autotools/autocaps/core.py
18
+ autotools/autocolor/__init__.py
19
+ autotools/autocolor/commands.py
20
+ autotools/autocolor/core.py
21
+ autotools/autoconvert/__init__.py
22
+ autotools/autoconvert/commands.py
23
+ autotools/autoconvert/core.py
24
+ autotools/autoconvert/conversion/__init__.py
25
+ autotools/autoconvert/conversion/convert_audio.py
26
+ autotools/autoconvert/conversion/convert_image.py
27
+ autotools/autoconvert/conversion/convert_text.py
28
+ autotools/autoconvert/conversion/convert_video.py
29
+ autotools/autoip/__init__.py
30
+ autotools/autoip/commands.py
31
+ autotools/autoip/core.py
32
+ autotools/autolower/__init__.py
33
+ autotools/autolower/commands.py
34
+ autotools/autolower/core.py
35
+ autotools/autonote/__init__.py
36
+ autotools/autonote/commands.py
37
+ autotools/autonote/core.py
38
+ autotools/autopassword/__init__.py
39
+ autotools/autopassword/commands.py
40
+ autotools/autopassword/core.py
41
+ autotools/autotest/__init__.py
42
+ autotools/autotest/commands.py
43
+ autotools/autotodo/__init__.py
44
+ autotools/autotodo/commands.py
45
+ autotools/autotodo/core.py
46
+ autotools/autounit/__init__.py
47
+ autotools/autounit/commands.py
48
+ autotools/autounit/core.py
49
+ autotools/autozip/__init__.py
50
+ autotools/autozip/commands.py
51
+ autotools/autozip/core.py
52
+ autotools/utils/__init__.py
53
+ autotools/utils/commands.py
54
+ autotools/utils/loading.py
55
+ autotools/utils/performance.py
56
+ autotools/utils/requirements.py
57
+ autotools/utils/smoke.py
58
+ autotools/utils/text.py
59
+ autotools/utils/updates.py
60
+ autotools/utils/version.py
61
+ tests/__init__.py
62
+ tests/test_cli.py
63
+ tests/autotools/autocaps/__init__.py
64
+ tests/autotools/autocaps/test_autocaps_core.py
65
+ tests/autotools/autocaps/test_autocaps_integration.py
66
+ tests/autotools/autocolor/__init__.py
67
+ tests/autotools/autocolor/test_autocolor_core.py
68
+ tests/autotools/autocolor/test_autocolor_integration.py
69
+ tests/autotools/autoconvert/__init__.py
70
+ tests/autotools/autoconvert/conftest.py
71
+ tests/autotools/autoconvert/integration/__init__.py
72
+ tests/autotools/autoconvert/integration/test_convert_commands.py
73
+ tests/autotools/autoconvert/unit/__init__.py
74
+ tests/autotools/autoconvert/unit/test_convert_audio.py
75
+ tests/autotools/autoconvert/unit/test_convert_core.py
76
+ tests/autotools/autoconvert/unit/test_convert_image.py
77
+ tests/autotools/autoconvert/unit/test_convert_text.py
78
+ tests/autotools/autoconvert/unit/test_convert_video.py
79
+ tests/autotools/autoip/__init__.py
80
+ tests/autotools/autoip/test_autoip_core.py
81
+ tests/autotools/autoip/test_autoip_integration.py
82
+ tests/autotools/autolower/__init__.py
83
+ tests/autotools/autolower/test_autolower_core.py
84
+ tests/autotools/autolower/test_autolower_integration.py
85
+ tests/autotools/autonote/__init__.py
86
+ tests/autotools/autonote/conftest.py
87
+ tests/autotools/autonote/test_autonote_core.py
88
+ tests/autotools/autonote/test_autonote_integration.py
89
+ tests/autotools/autopassword/test_autopassword_core.py
90
+ tests/autotools/autopassword/test_autopassword_integration.py
91
+ tests/autotools/autotest/__init__.py
92
+ tests/autotools/autotest/test_autotest_core.py
93
+ tests/autotools/autotodo/__init__.py
94
+ tests/autotools/autotodo/conftest.py
95
+ tests/autotools/autotodo/test_autotodo_coverage.py
96
+ tests/autotools/autotodo/test_autotodo_file_operations.py
97
+ tests/autotools/autotodo/test_autotodo_integration.py
98
+ tests/autotools/autotodo/test_autotodo_operations.py
99
+ tests/autotools/autotodo/test_autotodo_sections.py
100
+ tests/autotools/autotodo/test_autotodo_tasks.py
101
+ tests/autotools/autotodo/test_autotodo_utils.py
102
+ tests/autotools/autounit/__init__.py
103
+ tests/autotools/autounit/test_autounit_core.py
104
+ tests/autotools/autounit/test_autounit_integration.py
105
+ tests/autotools/autozip/__init__.py
106
+ tests/autotools/autozip/test_autozip_core.py
107
+ tests/autotools/autozip/test_autozip_integration.py
108
+ tests/autotools/utils/__init__.py
109
+ tests/autotools/utils/test_commands_discovery.py
110
+ tests/autotools/utils/test_performance.py
111
+ tests/autotools/utils/test_requirements.py
112
+ tests/autotools/utils/test_smoke.py
113
+ tests/autotools/utils/test_text.py
114
+ tests/autotools/utils/test_updates.py
115
+ tests/autotools/utils/test_version.py
@@ -0,0 +1,12 @@
1
+ [console_scripts]
2
+ autocaps = autotools.cli:autocaps
3
+ autocolor = autotools.cli:autocolor
4
+ autoconvert = autotools.cli:autoconvert
5
+ autoip = autotools.cli:autoip
6
+ autolower = autotools.cli:autolower
7
+ autonote = autotools.cli:autonote
8
+ autopassword = autotools.cli:autopassword
9
+ autotodo = autotools.cli:autotodo
10
+ autotools = autotools.cli:cli
11
+ autounit = autotools.cli:autounit
12
+ autozip = autotools.cli:autozip
@@ -4,10 +4,14 @@ python-dotenv>=1.0.0
4
4
  packaging>=23.0
5
5
  halo>=0.0.31
6
6
  pyperclip>=1.8.2
7
- netifaces>=0.11.0
8
7
  speedtest-cli>=2.1.3
9
8
  psutil>=5.9.0
10
9
  cryptography>=42.0.2
10
+ Pillow>=10.0.0
11
+ pillow-heif>=0.16.0
12
+ pydub>=0.25.1
13
+ moviepy>=1.0.3
14
+ pint>=0.23
11
15
 
12
16
  [dev]
13
17
  build>=1.4.0
@@ -17,3 +21,12 @@ pytest-cov>=4.1.0
17
21
  pytest-sugar>=1.0.0
18
22
  pytest-xdist>=3.5.0
19
23
  pytest-timeout>=2.2.0
24
+
25
+ [test]
26
+ build>=1.4.0
27
+ wheel>=0.45.1
28
+ pytest>=7.4.0
29
+ pytest-cov>=4.1.0
30
+ pytest-sugar>=1.0.0
31
+ pytest-xdist>=3.5.0
32
+ pytest-timeout>=2.2.0
@@ -0,0 +1,125 @@
1
+ Metadata-Version: 2.4
2
+ Name: Open-AutoTools
3
+ Version: 0.0.6
4
+ Summary: A suite of automated tools accessible via CLI with a simple `autotools` command
5
+ Home-page: https://github.com/BabylooPro/Open-AutoTools
6
+ Author: BabylooPro
7
+ Author-email: maxremy.dev@gmail.com
8
+ License: MIT
9
+ Project-URL: Bug Tracker, https://github.com/BabylooPro/Open-AutoTools/issues
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Classifier: Operating System :: OS Independent
16
+ Requires-Python: >=3.10
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: click>=8.1.3
20
+ Requires-Dist: requests>=2.31.0
21
+ Requires-Dist: python-dotenv>=1.0.0
22
+ Requires-Dist: packaging>=23.0
23
+ Requires-Dist: halo>=0.0.31
24
+ Requires-Dist: pyperclip>=1.8.2
25
+ Requires-Dist: speedtest-cli>=2.1.3
26
+ Requires-Dist: psutil>=5.9.0
27
+ Requires-Dist: cryptography>=42.0.2
28
+ Requires-Dist: Pillow>=10.0.0
29
+ Requires-Dist: pillow-heif>=0.16.0
30
+ Requires-Dist: pydub>=0.25.1
31
+ Requires-Dist: moviepy>=1.0.3
32
+ Requires-Dist: pint>=0.23
33
+ Provides-Extra: dev
34
+ Requires-Dist: build>=1.4.0; extra == "dev"
35
+ Requires-Dist: wheel>=0.45.1; extra == "dev"
36
+ Requires-Dist: pytest>=7.4.0; extra == "dev"
37
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
38
+ Requires-Dist: pytest-sugar>=1.0.0; extra == "dev"
39
+ Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
40
+ Requires-Dist: pytest-timeout>=2.2.0; extra == "dev"
41
+ Provides-Extra: test
42
+ Requires-Dist: build>=1.4.0; extra == "test"
43
+ Requires-Dist: wheel>=0.45.1; extra == "test"
44
+ Requires-Dist: pytest>=7.4.0; extra == "test"
45
+ Requires-Dist: pytest-cov>=4.1.0; extra == "test"
46
+ Requires-Dist: pytest-sugar>=1.0.0; extra == "test"
47
+ Requires-Dist: pytest-xdist>=3.5.0; extra == "test"
48
+ Requires-Dist: pytest-timeout>=2.2.0; extra == "test"
49
+ Dynamic: author
50
+ Dynamic: author-email
51
+ Dynamic: classifier
52
+ Dynamic: description
53
+ Dynamic: description-content-type
54
+ Dynamic: home-page
55
+ Dynamic: license
56
+ Dynamic: license-file
57
+ Dynamic: project-url
58
+ Dynamic: provides-extra
59
+ Dynamic: requires-dist
60
+ Dynamic: requires-python
61
+ Dynamic: summary
62
+
63
+ # OPEN-AUTOTOOLS
64
+
65
+ [PYPI_BADGE]: https://badge.fury.io/py/Open-AutoTools.svg
66
+ [PYPI_URL]: https://pypi.org/project/Open-AutoTools/
67
+
68
+ [PYPI_DOWNLOADS_BADGE]: https://img.shields.io/pypi/dm/Open-AutoTools
69
+ [PYPI_DOWNLOADS_URL]: https://pypi.org/project/Open-AutoTools/
70
+
71
+ [PYTHON_BADGE]: https://img.shields.io/badge/Python-3.10+-blue.svg
72
+ [PYTHON_URL]: https://www.python.org/downloads/
73
+
74
+ [CHANGELOG_BADGE]: https://img.shields.io/badge/CHANGELOG-red.svg
75
+ [CHANGELOG_URL]: CHANGELOG.md
76
+
77
+ [TODO_BADGE]: https://img.shields.io/badge/TODO-purple.svg
78
+ [TODO_URL]: TODO.md
79
+
80
+ [![PyPI][PYPI_BADGE]][PYPI_URL]
81
+ [![Python][PYTHON_BADGE]][PYTHON_URL]
82
+ [![Downloads][PYPI_DOWNLOADS_BADGE]][PYPI_DOWNLOADS_URL]
83
+ [![CHANGELOG][CHANGELOG_BADGE]][CHANGELOG_URL]
84
+ [![TODO][TODO_BADGE]][TODO_URL]
85
+
86
+ Python CLI toolkit for everyday developer tasks. Boost productivity directly from your terminal.
87
+
88
+ https://github.com/user-attachments/assets/f959327b-b4ae-481d-8be0-c8957fb6ad36
89
+
90
+ ## Quick Install
91
+
92
+ ```bash
93
+ pip install open-autotools
94
+ ```
95
+
96
+ - **Platform**: Windows 10/11 ✓ | macOS ✓ | Linux ✓
97
+ - **Python**: 3.10 | 3.11 | 3.12 | 3.13 | 3.14
98
+
99
+ See [Installation Guide](docs/installation.md) for more details.
100
+
101
+ ## Tools
102
+
103
+ - **[AutoCaps](docs/tools/autocaps.md)** - Convert text to uppercase
104
+ - **[AutoLower](docs/tools/autolower.md)** - Convert text to lowercase
105
+ - **[AutoPassword](docs/tools/autopassword.md)** - Generate secure passwords and encryption keys
106
+ - **[AutoIP](docs/tools/autoip.md)** - Display network information and diagnostics
107
+ - **[AutoConvert](docs/tools/autoconvert.md)** - Convert text, images, audio, and video between formats
108
+ - **[AutoColor](docs/tools/autocolor.md)** - Convert color codes between different formats (hex, RGB, HSL, etc)
109
+ - **[AutoUnit](docs/tools/autounit.md)** - Convert measurement units (meters to feet, liters to gallons, etc)
110
+ - **[AutoZip](docs/tools/autozip.md)** - Compress files and directories into various archive formats (ZIP, TAR.GZ, TAR.BZ2, TAR.XZ, TAR)
111
+ - **[AutoTodo](docs/tools/autotodo.md)** - Create and manage a simple task list in a Markdown file
112
+ - **[AutoNote](docs/tools/autonote.md)** - Takes quick notes and saves them to a Markdown file
113
+ - **[Test Suite](docs/tools/autotest.md)** - Run the test suite (development only)
114
+
115
+ ## Documentation
116
+
117
+ - [Installation](docs/installation.md) - Install the CLI and verify your setup
118
+ - [Development](docs/development.md) - Dev environment, tooling, and contribution workflow
119
+ - [Testing](docs/testing.md) - Run tests, install test deps, and check coverage
120
+ - [Performance](docs/performance.md) - Performance metrics: what’s collected and how to enable them
121
+ - [Docker Support](docs/docker.md) - Run the toolkit and tests in Docker
122
+
123
+ ## License
124
+
125
+ MIT - see [LICENSE](LICENSE).
@@ -0,0 +1,63 @@
1
+ # OPEN-AUTOTOOLS
2
+
3
+ [PYPI_BADGE]: https://badge.fury.io/py/Open-AutoTools.svg
4
+ [PYPI_URL]: https://pypi.org/project/Open-AutoTools/
5
+
6
+ [PYPI_DOWNLOADS_BADGE]: https://img.shields.io/pypi/dm/Open-AutoTools
7
+ [PYPI_DOWNLOADS_URL]: https://pypi.org/project/Open-AutoTools/
8
+
9
+ [PYTHON_BADGE]: https://img.shields.io/badge/Python-3.10+-blue.svg
10
+ [PYTHON_URL]: https://www.python.org/downloads/
11
+
12
+ [CHANGELOG_BADGE]: https://img.shields.io/badge/CHANGELOG-red.svg
13
+ [CHANGELOG_URL]: CHANGELOG.md
14
+
15
+ [TODO_BADGE]: https://img.shields.io/badge/TODO-purple.svg
16
+ [TODO_URL]: TODO.md
17
+
18
+ [![PyPI][PYPI_BADGE]][PYPI_URL]
19
+ [![Python][PYTHON_BADGE]][PYTHON_URL]
20
+ [![Downloads][PYPI_DOWNLOADS_BADGE]][PYPI_DOWNLOADS_URL]
21
+ [![CHANGELOG][CHANGELOG_BADGE]][CHANGELOG_URL]
22
+ [![TODO][TODO_BADGE]][TODO_URL]
23
+
24
+ Python CLI toolkit for everyday developer tasks. Boost productivity directly from your terminal.
25
+
26
+ https://github.com/user-attachments/assets/f959327b-b4ae-481d-8be0-c8957fb6ad36
27
+
28
+ ## Quick Install
29
+
30
+ ```bash
31
+ pip install open-autotools
32
+ ```
33
+
34
+ - **Platform**: Windows 10/11 ✓ | macOS ✓ | Linux ✓
35
+ - **Python**: 3.10 | 3.11 | 3.12 | 3.13 | 3.14
36
+
37
+ See [Installation Guide](docs/installation.md) for more details.
38
+
39
+ ## Tools
40
+
41
+ - **[AutoCaps](docs/tools/autocaps.md)** - Convert text to uppercase
42
+ - **[AutoLower](docs/tools/autolower.md)** - Convert text to lowercase
43
+ - **[AutoPassword](docs/tools/autopassword.md)** - Generate secure passwords and encryption keys
44
+ - **[AutoIP](docs/tools/autoip.md)** - Display network information and diagnostics
45
+ - **[AutoConvert](docs/tools/autoconvert.md)** - Convert text, images, audio, and video between formats
46
+ - **[AutoColor](docs/tools/autocolor.md)** - Convert color codes between different formats (hex, RGB, HSL, etc)
47
+ - **[AutoUnit](docs/tools/autounit.md)** - Convert measurement units (meters to feet, liters to gallons, etc)
48
+ - **[AutoZip](docs/tools/autozip.md)** - Compress files and directories into various archive formats (ZIP, TAR.GZ, TAR.BZ2, TAR.XZ, TAR)
49
+ - **[AutoTodo](docs/tools/autotodo.md)** - Create and manage a simple task list in a Markdown file
50
+ - **[AutoNote](docs/tools/autonote.md)** - Takes quick notes and saves them to a Markdown file
51
+ - **[Test Suite](docs/tools/autotest.md)** - Run the test suite (development only)
52
+
53
+ ## Documentation
54
+
55
+ - [Installation](docs/installation.md) - Install the CLI and verify your setup
56
+ - [Development](docs/development.md) - Dev environment, tooling, and contribution workflow
57
+ - [Testing](docs/testing.md) - Run tests, install test deps, and check coverage
58
+ - [Performance](docs/performance.md) - Performance metrics: what’s collected and how to enable them
59
+ - [Docker Support](docs/docker.md) - Run the toolkit and tests in Docker
60
+
61
+ ## License
62
+
63
+ MIT - see [LICENSE](LICENSE).
@@ -0,0 +1,34 @@
1
+ import click
2
+ from .core import autocaps_transform
3
+ from ..utils.loading import LoadingAnimation
4
+ from ..utils.updates import check_for_updates
5
+
6
+ # TOOL CATEGORY (USED BY 'autotools smoke')
7
+ TOOL_CATEGORY = 'Text'
8
+
9
+ # SMOKE TEST CASES (USED BY 'autotools smoke')
10
+ SMOKE_TESTS = [
11
+ {'name': 'basic', 'args': ['test', 'with', 'multiple', 'words']},
12
+ {'name': 'special', 'args': ['special', 'chars:', '!@#$%^&*()']},
13
+ {'name': 'mixed', 'args': ['123', 'mixed', 'WITH', 'lowercase', '456']},
14
+ {'name': 'unicode', 'args': ['áccênts', 'ànd', 'émojis', '🚀', '⭐']},
15
+ ]
16
+
17
+ # CLI COMMAND TO TRANSFORM TEXT TO UPPERCASE
18
+ @click.command()
19
+ @click.argument('text', nargs=-1)
20
+ def autocaps(text):
21
+ """
22
+ TRANSFORMS TEXT TO UPPERCASE.
23
+
24
+ \b
25
+ EXAMPLES:
26
+ autocaps hello world
27
+ autocaps "this is a test"
28
+ echo "text" | autocaps
29
+ """
30
+
31
+ with LoadingAnimation(): result = autocaps_transform(" ".join(text))
32
+ click.echo(result)
33
+ update_msg = check_for_updates()
34
+ if update_msg: click.echo(update_msg)
@@ -0,0 +1,60 @@
1
+ import click
2
+ from .core import autocolor_convert
3
+ from ..utils.loading import LoadingAnimation
4
+ from ..utils.updates import check_for_updates
5
+
6
+ # TOOL CATEGORY (USED BY 'autotools smoke')
7
+ TOOL_CATEGORY = 'Color'
8
+
9
+ # SMOKE TEST CASES (USED BY 'autotools smoke')
10
+ SMOKE_TESTS = [
11
+ {'name': 'hex-default', 'args': ['#FF5733']},
12
+ {'name': 'hex-rgb', 'args': ['#FF5733', '--format', 'rgb']},
13
+ {'name': 'rgb-hsl', 'args': ['rgb(255,87,51)', '--format', 'hsl']},
14
+ {'name': 'hsl-rgba', 'args': ['hsl(9,100%,60%)', '--format', 'rgba']},
15
+ ]
16
+
17
+ # CLI COMMAND TO CONVERT COLOR CODES BETWEEN FORMATS
18
+ @click.command()
19
+ @click.argument('color', nargs=-1)
20
+ @click.option('--format', '-f', 'output_format',
21
+ type=click.Choice(['hex', 'rgb', 'rgba', 'hsl', 'hsla'], case_sensitive=False),
22
+ default='hex', help='OUTPUT FORMAT (hex, rgb, rgba, hsl, hsla)')
23
+ def autocolor(color, output_format):
24
+ """
25
+ CONVERTS COLOR CODES BETWEEN DIFFERENT FORMATS.
26
+
27
+ \b
28
+ SUPPORTS INPUT FORMATS:
29
+ - HEX: #RRGGBB, #RRGGBBAA, #RGB
30
+ - RGB: rgb(r, g, b)
31
+ - RGBA: rgba(r, g, b, a)
32
+ - HSL: hsl(h, s%, l%)
33
+ - HSLA: hsla(h, s%, l%, a)
34
+
35
+ \b
36
+ EXAMPLES:
37
+ autocolor "#FF5733"
38
+ autocolor "rgb(255, 87, 51)" --format hsl
39
+ autocolor "hsl(9, 100%, 60%)" --format hex
40
+ autocolor "#F73" --format rgba
41
+ """
42
+
43
+ if not color:
44
+ click.echo(click.style("ERROR: COLOR ARGUMENT IS REQUIRED", fg='red'), err=True)
45
+ click.echo(click.get_current_context().get_help())
46
+ return
47
+
48
+ color_input = " ".join(color)
49
+
50
+ try:
51
+ with LoadingAnimation(): result = autocolor_convert(color_input, output_format)
52
+ click.echo(result)
53
+ update_msg = check_for_updates()
54
+ if update_msg: click.echo(update_msg)
55
+ except ValueError as e:
56
+ click.echo(click.style(f"ERROR: {str(e)}", fg='red'), err=True)
57
+ raise click.Abort()
58
+ except Exception as e:
59
+ click.echo(click.style(f"UNEXPECTED ERROR: {str(e)}", fg='red'), err=True)
60
+ raise click.Abort()
@@ -0,0 +1,99 @@
1
+ import re
2
+ import colorsys
3
+ import pyperclip
4
+
5
+ # CONVERTS HEX COLOR TO RGB TUPLE
6
+ def _hex_to_rgb(hex_color):
7
+ hex_color = hex_color.lstrip('#')
8
+ if len(hex_color) == 3:
9
+ hex_color = ''.join([c * 2 for c in hex_color])
10
+ if len(hex_color) == 6:
11
+ return tuple(int(hex_color[i:i+2], 16) for i in (0, 2, 4))
12
+ elif len(hex_color) == 8:
13
+ rgb = tuple(int(hex_color[i:i+2], 16) for i in (0, 2, 4))
14
+ alpha = int(hex_color[6:8], 16) / 255.0
15
+ return (*rgb, alpha)
16
+ raise ValueError(f"INVALID HEX COLOR: {hex_color}")
17
+
18
+ # CONVERTS RGB TUPLE TO HEX
19
+ def _rgb_to_hex(r, g, b, alpha=None):
20
+ hex_color = f"#{r:02x}{g:02x}{b:02x}"
21
+ if alpha is not None: hex_color += f"{int(alpha * 255):02x}"
22
+ return hex_color.upper()
23
+
24
+ # PARSES RGB/RGBA STRING
25
+ def _parse_rgb(rgb_str):
26
+ match = re.match(r'rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)', rgb_str.lower())
27
+ if not match:
28
+ raise ValueError(f"INVALID RGB/RGBA FORMAT: {rgb_str}")
29
+ r, g, b = int(match.group(1)), int(match.group(2)), int(match.group(3))
30
+ alpha = float(match.group(4)) if match.group(4) else None
31
+ if alpha is not None and alpha > 1:
32
+ alpha = alpha / 255.0
33
+ return (r, g, b, alpha) if alpha is not None else (r, g, b)
34
+
35
+ # PARSES HSL/HSLA STRING
36
+ def _parse_hsl(hsl_str):
37
+ match = re.match(r'hsla?\((\d+),\s*(\d+)%,\s*(\d+)%(?:,\s*([\d.]+))?\)', hsl_str.lower())
38
+ if not match:
39
+ raise ValueError(f"INVALID HSL/HSLA FORMAT: {hsl_str}")
40
+ h = int(match.group(1)) / 360.0
41
+ s = int(match.group(2)) / 100.0
42
+ l = int(match.group(3)) / 100.0
43
+ alpha = float(match.group(4)) if match.group(4) else None
44
+ return (h, s, l, alpha) if alpha is not None else (h, s, l)
45
+
46
+ # PARSES INPUT COLOR AND RETURNS RGB VALUES WITH ALPHA
47
+ def _parse_color_input(color_input):
48
+ if color_input.startswith('#'):
49
+ rgb_result = _hex_to_rgb(color_input)
50
+ return rgb_result if len(rgb_result) == 4 else (*rgb_result, None)
51
+ elif color_input.startswith('rgb'):
52
+ rgb_result = _parse_rgb(color_input)
53
+ return rgb_result if len(rgb_result) == 4 else (*rgb_result, None)
54
+ elif color_input.startswith('hsl'):
55
+ hsl_result = _parse_hsl(color_input)
56
+ if len(hsl_result) == 4:
57
+ h, s, l, alpha = hsl_result
58
+ else:
59
+ h, s, l = hsl_result
60
+ alpha = None
61
+ r, g, b = [int(c * 255) for c in colorsys.hls_to_rgb(h, l, s)]
62
+ return (r, g, b, alpha)
63
+ raise ValueError(f"UNSUPPORTED COLOR FORMAT: {color_input}")
64
+
65
+ # CONVERTS RGB TO HSL VALUES
66
+ def _rgb_to_hsl_values(r, g, b):
67
+ h, l, s = colorsys.rgb_to_hls(r / 255.0, g / 255.0, b / 255.0)
68
+ return (int(h * 360), int(s * 100), int(l * 100))
69
+
70
+ # FORMATS OUTPUT COLOR BASED ON FORMAT TYPE
71
+ def _format_output(r, g, b, alpha, output_format):
72
+ if output_format == 'hex':
73
+ return _rgb_to_hex(r, g, b, alpha)
74
+ elif output_format == 'rgb':
75
+ return f"rgb({r}, {g}, {b})"
76
+ elif output_format == 'rgba':
77
+ alpha = alpha if alpha is not None else 1.0
78
+ return f"rgba({r}, {g}, {b}, {alpha:.2f})"
79
+ elif output_format == 'hsl':
80
+ h, s, l = _rgb_to_hsl_values(r, g, b)
81
+ return f"hsl({h}, {s}%, {l}%)"
82
+ elif output_format == 'hsla':
83
+ alpha = alpha if alpha is not None else 1.0
84
+ h, s, l = _rgb_to_hsl_values(r, g, b)
85
+ return f"hsla({h}, {s}%, {l}%, {alpha:.2f})"
86
+ raise ValueError(f"UNSUPPORTED OUTPUT FORMAT: {output_format}")
87
+
88
+ # CONVERTS COLOR CODE TO DIFFERENT FORMATS
89
+ def autocolor_convert(color_input, output_format='hex'):
90
+ color_input = color_input.strip()
91
+ output_format = output_format.lower()
92
+
93
+ r, g, b, alpha = _parse_color_input(color_input)
94
+ result = _format_output(r, g, b, alpha, output_format)
95
+
96
+ try: pyperclip.copy(result)
97
+ except pyperclip.PyperclipException: pass
98
+
99
+ return result