Metadata-Version: 2.4
Name: pseudomatic
Version: 0.1.2
Summary: A tool for generating deterministic pseudonyms based on a seed string and selected language
Project-URL: Homepage, https://github.com/OpenMindUA/pseudomatic
Project-URL: Repository, https://github.com/OpenMindUA/pseudomatic
Project-URL: Documentation, https://github.com/OpenMindUA/pseudomatic#readme
License-Expression: MIT
License-File: LICENSE
Keywords: anonymization,generator,pseudonym
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# Pseudomatic

Pseudomatic is a Python-based tool for generating pseudonyms based on a seed string and a selected language. It is useful for anonymizing data or creating unique, repeatable pseudonyms.

## Features

- Supports multiple languages:
  - English (`en`)
  - Ukrainian (`ua`)
- Generates pseudonyms in the format: `Adjective Noun` (e.g., "Brave Fox" or "Хоробрий Лис").
- Deterministic output: the same seed and language will always produce the same pseudonym.

## Installation

### From PyPI

```bash
pip install pseudomatic
```

### From Source

1. Clone the repository:
   ```bash
   git clone <repository-url>
   cd pseudomatic
   ```

2. Install in development mode:
   ```bash
   pip install -e .
   ```

## Usage

### As a Python Package

```python
from pseudomatic import pseudonym

# Generate a pseudonym in English
pseudonym_en = pseudonym("JohnDoe", language="en")
print(pseudonym_en)  # Example: "Brave Fox"

# Generate a pseudonym in Ukrainian
pseudonym_ua = pseudonym("JohnDoe", language="ua")
print(pseudonym_ua)  # Example: "Хоробрий Лис"

# Use different themes
business_pseudonym = pseudonym("JohnDoe", language="en", theme="business")
market_pseudonym = pseudonym("JohnDoe", language="ua", theme="market")
```

### From Command Line

Run the script directly:
```bash
python -m pseudomatic
```

This will generate example pseudonyms in English and Ukrainian using the 'market' theme.

## Project Structure

- `pseudomatic.py`: Main script for generating pseudonyms.
- `names.py`: Contains adjective and noun lists for supported languages.
- `pyproject.toml`: Package configuration for building and distribution.
- `README.md`: Project documentation.

## Development and Deployment

### Continuous Integration/Continuous Deployment

This project uses GitHub Actions for CI/CD:

- When a new release is created on GitHub, the package is automatically built and published to PyPI.
- The workflow is defined in `.github/workflows/publish.yml`.

### Creating a New Release

To create a new release:

1. Update the version number in `pyproject.toml`.
2. Create a new release on GitHub with a tag matching the version (e.g., `v0.1.0`).
3. The GitHub Actions workflow will automatically build and publish the package to PyPI.

### PyPI Authentication

The GitHub Actions workflow requires a PyPI API token stored as a GitHub secret named `PYPI_API_TOKEN`. To set this up:

1. Create an API token on PyPI (https://pypi.org/manage/account/token/).
2. Add the token as a secret in your GitHub repository settings.

## License

This project is licensed under the MIT License. See the `LICENSE` file for details.
