Metadata-Version: 2.4
Name: utils-COMobjects
Version: 1.0.0
Summary: Package with various utilities to support COM object development with Python based on PyWin32
Project-URL: Documentation, https://dornech.github.io/utils-COMobjects
Project-URL: Source, https://github.com/dornech/utils-COMobjects
Project-URL: Tracker, https://github.com/dornech/utils-COMobjects/issues
Project-URL: Sponsor, https://github.com/sponsors/dornech
Author-email: dornech <dornech@gmx.de>
License: GPL-3.0-only
License-File: AUTHORS.md
License-File: LICENSE.txt
Keywords: COM,COM objects,PyWin32
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.9
Requires-Dist: pywin32
Requires-Dist: utils-mystuff
Description-Content-Type: text/markdown

# COM utilities for Python

Package with various utilities to support COM object development with Python based on PyWin32

## Features

Set of submodules contains:

- base module with abstract base class definition for Python COM object classes
- submodule with a logger mixin class for Python COM object classes
- submodule with various check routines for own-defined Python COM object classes
- submodule with helpful decorators for own-defined Python COM object classes
- submodule for TypeLib generation (used within module to check Python COM object classes)

Note: as I am coming from camel case notation I was struggling a little bit with the Python naming conventions.
However, for publishing I tried to increase compliance with Python naming conventions and added snake case
method stubs (at least for most important subroutines) as a compromise.

## Development

To set up [hatch] and [pre-commit] for the first time:

1. install [hatch] globally, e.g. with [pipx], i.e. `pipx install hatch`,
2. make sure `pre-commit` is installed globally, e.g. with `pipx install pre-commit`.

A special feature that makes hatch very different from other familiar tools is that you almost never
activate, or enter, an environment. Instead, you use `hatch run env_name:command` and the `default` environment
is assumed for a command if there is no colon found. Thus you must always define your environment in a declarative
way and hatch makes sure that the environment reflects your declaration by updating it whenever you issue
a `hatch run ...`. This helps with reproducability and avoids forgetting to specify dependencies since the
hatch workflow is to specify everything directly in [pyproject.toml](pyproject.toml). Only in rare cases, you
will use `hatch shell` to enter the `default` environment, which is similar to what you may know from other tools.

To get you started, use `hatch run test:cov` or `hatch run test:no-cov` to run the unitest with or without coverage reports,
respectively. Use `hatch run lint:all` to run all kinds of typing and linting checks. Try to automatically fix linting
problems with `hatch run lint:fix` and use `hatch run docs:serve` to build and serve your documentation.
You can also easily define your own environments and commands. Check out the environment setup of hatch
in [pyproject.toml](pyproject.toml) for more commands as well as the package, build and tool configuration.

To support versioning and changelog generation please refer to the toolchain selected during package
generation (see also `pyproject.toml`). If not deselected, the toolchain includes a [pre-commit] hook
for linting commit messages to ensure commit messages are compliant with the conventional commit format and
support an automated changelog generation.

## Credits

This package was created with [The Hatchlor Enhanced] project template. This template is based on [The Hatchlor]
but was substantially improved.

[The Hatchlor Enhanced]: https://github.com/dornech/the-hatchlor-enhanced
[The Hatchlor]: https://github.com/florianwilhelm/the-hatchlor
[pipx]: https://pypa.github.io/pipx/
[hatch]: https://hatch.pypa.io/
[pre-commit]: https://pre-commit.com/
