module_info()

Returns detailed license information for a single module via lic.LicGetModuleInfo. The server response is parsed into an ECMModuleInfo instance containing the license type and maximum use count.

1. Signature

  • Sync

  • Async

ecm.system.module_info(module: str) -> ECMModuleInfo
await ecm.system.module_info(module: str) -> ECMModuleInfo

2. Parameters

Parameter Type Default Description

module

str

 — 

The module name to query (e.g. "ASC").

3. Return value

An ECMModuleInfo instance.

3.1. ECMModuleInfo fields

Field Type Description

module

str

The module name that was queried.

max_use_count

int

Maximum number of clients that can use the module concurrently.

license_type

ECMLicenseType

The license type of the module.

raw

str

The raw comma-separated result string from the server.

3.2. ECMLicenseType enum

Member Value Description

CONCURRENT

"C"

Module can be used by clients of respective workstations, but only by a certain number (max_use_count).

NAMED

"N"

Module can only be used by clients at specific workstations.

UNIVERSAL

"U"

Module can be used without workstation or seat restrictions.

4. Exceptions

Exception Condition

ECMNotFoundException

The module is not found in the server’s resource table.

5. Examples

5.1. Get module info

  • Sync

  • Async

info = ecm.system.module_info("ASC")
print(f"Module: {info.module}")
print(f"License type: {info.license_type.name}")
print(f"Max users: {info.max_use_count}")
info = await ecm.system.module_info("ASC")
print(f"Module: {info.module}")
print(f"License type: {info.license_type.name}")
print(f"Max users: {info.max_use_count}")

5.2. Check license type before using check_license()

  • Sync

  • Async

from ecmind_blue_client.ecm import ECMLicenseType

info = ecm.system.module_info("ASC")
if info.license_type == ECMLicenseType.CONCURRENT:
    # check_license() only works for concurrent licenses
    result = ecm.system.check_license("ASC")
    print(f"Licensed: {result[0].licensed}")
else:
    print(f"Module uses {info.license_type.name} licensing — check_license() not applicable")
from ecmind_blue_client.ecm import ECMLicenseType

info = await ecm.system.module_info("ASC")
if info.license_type == ECMLicenseType.CONCURRENT:
    result = await ecm.system.check_license("ASC")
    print(f"Licensed: {result[0].licensed}")
else:
    print(f"Module uses {info.license_type.name} licensing — check_license() not applicable")

6. See also