Skip to main content

Token validation utilities for Atabet systems

Project description

atabet-token

Token validation utilities packaged with Cython.

Installation

Prerequisites

  1. Conda environment (recommended):

    conda env create -f environment.yml
    conda activate atabet_token_env
    
  2. C++ Compiler (required for Windows):

    • MinGW (MSYS2) - Recommended if you have MSYS2 installed
    • Microsoft C++ Build Tools - Alternative option

Quick Start

Using MinGW (if you have MSYS2):

conda activate atabet_token_env

# Configure MinGW (one-time setup)
python configure_mingw.py

# Build and install
python setup.py build_ext --inplace --compiler=mingw32
pip install -e .[dev]

Or use the automated script:

build_with_mingw.bat

Using MSVC (default):

conda activate atabet_token_env
pip install -e .[dev]

Run Tests

pytest

GitHub Actions: wheels and PyPI

Workflow: .github/workflows/build-wheels.yml. Wheels are built with cibuildwheel; options live in pyproject.toml under [tool.cibuildwheel].

When jobs run (push): the Linux / Windows / macOS matrix runs only if the head commit message includes one of:

Tag Effect
[build ci] (or [Build CI], [BUILD CI]) Build wheels and upload per-OS artifacts; no publish.
[pub pypi] (or [Pub PyPI], [PUB PYPI]) Build wheels, then publish merged wheels to PyPI (production).
[pub test.pypi] (or [Pub test.pypi], [PUB TEST.PYPI]) Build wheels, then publish to TestPyPI.

Plain pushes (no tag above) skip the matrix so CI does not run on every commit.

Manual runs: Actions → Build wheels → Run workflow runs the build matrix only; publishing is by push with [pub pypi] or [pub test.pypi] in the commit message.

Authentication (publish): the workflow uses Trusted Publishing (OIDC) by default — no API token in GitHub secrets. Register the GitHub repo and workflow file on each index (project Manage → Publishing). See the comment block at the top of build-wheels.yml for OIDC vs API-token options.

Private repositories are supported for OIDC the same as public ones.

Troubleshooting

MinGW Compilation Issues

SIZEOF_VOID_P Enum Error (Fixed)

Problem: When compiling with MinGW, you may encounter:

error: enumerator value for '__pyx_check_sizeof_voidp' is not an integer constant

Root Cause: MinGW's GCC is stricter about constant expressions in enum initializers. The Cython-generated code includes:

enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };

MinGW doesn't always evaluate sizeof(void*) as a compile-time constant in this context, even though both values are 8.

Solution: This has been fixed in setup.py by adding the -DMS_WIN64 compiler flag, which explicitly tells GCC we're targeting 64-bit Windows. This ensures sizeof(void*) is treated as a compile-time constant.

The fix is already applied - no action needed. If you still see this error:

  1. Ensure your Python is 64-bit: python -c "import sys; print('64-bit' if sys.maxsize > 2**32 else '32-bit')"
  2. Ensure your MinGW GCC is 64-bit: gcc -v should show x86_64
  3. Both must be consistently 64-bit (no 32/64-bit mismatch)

References:

Other MinGW Issues

"mingw32 compiler not found":

  • Make sure MinGW is in PATH: gcc --version
  • Run: python configure_mingw.py
  • Check that pydistutils.cfg exists in your home directory

"gcc: command not found":

  • Add MinGW bin directory to PATH:
    set PATH=C:\msys64\mingw64\bin;%PATH%
    

MSVC Issues

"Microsoft Visual C++ 14.0 or greater is required":

General Issues

"No module named 'atabet_token'":

  • Run: pip install -e .[dev] to install the package

Build succeeds but import fails:

  • Make sure you ran: pip install -e .[dev]
  • Check that .pyd file exists in atabet_token directory
  • Try: python -c "import atabet_token.token"

Compiler Setup

Option 1: MinGW with MSYS2 (Recommended if you have MSYS2)

Pros:

  • Lightweight (~100MB)
  • Works well with Cython
  • Already installed if you have MSYS2

Setup:

# Run configuration script
python configure_mingw.py

# Or manually add to PATH
set PATH=C:\msys64\mingw64\bin;%PATH%

Option 2: Microsoft C++ Build Tools

Pros:

  • Official Microsoft compiler (best compatibility)
  • Works out of the box
  • Faster compilation

Setup:

  1. Download from: https://visualstudio.microsoft.com/visual-cpp-build-tools/
  2. Install "Desktop development with C++" workload
  3. Restart terminal

Project Structure

