Skip to main content

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/

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.

Metadata

Release files for etiket-service-manager 0.3.0

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.0
File Actions
etiket_service_manager-0.3.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for etiket_service_manager-0.3.0-cp314-cp314-win_amd64.whl
etiket_service_manager-0.3.0-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.28+ x86-64, Linux glibc 2.17+ x86-64 Details for etiket_service_manager-0.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
etiket_service_manager-0.3.0-cp314-cp314-macosx_11_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 11.0+ x86-64 Details for etiket_service_manager-0.3.0-cp314-cp314-macosx_11_0_x86_64.whl
etiket_service_manager-0.3.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for etiket_service_manager-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
etiket_service_manager-0.3.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for etiket_service_manager-0.3.0-cp313-cp313-win_amd64.whl
etiket_service_manager-0.3.0-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 for etiket_service_manager-0.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
etiket_service_manager-0.3.0-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details for etiket_service_manager-0.3.0-cp313-cp313-macosx_11_0_x86_64.whl
etiket_service_manager-0.3.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for etiket_service_manager-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
etiket_service_manager-0.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for etiket_service_manager-0.3.0-cp312-cp312-win_amd64.whl
etiket_service_manager-0.3.0-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 for etiket_service_manager-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
etiket_service_manager-0.3.0-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details for etiket_service_manager-0.3.0-cp312-cp312-macosx_11_0_x86_64.whl
etiket_service_manager-0.3.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for etiket_service_manager-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
etiket_service_manager-0.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for etiket_service_manager-0.3.0-cp311-cp311-win_amd64.whl
etiket_service_manager-0.3.0-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 for etiket_service_manager-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
etiket_service_manager-0.3.0-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details for etiket_service_manager-0.3.0-cp311-cp311-macosx_11_0_x86_64.whl
etiket_service_manager-0.3.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for etiket_service_manager-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
etiket_service_manager-0.3.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for etiket_service_manager-0.3.0-cp310-cp310-win_amd64.whl
etiket_service_manager-0.3.0-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 for etiket_service_manager-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
etiket_service_manager-0.3.0-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details for etiket_service_manager-0.3.0-cp310-cp310-macosx_11_0_x86_64.whl
etiket_service_manager-0.3.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for etiket_service_manager-0.3.0-cp310-cp310-macosx_11_0_arm64.whl

Total release size: 35.5 MB

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

Download URL etiket_service_manager-0.3.0-cp314-cp314-win_amd64.whl
Size 709.6 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
86ef685595f816ee77877a103ba01de6f7fb274016c9a13e9fad33c5071ff4f4
BLAKE2b-256 checksum
How to use checksums
7863ab77bc44a85e4cc96e68e772b77056cb086c427678bfe6c9283cf082b6c6
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.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.7 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dab0253f7628743c0d17536159f63dced336a0378032c96f026aa62a1354ac55
BLAKE2b-256 checksum
How to use checksums
ac43276c4ed320f6b0724202b9c324b2764ba0850e5db8004ddc663a76cd366c
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.0-cp314-cp314-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp314-cp314-macosx_11_0_x86_64.whl
Size 801.1 kB
Tags CPython 3.14 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
adf72042a20a6be25295e6c17f2d5b35b99612ec10b0c91e5093ce7a5aaa2672
BLAKE2b-256 checksum
How to use checksums
7146f7704e824ec29482b51cb12695010d21558f8af52cee37470a804ef332fc
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.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
Size 741.1 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
725ab909c450e6c1741382d63834e0ecb242e984baca9782721b6b780bb55deb
BLAKE2b-256 checksum
How to use checksums
61416619a5ba3c1a309b74ccc9a544e25dc38ebfec3b2b34984fcd17806daf6c
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.0-cp313-cp313-win_amd64.whl

Download URL etiket_service_manager-0.3.0-cp313-cp313-win_amd64.whl
Size 692.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
6093a7b30b8bbcb12a6b9cbb7b7ae08d286f85d9c2c1999d37306bc26742a513
BLAKE2b-256 checksum
How to use checksums
7c77ff72cf6420f482df8456baf7b816f66dafbec6a143593b4580484b20b76e
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.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.8 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2c38eb6f2fffde3d4233f66286f5b4cbc13f0a1d700a021ab1bd2c9145f66dff
BLAKE2b-256 checksum
How to use checksums
229a1db80153bf059235e2225d208c426bb44e0d18850c159698e92160c9eec4
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.0-cp313-cp313-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp313-cp313-macosx_11_0_x86_64.whl
Size 801.9 kB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
4deaa82255ae3c0a1d94608a4fe4f767404cdba3b0bf7960141165ad302a5855
BLAKE2b-256 checksum
How to use checksums
1248a67fd36c485d285d800529c69d56fdf7dfbc2afbac5bb117a350dbc07010
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.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Size 735.9 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c8c50f931edaab14de4346e8b5d229bf9b6999585415c2e69ebc7f8304cd3fd2
BLAKE2b-256 checksum
How to use checksums
437966e2f39267be0bb6ccfc02f96605314ee5ed42a72cf3eb2442e36928f516
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.0-cp312-cp312-win_amd64.whl

