Metadata-Version: 2.3
Name: amherst
Version: 0.4.25
Summary: Add your description here
Author: Paw
Author-email: Paw <amherst+pawrequest@users.noreply.github.com>
Requires-Dist: shipaw==0.3.57
Requires-Dist: pawlogger==0.1.4
Requires-Dist: pycommence==0.2.4
Requires-Dist: pydantic-settings>=2.11.0
Requires-Dist: pydantic[email]>=2.11.9
Requires-Dist: fastapi>=0.117.1
Requires-Dist: jinja2>=3.1.6
Requires-Dist: loguru>=0.7.3
Requires-Dist: flaskwebgui>=1.1.6
Requires-Python: >=3.13
Description-Content-Type: text/markdown

# amherst

This project pulls together a number of different tools to assist with our day-to-day business needs.

It is ludicrously over-engineered. Previous iterations used PySimpleGui, but that is no longer FOSS - instead we produce
a full FastAPI based web-application wrapped in FlaskWebGui to render as a desktop app.

## Major Dependencies

- ### Commence RM Designer Edition
  CRM
- ### Pydantic
  type safety, validation, serialisation
- ### FastAPI
  manage endpoints and application flow / concurrency
- ### Htmx
  front-end tooling
-

~~### SqlModel~~
~~- use Sqlite DB as persistent storage~~  
~~### FastUi~~
~~- declarative front-end from the Pydantic Family~~

### Logguru

- could be removed but frankly i like it

## Custom (pawrequest) Dependencies

### [PyCommence](https://github.com/pawrequest/pycommence)

- a nascent ORM (currently just simple CRUD) to access Commence RM Designer edition via python
- next version is creating json-schema from the db data and dynamically defining Pydantic Models / SQL schema

### [Shipaw](https://github.com/pawrequest/shipaw)

- a shipping client to book collections and produce labels
- currently uses Parcelforce's ExpressLink API but could easily be replaced with other suppliers

~~### [PawDantic](https://github.com/pawrequest/pawdantic)~~
~~- tools for working in the Pydantic ecosystem, specifically custom types
like `TruncatedPrintableString(length:int)`, `ValidUkPostcode`~~

### [PawRequest/FlaskWebGui](https://github.com/pawrequest/FlaskWebGui)

- a fork of Climente's FlaskWebGui injecting a 'URL_Suffix' param to allow dynamic definiition of the initially loaded
  URL

### [PawDF](https://github.com/pawrequest/pawdf)

-PDF tooling, specifically for arraying the A6 labels Parcelforce provide on A4 - 2 to a page - and sending to printer

### [Suppawt](https://github.com/pawrequest/suppawt)

- emailer

## Dev Dependencies

### pytest

### sphinx + autodoc + napoleon
