Metadata-Version: 2.4
Name: e3sertools
Version: 0.3.0
Summary: Tools for e3
Author-email: kham@tuta.io
Maintainer-email: kham@tuta.io
License-Expression: Unlicense
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Typing :: Typed
Requires-Python: >=3.14
Description-Content-Type: text/markdown
License-File: unlicense
Dynamic: license-file

# Python package `e3sertools`
Handy tools for working with Zuken E3.series API using `e3series` package.


## Functionality
This package provides this functionality:
1. Resolve PID of target E3 process in meaningful way:
   check corresponding environment variable (`E3_SERIES_PID`),
   if it is not set then check parent processes,
   if nothing from above works then just ask a user which e3series process to connect to.
   This functionality is available as `Application.resolve_e3_pid()`
   with `Application` from `e3sertools.extensions` module.
2. Control COM-connection initialization and finalization by code.
   This functionality is available as `ReleaseComObject()` method
   implemented for classes in `e3sertools.extensions` module.
   They also implement `ContextManager` protocol and close connection on context exit.
3. Have global context variables for `Application` and `Job` connections to reuse them between modules.
   Context variables for `Application` and `Job` classes are available as `app` and `job`
   from `e3sertools.contextvars` module.


## Examples
```python
import e3series as e3
import e3sertools.contextvars
import e3sertools.extensions

# Resolve target E3.series application
app = e3.Application(e3sertools.extensions.Application.resolve_e3_pid())

# Cnotrol COM-connection using context manager and context variables.
with e3sertools.contextvars.job.set(app.CreateJobObject()):
    ... # do things with job
```