atabet-token/
├── atabet_token/              # Source code (Cython modules)
│   ├── __init__.py        # Package initializer
│   ├── token.pyx          # Cython source (compiled to .pyd)
│   └── licensing.py       # Python source (compiled to .pyd)
├── tests/                 # Test suite
│   ├── conftest.py        # Pytest configuration
│   ├── test_token.py      # Tests for original validation
│   └── test_licensing.py  # Tests for licensing validation
├── .github/
│   └── workflows/
│       └── build_wheels.yml  # CI/CD workflow
├── setup.py               # Build configuration (compiles all sources)
├── build_wheel.py         # Wheel protection script
├── pyproject.toml         # Modern Python packaging config
├── environment.yml        # Conda environment definition
├── MANIFEST.in            # Package manifest
├── configure_mingw.py     # MinGW configuration helper
├── build_with_mingw.bat    # MinGW build script
├── build_and_test.bat     # Build and test script
├── cleanup.bat            # Cleanup script
└── README.md              # This file

Development

Building from Source

conda activate atabet_token_env

# With MinGW
python setup.py build_ext --inplace --compiler=mingw32
pip install -e .[dev]

# With MSVC (default)
pip install -e .[dev]

Running Tests

pytest -v

Token Validation Methods

atabet-token supports two validation methods:

1. Licensing Server Validation (Default)

Validates tokens through a licensing server API. This is the default validation method.

Usage:

from atabet_token import TokenCheckMeta

# Default: uses licensing validation
class MyClass(metaclass=TokenCheckMeta(application_id="my-app-id")):
    def __init__(self, token: str):
        self.token = token

# Or explicitly specify
class MyClass(metaclass=TokenCheckMeta(
    validation_method='licensing',
    application_id="my-app-id"
)):
    def __init__(self, token: str):
        self.token = token

