v440 2.0.0.dev68__tar.gz → 2.0.0.dev70__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 (36) hide show
  1. {v440-2.0.0.dev68/src/v440.egg-info → v440-2.0.0.dev70}/PKG-INFO +1 -1
  2. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/pyproject.toml +1 -1
  3. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/ListStringer.py +1 -3
  4. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/tests/test_testdata.py +75 -51
  5. {v440-2.0.0.dev68 → v440-2.0.0.dev70/src/v440.egg-info}/PKG-INFO +1 -1
  6. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/LICENSE.txt +0 -0
  7. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/MANIFEST.in +0 -0
  8. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/README.rst +0 -0
  9. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/setup.cfg +0 -0
  10. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/__init__.py +0 -0
  11. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/BaseStringer.py +0 -0
  12. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/Cfg.py +0 -0
  13. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/Digest.py +0 -0
  14. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/Pattern.py +0 -0
  15. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/SlotStringer.py +0 -0
  16. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/__init__.py +0 -0
  17. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/cfg.toml +0 -0
  18. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/guarding.py +0 -0
  19. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/qualparse.py +0 -0
  20. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/releaseparse.py +0 -0
  21. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/_utils/segmenting.py +0 -0
  22. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/core/Base.py +0 -0
  23. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/core/Local.py +0 -0
  24. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/core/Public.py +0 -0
  25. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/core/Qual.py +0 -0
  26. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/core/Release.py +0 -0
  27. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/core/Version.py +0 -0
  28. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/core/VersionError.py +0 -0
  29. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/core/__init__.py +0 -0
  30. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/tests/__init__.py +0 -0
  31. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/tests/test_version.py +0 -0
  32. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440/tests/testdata.toml +0 -0
  33. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440.egg-info/SOURCES.txt +0 -0
  34. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440.egg-info/dependency_links.txt +0 -0
  35. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440.egg-info/requires.txt +0 -0
  36. {v440-2.0.0.dev68 → v440-2.0.0.dev70}/src/v440.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: v440
3
- Version: 2.0.0.dev68
3
+ Version: 2.0.0.dev70
4
4
  Summary: This project provides mutable version objects in accordance with PEP440.
5
5
  Author-email: Johannes <johannes.programming@gmail.com>
6
6
  License: The MIT License (MIT)
@@ -36,7 +36,7 @@ keywords = []
36
36
  name = "v440"
37
37
  readme = "README.rst"
38
38
  requires-python = ">=3.11"
39
- version = "2.0.0.dev68"
39
+ version = "2.0.0.dev70"
40
40
 
41
41
  [project.license]
42
42
  file = "LICENSE.txt"
@@ -178,9 +178,7 @@ class ListStringer(BaseStringer, collections.abc.MutableSequence):
178
178
  self._data = ()
179
179
 
180
180
  def _set(self: Self, value: Any) -> None:
181
- if value is None:
182
- self.data = ()
183
- elif isinstance(value, str):
181
+ if isinstance(value, str):
184
182
  self.string = value
185
183
  elif hasattr(value, "__iter__"):
186
184
  self.data = value
@@ -255,14 +255,10 @@ class TestPackagingA(unittest.TestCase):
255
255
  self.go(text=s)
256
256
 
257
257
  def go(self: Self, text: str) -> None:
258
- a: packaging.version.Version
259
- b: str
260
- f: int
261
- g: str
262
- a = packaging.version.Version(text)
263
- b = str(a)
264
- f = len(a.release)
265
- g = format(Version(text), str(f))
258
+ a: packaging.version.Version = packaging.version.Version(text)
259
+ b: str = str(a)
260
+ f: int = len(a.release)
261
+ g: str = format(Version(text), str(f))
266
262
  self.assertEqual(b, g)
267
263
 
268
264
 
@@ -289,9 +285,9 @@ class TestPackagingB(unittest.TestCase):
289
285
  class TestPackagingC(unittest.TestCase):
290
286
  def test_strings_c(self: Self) -> None:
291
287
  pure: list = list()
292
- l: list
293
- for l in Util.util.data["strings"]["valid"].values():
294
- pure += l
288
+ part: list
289
+ for part in Util.util.data["strings"]["valid"].values():
290
+ pure += part
295
291
  ops: list = [
296
292
  operator.eq,
297
293
  operator.ne,
@@ -300,57 +296,85 @@ class TestPackagingC(unittest.TestCase):
300
296
  operator.le,
301
297
  operator.lt,
302
298
  ]
