stdl 0.6.7__tar.gz → 0.6.9__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 (46) hide show
  1. {stdl-0.6.7 → stdl-0.6.9}/PKG-INFO +5 -2
  2. {stdl-0.6.7 → stdl-0.6.9}/mkdocs.yml +0 -1
  3. {stdl-0.6.7 → stdl-0.6.9}/pyproject.toml +140 -113
  4. {stdl-0.6.7 → stdl-0.6.9}/stdl/color.py +97 -85
  5. {stdl-0.6.7 → stdl-0.6.9}/stdl/decorators.py +5 -8
  6. {stdl-0.6.7 → stdl-0.6.9}/stdl/dt.py +88 -48
  7. {stdl-0.6.7 → stdl-0.6.9}/stdl/fs.py +150 -115
  8. {stdl-0.6.7 → stdl-0.6.9}/stdl/import_lazy.py +26 -19
  9. {stdl-0.6.7 → stdl-0.6.9}/stdl/log.py +17 -6
  10. stdl-0.6.9/stdl/lst.py +166 -0
  11. {stdl-0.6.7 → stdl-0.6.9}/stdl/net.py +10 -2
  12. {stdl-0.6.7 → stdl-0.6.9}/stdl/st.py +41 -47
  13. {stdl-0.6.7 → stdl-0.6.9}/tests/test_color.py +9 -9
  14. {stdl-0.6.7 → stdl-0.6.9}/tests/test_decorators.py +7 -4
  15. stdl-0.6.9/tests/test_dt.py +229 -0
  16. {stdl-0.6.7 → stdl-0.6.9}/tests/test_fs.py +39 -39
  17. stdl-0.6.9/tests/test_lst.py +27 -0
  18. {stdl-0.6.7 → stdl-0.6.9}/tests/test_pydantic_integration.py +8 -3
  19. {stdl-0.6.7 → stdl-0.6.9}/tests/test_st.py +11 -1
  20. {stdl-0.6.7 → stdl-0.6.9}/uv.lock +3 -1
  21. stdl-0.6.7/stdl/lst.py +0 -166
  22. stdl-0.6.7/tests/test_dt.py +0 -109
  23. stdl-0.6.7/tests/test_lst.py +0 -25
  24. {stdl-0.6.7 → stdl-0.6.9}/.editorconfig +0 -0
  25. {stdl-0.6.7 → stdl-0.6.9}/.github/workflows/lint.yml +0 -0
  26. {stdl-0.6.7 → stdl-0.6.9}/.github/workflows/publish.yml +0 -0
  27. {stdl-0.6.7 → stdl-0.6.9}/.github/workflows/test.yml +0 -0
  28. {stdl-0.6.7 → stdl-0.6.9}/.gitignore +0 -0
  29. {stdl-0.6.7 → stdl-0.6.9}/.pre-commit-config.yaml +0 -0
  30. {stdl-0.6.7 → stdl-0.6.9}/.python-version +0 -0
  31. {stdl-0.6.7 → stdl-0.6.9}/.readthedocs.yml +0 -0
  32. {stdl-0.6.7 → stdl-0.6.9}/CONTRIBUTING.md +0 -0
  33. {stdl-0.6.7 → stdl-0.6.9}/Justfile +0 -0
  34. {stdl-0.6.7 → stdl-0.6.9}/LICENSE +0 -0
  35. {stdl-0.6.7 → stdl-0.6.9}/README.md +0 -0
  36. {stdl-0.6.7 → stdl-0.6.9}/docs/index.md +0 -0
  37. {stdl-0.6.7 → stdl-0.6.9}/docs/reference/color.md +0 -0
  38. {stdl-0.6.7 → stdl-0.6.9}/docs/reference/decorators.md +0 -0
  39. {stdl-0.6.7 → stdl-0.6.9}/docs/reference/dt.md +0 -0
  40. {stdl-0.6.7 → stdl-0.6.9}/docs/reference/fs.md +0 -0
  41. {stdl-0.6.7 → stdl-0.6.9}/docs/reference/import_lazy.md +0 -0
  42. {stdl-0.6.7 → stdl-0.6.9}/docs/reference/log.md +0 -0
  43. {stdl-0.6.7 → stdl-0.6.9}/docs/reference/net.md +0 -0
  44. {stdl-0.6.7 → stdl-0.6.9}/docs/reference/st.md +0 -0
  45. {stdl-0.6.7 → stdl-0.6.9}/docs/requirements.txt +0 -0
  46. {stdl-0.6.7 → stdl-0.6.9}/stdl/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stdl
3
- Version: 0.6.7
3
+ Version: 0.6.9
4
4
  Summary: Extended Python Standard Library
5
5
  Project-URL: Repository, https://github.com/zigai/stdl
6
6
  Project-URL: Issues, https://github.com/zigai/stdl/issues
@@ -28,7 +28,7 @@ License: MIT License
28
28
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
29
  SOFTWARE.
30
30
  License-File: LICENSE
