circup 1.9.0__tar.gz → 2.0.1__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 (80) hide show
  1. {circup-1.9.0 → circup-2.0.1}/.github/workflows/build.yml +2 -2
  2. circup-2.0.1/.github/workflows/release.yml +34 -0
  3. {circup-1.9.0 → circup-2.0.1}/CONTRIBUTING.rst +13 -4
  4. {circup-1.9.0/circup.egg-info → circup-2.0.1}/PKG-INFO +29 -51
  5. {circup-1.9.0 → circup-2.0.1}/circup/backends.py +15 -3
  6. {circup-1.9.0 → circup-2.0.1}/circup/commands.py +18 -3
  7. {circup-1.9.0 → circup-2.0.1/circup.egg-info}/PKG-INFO +29 -51
  8. {circup-1.9.0 → circup-2.0.1}/circup.egg-info/SOURCES.txt +1 -2
  9. circup-2.0.1/pyproject.toml +51 -0
  10. circup-1.9.0/.github/workflows/release.yml +0 -39
  11. circup-1.9.0/circup.egg-info/requires.txt +0 -50
  12. circup-1.9.0/setup.py +0 -104
  13. {circup-1.9.0 → circup-2.0.1}/.github/ISSUE_TEMPLATE.md +0 -0
  14. {circup-1.9.0 → circup-2.0.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  15. {circup-1.9.0 → circup-2.0.1}/.gitignore +0 -0
  16. {circup-1.9.0 → circup-2.0.1}/.isort.cfg +0 -0
  17. {circup-1.9.0 → circup-2.0.1}/.pre-commit-config.yaml +0 -0
  18. {circup-1.9.0 → circup-2.0.1}/.pylintrc +0 -0
  19. {circup-1.9.0 → circup-2.0.1}/CODE_OF_CONDUCT.rst +0 -0
  20. {circup-1.9.0 → circup-2.0.1}/CODE_OF_CONDUCT.rst.license +0 -0
  21. {circup-1.9.0 → circup-2.0.1}/CONTRIBUTING.rst.license +0 -0
  22. {circup-1.9.0 → circup-2.0.1}/LICENSE +0 -0
  23. {circup-1.9.0 → circup-2.0.1}/LICENSES/CC-BY-4.0.txt +0 -0
  24. {circup-1.9.0 → circup-2.0.1}/LICENSES/MIT.txt +0 -0
  25. {circup-1.9.0 → circup-2.0.1}/LICENSES/Unlicense.txt +0 -0
  26. {circup-1.9.0 → circup-2.0.1}/README.rst +0 -0
  27. {circup-1.9.0 → circup-2.0.1}/README.rst.license +0 -0
  28. {circup-1.9.0 → circup-2.0.1}/circup/__init__.py +0 -0
  29. {circup-1.9.0 → circup-2.0.1}/circup/bundle.py +0 -0
  30. {circup-1.9.0 → circup-2.0.1}/circup/command_utils.py +0 -0
  31. {circup-1.9.0 → circup-2.0.1}/circup/config/bundle_config.json +0 -0
  32. {circup-1.9.0 → circup-2.0.1}/circup/config/bundle_config.json.license +0 -0
  33. {circup-1.9.0 → circup-2.0.1}/circup/logging.py +0 -0
  34. {circup-1.9.0 → circup-2.0.1}/circup/module.py +0 -0
  35. {circup-1.9.0 → circup-2.0.1}/circup/shared.py +0 -0
  36. {circup-1.9.0 → circup-2.0.1}/circup.egg-info/dependency_links.txt +0 -0
  37. {circup-1.9.0 → circup-2.0.1}/circup.egg-info/entry_points.txt +0 -0
  38. {circup-1.9.0 → circup-2.0.1}/circup.egg-info/top_level.txt +0 -0
  39. {circup-1.9.0 → circup-2.0.1}/docs/_static/favicon.ico +0 -0
  40. {circup-1.9.0 → circup-2.0.1}/docs/_static/favicon.ico.license +0 -0
  41. {circup-1.9.0 → circup-2.0.1}/docs/conf.py +0 -0
  42. {circup-1.9.0 → circup-2.0.1}/docs/index.rst +0 -0
  43. {circup-1.9.0 → circup-2.0.1}/docs/index.rst.license +0 -0
  44. {circup-1.9.0 → circup-2.0.1}/docs/logo.png +0 -0
  45. {circup-1.9.0 → circup-2.0.1}/docs/logo.png.license +0 -0
  46. {circup-1.9.0 → circup-2.0.1}/optional_requirements.txt +0 -0
  47. {circup-1.9.0 → circup-2.0.1}/optional_requirements.txt.license +0 -0
  48. {circup-1.9.0 → circup-2.0.1}/readthedocs.yml +0 -0
  49. {circup-1.9.0 → circup-2.0.1}/requirements.txt +0 -0
  50. {circup-1.9.0 → circup-2.0.1}/requirements.txt.license +0 -0
  51. {circup-1.9.0 → circup-2.0.1}/setup.cfg +0 -0
  52. {circup-1.9.0 → circup-2.0.1}/tests/__init__.py +0 -0
  53. {circup-1.9.0 → circup-2.0.1}/tests/bad_module/__init__.py +0 -0
  54. {circup-1.9.0 → circup-2.0.1}/tests/bad_module/my_module.py +0 -0
  55. {circup-1.9.0 → circup-2.0.1}/tests/bad_python.py +0 -0
  56. {circup-1.9.0 → circup-2.0.1}/tests/bundle.json +0 -0
  57. {circup-1.9.0 → circup-2.0.1}/tests/bundle.json.license +0 -0
  58. {circup-1.9.0 → circup-2.0.1}/tests/device.json +0 -0
  59. {circup-1.9.0 → circup-2.0.1}/tests/device.json.license +0 -0
  60. {circup-1.9.0 → circup-2.0.1}/tests/dir_module/__init__.py +0 -0
  61. {circup-1.9.0 → circup-2.0.1}/tests/dir_module/my_module.py +0 -0
  62. {circup-1.9.0 → circup-2.0.1}/tests/import_styles.py +0 -0
  63. {circup-1.9.0 → circup-2.0.1}/tests/local_module.py +0 -0
  64. {circup-1.9.0 → circup-2.0.1}/tests/local_module_cp7.mpy +0 -0
  65. {circup-1.9.0 → circup-2.0.1}/tests/local_module_cp7.mpy.license +0 -0
  66. {circup-1.9.0 → circup-2.0.1}/tests/mock_device/boot_out.txt +0 -0
  67. {circup-1.9.0 → circup-2.0.1}/tests/mock_device/boot_out.txt.license +0 -0
  68. {circup-1.9.0 → circup-2.0.1}/tests/mock_device/lib/adafruit_waveform/.gitkeep +0 -0
  69. {circup-1.9.0 → circup-2.0.1}/tests/mount_exists.txt +0 -0
  70. {circup-1.9.0 → circup-2.0.1}/tests/mount_exists.txt.license +0 -0
  71. {circup-1.9.0 → circup-2.0.1}/tests/mount_missing.txt +0 -0
  72. {circup-1.9.0 → circup-2.0.1}/tests/mount_missing.txt.license +0 -0
  73. {circup-1.9.0 → circup-2.0.1}/tests/remote_module.py +0 -0
  74. {circup-1.9.0 → circup-2.0.1}/tests/test_bundle_config.json +0 -0
  75. {circup-1.9.0 → circup-2.0.1}/tests/test_bundle_config.json.license +0 -0
  76. {circup-1.9.0 → circup-2.0.1}/tests/test_bundle_config_local.json +0 -0
  77. {circup-1.9.0 → circup-2.0.1}/tests/test_bundle_config_local.json.license +0 -0
  78. {circup-1.9.0 → circup-2.0.1}/tests/test_circup.py +0 -0
  79. {circup-1.9.0 → circup-2.0.1}/tests/test_module.mpy +0 -0
  80. {circup-1.9.0 → circup-2.0.1}/tests/test_module.mpy.license +0 -0
@@ -17,10 +17,10 @@ jobs:
17
17
  - name: Translate Repo Name For Build Tools filename_prefix
18
18
  id: repo-name
19
19
  run: echo ::set-output name=repo-name::circup
20
- - name: Set up Python 3.7
20
+ - name: Set up Python 3.11
21
21
  uses: actions/setup-python@v1
22
22
  with:
23
- python-version: 3.7
23
+ python-version: 3.11
24
24
  - name: Pip install Sphinx & pre-commit
25
25
  run: |
26
26
  pip install --force-reinstall Sphinx sphinx-rtd-theme pre-commit
@@ -0,0 +1,34 @@
1
+ # SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2
+ # SPDX-FileCopyrightText: 2021 James Carr
3
+ #
4
+ # SPDX-License-Identifier: MIT
5
+
6
+ name: Release Actions
7
+
8
+ on:
9
+ release:
10
+ types: [published]
11
+
12
+ jobs:
13
+ upload-pypi:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ filter: 'blob:none'
19
+ depth: 0
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: '3.11'
24
+ - name: Install dependencies
25
+ run: |
26
+ python -m pip install --upgrade pip
27
+ pip install build setuptools wheel twine
28
+ - name: Build and publish
29
+ env:
30
+ TWINE_USERNAME: ${{ secrets.pypi_username }}
31
+ TWINE_PASSWORD: ${{ secrets.pypi_password }}
32
+ run: |
33
+ python -m build
34
+ twine upload dist/*
@@ -25,15 +25,24 @@ Developer Setup
25
25
 
26
26
  .. note::
27
27
 
28
- Please try to use Python 3.6+ while developing CircUp. This is so we can
28
+ Please try to use Python 3.9+ while developing CircUp. This is so we can
29
29
  use the
30
30
  `Black code formatter <https://black.readthedocs.io/en/stable/index.html>`_
31
- (which only works with Python 3.6+).
31
+ and so that we're supporting versions which still receive security updates.
32
+
32
33
 
33
34
  Clone the repository and from the root of the project,
34
- install the requirements::
35
35
 
36
- pip install -e ".[dev]"
36
+
37
+ If you'd like you can setup a virtual environment and activate it.::
38
+
39
+ python3 -m venv .env
40
+ source .env/bin/activate
41
+
42
+ install the development requirements::
43
+
44
+ pip install -r optional_requirements.txt
45
+
37
46
 
38
47
  Run the test suite::
39
48
 
@@ -1,11 +1,31 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: circup
3
- Version: 1.9.0
3
+ Version: 2.0.1
4
4
  Summary: A tool to manage/update libraries on CircuitPython devices.
5
- Home-page: https://github.com/adafruit/circup
6
- Author: Adafruit Industries
7
- Author-email: circuitpython@adafruit.com
8
- License: MIT
5
+ Author-email: Adafruit Industries <circuitpython@adafruit.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2019 Adafruit Industries
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: homepage, https://github.com/adafruit/circup
9
29
  Keywords: adafruit,blinka,circuitpython,micropython,libraries
10
30
  Classifier: Development Status :: 3 - Alpha
11
31
  Classifier: Environment :: Console
@@ -15,58 +35,16 @@ Classifier: License :: OSI Approved :: MIT License
15
35
  Classifier: Operating System :: POSIX
16
36
  Classifier: Operating System :: MacOS :: MacOS X
17
37
  Classifier: Operating System :: Microsoft :: Windows
18
- Classifier: Programming Language :: Python :: 3.6
19
- Classifier: Programming Language :: Python :: 3.7
20
- Classifier: Programming Language :: Python :: 3.8
38
+ Classifier: Programming Language :: Python :: 3
21
39
  Classifier: Programming Language :: Python :: 3.9
40
+ Classifier: Programming Language :: Python :: 3.10
41
+ Classifier: Programming Language :: Python :: 3.11
22
42
  Classifier: Topic :: Education
23
43
  Classifier: Topic :: Software Development :: Embedded Systems
24
44
  Classifier: Topic :: System :: Software Distribution
45
+ Requires-Python: >=3.9
25
46
  Description-Content-Type: text/x-rst
26
47
  License-File: LICENSE
27
- Requires-Dist: semver~=3.0
28
- Requires-Dist: Click>=8.0
29
- Requires-Dist: appdirs>=1.4.3
30
- Requires-Dist: requests>=2.22.0
31
- Requires-Dist: findimports>=2.1.0
32
- Requires-Dist: toml>=0.10.2
33
- Requires-Dist: importlib_metadata; python_version == "3.7"
34
- Requires-Dist: update_checker
35
- Provides-Extra: tests
36
- Requires-Dist: pytest; extra == "tests"
37
- Requires-Dist: pylint; extra == "tests"
38
- Requires-Dist: pytest-cov; extra == "tests"
39
- Requires-Dist: pytest-random-order>=1.0.0; extra == "tests"
40
- Requires-Dist: pytest-faulthandler; extra == "tests"
41
- Requires-Dist: coverage; extra == "tests"
42
- Requires-Dist: black; extra == "tests"
43
- Provides-Extra: docs
44
- Requires-Dist: sphinx; extra == "docs"
45
- Provides-Extra: package
46
- Requires-Dist: wheel; extra == "package"
47
- Requires-Dist: twine; extra == "package"
48
- Provides-Extra: dev
49
- Requires-Dist: pytest; extra == "dev"
50
- Requires-Dist: pylint; extra == "dev"
51
- Requires-Dist: pytest-cov; extra == "dev"
52
- Requires-Dist: pytest-random-order>=1.0.0; extra == "dev"
53
- Requires-Dist: pytest-faulthandler; extra == "dev"
54
- Requires-Dist: coverage; extra == "dev"
55
- Requires-Dist: black; extra == "dev"
56
- Requires-Dist: sphinx; extra == "dev"
57
- Requires-Dist: wheel; extra == "dev"
58
- Requires-Dist: twine; extra == "dev"
59
- Provides-Extra: all
60
- Requires-Dist: pytest; extra == "all"
61
- Requires-Dist: sphinx; extra == "all"
62
- Requires-Dist: wheel; extra == "all"
63
- Requires-Dist: pytest-random-order>=1.0.0; extra == "all"
64
- Requires-Dist: pytest-faulthandler; extra == "all"
65
- Requires-Dist: coverage; extra == "all"
66
- Requires-Dist: pylint; extra == "all"
67
- Requires-Dist: twine; extra == "all"
68
- Requires-Dist: pytest-cov; extra == "all"
69
- Requires-Dist: black; extra == "all"
70
48
 
71
49
 
72
50
  CircUp
@@ -29,9 +29,10 @@ class Backend:
29
29
  implementations
30
30
  """
31
31
 
32
- def __init__(self, logger):
32
+ def __init__(self, logger, version_override=None):
33
33
  self.device_location = None
34
34
  self.LIB_DIR_PATH = None
35
+ self.version_override = version_override
35
36
  self.logger = logger
36
37
 
37
38
  def get_circuitpython_version(self):
@@ -275,7 +276,9 @@ class WebBackend(Backend):
275
276
  Backend for interacting with a device via Web Workflow
276
277
  """
277
278
 
278
- def __init__(self, host, password, logger, timeout=10):
279
+ def __init__( # pylint: disable=too-many-arguments
280
+ self, host, password, logger, timeout=10, version_override=None
281
+ ):
279
282
  super().__init__(logger)
280
283
  if password is None:
281
284
  raise ValueError("--host needs --password")
@@ -301,6 +304,7 @@ class WebBackend(Backend):
301
304
  self.session.mount(self.device_location, HTTPAdapter(max_retries=5))
302
305
  self.library_path = self.device_location + "/" + self.LIB_DIR_PATH
303
306
  self.timeout = timeout
307
+ self.version_override = version_override
304
308
 
305
309
  def install_file_http(self, source, location=None):
306
310
  """
@@ -401,6 +405,9 @@ class WebBackend(Backend):
401
405
 
402
406
  :return: A tuple with the version string for CircuitPython and the board ID string.
403
407
  """
408
+ if self.version_override is not None:
409
+ return self.version_override
410
+
404
411
  # pylint: disable=arguments-renamed
405
412
  with self.session.get(
406
413
  self.device_location + "/cp/version.json", timeout=self.timeout
@@ -741,9 +748,10 @@ class DiskBackend(Backend):
741
748
  :param logger: logger to use for outputting messages
742
749
  :param String boot_out: Optional mock contents of a boot_out.txt file
743
750
  to use for version information.
751
+ :param String version_override: Optional mock version to use.
744
752
  """
745
753
 
746
- def __init__(self, device_location, logger, boot_out=None):
754
+ def __init__(self, device_location, logger, boot_out=None, version_override=None):
747
755
  if device_location is None:
748
756
  raise ValueError(
749
757
  "Auto locating USB Disk based device failed. "
@@ -757,6 +765,7 @@ class DiskBackend(Backend):
757
765
  self.version_info = None
758
766
  if boot_out is not None:
759
767
  self.version_info = self.parse_boot_out_file(boot_out)
768
+ self.version_override = version_override
760
769
 
761
770
  def get_circuitpython_version(self):
762
771
  """
@@ -773,6 +782,9 @@ class DiskBackend(Backend):
773
782
 
774
783
  :return: A tuple with the version string for CircuitPython and the board ID string.
775
784
  """
785
+ if self.version_override is not None:
786
+ return self.version_override
787
+
776
788
  if not self.version_info:
777
789
  try:
778
790
  with open(
@@ -57,7 +57,10 @@ from circup.command_utils import (
57
57
  help="Hostname or IP address of a device. Overrides automatic path detection.",
58
58
  )
59
59
  @click.option(
60
- "--password", help="Password to use for authentication when --host is used."
60
+ "--password",
61
+ help="Password to use for authentication when --host is used."
62
+ " You can optionally set an environment variable CIRCUP_WEBWORKFLOW_PASSWORD"
63
+ " instead of passing this argument. If both exist the CLI arg takes precedent.",
61
64
  )
62
65
  @click.option(
63
66
  "--timeout",
@@ -90,6 +93,10 @@ def main( # pylint: disable=too-many-locals
90
93
  # pylint: disable=too-many-arguments,too-many-branches,too-many-statements,too-many-locals
91
94
  ctx.ensure_object(dict)
92
95
  ctx.obj["TIMEOUT"] = timeout
96
+
97
+ if password is None:
98
+ password = os.getenv("CIRCUP_WEBWORKFLOW_PASSWORD")
99
+
93
100
  device_path = get_device_path(host, password, path)
94
101
 
95
102
  using_webworkflow = "host" in ctx.params.keys() and ctx.params["host"] is not None
@@ -105,7 +112,11 @@ def main( # pylint: disable=too-many-locals
105
112
  device_path = device_path.replace("circuitpython.local", host)
106
113
  try:
107
114
  ctx.obj["backend"] = WebBackend(
108
- host=host, password=password, logger=logger, timeout=timeout
115
+ host=host,
116
+ password=password,
117
+ logger=logger,
118
+ timeout=timeout,
119
+ version_override=cpy_version,
109
120
  )
110
121
  except ValueError as e:
111
122
  click.secho(e, fg="red")
@@ -116,7 +127,11 @@ def main( # pylint: disable=too-many-locals
116
127
  sys.exit(1)
117
128
  else:
118
129
  try:
119
- ctx.obj["backend"] = DiskBackend(device_path, logger)
130
+ ctx.obj["backend"] = DiskBackend(
131
+ device_path,
132
+ logger,
133
+ version_override=cpy_version,
134
+ )
120
135
  except ValueError as e:
121
136
  print(e)
122
137
 
@@ -1,11 +1,31 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: circup
3
- Version: 1.9.0
3
+ Version: 2.0.1
4
4
  Summary: A tool to manage/update libraries on CircuitPython devices.
5
- Home-page: https://github.com/adafruit/circup
6
- Author: Adafruit Industries
7
- Author-email: circuitpython@adafruit.com
8
- License: MIT
5
+ Author-email: Adafruit Industries <circuitpython@adafruit.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2019 Adafruit Industries
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: homepage, https://github.com/adafruit/circup
9
29
  Keywords: adafruit,blinka,circuitpython,micropython,libraries
10
30
  Classifier: Development Status :: 3 - Alpha
11
31
  Classifier: Environment :: Console
@@ -15,58 +35,16 @@ Classifier: License :: OSI Approved :: MIT License
15
35
  Classifier: Operating System :: POSIX
16
36
  Classifier: Operating System :: MacOS :: MacOS X
17
37
  Classifier: Operating System :: Microsoft :: Windows
18
- Classifier: Programming Language :: Python :: 3.6
19
- Classifier: Programming Language :: Python :: 3.7
20
- Classifier: Programming Language :: Python :: 3.8
38
+ Classifier: Programming Language :: Python :: 3
21
39
  Classifier: Programming Language :: Python :: 3.9
40
+ Classifier: Programming Language :: Python :: 3.10
41
+ Classifier: Programming Language :: Python :: 3.11
22
42
  Classifier: Topic :: Education
23
43
  Classifier: Topic :: Software Development :: Embedded Systems
24
44
  Classifier: Topic :: System :: Software Distribution
45
+ Requires-Python: >=3.9
25
46
  Description-Content-Type: text/x-rst
26
47
  License-File: LICENSE
27
- Requires-Dist: semver~=3.0
28
- Requires-Dist: Click>=8.0
29
- Requires-Dist: appdirs>=1.4.3
30
- Requires-Dist: requests>=2.22.0
31
- Requires-Dist: findimports>=2.1.0
32
- Requires-Dist: toml>=0.10.2
33
- Requires-Dist: importlib_metadata; python_version == "3.7"
34
- Requires-Dist: update_checker
35
- Provides-Extra: tests
36
- Requires-Dist: pytest; extra == "tests"
37
- Requires-Dist: pylint; extra == "tests"
38
- Requires-Dist: pytest-cov; extra == "tests"
39
- Requires-Dist: pytest-random-order>=1.0.0; extra == "tests"
40
- Requires-Dist: pytest-faulthandler; extra == "tests"
41
- Requires-Dist: coverage; extra == "tests"
42
- Requires-Dist: black; extra == "tests"
43
- Provides-Extra: docs
44
- Requires-Dist: sphinx; extra == "docs"
45
- Provides-Extra: package
46
- Requires-Dist: wheel; extra == "package"
47
- Requires-Dist: twine; extra == "package"
48
- Provides-Extra: dev
49
- Requires-Dist: pytest; extra == "dev"
50
- Requires-Dist: pylint; extra == "dev"
51
- Requires-Dist: pytest-cov; extra == "dev"
52
- Requires-Dist: pytest-random-order>=1.0.0; extra == "dev"
53
- Requires-Dist: pytest-faulthandler; extra == "dev"
54
- Requires-Dist: coverage; extra == "dev"
55
- Requires-Dist: black; extra == "dev"
56
- Requires-Dist: sphinx; extra == "dev"
57
- Requires-Dist: wheel; extra == "dev"
58
- Requires-Dist: twine; extra == "dev"
59
- Provides-Extra: all
60
- Requires-Dist: pytest; extra == "all"
61
- Requires-Dist: sphinx; extra == "all"
62
- Requires-Dist: wheel; extra == "all"
63
- Requires-Dist: pytest-random-order>=1.0.0; extra == "all"
64
- Requires-Dist: pytest-faulthandler; extra == "all"
65
- Requires-Dist: coverage; extra == "all"
66
- Requires-Dist: pylint; extra == "all"
67
- Requires-Dist: twine; extra == "all"
68
- Requires-Dist: pytest-cov; extra == "all"
69
- Requires-Dist: black; extra == "all"
70
48
 
71
49
 
72
50
  CircUp
@@ -11,10 +11,10 @@ README.rst
11
11
  README.rst.license
12
12
  optional_requirements.txt
13
13
  optional_requirements.txt.license
14
+ pyproject.toml
14
15
  readthedocs.yml
15
16
  requirements.txt
16
17
  requirements.txt.license
17
- setup.py
18
18
  .github/ISSUE_TEMPLATE.md
19
19
  .github/PULL_REQUEST_TEMPLATE.md
20
20
  .github/workflows/build.yml
@@ -34,7 +34,6 @@ circup.egg-info/PKG-INFO
34
34
  circup.egg-info/SOURCES.txt
35
35
  circup.egg-info/dependency_links.txt
36
36
  circup.egg-info/entry_points.txt
37
- circup.egg-info/requires.txt
38
37
  circup.egg-info/top_level.txt
39
38
  circup/config/bundle_config.json
40
39
  circup/config/bundle_config.json.license
@@ -0,0 +1,51 @@
1
+ # SPDX-FileCopyrightText: 2024 Jev Kuznetsov, ROX Automation
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+
5
+ [build-system]
6
+ requires = ["setuptools>=61.0", "setuptools-scm"]
7
+ build-backend = "setuptools.build_meta"
8
+
9
+ [project]
10
+ name = "circup"
11
+ dynamic = ["version"]
12
+ description = "A tool to manage/update libraries on CircuitPython devices."
13
+ readme = "README.rst"
14
+ authors = [{ name = "Adafruit Industries", email = "circuitpython@adafruit.com" }]
15
+ license = { file = "LICENSE" }
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Environment :: Console",
19
+ "Intended Audience :: Developers",
20
+ "Intended Audience :: Education",
21
+ "License :: OSI Approved :: MIT License",
22
+ "Operating System :: POSIX",
23
+ "Operating System :: MacOS :: MacOS X",
24
+ "Operating System :: Microsoft :: Windows",
25
+ "Programming Language :: Python :: 3",
26
+ "Programming Language :: Python :: 3.9",
27
+ "Programming Language :: Python :: 3.10",
28
+ "Programming Language :: Python :: 3.11",
29
+ "Topic :: Education",
30
+ "Topic :: Software Development :: Embedded Systems",
31
+ "Topic :: System :: Software Distribution"
32
+ ]
33
+ keywords = ["adafruit", "blinka", "circuitpython", "micropython", "libraries"]
34
+
35
+ requires-python = ">=3.9"
36
+
37
+ [tool.setuptools.dynamic]
38
+ dependencies = {file = ["requirements.txt"]}
39
+ optional-dependencies = {optional = {file = ["optional_requirements.txt"]}}
40
+
41
+ [tool.setuptools_scm]
42
+
43
+ [project.scripts]
44
+ circup = "circup:main"
45
+
46
+ [project.urls]
47
+ homepage = "https://github.com/adafruit/circup"
48
+
49
+ [tool.setuptools.packages.find]
50
+ where = ["."] # This tells setuptools to look in the project root directory
51
+ include = ["circup"] # This pattern includes your main package and any sub-packages within it
@@ -1,39 +0,0 @@
1
- # SPDX-FileCopyrightText: 2019 Nicholas Tollervey, written for Adafruit Industries
2
-
3
- # SPDX-License-Identifier: MIT
4
-
5
- name: Release Actions
6
-
7
- on:
8
- release:
9
- types: [published]
10
-
11
- jobs:
12
- upload-pypi:
13
- runs-on: ubuntu-latest
14
- steps:
15
- - uses: actions/checkout@v4
16
- with:
17
- show-progress: false
18
- - name: Check For setup.py
19
- id: need-pypi
20
- run: |
21
- echo ::set-output name=setup-py::$( find . -wholename './setup.py' )
22
- - name: Set up Python
23
- if: contains(steps.need-pypi.outputs.setup-py, 'setup.py')
24
- uses: actions/setup-python@v1
25
- with:
26
- python-version: '3.x'
27
- - name: Install dependencies
28
- if: contains(steps.need-pypi.outputs.setup-py, 'setup.py')
29
- run: |
30
- python -m pip install --upgrade pip
31
- pip install setuptools wheel twine
32
- - name: Build and publish
33
- if: contains(steps.need-pypi.outputs.setup-py, 'setup.py')
34
- env:
35
- TWINE_USERNAME: ${{ secrets.pypi_username }}
36
- TWINE_PASSWORD: ${{ secrets.pypi_password }}
37
- run: |
38
- python setup.py sdist
39
- twine upload dist/*
@@ -1,50 +0,0 @@
1
- semver~=3.0
2
- Click>=8.0
3
- appdirs>=1.4.3
4
- requests>=2.22.0
5
- findimports>=2.1.0
6
- toml>=0.10.2
7
- update_checker
8
-
9
- [:python_version == "3.7"]
10
- importlib_metadata
11
-
12
- [all]
13
- pytest
14
- sphinx
15
- wheel
16
- pytest-random-order>=1.0.0
17
- pytest-faulthandler
18
- coverage
19
- pylint
20
- twine
21
- pytest-cov
22
- black
23
-
24
- [dev]
25
- pytest
26
- pylint
27
- pytest-cov
28
- pytest-random-order>=1.0.0
29
- pytest-faulthandler
30
- coverage
31
- black
32
- sphinx
33
- wheel
34
- twine
35
-
36
- [docs]
37
- sphinx
38
-
39
- [package]
40
- wheel
41
- twine
42
-
43
- [tests]
44
- pytest
45
- pylint
46
- pytest-cov
47
- pytest-random-order>=1.0.0
48
- pytest-faulthandler
49
- coverage
50
- black
circup-1.9.0/setup.py DELETED
@@ -1,104 +0,0 @@
1
- # SPDX-FileCopyrightText: 2019 Nicholas Tollervey, written for Adafruit Industries
2
- #
3
- # SPDX-License-Identifier: MIT
4
-
5
-
6
- """A setuptools based setup module.
7
- See:
8
- https://packaging.python.org/guides/distributing-packages-using-setuptools/
9
- https://github.com/pypa/sampleproject
10
- """
11
-
12
- # Always prefer setuptools over distutils
13
- from setuptools import setup, find_packages
14
-
15
- # To use a consistent encoding
16
- from codecs import open
17
- from os import path
18
-
19
- here = path.abspath(path.dirname(__file__))
20
-
21
- # Get the long description from the README file
22
- with open(path.join(here, "README.rst"), encoding="utf-8") as f:
23
- long_description = f.read()
24
-
25
- install_requires = [
26
- "semver~=3.0",
27
- "Click>=8.0",
28
- "appdirs>=1.4.3",
29
- "requests>=2.22.0",
30
- "findimports>=2.1.0",
31
- "toml>=0.10.2",
32
- # importlib_metadata is only available for 3.7, and is not needed for 3.8 and up.
33
- "importlib_metadata; python_version == '3.7'",
34
- "update_checker",
35
- ]
36
-
37
- extras_require = {
38
- "tests": [
39
- "pytest",
40
- "pylint",
41
- "pytest-cov",
42
- "pytest-random-order>=1.0.0",
43
- "pytest-faulthandler",
44
- "coverage",
45
- "black",
46
- ],
47
- "docs": ["sphinx"],
48
- "package": [
49
- # Wheel building and PyPI uploading
50
- "wheel",
51
- "twine",
52
- ],
53
- }
54
-
55
- extras_require["dev"] = (
56
- extras_require["tests"] + extras_require["docs"] + extras_require["package"]
57
- )
58
-
59
- extras_require["all"] = list(
60
- {req for extra, reqs in extras_require.items() for req in reqs}
61
- )
62
-
63
- setup(
64
- name="circup",
65
- use_scm_version=True,
66
- setup_requires=["setuptools_scm"],
67
- description="A tool to manage/update libraries on CircuitPython devices.",
68
- long_description=long_description,
69
- long_description_content_type="text/x-rst",
70
- # The project's main homepage.
71
- url="https://github.com/adafruit/circup",
72
- # Author details
73
- author="Adafruit Industries",
74
- author_email="circuitpython@adafruit.com",
75
- install_requires=install_requires,
76
- extras_require=extras_require,
77
- # Choose your license
78
- license="MIT",
79
- # See https://pypi.python.org/pypi?%3Aaction=list_classifiers
80
- classifiers=[
81
- "Development Status :: 3 - Alpha",
82
- "Environment :: Console",
83
- "Intended Audience :: Developers",
84
- "Intended Audience :: Education",
85
- "License :: OSI Approved :: MIT License",
86
- "Operating System :: POSIX",
87
- "Operating System :: MacOS :: MacOS X",
88
- "Operating System :: Microsoft :: Windows",
89
- "Programming Language :: Python :: 3.6",
90
- "Programming Language :: Python :: 3.7",
91
- "Programming Language :: Python :: 3.8",
92
- "Programming Language :: Python :: 3.9",
93
- "Topic :: Education",
94
- "Topic :: Software Development :: Embedded Systems",
95
- "Topic :: System :: Software Distribution",
96
- ],
97
- entry_points={"console_scripts": ["circup=circup:main"]},
98
- # What does your project relate to?
99
- keywords="adafruit, blinka, circuitpython, micropython, libraries",
100
- # You can just specify the packages manually here if your project is
101
- # simple. Or you can use find_packages().
102
- packages=["circup"],
103
- package_data={"circup": ["config/bundle_config.json"]},
104
- )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes