ulid-transform 0.11.0__tar.gz → 0.11.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ulid-transform
3
- Version: 0.11.0
3
+ Version: 0.11.1
4
4
  Summary: Create and transform ULIDs
5
5
  Home-page: https://github.com/bdraco/ulid-transform
6
6
  License: MIT
@@ -1,5 +1,6 @@
1
1
  """Build optional cython modules."""
2
2
 
3
+ import logging
3
4
  import os
4
5
  from distutils.command.build_ext import build_ext
5
6
  from os.path import join
@@ -10,6 +11,16 @@ try:
10
11
  except ImportError:
11
12
  from distutils.core import Extension
12
13
 
14
+
15
+ def getenv_bool(key: str, default: bool = False) -> bool:
16
+ value = os.environ.get(key, str(default)).lower()
17
+ if value in ("1", "true", "yes"):
18
+ return True
19
+ if value in ("0", "false", "no"):
20
+ return False
21
+ raise ValueError(f"Invalid value for boolean envvar {key}: {value}")
22
+
23
+
13
24
  ulid_module = Extension(
14
25
  "ulid_transform._ulid_impl",
15
26
  [
@@ -27,11 +38,13 @@ class BuildExt(build_ext):
27
38
  try:
28
39
  super().build_extensions()
29
40
  except Exception: # nosec
30
- pass
41
+ logging.exception("Failed to build extensions")
42
+ if getenv_bool("REQUIRE_CYTHON"):
43
+ raise
31
44
 
32
45
 
33
46
  def build(setup_kwargs: Any) -> None:
34
- if os.environ.get("SKIP_CYTHON", False):
47
+ if getenv_bool("SKIP_CYTHON"):
35
48
  return
36
49
  try:
37
50
  from Cython.Build import cythonize
@@ -43,6 +56,7 @@ def build(setup_kwargs: Any) -> None:
43
56
  ulid_module,
44
57
  ],
45
58
  compiler_directives={"language_level": "3"}, # Python 3
59
+ verbose=True,
46
60
  ),
47
61
  cmdclass=dict(build_ext=BuildExt),
48
62
  )
@@ -51,6 +65,6 @@ def build(setup_kwargs: Any) -> None:
51
65
  pkg: ["_ulid_impl.cpp"] for pkg in setup_kwargs["packages"]
52
66
  }
53
67
  except Exception:
54
- if os.environ.get("REQUIRE_CYTHON"):
68
+ logging.exception("Failed to configure cython")
69
+ if getenv_bool("REQUIRE_CYTHON"):
55
70
  raise
56
- pass
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ulid-transform"
3
- version = "0.11.0"
3
+ version = "0.11.1"
4
4
  description = "Create and transform ULIDs"
5
5
  authors = ["J. Nick Koston <nick@koston.org>"]
6
6
  license = "MIT"
@@ -34,6 +34,12 @@ pytest-cov = "^3.0"
34
34
  Cython = ">=3.0.5"
35
35
  setuptools = "^65.4.1"
36
36
 
37
+
38
+ [tool.poetry.group.benchmark.dependencies]
39
+ ulid-py = "^1.1.0"
40
+ ulid2 = "^0.3.0"
41
+ pytest-benchmark = "^4.0.0"
42
+
37
43
  [tool.semantic_release]
38
44
  branch = "main"
39
45
  version_toml = "pyproject.toml:tool.poetry.version"
@@ -41,7 +47,6 @@ version_variable = "src/ulid_transform/__init__.py:__version__"
41
47
  build_command = "pip install poetry && poetry build"
42
48
 
43
49
  [tool.pytest.ini_options]
44
- addopts = "-v -Wdefault --cov=ulid_transform --cov-report=term-missing:skip-covered"
45
50
  pythonpath = ["src"]
46
51
 
47
52
  [tool.coverage.run]