303
- a: packaging.version.Version
304
- b: packaging.version.Version
305
- c: packaging.version.Version
306
- d: packaging.version.Version
307
- native: bool
308
- convert: bool
309
- msg: str
310
- op: Any
311
- for x, y, op in iterprod.iterprod(pure, pure, ops):
312
- a = packaging.version.Version(x)
313
- b = Version(x).packaging()
314
- c = packaging.version.Version(y)
315
- d = Version(y).packaging()
316
- native = op(a, c)
317
- convert = op(b, d)
318
- msg = f"{op} should match for {x!r} and {y!r}"
319
- self.assertEqual(native, convert, msg=msg)
299
+ args: tuple
300
+ for args in iterprod.iterprod(pure, pure, ops):
301
+ with self.subTest(args=args):
302
+ self.go(*args)
303
+
304
+ def go(self: Self, x: str, y: str, func: Callable, /) -> None:
305
+ a: packaging.version.Version = packaging.version.Version(x)
306
+ b: packaging.version.Version = Version(string=x).packaging()
307
+ c: packaging.version.Version = packaging.version.Version(y)
308
+ d: packaging.version.Version = Version(string=y).packaging()
309
+ native: bool = func(a, c)
310
+ convert: bool = func(b, d)
311
+ msg: str = f"{func} should match for {x!r} and {y!r}"
312
+ self.assertEqual(native, convert, msg=msg)
320
313
 
321
314
 
322
315
  class TestPackagingField(unittest.TestCase):
323
316
  def test_field(self: Self) -> None:
324
- versionable: list = list()
317
+ k: str
325
318
  l: list
326
- for l in Util.util.data["strings"]["valid"].values():
327
- versionable += l
328
- for l in Util.util.data["strings"]["incomp"].values():
329
- versionable += l
330
- version_obj: Version = Version()
331
- v: Version
319
+ for k, l in Util.util.data["strings"]["valid"].items():
320
+ with self.subTest(key=k):
321
+ self.go_list(l)
322
+ for k, l in Util.util.data["strings"]["incomp"].items():
323
+ with self.subTest(key=k):
324
+ self.go_list(l)
325
+
326
+ def go_list(self: Self, listing: list) -> None:
332
327
  x: str
333
- for x in versionable:
334
- v = Version(x)
335
- self.assertEqual(v.public.qual.isdevrelease(), v.packaging().is_devrelease)
336
- self.assertEqual(v.public.qual.isprerelease(), v.packaging().is_prerelease)
337
- self.assertEqual(
338
- v.public.qual.ispostrelease(), v.packaging().is_postrelease
339
- )
340
- self.assertEqual(str(v.public.base), v.packaging().base_version)
341
- self.assertEqual(str(v.public), v.packaging().public)
342
- version_obj.local = v.packaging().local
343
- self.assertEqual(str(v.local), str(version_obj.local))
328
+ for x in listing:
329
+ with self.subTest():
330
+ self.go(query=x)
331
+
332
+ def go(self: Self, query: str) -> None:
333
+ v: Version = Version(query)
334
+ self.assertEqual(
335
+ v.public.qual.isdevrelease(),
336
+ v.packaging().is_devrelease,
337
+ )
338
+ self.assertEqual(
339
+ v.public.qual.isprerelease(),
340
+ v.packaging().is_prerelease,
341
+ )
342
+ self.assertEqual(
343
+ v.public.qual.ispostrelease(),
344
+ v.packaging().is_postrelease,
345
+ )
346
+ self.assertEqual(
347
+ str(v.public.base),
348
+ v.packaging().base_version,
349
+ )
350
+ self.assertEqual(
351
+ str(v.public),
352
+ v.packaging().public,
353
+ )
354
+ local_packaging: Optional[str] = v.packaging().local
355
+ if local_packaging is None:
356
+ local_packaging = ""
357
+ self.assertEqual(
358
+ str(v.local),
359
+ str(local_packaging),
360
+ )
344
361
 
345
362
 
346
363
  class TestPackagingExc(unittest.TestCase):
347
364
  def test_exc_pack(self: Self) -> None:
348
- impure: list = list()
365
+ k: str
366
+ for k in ("incomp", "exc"):
367
+ with self.subTest(strings=k):
368
+ self.go_dict(Util.util.data["strings"][k])
369
+
370
+ def go_dict(self: Self, dictionary: dict, /) -> None:
371
+ k: str
349
372
  l: list
350
- for l in Util.util.data["strings"]["incomp"].values():
351
- impure += l
352
- for l in Util.util.data["strings"]["exc"].values():
353
- impure += l
373
+ for k, l in dictionary.items():
374
+ with self.subTest(key=k):
375
+ self.go_list(l)
376
+
377
+ def go_list(self: Self, impure: list, /) -> None:
354
378
  x: str
355
379
  for x in impure:
356
380
  with self.assertRaises(packaging.version.InvalidVersion):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: v440
3
- Version: 2.0.0.dev68
3
+ Version: 2.0.0.dev70
4
4
  Summary: This project provides mutable version objects in accordance with PEP440.
5
5
  Author-email: Johannes <johannes.programming@gmail.com>
6
6
  License: The MIT License (MIT)
File without changes
File without changes
File without changes
File without changes