31
- Keywords: ANSI colors,color formats,filesystem,lazy import,list utils,logging configuration,python lazy import,python utilities,standard library,stdl,string utils,terminal links,terminal output
31
+ Keywords: ansi-colors,color-formats,filesystem,lazy-import,list-utils,python-utilities,standard-library,stdl,terminal-links,text-processing
32
32
  Classifier: Intended Audience :: Developers
33
33
  Classifier: License :: OSI Approved :: MIT License
34
34
  Classifier: Operating System :: OS Independent
@@ -41,6 +41,9 @@ Classifier: Programming Language :: Python :: 3.12
41
41
  Classifier: Programming Language :: Python :: 3.13
42
42
  Classifier: Programming Language :: Python :: 3.14
43
43
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
44
+ Classifier: Topic :: System :: Filesystems
45
+ Classifier: Topic :: Text Processing :: General
46
+ Classifier: Topic :: Utilities
44
47
  Classifier: Typing :: Typed
45
48
  Requires-Python: >=3.10
46
49
  Requires-Dist: python-dateutil>=2.8.2
@@ -24,7 +24,6 @@ theme:
24
24
  - navigation.instant.prefetch
25
25
  - navigation.instant.preview
26
26
  - navigation.instant.progress
27
- - search.highlight
28
27
  - search.share
29
28
  - search.highlight
30
29
  - search.suggest
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "stdl"
3
- version = "0.6.7"
3
+ version = "0.6.9"
4
4
  description = "Extended Python Standard Library"
5
5
  authors = [{ name = "Žiga Ivanšek", email = "ziga.ivansek@gmail.com" }]
6
6
  license = { file = "LICENSE" }
