Metadata-Version: 2.4
Name: arch-reggie
Version: 0.1.0
Summary: A package for checking professional registration status across various certification bodies
Project-URL: Homepage, https://github.com/bvn-architecture/Reggie
Project-URL: Documentation, https://arch-reggie.readthedocs.io
Project-URL: Repository, https://github.com/bvn-architecture/Reggie
Project-URL: Issues, https://github.com/bvn-architecture/arch-reggie/issues
Author-email: Ben Doherty <ben_doherty@bvn.com.au>
License-Expression: MIT
License-File: LICENSE
Keywords: BVN,NSW,QLD,architecture,registration
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
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.8
Requires-Dist: beautifulsoup4>=4.9.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: requests>=2.25.0
Requires-Dist: selenium>=4.0.0
Requires-Dist: webdriver-manager>=3.8.0
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: isort; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=6.0; extra == 'dev'
Description-Content-Type: text/markdown

# Arch Reggie

A Python package for checking professional registration status across various certification bodies, particularly useful for architecture.

It can check the NSW and QLD ARBs at the moment, but there's potential to add more in the future.

![A slow loris, looking at you](docs/slow_lorris.png)

## Installation

```bash
pip install arch-reggie
```

## Quick Start

```python
from reggie import RegistrationProcessor, ProcessingConfig

# Initialize with default configuration (works with standard CSV format)
processor = RegistrationProcessor()

# Process a CSV file - default expects columns: Email, Full Name, LinkedIn URL, State Board Name, Registration Number, State Board Code
results = processor.process_csv("path/to/your/registrations.csv")

# Save results as JSON
processor.save_json(results, "output.json")
```

## CSV Format

The default configuration expects a headerless CSV with these columns in order:

1. Email
2. Full Name
3. LinkedIn URL
4. State Board Name (e.g., "NSW Architects Registration Board")
5. Registration Number
6. State Board Code (e.g., "NSW", "QLD")

## Supported Registration Bodies

- NSW Architects Registration Board
- Board of Architects of Queensland
- ~Northern Territory Architects Board~ not yet
- ~Architects Registration Board of Victoria~ not yet
- ~Registered Design Practitioner NSW~ not yet

## Configuration

The package works out-of-the-box with the standard CSV format, but supports custom configuration:

```python
from reggie import RegistrationProcessor, ProcessingConfig

# For different CSV formats, customize the configuration
config = ProcessingConfig(
    # If your CSV has different column names:
    column_names=["email", "name", "linkedin", "body", "number", "state"],
    email_column="email",
    full_name_column="name",

    # Processing options:
    check_registrations=True,  # Set to False to skip web scraping
    selenium_headless=True,    # Set to False to see browser window
    output_format="json"
)

processor = RegistrationProcessor(config=config)
```

## Development

See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.

## License

MIT License - see [LICENSE](LICENSE) file for details.