@@ -78,6 +83,9 @@ exclude = [
78
83
  module = "tests.*"
79
84
  allow_untyped_defs = true
80
85
 
86
+ [[tool.mypy.overrides]]
87
+ module = "bench.*"
88
+ allow_untyped_defs = true
81
89
 
82
90
  [build-system]
83
91
  requires = ['setuptools>=65.4.1', 'wheel', 'Cython>=3.0.2', "poetry-core>=1.0.0"]
@@ -12,7 +12,7 @@ package_data = \
12
12
 
13
13
  setup_kwargs = {
14
14
  'name': 'ulid-transform',
15
- 'version': '0.11.0',
15
+ 'version': '0.11.1',
16
16
  'description': 'Create and transform ULIDs',
17
17
  'long_description': '# Fast ULID transformations\n\n<p align="center">\n <a href="https://github.com/bdraco/ulid-transform/actions/workflows/ci.yml?query=branch%3Amain">\n <img src="https://img.shields.io/github/actions/workflow/status/bdraco/ulid-transform/ci.yml?branch=main&label=CI&logo=github&style=flat-square" alt="CI Status" >\n </a>\n <a href="https://codecov.io/gh/bdraco/ulid-transform">\n <img src="https://img.shields.io/codecov/c/github/bdraco/ulid-transform.svg?logo=codecov&logoColor=fff&style=flat-square" alt="Test coverage percentage">\n </a>\n</p>\n<p align="center">\n <a href="https://python-poetry.org/">\n <img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJJSURBVHgBfZLPa1NBEMe/s7tNXoxW1KJQKaUHkXhQvHgW6UHQQ09CBS/6V3hKc/AP8CqCrUcpmop3Cx48eDB4yEECjVQrlZb80CRN8t6OM/teagVxYZi38+Yz853dJbzoMV3MM8cJUcLMSUKIE8AzQ2PieZzFxEJOHMOgMQQ+dUgSAckNXhapU/NMhDSWLs1B24A8sO1xrN4NECkcAC9ASkiIJc6k5TRiUDPhnyMMdhKc+Zx19l6SgyeW76BEONY9exVQMzKExGKwwPsCzza7KGSSWRWEQhyEaDXp6ZHEr416ygbiKYOd7TEWvvcQIeusHYMJGhTwF9y7sGnSwaWyFAiyoxzqW0PM/RjghPxF2pWReAowTEXnDh0xgcLs8l2YQmOrj3N7ByiqEoH0cARs4u78WgAVkoEDIDoOi3AkcLOHU60RIg5wC4ZuTC7FaHKQm8Hq1fQuSOBvX/sodmNJSB5geaF5CPIkUeecdMxieoRO5jz9bheL6/tXjrwCyX/UYBUcjCaWHljx1xiX6z9xEjkYAzbGVnB8pvLmyXm9ep+W8CmsSHQQY77Zx1zboxAV0w7ybMhQmfqdmmw3nEp1I0Z+FGO6M8LZdoyZnuzzBdjISicKRnpxzI9fPb+0oYXsNdyi+d3h9bm9MWYHFtPeIZfLwzmFDKy1ai3p+PDls1Llz4yyFpferxjnyjJDSEy9CaCx5m2cJPerq6Xm34eTrZt3PqxYO1XOwDYZrFlH1fWnpU38Y9HRze3lj0vOujZcXKuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=" alt="Poetry">\n </a>\n <a href="https://github.com/ambv/black">\n <img src="https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square" alt="black">\n </a>\n <a href="https://github.com/pre-commit/pre-commit">\n <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">\n </a>\n</p>\n<p align="center">\n <a href="https://pypi.org/project/ulid-transform/">\n <img src="https://img.shields.io/pypi/v/ulid-transform.svg?logo=python&logoColor=fff&style=flat-square" alt="PyPI Version">\n </a>\n <img src="https://img.shields.io/pypi/pyversions/ulid-transform.svg?style=flat-square&logo=python&amp;logoColor=fff" alt="Supported Python versions">\n <img src="https://img.shields.io/pypi/l/ulid-transform.svg?style=flat-square" alt="License">\n</p>\n\nCreate and transform ULIDs\n\nThis library will use the CPP implementation from https://github.com/suyash/ulid if cython is available, and will fallback to pure python if it is not.\n\n## Example\n\n```python\n>>> import ulid_transform\n>>> ulid_transform.ulid_hex()\n\'01869a2ea5fb0b43aa056293e47c0a35\'\n>>> ulid_transform.ulid_now()\n\'0001HZX0NW00GW0X476W5TVBFE\'\n>>> ulid_transform.ulid_at_time(1234)\n\'000000016JC62D620DGYNG2R8H\'\n>>> ulid_transform.ulid_to_bytes(\'0001HZX0NW00GW0X476W5TVBFE\')\nb\'\\x00\\x00c\\xfe\\x82\\xbc\\x00!\\xc0t\\x877\\x0b\\xad\\xad\\xee\'\n>> ulid_transform.bytes_to_ulid(b"\\x01\\x86\\x99?\\xe8\\xf3\\x11\\xbc\\xed\\xef\\x86U.9\\x03z")\n\'01GTCKZT7K26YEVVW6AMQ3J0VT\'\n>>> ulid_transform.ulid_to_bytes_or_none(\'0001HZX0NW00GW0X476W5TVBFE\')\nb\'\\x00\\x00c\\xfe\\x82\\xbc\\x00!\\xc0t\\x877\\x0b\\xad\\xad\\xee\'\n>>> ulid_transform.ulid_to_bytes_or_none(None)\n>>> ulid_transform.bytes_to_ulid_or_none(b\'\\x00\\x00c\\xfe\\x82\\xbc\\x00!\\xc0t\\x877\\x0b\\xad\\xad\\xee\')\n\'0001HZX0NW00GW0X476W5TVBFE\'\n>>> ulid_transform.bytes_to_ulid_or_none(None)\n```\n\n## Installation\n\nInstall this via pip (or your favourite package manager):\n\n`pip install ulid-transform`\n\n## Contributors ✨\n\nThanks to https://github.com/suyash/ulid which provides the cython implementation guts.\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- prettier-ignore-start -->\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- markdownlint-disable -->\n<!-- markdownlint-enable -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n<!-- prettier-ignore-end -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n## Credits\n\nThis package was created with\n[Copier](https://copier.readthedocs.io/) and the\n[browniebroke/pypackage-template](https://github.com/browniebroke/pypackage-template)\nproject template.\n',
18
18
  'author': 'J. Nick Koston',
@@ -1,4 +1,4 @@
1
- __version__ = "0.11.0"
1
+ __version__ = "0.11.1"
2
2
 
3
3
  from .ulid_impl import (
4
4
  bytes_to_ulid,
@@ -1,4 +1,5 @@
1
1
  #include <string>
2
+ #include <vector>
2
3
 
3
4
  #ifndef ULID_WRAPPER_H
4
5
  #define ULID_WRAPPER_H
File without changes