Metadata-Version: 2.4
Name: libloader
Version: 1.3.3
Summary: Quickly and easily load shared libraries on various platforms. Also includes a libloader.com module for loading com modules on Windows.
Author: Christopher Toth
Author-email: q@q-continuum.net
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file
Dynamic: requires-python
Dynamic: summary

# Libloader

Libloader is a cross-platform Python library that simplifies loading shared libraries on macOS, Windows, and Linux. It handles platform-specific differences automatically, making your code more portable.

It also provides a COM module (`libloader.com`), making it easier to load COM DLLs on Windows.

## Installation

```bash
pip install libloader
```

## Usage

### Loading Shared Libraries

```python
from libloader import load_library

# Load a library with default paths
my_lib = load_library("mylibrary")

# Load a library with custom paths for 32-bit and 64-bit versions
my_lib = load_library("mylibrary", x86_path="./lib/x86", x64_path="./lib/x64")

# Call a function from the library
result = my_lib.some_function(arg1, arg2)
```

### Working with COM Objects (Windows)

```python
from libloader.com import load_com

# Load a COM object
excel = load_com("Excel.Application")

# Try multiple COM objects until one succeeds
speech = load_com("SAPI.SpVoice", "SpeechLib.SpVoice")
```

## API Reference

### libloader

* `load_library(library, x86_path=".", x64_path=".", *args, **kwargs)`: Load a library with the given name.
* `find_library_path(libname, x86_path=".", x64_path=".")`: Finds the path of the given library.
* `get_functype()`: Returns the ctypes functype for the current platform.
* `get_library_extension()`: Get the extension of the library for your current platform.
* `_do_load(file, *args, **kwargs)`: Attempts to actually load the library. Used internally by load_library.

### libloader.com

* `load_com(*names)`: Load a COM object. If you pass multiple names, it will try each one until one works.
* `prepare_gencache()`: Prepare the gencache for COM. Called automatically by load_com().

## Platform Support

Libloader automatically handles the differences between platforms:

* Windows: `.dll` files
* macOS: `.dylib` files
* Linux: `.so` files

## License

See the LICENSE file for details.