@@ -19,6 +19,9 @@ classifiers = [
19
19
  "Operating System :: OS Independent",
20
20
  "Intended Audience :: Developers",
21
21
  "Topic :: Software Development :: Libraries :: Python Modules",
22
+ "Topic :: Utilities",
23
+ "Topic :: System :: Filesystems",
24
+ "Topic :: Text Processing :: General",
22
25
  "Programming Language :: Python",
23
26
  "Programming Language :: Python :: 3",
24
27
  "Programming Language :: Python :: 3 :: Only",
@@ -31,21 +34,17 @@ classifiers = [
31
34
 
32
35
  keywords = [
33
36
  "stdl",
34
- "standard library",
35
- "python utilities",
37
+ "standard-library",
38
+ "python-utilities",
36
39
  "filesystem",
37
- "list utils",
38
- "string utils",
39
- "logging configuration",
40
- "ANSI colors",
41
- "color formats",
42
- "terminal output",
43
- "terminal links",
44
- "lazy import",
45
- "python lazy import",
40
+ "list-utils",
41
+ "ansi-colors",
42
+ "color-formats",
43
+ "terminal-links",
44
+ "lazy-import",
45
+ "text-processing",
46
46
  ]
47
47
 
48
-
49
48
  [project.optional-dependencies]
50
49
  full = ["tqdm>=4.67.1"]
51
50
  dev = [
@@ -71,106 +70,6 @@ build-backend = "hatchling.build"
71
70
  [tool.hatch.build.targets.wheel]
72
71
  packages = ["stdl"]
73
72
 
74
- [tool.ruff]
75
- line-length = 100
76
-
77
- [tool.ruff.lint]
78
- select = [
79
- "F", # Pyflakes
80
- "E", # Pycodestyle (Error)
81
- 'I', # isort
82
- 'D', # pydocstyle
83
- 'D213', # pydocstyle
84
- 'UP', # pyupgrade
85
- 'YTT', # flake8-2020
86
- 'B', # flake8-bugbear
87
- "PLE", # pylint
88
- 'PYI006', # flake8-pyi
89
- 'PYI019', # flake8-pyi
90
- 'PYI024', # flake8-pyi
91
- 'PYI030', # flake8-pyi
92
- 'PYI062', # flake8-pyi
93
- 'PYI063', # flake8-pyi
94
- 'PYI066', # flake8-pyi
95
- "RUF001",
96
- "RUF002",
97
- "RUF003",
98
- "RUF005",
99
- "RUF006",
100
- "RUF012",
101
- "RUF013",
102
- "RUF016",
103
- "RUF017",
104
- "RUF018",
105
- "RUF019",
106
- "RUF020",
107
- "RUF021",
108
- "RUF024",
109
- "RUF026",
110
- "RUF030",
111
- "RUF032",
112
- "RUF033",
113
- "RUF034",
114
- "TRY002",
115
- "TRY004",
116
- "TRY201",
117
- "TRY300",
118
- "TRY301",
119
- "TRY400",
120
- "PERF101",
121
- "RET503",
122
- "LOG001",
123
- "LOG002",
124
- ]
125
- ignore = [
126
- "D100",
127
- "D101",
128
- "D102",
129
- "D103",
130
- "D104",
131
- 'D105',
132
- 'D106',
133
- 'D107',
134
- 'D205',
135
- "D212",
136
- 'D415',
137
- 'E501',
138
- 'B011',
139
- 'B028',
140
- 'B904',
141
- 'PIE804',
142
- "N802",
143
- "N803",
144
- "N806",
145
- "UP007",
146
- "UP038",
147
- ]
148
- exclude = ["build", "tests/**"]
149
-
150
- [tool.ruff.lint.per-file-ignores]
151
- "__init__.py" = [
152
- "F401", # Unused import
153
- "E402", # Module import not at top of file
154
- ]
155
- "stdl/color.py" = [
156
- "E741", # Ambiguous variable name 'l' (used for lightness in HSL color space)
157
- ]
158
- "stdl/lst.py" = [
159
- "E741", # Ambiguous variable name 'l' (used as list parameter name)
160
- ]
161
-
162
- [tool.ruff.format]
163
- quote-style = "double"
164
- indent-style = "space"
165
- skip-magic-trailing-comma = false
166
- line-ending = "lf"
167
-
168
- [tool.ruff.lint.isort]
169
- known-first-party = ["stdl", "tests"]
170
-
171
- [tool.ruff.lint.pydocstyle]
172
- convention = "google"
173
-
174
73
  [tool.codespell]
175
74
  skip = '.git,uv.lock'
176
75
 
@@ -213,3 +112,131 @@ warn_return_any = true
213
112
  warn_unused_configs = true
214
113
  strict_equality = true
215
114
  ignore_missing_imports = true
115
+
116
+ [tool.ruff]
117
+ line-length = 100
118
+
119
+ [tool.ruff.lint]
120
+ select = ["ALL"]
121
+ ignore = [
122
+ "ERA",
123
+ "FBT002",
124
+ "COM",
125
+ "CPY",
126
+ "DJ",
127
+ "ANN003",
128
+ "FIX",
129
+ "D100",
130
+ "D101",
131
+ "D102",
132
+ "D103",
133
+ "D104",
134
+ "D105",
135
+ "D106",
136
+ "D107",
137
+ "D205",
138
+ "D203",
139
+ "D212",
140
+ "E501",
141
+ "PIE804",
142
+ "S101",
143
+ "EM101",
144
+ "PYI041",
145
+ "PYI051",
146
+ "PYI046",
147
+ "PYI047",
148
+ "PYI049",
149
+ "PYI053",
150
+ "PYI054",
151
+ "RET501",
152
+ "SIM910",
153
+ "N812",
154
+ "PLC0415",
155
+ "PLR0904",
156
+ "PLR0913",
157
+ "PLR2004",
158
+ "PLR1711",
159
+ "TRY003",
160
+ "T20",
161
+ "SIM105",
162
+ "RET504",
163
+ "PLR0912",
164
+ "PLR0915",
165
+ "SIM105",
166
+ "TD",
167
+ "TC001",
168
+ "TC002",
169
+ "TC003",
170
+ "TC006",
171
+ "PLW0603",
172
+ "EM102",
173
+ "PLW2901",
174
+ "RSE102",
175
+ "PGH004",
176
+ "N806",
177
+ "FBT001",
178
+ "PTH",
179
+ "S310",
180
+ ]
181
+ exclude = ["build"]
182
+
183
+ [tool.ruff.lint.per-file-ignores]
184
+ "__init__.py" = [
185
+ "F401", # Unused import
186
+ "E402", # Module import not at top of file
187
+ ]
188
+ "**/tests/**/*.py" = [
189
+ "S104",
190
+ "S105",
191
+ "S106",
192
+ "TRY004",
193
+ "RUF003",
194
+ "RUF012",
195
+ "UP031",
196
+ "SLF001",
197
+ "ARG",
198
+ "N806",
199
+ "ANN001",
200
+ "ANN201",
201
+ "ANN202",
202
+ "ANN204",
203
+ "ANN401",
204
+ "S",
205
+ "SLF001",
206
+ "INP001",
207
+ "PLW0108",
208
+ "EM102",
209
+ "FBT001",
210
+ "SIM300",
211
+ "DTZ001",
212
+ ]
213
+ "examples/*.py" = ["INP001"]
214
+
215
+ [tool.ruff.lint.pep8-naming]
216
+ classmethod-decorators = [
217
+ "pydantic.validator",
218
+ "declared_attr",
219
+ "expression",
220
+ "comparator",
221
+ ]
222
+
223
+ [tool.ruff.lint.flake8-builtins]
224
+ ignorelist = ["id", "input"]
225
+
226
+ [tool.ruff.lint.flake8-type-checking]
227
+ runtime-evaluated-base-classes = [
228
+ "pydantic.BaseModel",
229
+ "sqlalchemy.orm.DeclarativeBase",
230
+ ]
231
+
232
+ [tool.ruff.format]
233
+ quote-style = "double"
234
+ indent-style = "space"
235
+ skip-magic-trailing-comma = false
236
+ line-ending = "lf"
237
+
238
+ [tool.ruff.lint.isort]
239
+ known-first-party = ["stdl", "tests"]
240
+
241
+ [tool.ruff.lint.pydocstyle]
242
+ convention = "google"