Configuration:

  • Set LICENSING_SERVER_URL environment variable (default: http://39.101.65.167:5001/; production reference: http://api.atabet.com:5001)
  • Provide application_id in TokenCheckMeta
  • Optional: client_identifier, session_id, licensing_server_url

Requirements:

  • Licensing server must be running and accessible
  • Token must be a valid JWT token issued by the licensing server
  • requests package (automatically installed)

2. Original HMAC-SHA256 Validation

Validates tokens using the original HMAC-SHA256 method (monthly token rotation).

Usage:

from atabet_token import TokenCheckMeta

# Explicitly use original validation
class MyClass(metaclass=TokenCheckMeta(
    validation_method='original',
    token_key="my-token-key"
)):
    def __init__(self, token: str):
        self.token = token

Configuration:

  • Provide token_key in TokenCheckMeta
  • Optional: current_time (for testing only)

Note: The original validation method is still fully supported and works exactly as before. Use validation_method='original' to explicitly enable it.

Source Code Protection

atabet-token implements comprehensive source code protection to prevent reverse engineering. All source files are compiled and removed from distribution wheels.

File Type Differences

.pyc Files (Python Bytecode)

  • What they are: Compiled Python bytecode files
  • Security: ⚠️ NOT SECURE - Can be easily decompiled back to Python source
  • Tools to decompile: uncompyle6, decompyle3, pycdc
  • When used: Created from .py files by Python's standard compiler

.pyd Files (Compiled C Extensions)

  • What they are: Compiled C extensions (Windows) / .so files (Linux/Mac)
  • Security: ✅ SECURE - Much harder to reverse engineer (requires disassembling machine code)
  • Tools to decompile: Very difficult, requires advanced reverse engineering skills
  • When used: Created from .pyx files (Cython source) or .py files compiled with Cython

Protection Strategy

Compilation Behavior:

  • .pyx files → Compiled to .pyd/.so (C extension) - SECURE
  • .py files (including __init__.py) → Compiled to .pyd/.so (C extension) - SECURE
  • All .pyc files are removed - They can be decompiled, so they are not included in distributions

Note on __init__.py:

  • __init__.py files are compiled to .pyd/.so via Cython (same as other .py files)
  • All .pyc files are removed from the distribution for security
  • Python's import system works with compiled extensions (.pyd/.so) just as well as with source files

Source File Removal:

  • After compilation, all source files (.py, .pyx, .c) are removed from wheel distributions
  • All .pyc files are also removed (they can be decompiled back to source code)
  • Only compiled C extensions (.pyd/.so) remain - these are secure and cannot be easily decompiled
  • Package functions identically - users can import and use it normally
  • Source code is completely hidden from end users

Security Comparison

Format Security Level Decompilation Difficulty
.py (source) ❌ None N/A
.pyc (bytecode) ⚠️ Low Easy (tools available)
.pyd (C extension) ✅ High Very Hard (requires reverse engineering)

Implementation

The protection is implemented in:

  1. setup.py: Compiles .py files as Cython extensions
  2. build_wheel.py: Post-processes wheels to remove source files
  3. GitHub Actions: Automatically protects wheels during CI/CD

Verification

To verify protection:

  1. Build a wheel: python setup.py bdist_wheel
  2. Extract the wheel: unzip dist/atabet_token-*.whl
  3. Check contents: Should see only .pyd/.so files, no .py, .pyx, .pyc, or __pycache__ directories

License

Proprietary - All Rights Reserved

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

atabet_token-1.1.0-cp312-cp312-win_amd64.whl (71.0 kB view details)

Uploaded CPython 3.12Windows x86-64

atabet_token-1.1.0-cp312-cp312-win32.whl (64.8 kB view details)

Uploaded CPython 3.12Windows x86

atabet_token-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (453.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

atabet_token-1.1.0-cp312-cp312-musllinux_1_2_i686.whl (440.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

atabet_token-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (458.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

atabet_token-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (434.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

atabet_token-1.1.0-cp312-cp312-macosx_11_0_arm64.whl (76.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

atabet_token-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl (75.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

atabet_token-1.1.0-cp311-cp311-win_amd64.whl (72.2 kB view details)

Uploaded CPython 3.11Windows x86-64

atabet_token-1.1.0-cp311-cp311-win32.whl (65.7 kB view details)

Uploaded CPython 3.11Windows x86

atabet_token-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (436.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

atabet_token-1.1.0-cp311-cp311-musllinux_1_2_i686.whl (426.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

atabet_token-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (434.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

atabet_token-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (418.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

atabet_token-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (76.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

atabet_token-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl (75.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

atabet_token-1.1.0-cp310-cp310-win_amd64.whl (72.2 kB view details)

Uploaded CPython 3.10Windows x86-64

atabet_token-1.1.0-cp310-cp310-win32.whl (65.6 kB view details)

Uploaded CPython 3.10Windows x86

atabet_token-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (408.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

atabet_token-1.1.0-cp310-cp310-musllinux_1_2_i686.whl (398.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

atabet_token-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (407.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

atabet_token-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (395.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

atabet_token-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (76.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

atabet_token-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl (75.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

atabet_token-1.1.0-cp39-cp39-win_amd64.whl (72.3 kB view details)

Uploaded CPython 3.9Windows x86-64

atabet_token-1.1.0-cp39-cp39-win32.whl (65.8 kB view details)

Uploaded CPython 3.9Windows x86

atabet_token-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl (406.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

atabet_token-1.1.0-cp39-cp39-musllinux_1_2_i686.whl (396.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

atabet_token-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (405.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

atabet_token-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (393.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

atabet_token-1.1.0-cp39-cp39-macosx_11_0_arm64.whl (77.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

atabet_token-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl (76.2 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file atabet_token-1.1.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 00e4376bbbe9efc7193679690f655052fb85e7e2e20710e0a03c6c07a18ca0d8
MD5 0c34570bf67f86cdd7d61094f49f9e25
BLAKE2b-256 cb814259a81f258571da206ab428b03a029ff48b0640ae9ac7aaed01a07dc506

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp312-cp312-win_amd64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: atabet_token-1.1.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 64.8 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atabet_token-1.1.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 ffcb4a034849260c9b0cad461e650510eaf27385593fe3df9e6965fac0fbd1ca
MD5 78894a27f5bc434ad5268ea2ce1c8803
BLAKE2b-256 22631c10c05ab84b4bc198deb8fe3433627ce42018dfd730d0d27cc243392872

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp312-cp312-win32.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 588216f0bfbebff9e7dfe79a3846b681d91ddcf57c37ad333de6f90d7b733533
MD5 2d64b96574fa7fd9ea732b45684ca882
BLAKE2b-256 32d78a1ff93cbc2cddc6dc5dfc23f0c0285ad4846ce97a33f836c10546f6d751

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 11234cfeac035f839967e0a7aed5fea15f77f42b7c27ae7b335543789f7defe0
MD5 7264aa84d1c1df7ed3f298e0c839207e
BLAKE2b-256 31f98525dc2f040109a30733c677ab24c86e513fe7ec021fd2d1e93c6665803c

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp312-cp312-musllinux_1_2_i686.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f5000ce7629ed9d1eecd15cc5871237291bc6318bfbd4d5e84ff3acb41cade0
MD5 d0c41a503173544bba6aff266e436557
BLAKE2b-256 c3af1ad1f4660f2f86b9536626e8b7f5811f6068bfe7aca85a501197196e2eb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b4b59ad2047705adcb41849651d342ef68c123586cef3291deb11bf8a0f57d78
MD5 cc7b1a57cf493fa1a02ab18ed972f409
BLAKE2b-256 87df8416894f56a7db3be9d2c0f9f5cf0ca241f4b5d10fc99d5d0eabe1528a90

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e27e4d1befb7aabf6b562d210d35aaad87d618d61453a923d8ae878dc2cbad08
MD5 b191996c5634828740b72832f347688f
BLAKE2b-256 88fb29c6a56932e699a80757e30403b7fa7fce22126b7686ee1866fd33da2c4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d3726c43d6a07659826178ac38556ebe14d25f3354b627a59e830c662705b1c9
MD5 135ef0446cf6dc4c8b7dde96be6916c3
BLAKE2b-256 93930b11cf3e1bb6d8bb7c01fe986a2c260b1215e9dd4a4c279f61473d7b7b93

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f7c76dfb3bd0eca3049da7fd3d1cc5668339bacdbca6c959b0a6a96b2c0bfe81
MD5 40e4e4db296dea0aa4468a2b2477c887
BLAKE2b-256 caadbeff1c71d0e7f67a380403d532e5e47bed8890295d8f1f4fb1105319d234

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp311-cp311-win_amd64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: atabet_token-1.1.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 65.7 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atabet_token-1.1.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 99c16b55b2383728a8d9766b192c3c6b34a1e8a41ab5b141a6c04f77faa4cadc
MD5 aeeb07c1109f9789a3cf3b947fc03b49
BLAKE2b-256 68fa47d2c19296db8dcdccaafd7962712552d950c8b18fa0018f97278f9d921d

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp311-cp311-win32.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 36b49a7c8d54ed5bfb35e1dab8d6b13cffd62232e2496131bdd22af86e090373
MD5 ef1da177040e3bb1948b0de1deaa8a9b
BLAKE2b-256 9a3fda1f21472817b8c3f5dbcad5665ef18658f29cdff05e2ea563714994e5db

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f0ad3d56a2aab6ce0aedbc3c4af06b160d7b2096c6f185450aa4f1f5f2ead550
MD5 ef2d351c4c7be6fa68f68745ce0a61a1
BLAKE2b-256 1a32e4437e062872c2ca7b3e2f00cecf3fb56ce35ab6884541b9f3a5841a9d42

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp311-cp311-musllinux_1_2_i686.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 19592060de21f01d5e4fa194d07bd88046f3fa165a4e62d3c970dac4fc7d583d
MD5 d135326ae318e3dfbdf7b5f2cd49ebae
BLAKE2b-256 525e2d05b3dcc526f8772f979656c8baa60f4e25d3d19fa4161a935a0fd5ddb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9c169ce68f6e6b58c917a4331fc6d2ae7d92eeed53fc5ad320b090c5257fed23
MD5 7d778c25cf76d824e78f1d0e0760993a
BLAKE2b-256 1333568ee745b6e93c014bd927f0358ab65a87146e1cec1ea83d94e492ad9983

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2d92b2d06e49165451188ef8d7c37710f1d78bbe1af9b1405d0bfd36873e5b52
MD5 9bd87343a9c902d81b30fd5f950c7279
BLAKE2b-256 8f1ebdc3ba20ca66f740fced0a7320eaf1151d26e5eb63f77c8b5568abd99463

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6ffd2254b9adea263a27c24dc0b0c45aa9a612cb18ca68d56c737a5f428cca62
MD5 04102d08e7cec1b4c3f61c4dff3b62b5
BLAKE2b-256 b3b3882c97f5140230143c9469c3f8a0c5ec1450773d61131ae379e22e2b8110

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5c1ecb6ed97a089ed9af61c2b4f5757207cd19ba39462ebb373aac107f0c1915
MD5 3437079752c4ef39b3141611b79f0f86
BLAKE2b-256 d8bab95a74554e22ace061bf4c9d2060a5713c1b5b06a2f9232ef57da3d1d5d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp310-cp310-win_amd64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: atabet_token-1.1.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 65.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atabet_token-1.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 911309c5c55e5914363bb5aca6ae904ff6aa3fc976b84701d382c32f8247d2e3
MD5 cf6d5218bba5e5861b6fe73c4a03d949
BLAKE2b-256 31010a664ae7bca2a4d3f4230aef7d7c715a2919c91b77b0c8f6397c86796883

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp310-cp310-win32.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 78cc28b3ca56c5141134a318c42bccb70c0476a18ba6443522b26dca85bbc566
MD5 37d67bda50443893b144508178a681d6
BLAKE2b-256 9742d1e47ac36cff9608071a84281aca7b02852615182150e96cb85cb5eada50

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ea13c34f3bd22c7529113ebb0b07267d8ca7108906d543c736cec64aa8d4fcd6
MD5 f8a648596864f582be055d862709156b
BLAKE2b-256 49bef443d40811e1f6995b6e85ada31d0e2e5f337ae856fc8430ecc3d9b1fae3

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp310-cp310-musllinux_1_2_i686.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fd0bfe2105d40e51680c6f35cbfab7e7ce1a113cf45dc7374f2934f054c4ec86
MD5 074fe43d8086248a9f87303c78c48525
BLAKE2b-256 3b3d01d41678b09886bd76e12dbe2cdc04c6aa280f00168f80dbd28a27589224

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c7845e2aa551eb7cfbbac7f80f45458ac11a3263906d99a36ae3671df1921fa9
MD5 8471942b74c330de3cb63b648c76d947
BLAKE2b-256 1723ab9b6cb00de827f3e9d2d10443589df77d61ae61ef30101f186cc0142ebc

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b0c90681f79f4e6cf820d00ace24d294a5b98555a4918b24f8ae4c5265701d9
MD5 6e4cd41e6ae495fa010b1efc740fb115
BLAKE2b-256 55880d9017d1b03f3ee78b3acb230d22ad89790961535a7d51cb83b6f7f9fd9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 756e09587e03bae71e8859cc391c06d4da75181a496ccab6bd8b1b7d2af9a0c0
MD5 8353f7249d441107a40b35f064800a20
BLAKE2b-256 81e2354ae202c24f1e8d17d6827ffc2a20277849af23bf125cbd4a289317d8b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: atabet_token-1.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 72.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atabet_token-1.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 178cbb5bacc43169a6c64984dd202dc36489e1795258874563a30f03d451e32e
MD5 2c46c005b9144f6b5912bf2f16cfa527
BLAKE2b-256 f2b2a0246fbcbb4050ffae79a51db2b6caa33ffb5215939cdeea6488fa820bb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp39-cp39-win_amd64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: atabet_token-1.1.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 65.8 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for atabet_token-1.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 36c1a45828c1e15f6b938a599ea64bd7ade85848171a39c6639167bf18db60f8
MD5 f75229ae64a0bdab0d4e22ccffde0ba9
BLAKE2b-256 38ccdc2273768ff12e25b832597041b15ec12c39e5b1e9a541f115995cd52683

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp39-cp39-win32.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6d134d2606909e71845620a7b0b522ce82ea17f36e9f9b0acdd7a23f19a2cf18
MD5 9f9334425000525abad8e93f0647b206
BLAKE2b-256 d961977ae7d01cb87968b718a1d25e9049a798228b475b828bf7086b1022e09d

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 90231095f60f955e0beec1adb2b37f99eed034441d9d50af6bcb22ce01ae5420
MD5 8aabbfe9e0f4ed5ed1c9935a7931c8ba
BLAKE2b-256 062a0ac40d637b47ccab94b7ca04b76f98a206ac495640c920f9836b754513c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp39-cp39-musllinux_1_2_i686.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b3c85c14332f575a43d74af6936c88d96d2c7d560246e03212ff9f7c712a5bf1
MD5 60dc140389afe3dc6116fd35a5fbb7d2
BLAKE2b-256 ed84e07071be9b1f6e4fcafeea280dc62aa45747de605352ff8015822eee14ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 827b79b2a6d10b15b99e6cfd9bd941a78b94231b61896df2920fb337d2f27e4e
MD5 1fd178f352d7551f6bdaa4fa32a05da4
BLAKE2b-256 0030bd662a16f6aa4a714e6b50ed43725e4894538ae013bba1b43c4d793d12e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2477e16091138c7b95f271e662acfcc4553879aee8bc0649e17544d159df5fd2
MD5 1d09622023fe9c3dadec97a0a2d90025
BLAKE2b-256 8597ffd45b6ee318b5505ee0464676f14a027de9faac8aaadb897cca00c63f67

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file atabet_token-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for atabet_token-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6f672b9ee6f62a972a8cadefbdd709e5eab2d4b21b84894207b464abf5bee89e
MD5 39c7b236f67eb10235065b287292a5e3
BLAKE2b-256 daf12f7fa104a8a802517f1d2cd3357f98c4602097fb4d4443c5bddf6857332c

See more details on using hashes here.

Provenance

The following attestation bundles were made for atabet_token-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: build-wheels.yml on josephchenhk/atabet-token

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page