Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Service Manager

A cross-platform library for installing and managing services on Windows, macOS, and Linux.

Overview

The Service Manager library provides a unified interface for managing system services across different operating systems. It follows standard service management conventions, allowing you to:

  • Install/uninstall services
  • Enable/disable services at boot time
  • Start/stop running services
  • Query service status

It creates user-level services (not system-wide root services), which means:

  • Linux: User systemd services (systemctl --user)
  • macOS: LaunchAgents (~/Library/LaunchAgents)
  • Windows: Scheduled Tasks (running on user login)

Installation

pip install etiket-service-manager

Pre-configured Services

This library includes pre-configured service definitions for the QHarbor application suite. These helper functions automatically set up the correct paths, executable locations, and naming conventions for QHarbor's sync components.

from etiket_service_manager.services import sync_agent, sync_api
from packaging.version import Version

# Get the manager for the Sync Agent
agent_manager = sync_agent.get_service()
agent_manager.status  # Check status

# Install — no need to pass program_arguments, the config carries them
agent_manager.install(version=Version("1.0.0"))

# Get the manager for the Sync API
api_manager = sync_api.get_service()
api_manager.install(version=Version("1.0.0"))

The pre-configured services resolve their executable via default_runner_install_location(), which knows the canonical location of the runner on each OS:

Platform Data directory (app_dir) Runner executable
macOS ~/Library/Application Support/quantum_machines/services ~/Applications/quantum_machines/eTiKeT Service.app/Contents/MacOS/etiket_service_runner
Linux ~/.local/share/quantum_machines/services (or $XDG_DATA_HOME/quantum_machines/services) <app_dir>/etiket_service_runner
Windows %LOCALAPPDATA%\quantum_machines\services <app_dir>\etiket_service_runner.exe

On macOS the runner ships as a code-signed .app bundle so it's identifiable to Gatekeeper, TCC, and System Settings (Privacy & Security → Full Disk Access). On Linux and Windows the bare binary lives in the per-user data directory.

Actions and Behaviors

The following table describes each action, its expected behavior, possible errors, and resulting service states:

Action Description Possible Errors Expected Status After Action
install Installs, enables, and starts the service ServiceAlreadyInstalled, ServiceOperationError installed=True, enabled=True, running=True
enable Enables the service to start automatically at boot ServiceAlreadyEnabled, ServiceOperationError installed=True, enabled=True, running=unchanged
start Starts the service ServiceAlreadyStarted, ServiceOperationError installed=True, enabled=unchanged, running=True
stop Stops the service ServiceAlreadyStopped, ServiceOperationError installed=True, enabled=unchanged, running=False
disable Disables the service (prevents starting at boot) ServiceAlreadyDisabled, ServiceOperationError installed=True, enabled=False, running=False
uninstall Uninstalls the service ServiceAlreadyUnInstalled, ServiceOperationError installed=False, enabled=False, running=False

Configuring the Service Manager

To use the Service Manager for your own applications, you need to create a ServiceConfig object. exe_install_location is required and uses a PlatformPath so the same config works across OSes — the entry matching the running OS is selected at install time.

from pathlib import Path
from etiket_service_manager import PlatformPath, ServiceConfig, ServiceManager

config = ServiceConfig(
    service_name="my_service",
    app_dir=Path.home() / ".my_service",        # Runtime data: logs, state
    exe_install_location=PlatformPath(
        darwin=Path("/Applications/MyService.app/Contents/MacOS/my_service"),
        linux=Path.home() / ".local/bin/my_service",
        windows=Path.home() / "AppData/Local/MyService/my_service.exe",
    ),
    default_args=["--serve"],                   # Optional: appended to the executable
)

manager = ServiceManager(config)

ServiceConfig fields

Field Type Required Purpose
service_name str yes Service identifier (used in plist label, systemd unit name, scheduled task name).
app_dir Path yes Per-service runtime directory for logs and state. Created if missing.
exe_install_location PlatformPath yes Per-OS absolute path to the installed executable. Resolved to a single path at install time.
default_args list[str] | None no Arguments appended after the resolved executable when manager.install() is called without program_arguments.

PlatformPath

A dataclass that holds one path per OS and resolves to the correct one based on platform.system():

from etiket_service_manager import PlatformPath

p = PlatformPath(
    darwin=Path("/usr/local/bin/foo"),
    linux=Path("/usr/bin/foo"),
    windows=Path(r"C:\Program Files\foo\foo.exe"),
)
p.resolve()  # → the path matching the running OS

