This release is a pre-release and may not be stable for production use.
Hat Core - Python utility library
This library is part of Hat Open project - open-source framework of tools and libraries for developing applications used for remote monitoring, control and management of intelligent electronic devices such as IoT devices, PLCs, industrial automation or home automation systems.
Development of Hat Open and associated repositories is sponsored by Končar - Power Plant and Electric Traction Engineering Inc. (Končar KET - https://www.koncar-ket.hr).
For more information see:
hat-util documentation - https://core.hat-open.com/docs/libraries/util/python.html
Hat Core homepage - https://core.hat-open.com
Hat Core git repository - https://github.com/hat-open/hat-core.git
About
Common utility functions not available as part of standard library.
hat.util.first:
def first(xs: typing.Iterable[T], fn: typing.Callable[[T], bool] = lambda _: True, default: typing.Optional[T] = None ) -> typing.Optional[T]: """Return the first element from iterable that satisfies predicate `fn`, or `default` if no such element exists. Args: xs: collection fn: predicate default: default value Example:: assert first(range(3)) == 0 assert first(range(3), lambda x: x > 1) == 2 assert first(range(3), lambda x: x > 2) is None assert first(range(3), lambda x: x > 2, 123) == 123 assert first({1: 'a', 2: 'b', 3: 'c'}) == 1 assert first([], default=123) == 123 """hat.util.CallbackRegistry:
class RegisterCallbackHandle(typing.NamedTuple): """Handle for canceling callback registration.""" cancel: typing.Callable[[], None] """cancel callback registration""" def __enter__(self): ... def __exit__(self, *args): ... ExceptionCb: typing.Type = typing.Callable[[Exception], None] """Exception callback""" class CallbackRegistry: """Registry that enables callback registration and notification. Callbacks in the registry are notified sequentially with :meth:`CallbackRegistry.notify`. If a callback raises an exception, the exception is caught and `exception_cb` handler is called. Notification of subsequent callbacks is not interrupted. If handler is `None`, the exception is reraised and no subsequent callback is notified. Example:: x = [] y = [] registry = CallbackRegistry() registry.register(x.append) registry.notify(1) with registry.register(y.append): registry.notify(2) registry.notify(3) assert x == [1, 2, 3] assert y == [2] """ def __init__(self, exception_cb: typing.Optional[ExceptionCb] = None): ... def register(self, cb: typing.Callable ) -> RegisterCallbackHandle: """Register a callback.""" def notify(self, *args, **kwargs): """Notify all registered callbacks."""hat.util.parse_url_query:
def parse_url_query(query: str) -> typing.Dict[str, str]: """Parse url query string. Returns a dictionary of field names and their values. Args: query: url query string Example:: url = urllib.parse.urlparse('https://pypi.org/search/?q=hat-util') args = parse_url_query(url.query) assert args == {'q': 'hat-util'} """hat.util.get_unused_tcp_port and hat.util.get_unused_udp_port:
def get_unused_tcp_port() -> int: """Search for unused TCP port""" def get_unused_udp_port() -> int: """Search for unused UDP port"""
Metadata
Release files for hat-util 0.4.1.dev20210212
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hat_util-0.4.1.dev20210212-cp39-none-any.whl | CPython 3.9 | none | any | Details |
Release files / hat_util-0.4.1.dev20210212-cp39-none-any.whl
| Download URL | hat_util-0.4.1.dev20210212-cp39-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | CPython 3.9 |
|
SHA-256 checksum How to use checksums |
60b47a2b0899c067b2282947cc38b9200b3bc50fc39f52511a005d45d1ab1117
|
|
BLAKE2b-256 checksum How to use checksums |
feb4ac0f37fbf958ac01e40f60d151c5a3f8f7c2a8f9c54785a40f9e67a7a131
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1
|
Security for hat-util 0.4.1.dev20210212
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.