Skip to content

Commit 5b1f4a1

Browse files
committed
cookiecutter init
1 parent f584d1e commit 5b1f4a1

20 files changed

+914
-1
lines changed

.github/dependabot.yml

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5+
6+
version: 2
7+
updates:
8+
- package-ecosystem: pip
9+
directory: "/"
10+
schedule:
11+
interval: weekly
12+
commit-message:
13+
prefix: "chore(deps): "
14+
prefix-development: "chore(deps-dev): "
15+
groups:
16+
development-dependencies:
17+
dependency-type: development
18+
runtime-dependencies:
19+
dependency-type: production
20+
update-types:
21+
- "patch"
22+
versioning-strategy: increase-if-necessary
23+
- package-ecosystem: pip
24+
directory: "/.github/workflows"
25+
schedule:
26+
interval: weekly
27+
commit-message:
28+
prefix: "ci: "
29+
groups:
30+
ci:
31+
patterns:
32+
- "*"
33+
- package-ecosystem: github-actions
34+
directory: "/"
35+
schedule:
36+
interval: weekly
37+
commit-message:
38+
prefix: "ci: "
39+
groups:
40+
actions:
41+
patterns:
42+
- "*"

.github/workflows/build.yml

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
6+
permissions:
7+
contents: write # Needed to upload artifacts to the release
8+
id-token: write # Needed for OIDC PyPI publishing
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
17+
- uses: hynek/build-and-inspect-python-package@v2
18+
19+
publish:
20+
name: Publish to PyPI
21+
runs-on: ubuntu-latest
22+
needs: [build]
23+
## TODO: optionally provide the name of the environment for the trusted
24+
## publisher on PyPI
25+
## https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment
26+
# environment: pypi
27+
if: startsWith(github.ref, 'refs/tags/')
28+
steps:
29+
- uses: actions/download-artifact@v4
30+
with:
31+
name: Packages
32+
path: dist
33+
- name: Upload wheel to release
34+
uses: svenstaro/upload-release-action@v2
35+
with:
36+
repo_token: ${{secrets.GITHUB_TOKEN}}
37+
file: dist/*.whl
38+
tag: ${{github.ref}}
39+
overwrite: true
40+
file_glob: true
41+
42+
- name: Publish
43+
## TODO: create a trusted publisher on PyPI
44+
## https://docs.pypi.org/trusted-publishers/
45+
uses: pypa/[email protected]

.github/workflows/test.yml

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
### A CI workflow template that runs linting and python testing
2+
### TODO: Modify as needed or as desired.
3+
4+
name: Test tap-clerk
5+
6+
on:
7+
push:
8+
branches: [main]
9+
paths:
10+
- .github/workflows/test.yml
11+
- tap_clerk/**
12+
- tests/**
13+
- poetry.lock
14+
- pyproject.toml
15+
- tox.ini
16+
pull_request:
17+
branches: [main]
18+
paths:
19+
- .github/workflows/test.yml
20+
- tap_clerk/**
21+
- tests/**
22+
- poetry.lock
23+
- pyproject.toml
24+
- tox.ini
25+
workflow_dispatch:
26+
27+
env:
28+
FORCE_COLOR: 1
29+
30+
jobs:
31+
pytest:
32+
runs-on: ubuntu-latest
33+
strategy:
34+
fail-fast: false
35+
matrix:
36+
python-version:
37+
- "3.9"
38+
- "3.10"
39+
- "3.11"
40+
- "3.12"
41+
- "3.13"
42+
steps:
43+
- uses: actions/checkout@v4
44+
- name: Set up Python ${{ matrix.python-version }}
45+
uses: actions/setup-python@v5
46+
with:
47+
python-version: ${{ matrix.python-version }}
48+
- run: pipx install tox
49+
- name: Run Tox
50+
run: |
51+
tox -e $(echo py${{ matrix.python-version }} | tr -d .)

.gitignore

+136
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Secrets and internal config files
2+
**/.secrets/*
3+
4+
# Ignore meltano internal cache and sqlite systemdb
5+
6+
.meltano/
7+
8+
# Byte-compiled / optimized / DLL files
9+
__pycache__/
10+
*.py[cod]
11+
*$py.class
12+
13+
# C extensions
14+
*.so
15+
16+
# Distribution / packaging
17+
.Python
18+
build/
19+
develop-eggs/
20+
dist/
21+
downloads/
22+
eggs/
23+
.eggs/
24+
lib/
25+
lib64/
26+
parts/
27+
sdist/
28+
var/
29+
wheels/
30+
pip-wheel-metadata/
31+
share/python-wheels/
32+
*.egg-info/
33+
.installed.cfg
34+
*.egg
35+
MANIFEST
36+
37+
# PyInstaller
38+
# Usually these files are written by a python script from a template
39+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
40+
*.manifest
41+
*.spec
42+
43+
# Installer logs
44+
pip-log.txt
45+
pip-delete-this-directory.txt
46+
47+
# Unit test / coverage reports
48+
htmlcov/
49+
.tox/
50+
.nox/
51+
.coverage
52+
.coverage.*
53+
.cache
54+
nosetests.xml
55+
coverage.xml
56+
*.cover
57+
*.py,cover
58+
.hypothesis/
59+
.pytest_cache/
60+
61+
# Translations
62+
*.mo
63+
*.pot
64+
65+
# Django stuff:
66+
*.log
67+
local_settings.py
68+
db.sqlite3
69+
db.sqlite3-journal
70+
71+
# Flask stuff:
72+
instance/
73+
.webassets-cache
74+
75+
# Scrapy stuff:
76+
.scrapy
77+
78+
# Sphinx documentation
79+
docs/_build/
80+
81+
# PyBuilder
82+
target/
83+
84+
# Jupyter Notebook
85+
.ipynb_checkpoints
86+
87+
# IPython
88+
profile_default/
89+
ipython_config.py
90+
91+
# pyenv
92+
.python-version
93+
94+
# pipenv
95+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
96+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
97+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
98+
# install all needed dependencies.
99+
#Pipfile.lock
100+
101+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
102+
__pypackages__/
103+
104+
# Celery stuff
105+
celerybeat-schedule
106+
celerybeat.pid
107+
108+
# SageMath parsed files
109+
*.sage.py
110+
111+
# Environments
112+
.env
113+
.venv
114+
env/
115+
venv/
116+
ENV/
117+
env.bak/
118+
venv.bak/
119+
120+
# Spyder project settings
121+
.spyderproject
122+
.spyproject
123+
124+
# Rope project settings
125+
.ropeproject
126+
127+
# mkdocs documentation
128+
/site
129+
130+
# mypy
131+
.mypy_cache/
132+
.dmypy.json
133+
dmypy.json
134+
135+
# Pyre type checker
136+
.pyre/

.pre-commit-config.yaml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
ci:
2+
autofix_prs: true
3+
autoupdate_schedule: weekly
4+
autoupdate_commit_msg: 'chore: pre-commit autoupdate'
5+
6+
repos:
7+
- repo: https://github.com/pre-commit/pre-commit-hooks
8+
rev: v5.0.0
9+
hooks:
10+
- id: check-json
11+
exclude: |
12+
(?x)^(
13+
\.vscode/.*\.json
14+
)$
15+
- id: check-toml
16+
- id: check-yaml
17+
- id: end-of-file-fixer
18+
- id: trailing-whitespace
19+
20+
- repo: https://github.com/python-jsonschema/check-jsonschema
21+
rev: 0.30.0
22+
hooks:
23+
- id: check-dependabot
24+
- id: check-github-workflows
25+
26+
- repo: https://github.com/astral-sh/ruff-pre-commit
27+
rev: v0.8.2
28+
hooks:
29+
- id: ruff
30+
args: [--fix, --exit-non-zero-on-fix, --show-fixes]
31+
- id: ruff-format
32+
33+
- repo: https://github.com/pre-commit/mirrors-mypy
34+
rev: v1.13.0
35+
hooks:
36+
- id: mypy
37+
additional_dependencies:
38+
- types-requests

.secrets/.gitignore

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# IMPORTANT! This folder is hidden from git - if you need to store config files or other secrets,
2+
# make sure those are never staged for commit into your git repo. You can store them here or another
3+
# secure location.
4+
#
5+
# Note: This may be redundant with the global .gitignore for, and is provided
6+
# for redundancy. If the `.secrets` folder is not needed, you may delete it
7+
# from the project.
8+
9+
*
10+
!.gitignore

.vscode/launch.json

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "tap-clerk",
9+
"type": "debugpy",
10+
"request": "launch",
11+
"cwd": "${workspaceFolder}",
12+
"program": "tap_clerk",
13+
"justMyCode": false,
14+
"args": [
15+
"--config",
16+
".secrets/config.json",
17+
],
18+
},
19+
]
20+
}

0 commit comments

Comments
 (0)