semvec/pypi-packages huggingface dataset:
regex2dfa 0.2.1
Convert regular expressions to minimized DFAs in AT&T FST format
Requires Python: >=3.8
Keywords: automata, dfa, finite-state, fst, nfa, regex

# regex2dfa

Convert regular expressions to minimized DFAs in AT&T FST format.

**Pure Python · Zero dependencies · Results cached in memory**

## Installation

```bash
pip install regex2dfa
```

## Usage

```python
from regex2dfa import regex2dfa

dfa = regex2dfa("(a|b)+")
print(dfa)
```

Output:
```
0	1	97	97
0	1	98	98
1	1	97	97
1	1	98	98
1
```

## Features

- **Pure Python** — No external dependencies
- **Fast** — Results cached with LRU (1024 entries)
- **Complete pipeline** — Thompson's → Subset → Hopcroft minimization

## Supported Syntax

| Feature | Syntax | Example |
|---------|--------|---------|
| Literal | `a` | `abc` |
| Any char | `.` | `a.b` |
| Character class | `[abc]`, `[a-z]`, `[^abc]` | `[0-9]+` |
| Quantifiers | `*`, `+`, `?` | `a*`, `b+`, `c?` |
| Alternation | `\|` | `cat\|dog` |
| Grouping | `(...)` | `(ab)+` |
| Escapes | `\x00`, `\d`, `\w`, `\s`, `\C` | `\xFF`, `\d+` |

## Output Format

AT&T FST format with tab-separated fields:
- **Transitions**: `src  dst  input  output`
- **Final states**: `state_id`

Labels are ASCII byte values (e.g., 97 = 'a').

## Links

- [GitHub](https://github.com/kpdyer/regex2dfa)
- [Documentation](https://github.com/kpdyer/regex2dfa#readme)

## License

MIT
writefreely-mcp-server 0.1.3
An MCP server for interacting with WriteFreely API, enabling AI agents like Claude to perform blogging actions. Supports both self-hosted WriteFreely instances and the Write.as hosted service. This is a community-built, independent project.
Requires Python: >=3.10
Keywords: ai-agent, api, blogging, mcp, writefreely

# writefreely-mcp-server

An MCP server for WriteFreely that enables AI agents to publish and manage content on WriteFreely instances (including self-hosted instances and Write.as).

## Features

- Publish posts (anonymous or authenticated)
- Manage collections and posts
- Browse public feeds
- Support for Write.as and self-hosted WriteFreely instances

## Installation

### Installing `uv` or `uvx`

If you don't have `uv` or `uvx` installed, you can install them using one of the following methods:

**macOS/Linux:**
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

**Windows (PowerShell):**
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

**Using Homebrew (macOS):**
```bash
brew install uv
```

**Using pip:**
```bash
pip install uv
```

After installation, `uvx` will be available as part of `uv`. See the [uv documentation](https://github.com/astral-sh/uv) for more details.

### Using `uvx` (recommended)

```bash
uvx --from writefreely-mcp-server writefreely-mcp
```

### Using `uv`

```bash
uv tool install writefreely-mcp-server
writefreely-mcp
```

### Using `pip`

```bash
pip install writefreely-mcp-server
```

## Configuration

Configure via environment variables:

- `WRITEFREELY_BASE_URL` - Base URL (default: `https://write.as`)
- `WRITEFREELY_ACCESS_TOKEN` - Access token for authentication
- `WRITEFREELY_DEFAULT_LANGUAGE` - Default language (default: `en`)

### Getting an Access Token

```bash
curl -X POST https://write.as/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"alias": "your_username", "pass": "your_password"}'
```

### MCP Client Configuration

```json
{
  "mcpServers": {
    "writefreely": {
      "command": "uvx",
      "args": ["--from", "writefreely-mcp-server", "writefreely-mcp"],
      "env": {
        "WRITEFREELY_BASE_URL": "https://write.as",
        "WRITEFREELY_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}
```

## Available Tools

- `login()` - Authenticate with username/password
- `publish_post()` - Create and publish a new post
- `edit_post()` - Update an existing post
- `delete_post()` - Delete a post
- `read_post()` - Read a post by ID
- `list_my_posts()` - List all your posts
- `list_my_collections()` - List all your collections/blogs
- `browse_collection()` - Browse posts in a collection
- `browse_public_feed()` - Browse the public feed

## License

MIT

## Links

- [Development](https://github.com/laxmena/writefreely-mcp-server/blob/main/DEVELOPMENT.md)
- [Contributing](https://github.com/laxmena/writefreely-mcp-server)
- [Issues](https://github.com/laxmena/writefreely-mcp-server/issues)