Skip to content

Commit 27070c9

Browse files
committed
Initial architecture, message functions, tests
1 parent 177de25 commit 27070c9

15 files changed

Lines changed: 1478 additions & 1 deletion

File tree

.github/workflows/tests.yml

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
15+
16+
steps:
17+
- uses: actions/checkout@v3
18+
19+
- name: Set up Python ${{ matrix.python-version }}
20+
uses: actions/setup-python@v4
21+
with:
22+
python-version: ${{ matrix.python-version }}
23+
24+
- name: Install Poetry
25+
uses: snok/install-poetry@v1
26+
with:
27+
version: latest
28+
virtualenvs-create: true
29+
virtualenvs-in-project: true
30+
31+
- name: Load cached venv
32+
id: cached-poetry-dependencies
33+
uses: actions/cache@v3
34+
with:
35+
path: .venv
36+
key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}
37+
38+
- name: Install dependencies
39+
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
40+
run: poetry install --no-interaction --no-root
41+
42+
- name: Install project
43+
run: poetry install --no-interaction
44+
45+
- name: Run tests with coverage
46+
run: |
47+
poetry run pytest --cov=postmark --cov-report=xml --cov-report=term
48+
49+
- name: Upload coverage to Codecov
50+
if: matrix.python-version == '3.11'
51+
uses: codecov/codecov-action@v3
52+
with:
53+
file: ./coverage.xml
54+
fail_ci_if_error: true
55+
56+
lint:
57+
runs-on: ubuntu-latest
58+
59+
steps:
60+
- uses: actions/checkout@v3
61+
62+
- name: Set up Python
63+
uses: actions/setup-python@v4
64+
with:
65+
python-version: "3.11"
66+
67+
- name: Install Poetry
68+
uses: snok/install-poetry@v1
69+
70+
- name: Install dependencies
71+
run: |
72+
poetry install --no-interaction
73+
poetry add --group dev black isort mypy
74+
75+
- name: Run Black
76+
run: poetry run black --check postmark/
77+
78+
- name: Run isort
79+
run: poetry run isort --check-only postmark/
80+
81+
- name: Run MyPy
82+
run: poetry run mypy postmark/
83+
continue-on-error: true # non-blocking

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,3 +205,5 @@ cython_debug/
205205
marimo/_static/
206206
marimo/_lsp/
207207
__marimo__/
208+
.DS_Store
209+
poetry.lock

.vscode/settings.json

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
// Python settings
3+
"python.linting.enabled": true,
4+
"python.linting.pylintEnabled": false,
5+
"python.linting.flake8Enabled": true,
6+
"python.formatting.provider": "black",
7+
"python.testing.pytestEnabled": true,
8+
"python.testing.unittestEnabled": false,
9+
"python.testing.pytestArgs": [
10+
"tests"
11+
],
12+
// Auto-format on save
13+
"editor.formatOnSave": true,
14+
"python.formatting.blackArgs": [
15+
"--line-length=100"
16+
],
17+
// Sort imports on save
18+
"python.sortImports.args": [
19+
"--profile",
20+
"black"
21+
],
22+
"[python]": {
23+
"editor.codeActionsOnSave": {
24+
"source.organizeImports": true
25+
}
26+
},
27+
// File associations
28+
"files.associations": {
29+
"*.md": "markdown",
30+
"*.yml": "yaml",
31+
"*.toml": "toml"
32+
},
33+
// Exclude from search/watch
34+
"files.exclude": {
35+
"**/__pycache__": true,
36+
"**/*.pyc": true,
37+
".pytest_cache": true,
38+
"*.egg-info": true,
39+
".coverage": true,
40+
"htmlcov": true,
41+
"dist": true,
42+
"build": true
43+
},
44+
// Type checking
45+
"python.linting.mypyEnabled": true,
46+
"python.linting.mypyArgs": [
47+
"--ignore-missing-imports",
48+
"--follow-imports=silent",
49+
"--show-column-numbers"
50+
]
51+
}

CHANGELOG.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/).
7+
8+
---
9+
10+
## [0.0.1] - 2026-01-06
11+
12+
### Added
13+
14+
15+
### Changed
16+
17+
18+
### Deprecated
19+
20+
21+
### Fixed
22+
23+
24+
---
25+
26+
## [0.0.1] - 2023-01-10
27+
28+
### Added
29+
- Initial stable release of the SDK.
30+
- Core client with authentication, retries, and logging.
31+
- Pytest tests

0 commit comments

Comments
 (0)