Example Usage

from pathlib import Path

from packaging.version import Version

from etiket_service_manager import PlatformPath, ServiceConfig, ServiceManager


def main():
    # 1. Configure: declare where the executable lives on each OS and the
    #    default invocation. The same config works across all three OSes.
    config = ServiceConfig(
        service_name="my_service",
        app_dir=Path.home() / ".my_service",
        exe_install_location=PlatformPath(
            darwin=Path("/Applications/MyService.app/Contents/MacOS/my_service"),
            linux=Path.home() / ".local/bin/my_service",
            windows=Path.home() / "AppData/Local/MyService/my_service.exe",
        ),
        default_args=["--serve"],
    )
    manager = ServiceManager(config)

    # 2. Install. With exe_install_location + default_args set on the config,
    #    program_arguments is inferred — no need to pass it.
    manager.install(
        version=Version("1.0.0"),
        raise_if_already_installed=True,
    )

    # If you need a one-off override, pass program_arguments explicitly:
    # manager.install(version=Version("1.0.0"),
    #                 program_arguments=["/custom/path", "--debug"])

    # 3. Check status
    print(f"Service status: {manager.status}")

    # 4. Stop / disable / uninstall as needed
    manager.stop()
    manager.disable()
    manager.uninstall()


if __name__ == "__main__":
    main()

Platform Specific Details

Windows Services

This application is implemented as a Scheduled Task rather than a Windows service. A scheduled task can run without administrator permissions, unlike Windows services.

The scheduled task:

  • Runs as a background process with wscript (hidden window).
  • Starts automatically when the user logs in.
  • Provides support for process recovery when it terminates unexpectedly.

Requirements

  • The service name is used as the Task Name.
  • Tasks are created with "LeastPrivilege" run level, so no UAC prompt is needed.