Download URL etiket_service_manager-0.3.0-cp312-cp312-win_amd64.whl
Size 705.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
bc66173d4568935f64d69759ac487023fab39dfb58bb5d602e7c6acaa341d777
BLAKE2b-256 checksum
How to use checksums
d7d9663eca275b2b14657979a92c097d60e4b3dcf5b3258381961befbce7c849
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.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
39e8e30c8aa315e7142980fb0cb64ab3f85d26a5c8ff2fbc7df3e3b86d82e9a8
BLAKE2b-256 checksum
How to use checksums
a5ada33d2dcfb834a4a193ec5732f0edf5dc28901b628945ecbce6b120d0aee9
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.0-cp312-cp312-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp312-cp312-macosx_11_0_x86_64.whl
Size 810.2 kB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
c74d0bfee545ddd61d8468e15c5f4061b0d7d16292fc98e0724c2bc3b4b95fc3
BLAKE2b-256 checksum
How to use checksums
32ea9b6f1d2c9c0a83633b587cdc57e27d3b0a431cad2701499439804156e7d4
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.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Size 746.8 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
91295fe040a241e327230442dd41a03f0a55809457ce7a53bbd472a8290c9afa
BLAKE2b-256 checksum
How to use checksums
f451d5f4f5c4daf95f58836e47212ab46988bc40d91c8dd6d2a36cde2f5f5443
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.0-cp311-cp311-win_amd64.whl

Download URL etiket_service_manager-0.3.0-cp311-cp311-win_amd64.whl
Size 727.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8478f99924e1549cb744af4df03e5e3b039de0b0dcff8c472d76a03c8b6ca501
BLAKE2b-256 checksum
How to use checksums
d990e99be4d650f8db0464fbe5f580da07b24693cd6c36cda4edc57c6d752125
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.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
20d61685f2aae3c07a89551f793eb107966549b78093ffa07435e31968554fb9
BLAKE2b-256 checksum
How to use checksums
cbed63cb986bedd71c190465aadb9f03811e10bd9ceff770eb3db1fd504ac772
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.0-cp311-cp311-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp311-cp311-macosx_11_0_x86_64.whl
Size 803.8 kB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
5056923037a315e5c1c6eff2d431a982ed2ff82eff538c3fbc43cfe836aae28e
BLAKE2b-256 checksum
How to use checksums
26b794835a179aed69917e7856736af113d891f0a4c743ce33a854ef9e87f395
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.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Size 748.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
86753b8303bb6d11896413847f0e2c3c72c7f9caec1a02a6f9588b2429b7ba3a
BLAKE2b-256 checksum
How to use checksums
9461e068d9d8dfaae842c7b5bfbc2bf8bf6a1a314c074577265e0fe289a7310e
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.0-cp310-cp310-win_amd64.whl

Download URL etiket_service_manager-0.3.0-cp310-cp310-win_amd64.whl
Size 733.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
a493808a0cd5a7bd3d8da85a12b067703778bf9a46daf2ee504cbb996e382c7b
BLAKE2b-256 checksum
How to use checksums
741dacf63dd581a5aeec54ca528f23acc571bf8defd63a60229c2d673abf93bf
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.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.7 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
689951ad0a8b9d8f0aef21d131a8852e94ae3bb600a320c49d350fb5113ea22a
BLAKE2b-256 checksum
How to use checksums
290c69c9cc81120dce68db1b2e85b429e04ad8e2da45d1558f87ea6e059d481a
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.0-cp310-cp310-macosx_11_0_x86_64.whl

Download URL etiket_service_manager-0.3.0-cp310-cp310-macosx_11_0_x86_64.whl
Size 818.2 kB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
4e7366c53738842b623c06312e4898de8ede518f0b615ba585a3d3f0c92ae5a5
BLAKE2b-256 checksum
How to use checksums
6421cb77e73765cb3ddb6f83de28bcffce422d35e4d68e386acf994ccf68b30b
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.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL etiket_service_manager-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Size 762.9 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
834b70bf595dbe6cbb728df32718ad277c790d5fd0e9a9bfae75de64616c0dfa
BLAKE2b-256 checksum
How to use checksums
67f97769889fb9dccd13a55a07eaf5d2dc0729c43d137226d6f750b296d24110
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for etiket-service-manager 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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