Metadata-Version: 2.4
Name: pylocalauth
Version: 1.0.0
Summary: Cross-platform local authentication library for Python applications.
Project-URL: Homepage, https://appsolves.dev
Project-URL: Repository, https://github.com/AppSolves/pylocalauth
Project-URL: Bug Reports, https://github.com/AppSolves/pylocalauth/issues
Project-URL: Documentation, https://github.com/AppSolves/pylocalauth/blob/main/README.md
Author-email: Kaan Gönüldinc <contact@appsolves.dev>
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: AsyncIO
Classifier: Framework :: Hatch
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3 :: Only
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: Topic :: System :: Systems Administration :: Authentication/Directory
Requires-Python: >=3.10
Requires-Dist: pyobjc-framework-localauthentication; sys_platform == 'darwin'
Requires-Dist: pyobjc; sys_platform == 'darwin'
Requires-Dist: python-pam; sys_platform == 'linux'
Requires-Dist: six; sys_platform == 'linux'
Requires-Dist: winrt-windows-foundation; sys_platform == 'win32'
Requires-Dist: winrt-windows-security-credentials-ui; sys_platform == 'win32'
Description-Content-Type: text/markdown

<p align="center">
  <kbd><img src="https://raw.githubusercontent.com/AppSolves/pylocalauth/refs/heads/main/assets/github/repo_card.png?sanitize=true" alt="pylocalauth"></kbd>
</p>
<br>

# `pylocalauth`

<p align="center">Cross-platform local authentication library for Python applications.</p>
<br>

[![build](https://github.com/AppSolves/pylocalauth/workflows/Build/badge.svg)](https://github.com/AppSolves/pylocalauth/actions)
[![PyPI version](https://badge.fury.io/py/pylocalauth.svg)](https://badge.fury.io/py/pylocalauth)
[![Downloads](https://pepy.tech/badge/pylocalauth)](https://pepy.tech/project/pylocalauth)

---

**Documentation**: <a href="https://github.com/AppSolves/pylocalauth/blob/main/README.md" target="_blank">README</a>

**Source Code**: <a href="https://github.com/AppSolves/pylocalauth" target="_blank">Repository</a>

---

Add local authentication to your Python applications with ease. `pylocalauth` provides a simple and secure way to authenticate users using platform-specific methods such as passwords, biometrics, and PINs.

## Features

| Feature | Status |
|---------|:------:|
| **Cross-platform**: Works on Windows, macOS, and Linux. (*macOS is still in beta, but it should work reliably*) | ✅ |
| **Multiple authentication methods**: Supports password-based, biometric (Windows Hello, Touch ID, etc.), and PIN-based authentication. | ✅ |
| **Easy integration**: Simple API for integrating local authentication into your Python applications. | ✅ |
| **Secure**: Utilizes platform-specific security features to ensure user data is protected. | ✅ |
| **Lightweight**: Minimal dependencies and easy to install. | ✅ |

## Contributing

We welcome contributions from the community! If you'd like to contribute, please follow the steps explained in the [CONTRIBUTORS](CONTRIBUTORS.md) file.

#### Contributions Needed

We are especially looking for help with the following:

- **macOS support:** Testing, bug reports, and improvements for the macOS backend.
- **Documentation & Tests:** Examples, API docs, tests (using `pytest` and `pytest-asyncio`) and usage guides.
- **CI/CD:** Enhancements to cross-platform test automation.
- **New authentication methods:** Suggestions or PRs for additional local authentication backends.
- **Issue triage:** Help us reproduce and resolve open issues.

If you want to help, please see [CONTRIBUTORS](CONTRIBUTORS.md) and open an issue or pull request!

## Development

### Setup environment

We use [Hatch](https://hatch.pypa.io/latest/install/) to manage the development environment and production build. Ensure it's installed on your system.

### Run unit tests

You can run all the tests with:

```bash
hatch run test
```

### Format the code

Execute the following command to apply `isort` and `black` formatting:

```bash
hatch run lint
```

## License

This project is licensed under the terms of the Apache 2.0 license.
See the [LICENSE](LICENSE) file for more information.