bracex 2.4__tar.gz → 2.5__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.
- {bracex-2.4 → bracex-2.5}/LICENSE.md +1 -1
- {bracex-2.4 → bracex-2.5}/PKG-INFO +3 -4
- {bracex-2.4 → bracex-2.5}/README.md +0 -2
- {bracex-2.4 → bracex-2.5}/bracex/__init__.py +1 -1
- {bracex-2.4 → bracex-2.5}/bracex/__meta__.py +9 -10
- {bracex-2.4 → bracex-2.5}/docs/src/markdown/about/changelog.md +4 -0
- {bracex-2.4 → bracex-2.5}/hatch_build.py +1 -0
- {bracex-2.4 → bracex-2.5}/mkdocs.yml +34 -5
- {bracex-2.4 → bracex-2.5}/pyproject.toml +3 -3
- {bracex-2.4 → bracex-2.5}/.coveragerc +0 -0
- {bracex-2.4 → bracex-2.5}/.gitignore +0 -0
- {bracex-2.4 → bracex-2.5}/.pyspelling.yml +0 -0
- {bracex-2.4 → bracex-2.5}/bracex/__main__.py +0 -0
- {bracex-2.4 → bracex-2.5}/bracex/py.typed +0 -0
- {bracex-2.4 → bracex-2.5}/docs/src/markdown/.snippets/abbr.md +0 -0
- {bracex-2.4 → bracex-2.5}/docs/src/markdown/.snippets/links.md +0 -0
- {bracex-2.4 → bracex-2.5}/docs/src/markdown/.snippets/refs.md +0 -0
- {bracex-2.4 → bracex-2.5}/docs/src/markdown/about/contributing.md +0 -0
- {bracex-2.4 → bracex-2.5}/docs/src/markdown/about/development.md +0 -0
- {bracex-2.4 → bracex-2.5}/docs/src/markdown/about/license.md +0 -0
- {bracex-2.4 → bracex-2.5}/docs/src/markdown/index.md +0 -0
- {bracex-2.4 → bracex-2.5}/docs/theme/announce.html +0 -0
- {bracex-2.4 → bracex-2.5}/requirements/docs.txt +0 -0
- {bracex-2.4 → bracex-2.5}/requirements/lint.txt +0 -0
- {bracex-2.4 → bracex-2.5}/requirements/test.txt +0 -0
- {bracex-2.4 → bracex-2.5}/tests/__init__.py +0 -0
- {bracex-2.4 → bracex-2.5}/tests/brace-cases.txt +0 -0
- {bracex-2.4 → bracex-2.5}/tests/brace-results.txt +0 -0
- {bracex-2.4 → bracex-2.5}/tests/generate.sh +0 -0
- {bracex-2.4 → bracex-2.5}/tests/test_brace.py +0 -0
- {bracex-2.4 → bracex-2.5}/tests/test_main.py +0 -0
- {bracex-2.4 → bracex-2.5}/tests/test_versions.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: bracex
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5
|
|
4
4
|
Summary: Bash style brace expander.
|
|
5
5
|
Project-URL: Homepage, https://github.com/facelessuser/bracex
|
|
6
6
|
Author-email: Isaac Muse <Isaac.Muse@gmail.com>
|
|
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
23
|
Classifier: Typing :: Typed
|
|
23
24
|
Requires-Python: >=3.8
|
|
@@ -86,8 +87,6 @@ MIT License
|
|
|
86
87
|
|
|
87
88
|
[github-ci-image]: https://github.com/facelessuser/bracex/workflows/build/badge.svg?branch=master&event=push
|
|
88
89
|
[github-ci-link]: https://github.com/facelessuser/bracex/actions?query=workflow%3Abuild+branch%3Amaster
|
|
89
|
-
[discord-image]: https://img.shields.io/discord/678289859768745989?logo=discord&logoColor=aaaaaa&color=mediumpurple&labelColor=333333
|
|
90
|
-
[discord-link]:https://discord.gg/TWs8Tgr
|
|
91
90
|
[codecov-image]: https://img.shields.io/codecov/c/github/facelessuser/bracex/master.svg?logo=codecov&logoColor=aaaaaa&labelColor=333333
|
|
92
91
|
[codecov-link]: https://codecov.io/github/facelessuser/bracex
|
|
93
92
|
[pypi-image]: https://img.shields.io/pypi/v/bracex.svg?logo=pypi&logoColor=aaaaaa&labelColor=333333
|
|
@@ -61,8 +61,6 @@ MIT License
|
|
|
61
61
|
|
|
62
62
|
[github-ci-image]: https://github.com/facelessuser/bracex/workflows/build/badge.svg?branch=master&event=push
|
|
63
63
|
[github-ci-link]: https://github.com/facelessuser/bracex/actions?query=workflow%3Abuild+branch%3Amaster
|
|
64
|
-
[discord-image]: https://img.shields.io/discord/678289859768745989?logo=discord&logoColor=aaaaaa&color=mediumpurple&labelColor=333333
|
|
65
|
-
[discord-link]:https://discord.gg/TWs8Tgr
|
|
66
64
|
[codecov-image]: https://img.shields.io/codecov/c/github/facelessuser/bracex/master.svg?logo=codecov&logoColor=aaaaaa&labelColor=333333
|
|
67
65
|
[codecov-link]: https://codecov.io/github/facelessuser/bracex
|
|
68
66
|
[pypi-image]: https://img.shields.io/pypi/v/bracex.svg?logo=pypi&logoColor=aaaaaa&labelColor=333333
|
|
@@ -151,7 +151,7 @@ class ExpandBrace:
|
|
|
151
151
|
|
|
152
152
|
if self.max_limit > 0 and self.count > self.max_limit:
|
|
153
153
|
raise ExpansionLimitException(
|
|
154
|
-
'Brace expansion has exceeded the limit of {:d}'
|
|
154
|
+
f'Brace expansion has exceeded the limit of {self.max_limit:d}'
|
|
155
155
|
)
|
|
156
156
|
|
|
157
157
|
def set_expanding(self) -> bool:
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"""Meta related things."""
|
|
2
2
|
from __future__ import annotations
|
|
3
|
-
from __future__ import unicode_literals
|
|
4
3
|
from collections import namedtuple
|
|
5
4
|
import re
|
|
6
5
|
|
|
@@ -94,7 +93,7 @@ class Version(namedtuple("Version", ["major", "minor", "micro", "release", "pre"
|
|
|
94
93
|
raise ValueError("All version parts except 'release' should be integers.")
|
|
95
94
|
|
|
96
95
|
if release not in REL_MAP:
|
|
97
|
-
raise ValueError("'{}' is not a valid release type."
|
|
96
|
+
raise ValueError(f"'{release}' is not a valid release type.")
|
|
98
97
|
|
|
99
98
|
# Ensure valid pre-release (we do not allow implicit pre-releases).
|
|
100
99
|
if ".dev-candidate" < release < "final":
|
|
@@ -119,7 +118,7 @@ class Version(namedtuple("Version", ["major", "minor", "micro", "release", "pre"
|
|
|
119
118
|
elif dev:
|
|
120
119
|
raise ValueError("Version is not a development release.")
|
|
121
120
|
|
|
122
|
-
return super(
|
|
121
|
+
return super().__new__(cls, major, minor, micro, release, pre, post, dev)
|
|
123
122
|
|
|
124
123
|
def _is_pre(self) -> bool:
|
|
125
124
|
"""Is prerelease."""
|
|
@@ -146,15 +145,15 @@ class Version(namedtuple("Version", ["major", "minor", "micro", "release", "pre"
|
|
|
146
145
|
|
|
147
146
|
# Assemble major, minor, micro version and append `pre`, `post`, or `dev` if needed..
|
|
148
147
|
if self.micro == 0:
|
|
149
|
-
ver = "{}.{
|
|
148
|
+
ver = f"{self.major}.{self.minor}"
|
|
150
149
|
else:
|
|
151
|
-
ver = "{
|
|
150
|
+
ver = f"{self.major}.{self.minor}.{self.micro}"
|
|
152
151
|
if self._is_pre():
|
|
153
|
-
ver += '{
|
|
152
|
+
ver += f'{REL_MAP[self.release]}{self.pre}'
|
|
154
153
|
if self._is_post():
|
|
155
|
-
ver += ".post{
|
|
154
|
+
ver += f".post{self.post}"
|
|
156
155
|
if self._is_dev():
|
|
157
|
-
ver += ".dev{
|
|
156
|
+
ver += f".dev{self.dev}"
|
|
158
157
|
|
|
159
158
|
return ver
|
|
160
159
|
|
|
@@ -165,7 +164,7 @@ def parse_version(ver: str) -> Version:
|
|
|
165
164
|
m = RE_VER.match(ver)
|
|
166
165
|
|
|
167
166
|
if m is None:
|
|
168
|
-
raise ValueError("'{}' is not a valid version"
|
|
167
|
+
raise ValueError(f"'{ver}' is not a valid version")
|
|
169
168
|
|
|
170
169
|
# Handle major, minor, micro
|
|
171
170
|
major = int(m.group('major'))
|
|
@@ -194,5 +193,5 @@ def parse_version(ver: str) -> Version:
|
|
|
194
193
|
return Version(major, minor, micro, release, pre, post, dev)
|
|
195
194
|
|
|
196
195
|
|
|
197
|
-
__version_info__ = Version(2,
|
|
196
|
+
__version_info__ = Version(2, 5, 0, "final")
|
|
198
197
|
__version__ = __version_info__._get_canonical()
|
|
@@ -33,6 +33,7 @@ class CustomMetadataHook(MetadataHookInterface):
|
|
|
33
33
|
'Programming Language :: Python :: 3.10',
|
|
34
34
|
'Programming Language :: Python :: 3.11',
|
|
35
35
|
'Programming Language :: Python :: 3.12',
|
|
36
|
+
'Programming Language :: Python :: 3.13',
|
|
36
37
|
'Topic :: Software Development :: Libraries :: Python Modules',
|
|
37
38
|
'Typing :: Typed'
|
|
38
39
|
]
|
|
@@ -4,7 +4,7 @@ repo_url: https://github.com/facelessuser/bracex
|
|
|
4
4
|
edit_uri: tree/master/docs/src/markdown
|
|
5
5
|
site_description: Python spell checker.
|
|
6
6
|
copyright: |
|
|
7
|
-
Copyright © 2018 -
|
|
7
|
+
Copyright © 2018 - 2024 <a href="https://github.com/facelessuser" target="_blank" rel="noopener">Isaac Muse</a>
|
|
8
8
|
|
|
9
9
|
docs_dir: docs/src/markdown
|
|
10
10
|
theme:
|
|
@@ -72,8 +72,8 @@ markdown_extensions:
|
|
|
72
72
|
- pymdownx.caret:
|
|
73
73
|
- pymdownx.smartsymbols:
|
|
74
74
|
- pymdownx.emoji:
|
|
75
|
-
emoji_index: !!python/name:
|
|
76
|
-
emoji_generator: !!python/name:
|
|
75
|
+
emoji_index: !!python/name:material.extensions.emoji.twemoji
|
|
76
|
+
emoji_generator: !!python/name:material.extensions.emoji.to_svg
|
|
77
77
|
- pymdownx.escapeall:
|
|
78
78
|
hardbreak: True
|
|
79
79
|
nbsp: True
|
|
@@ -107,17 +107,46 @@ markdown_extensions:
|
|
|
107
107
|
- example
|
|
108
108
|
- quote
|
|
109
109
|
- pymdownx.blocks.details:
|
|
110
|
+
types:
|
|
111
|
+
- name: details-new
|
|
112
|
+
class: new
|
|
113
|
+
- name: details-settings
|
|
114
|
+
class: settings
|
|
115
|
+
- name: details-note
|
|
116
|
+
class: note
|
|
117
|
+
- name: details-abstract
|
|
118
|
+
class: abstract
|
|
119
|
+
- name: details-info
|
|
120
|
+
class: info
|
|
121
|
+
- name: details-tip
|
|
122
|
+
class: tip
|
|
123
|
+
- name: details-success
|
|
124
|
+
class: success
|
|
125
|
+
- name: details-question
|
|
126
|
+
class: question
|
|
127
|
+
- name: details-warning
|
|
128
|
+
class: warning
|
|
129
|
+
- name: details-failure
|
|
130
|
+
class: failure
|
|
131
|
+
- name: details-danger
|
|
132
|
+
class: danger
|
|
133
|
+
- name: details-bug
|
|
134
|
+
class: bug
|
|
135
|
+
- name: details-example
|
|
136
|
+
class: example
|
|
137
|
+
- name: details-quote
|
|
138
|
+
class: quote
|
|
110
139
|
- pymdownx.blocks.html:
|
|
111
140
|
- pymdownx.blocks.definition:
|
|
112
141
|
- pymdownx.blocks.tab:
|
|
113
142
|
alternate_style: True
|
|
143
|
+
combine_header_slug: True
|
|
144
|
+
slugify: !!python/object/apply:pymdownx.slugs.slugify {kwds: {case: lower}}
|
|
114
145
|
|
|
115
146
|
extra:
|
|
116
147
|
social:
|
|
117
148
|
- icon: fontawesome/brands/github
|
|
118
149
|
link: https://github.com/facelessuser
|
|
119
|
-
- icon: fontawesome/brands/discord
|
|
120
|
-
link: https://discord.gg/TWs8Tgr
|
|
121
150
|
|
|
122
151
|
plugins:
|
|
123
152
|
- search
|
|
@@ -68,7 +68,7 @@ show_error_codes = true
|
|
|
68
68
|
[tool.ruff]
|
|
69
69
|
line-length = 120
|
|
70
70
|
|
|
71
|
-
select = [
|
|
71
|
+
lint.select = [
|
|
72
72
|
"A", # flake8-builtins
|
|
73
73
|
"B", # flake8-bugbear
|
|
74
74
|
"D", # pydocstyle
|
|
@@ -84,7 +84,7 @@ select = [
|
|
|
84
84
|
"PERF" # Perflint
|
|
85
85
|
]
|
|
86
86
|
|
|
87
|
-
ignore = [
|
|
87
|
+
lint.ignore = [
|
|
88
88
|
"E741",
|
|
89
89
|
"D202",
|
|
90
90
|
"D401",
|
|
@@ -107,7 +107,7 @@ legacy_tox_ini = """
|
|
|
107
107
|
isolated_build = true
|
|
108
108
|
skipsdist=true
|
|
109
109
|
envlist=
|
|
110
|
-
py38,py39,py310,py311,py312,
|
|
110
|
+
py38,py39,py310,py311,py312,py313,
|
|
111
111
|
lint
|
|
112
112
|
|
|
113
113
|
[testenv]
|
|
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
|