Metadata-Version: 2.4
Name: domolibrary2
Version: 2.0.3b0
Summary: A Python library for interacting with Domo APIs
Author-email: Jae Wilson <jaewilson07@gmail.com>
License-Expression: Apache-2.0
Keywords: jupyter,notebook,python,domo,api
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas
Requires-Dist: aiohttp
Requires-Dist: dc_logger
Requires-Dist: requests
Requires-Dist: twine
Requires-Dist: orjson
Requires-Dist: httpx
Requires-Dist: python-dotenv
Requires-Dist: sqlparse
Requires-Dist: sqlglot
Requires-Dist: bs4
Requires-Dist: nbqa
Requires-Dist: black
Requires-Dist: aenum
Requires-Dist: pillow
Requires-Dist: xkcdpass
Requires-Dist: sql_metadata
Requires-Dist: dc-logger
Requires-Dist: beautifulsoup4
Requires-Dist: tomli; python_version < "3.11"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: bandit; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Dynamic: license-file

# Domolibrary

A Python library for interacting with Domo APIs.

## Installation

```bash
pip install domolibrary
```

## Usage

```python
from domolibrary import DomoUser
# Your code here
```

## Project Structure

```
src/                      # Main package source code
├── classes/              # Domain model classes
├── client/               # API client utilities
├── integrations/         # Integration modules
├── routes/               # API route implementations
├── utils/                # Utility functions
├── __init__.py           # Package initialization
└── _modidx.py           # Module index
scripts/                  # Development scripts
tests/                    # Test files
.vscode/                  # VS Code configuration
.github/workflows/        # CI/CD workflows
```

## Development

This project uses `uv` for dependency management and development.

### Setup Development Environment

```powershell
# Initial setup (run once)
.\scripts\setup-dev.ps1
```

This will:
- Install all dependencies (including dev dependencies)
- Set up pre-commit hooks for automatic code quality checks

### Development Scripts

All development scripts are located in the `scripts/` folder. See `scripts/README.md` for detailed documentation.

**Quick reference:**
- **`.\scripts\setup-dev.ps1`** - Setup development environment
- **`.\scripts\format-code.ps1`** - Manual code formatting (fallback)
- **`.\scripts\lint.ps1`** - Run linting and type checking
- **`.\scripts\test.ps1`** - Run tests with coverage
- **`.\scripts\build.ps1`** - Build the package
- **`.\scripts\publish.ps1`** - Publish to PyPI (with validation)

### Manual Development Commands

If you prefer to run commands manually:

```powershell
# Install dependencies
uv sync --dev

# Run linting
uv run ruff check src --fix
uv run black src
uv run isort src
uv run pylint src
uv run mypy src

# Run tests
uv run pytest tests/ --cov=src

# Build package
uv build

# Publish (after all checks pass)
uv publish
```

### Pre-commit Hooks

This project uses pre-commit hooks to automatically check code quality before commits:
- **Ruff** - Fast Python linter
- **Black** - Code formatter
- **isort** - Import sorter

Hooks are installed automatically by `setup-dev.ps1`. If they cause issues, you can use `.\scripts\format-code.ps1` as a fallback.