Logging

  • Behavior: Unlike Linux/macOS, Windows Task Scheduler does not capture or redirect Standard Output (stdout) or Error (stderr). Any output printed to the console is lost.
  • Requirement: Your application must internally handle logging to files.
    • Do not rely on print().
    • Use a logging library (e.g., Python's logging module) to write directly to a file.
  • Suggested Location: {app_dir}/logs/ to match other platforms.

macOS Services

This document outlines the process for creating and managing macOS services using launchctl. These services run in the GUI session of the logged-in user (LaunchAgents).

Installation Locations

  • Service configuration file: ~/Library/LaunchAgents/com.quantum-machines.{service_name}.plist
  • Executable: ship as a code-signed .app bundle in ~/Applications/{company}/{app_name}.app (per-user, no admin required, Finder-discoverable for Privacy & Security grants) or /Applications/{app_name}.app (system-wide). For QHarbor's etiket_service_runner the canonical path is ~/Applications/quantum_machines/eTiKeT Service.app/Contents/MacOS/etiket_service_runner.
  • Runtime data (app_dir): kept separate from the executable, in ~/Library/Application Support/{company}/.
  • Logs: {app_dir}/{service_name}_logs/

[!IMPORTANT] Ship the executable as a .app bundle (with CFBundleIdentifier, CFBundleExecutable, LSUIElement=true for background services, and any NSXxxUsageDescription keys the agent needs). Bare Mach-O binaries cannot be cleanly granted permissions in System Settings → Privacy & Security and don't trigger TCC prompts with usable descriptions. The bundle ID + signing identity are what TCC keys grants on, so keep them stable across releases.

[!IMPORTANT] The service is configured with WorkingDirectory set to the app_dir. If your application uses relative paths for resources or imports, the executable still belongs in the .app bundle — app_dir is for runtime data only.

The service definition (plist) includes:

  • KeepAlive: True (system attempts to restart it if it crashes)
  • RunAtLoad: True (starts immediately upon load/login)
  • ThrottleInterval: 60 seconds

Linux Services

Service in Linux are implemented using systemd user services. This is a robust system that works very well for user-level background processes.

Locations

  • Configuration: The systemd user unit file ({service_name}.service) is created in ~/.config/systemd/user/.
  • Logs: Managed by systemd. View logs using:
    journalctl --user -u {service_name}
    
    • Use -f to follow logs in real-time.
    • Use -e to jump to the end.
  • Application Binary: The application executable should be in a stable, user-accessible location.
    • Recommended: ~/.local/bin/ for standalone binaries.
    • Note: Self-contained application directories often reside in ~/.local/share/.
    • Important: Always provide the absolute path to the executable when installing the service.

Behavior

  • Uses systemctl --user commands to manage the service.
  • defined as Type=simple.
  • Configured with Restart=always and a 5-second delay to ensure reliability.

Release files for etiket-service-manager 0.3.0b5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for etiket-service-manager 0.3.0b5
File
etiket_service_manager-0.3.0b5-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
etiket_service_manager-0.3.0b5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
etiket_service_manager-0.3.0b5-cp314-cp314-macosx_11_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 11.0+ x86-64 Details
etiket_service_manager-0.3.0b5-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
etiket_service_manager-0.3.0b5-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
etiket_service_manager-0.3.0b5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
etiket_service_manager-0.3.0b5-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details
etiket_service_manager-0.3.0b5-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
etiket_service_manager-0.3.0b5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
etiket_service_manager-0.3.0b5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
etiket_service_manager-0.3.0b5-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details
etiket_service_manager-0.3.0b5-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
etiket_service_manager-0.3.0b5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
etiket_service_manager-0.3.0b5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
etiket_service_manager-0.3.0b5-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details
etiket_service_manager-0.3.0b5-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
etiket_service_manager-0.3.0b5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
etiket_service_manager-0.3.0b5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
etiket_service_manager-0.3.0b5-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details
etiket_service_manager-0.3.0b5-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 34.5 MB

Release files / etiket_service_manager-0.3.0b5-cp314-cp314-win_amd64.whl

Download URL etiket_service_manager-0.3.0b5-cp314-cp314-win_amd64.whl
Size 697.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
98a9627ced61f2125644f794922ea475b9e5100372c514a3194828a300f0d761
BLAKE2b-256 checksum
How to use checksums
7daf7b6ec50401c3c334dd237913137319cd9443231c22d02152d78f8a16c709
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2822fee1aa055f679b794fe1e999f39264257deaff5173085a53974f468beab4
BLAKE2b-256 checksum
How to use checksums
1483ed975986ceea3d0073c2cb5e1e6a1d7f6873505b00469d1445077f24191d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp314-cp314-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp314-cp314-macosx_11_0_x86_64.whl
Size 768.8 kB
Tags CPython 3.14 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
1fd2ac7a55f47daad1249ceca18069d5c37236353a7ecb84830d712048395c50
BLAKE2b-256 checksum
How to use checksums
6277f826ce7e8680101ea18cdf05920aa82cf3f9afb45a9ef0129ae0703d4241
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp314-cp314-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0b5-cp314-cp314-macosx_11_0_arm64.whl
Size 713.4 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
db5c221642810b6aca553495b8334f9b3e9036d9eb9318c7acd203d39bfe9f44
BLAKE2b-256 checksum
How to use checksums
0089034ad506d91798fc3aed20e4ea89691bb1c4359916b7e89e3252696be157
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp313-cp313-win_amd64.whl

Download URL etiket_service_manager-0.3.0b5-cp313-cp313-win_amd64.whl
Size 681.5 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1c25897534e3cba10e5e0d74c0c2261befdb83c46cb327a34cd108a4ec41c95c
BLAKE2b-256 checksum
How to use checksums
aa9794e66e5dc8b08e61da1403241c810ec002c4bbfea94e868353a4c5c1b0b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
127878f5931aca945610fff6c5cb68e232e0379806487bde9f8f0d87dfdaefe9
BLAKE2b-256 checksum
How to use checksums
3f56acc410eebbda20f3fc41426be4dccb1712c6213ede5b482080fca68dac7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp313-cp313-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp313-cp313-macosx_11_0_x86_64.whl
Size 769.2 kB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
ca71e50ad9a5807728a0cfdead18351f26c8f470728ab29133afabe45a416742
BLAKE2b-256 checksum
How to use checksums
2a1b1071e6e6bc011519e3ef269d11acac4ef13a12a454281a51b812b29e9de5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp313-cp313-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0b5-cp313-cp313-macosx_11_0_arm64.whl
Size 708.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
63d63f4c18280bdc4860d8de1d553b3cd3d9d31bd16550e6e6b902fc18e5d7a4
BLAKE2b-256 checksum
How to use checksums
6427e6fd70fdd39e7d61bf2866a9661ee705e42505f4452410b5f5aa5bb07929
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp312-cp312-win_amd64.whl

Download URL etiket_service_manager-0.3.0b5-cp312-cp312-win_amd64.whl
Size 696.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
8c2c782ef350c4a0395fb3488c13f43d2ad7428cffc420642877fdc4ac31235a
BLAKE2b-256 checksum
How to use checksums
78bde0b4ac256a4e852f87e0c22f6322dda88c9e125fc351a59c138bffd92610
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.8 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
da7bdee67709d16407f77fe1869c59934da8023d46694cc3f20d4b55992c23ec
BLAKE2b-256 checksum
How to use checksums
2993fae1f2541bcefab7df17db346a853799fc6b9709836fd94c7966dc0e1e06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp312-cp312-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp312-cp312-macosx_11_0_x86_64.whl
Size 776.7 kB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
104943b67bef03dfc3a48cd15d0225d99b597113aef9c95d2c4ed41c31a2fe2d
BLAKE2b-256 checksum
How to use checksums
b20a2a4fce7f537bfcee34b80ae65c03b5643402f74165106ea96db3a864dbe9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp312-cp312-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0b5-cp312-cp312-macosx_11_0_arm64.whl
Size 719.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3820f94133cb000e04355731154cb0bc7f067bd29118bc4e8ca08249b4a12cee
BLAKE2b-256 checksum
How to use checksums
0896906f800d196ec52f4496924e4de05fca44c8f7fd2deefe0282b4f0a31247
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp311-cp311-win_amd64.whl

Download URL etiket_service_manager-0.3.0b5-cp311-cp311-win_amd64.whl
Size 712.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
e6631c67d14af04de4e9aaf4422daac42efd2e06687c7a302713538492321083
BLAKE2b-256 checksum
How to use checksums
030d8244c1a230006e8e5e36f85fa8b3dd90427891371d2093a96f0250e8f5f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.8 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8185014c3140fd73ed3e876d8fad0f1e87394fa8b13073533932a2b99eca0654
BLAKE2b-256 checksum
How to use checksums
708a0104f5a84d2adddbb67ce6a9d02920eb871b8650615bace11c596df0ae10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp311-cp311-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp311-cp311-macosx_11_0_x86_64.whl
Size 787.7 kB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
3cc04ee955b165ad4d01d847d9d1ebc8ff5da0b33de190e466182ceb1cd224e1
BLAKE2b-256 checksum
How to use checksums
3502c5917c34bde5505116e12a42ffaabd4e2ed4b272b90d07ae8492e6b15a37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp311-cp311-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0b5-cp311-cp311-macosx_11_0_arm64.whl
Size 733.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
aeb8f37fcb1961e2633b0a64d765476fea64c41dff0074b9bbdb4778b270378b
BLAKE2b-256 checksum
How to use checksums
e43a22565b19c9dcfe6bd2dc395316c15cf2e65ef1b53766e179bd1f246d68a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp310-cp310-win_amd64.whl

Download URL etiket_service_manager-0.3.0b5-cp310-cp310-win_amd64.whl
Size 710.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
795ed702b256229ce16b12d1fac8d627f225a74c49568d1fbbd2edcc4810ee2e
BLAKE2b-256 checksum
How to use checksums
91749e48a91c16c3802164a624befa009583ef4804f2707479395a8dd020e8e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5a83251407d9a898c9ba4215ecdf4266bf4c840a60d2214ac39a499d4bd47072
BLAKE2b-256 checksum
How to use checksums
e1661986e53e1a8ee438b0865fdb23051521dd903072bb5b61a6003e3ce02161
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp310-cp310-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0b5-cp310-cp310-macosx_11_0_x86_64.whl
Size 795.0 kB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
02c82d9d84806c7f0c51a4b6f992a77dbbbe7a1ba858c5a4ca70f77c5aa25c5e
BLAKE2b-256 checksum
How to use checksums
886cb8f3227f5b7de70ce43b633a6d0d7caab536fb70afe63779f710cfb7acf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / etiket_service_manager-0.3.0b5-cp310-cp310-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0b5-cp310-cp310-macosx_11_0_arm64.whl
Size 740.2 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3a0c53999685a97a2edf610a07ea6b3c8cabb157b44dd8843e3482cc3b74d75e
BLAKE2b-256 checksum
How to use checksums
a1d5033fb07a1b5addbb955865389c24329331697fd839cac020bc317c9e21c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page