tap-belvo 0.0.1b4__tar.gz → 0.0.1b6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of tap-belvo might be problematic. Click here for more details.
- tap_belvo-0.0.1b6/.copier-answers.yml +20 -0
- tap_belvo-0.0.1b6/.flake8 +7 -0
- tap_belvo-0.0.1b6/.github/dependabot.yml +33 -0
- tap_belvo-0.0.1b6/.github/workflows/constraints.txt +2 -0
- tap_belvo-0.0.1b6/.github/workflows/dynamic-publish.yaml +40 -0
- tap_belvo-0.0.1b6/.github/workflows/test.yml +84 -0
- tap_belvo-0.0.1b6/.gitignore +242 -0
- tap_belvo-0.0.1b6/.pre-commit-config.yaml +34 -0
- tap_belvo-0.0.1b6/.secrets/.gitignore +10 -0
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/PKG-INFO +43 -43
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/README.md +19 -29
- tap_belvo-0.0.1b6/meltano.yml +55 -0
- tap_belvo-0.0.1b6/output/.gitignore +2 -0
- tap_belvo-0.0.1b6/plugins/loaders/target-duckdb--jwills.lock +94 -0
- tap_belvo-0.0.1b6/plugins/loaders/target-jsonl--andyh1203.lock +34 -0
- tap_belvo-0.0.1b6/pyproject.toml +131 -0
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/client.py +41 -16
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/openapi/BelvoOpenFinanceApiSpec.json +30230 -22065
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/openapi/__init__.py +5 -5
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/streams/banking.py +8 -8
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/streams/enrichment.py +3 -3
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/streams/fiscal.py +8 -8
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/streams/links.py +7 -5
- tap_belvo-0.0.1b6/tests/__init__.py +3 -0
- tap_belvo-0.0.1b6/tests/conftest.py +5 -0
- tap_belvo-0.0.1b6/tests/test_core.py +65 -0
- tap_belvo-0.0.1b4/pyproject.toml +0 -99
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/LICENSE +0 -0
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/__init__.py +0 -0
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/__main__.py +0 -0
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/streams/__init__.py +0 -0
- {tap_belvo-0.0.1b4 → tap_belvo-0.0.1b6}/tap_belvo/tap.py +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Changes here will be overwritten by Copier
|
|
2
|
+
_commit: 0.0.10
|
|
3
|
+
_src_path: gh:edgarrmondragon/singer-tap-copier-template
|
|
4
|
+
author_email: edgarrm358@gmail.com
|
|
5
|
+
author_fullname: Edgar Ramírez-Mondragón
|
|
6
|
+
author_username: edgarrmondragon
|
|
7
|
+
python_main_version: '3.10'
|
|
8
|
+
repository_name: tap-belvo
|
|
9
|
+
repository_namespace: edgarrmondragon
|
|
10
|
+
repository_provider: github.com
|
|
11
|
+
tap_auth_method: Basic Auth
|
|
12
|
+
tap_id: tap-belvo
|
|
13
|
+
tap_package_command_line_name: tap-belvo
|
|
14
|
+
tap_package_distribution_name: tap-belvo
|
|
15
|
+
tap_package_import_name: tap_belvo
|
|
16
|
+
tap_source_description: The leading Open Banking API platform in Latin America
|
|
17
|
+
tap_source_id: Belvo
|
|
18
|
+
tap_source_name: Belvo
|
|
19
|
+
tap_stream_type: REST
|
|
20
|
+
vscode_files: true
|
|
@@ -0,0 +1,33 @@
|
|
|
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: "daily"
|
|
12
|
+
reviewers:
|
|
13
|
+
- "edgarrmondragon"
|
|
14
|
+
versioning-strategy: increase-if-necessary
|
|
15
|
+
commit-message:
|
|
16
|
+
prefix: "chore(deps): "
|
|
17
|
+
prefix-development: "chore(deps-dev): "
|
|
18
|
+
- package-ecosystem: pip
|
|
19
|
+
directory: "/.github/workflows"
|
|
20
|
+
schedule:
|
|
21
|
+
interval: "daily"
|
|
22
|
+
reviewers:
|
|
23
|
+
- "edgarrmondragon"
|
|
24
|
+
commit-message:
|
|
25
|
+
prefix: "ci: "
|
|
26
|
+
- package-ecosystem: github-actions
|
|
27
|
+
directory: "/"
|
|
28
|
+
schedule:
|
|
29
|
+
interval: "weekly"
|
|
30
|
+
reviewers:
|
|
31
|
+
- "edgarrmondragon"
|
|
32
|
+
commit-message:
|
|
33
|
+
prefix: "ci: "
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Build and publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
build:
|
|
8
|
+
name: Build wheel and sdist
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v4
|
|
12
|
+
with:
|
|
13
|
+
fetch-depth: 0
|
|
14
|
+
ref: ${{ github.ref }}
|
|
15
|
+
- uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: "3.11"
|
|
18
|
+
- uses: hynek/build-and-inspect-python-package@v1
|
|
19
|
+
|
|
20
|
+
publish:
|
|
21
|
+
name: Publish to PyPI
|
|
22
|
+
if: startsWith(github.ref, 'refs/tags/')
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
needs: build
|
|
25
|
+
permissions:
|
|
26
|
+
contents: write
|
|
27
|
+
id-token: write
|
|
28
|
+
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/download-artifact@v3
|
|
31
|
+
with:
|
|
32
|
+
name: Packages
|
|
33
|
+
path: dist
|
|
34
|
+
- uses: svenstaro/upload-release-action@v2
|
|
35
|
+
with:
|
|
36
|
+
file: dist/*.whl
|
|
37
|
+
tag: ${{ github.ref }}
|
|
38
|
+
overwrite: true
|
|
39
|
+
file_glob: true
|
|
40
|
+
- uses: pypa/gh-action-pypi-publish@v1.8.11
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
name: Test tap-belvo
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- tap_belvo/**
|
|
8
|
+
- tests/**
|
|
9
|
+
- pyproject.toml
|
|
10
|
+
- .github/workflows/test.yml
|
|
11
|
+
- .github/workflows/constraints.txt
|
|
12
|
+
pull_request:
|
|
13
|
+
types: [opened, synchronize, reopened]
|
|
14
|
+
paths:
|
|
15
|
+
- tap_belvo/**
|
|
16
|
+
- tests/**
|
|
17
|
+
- pyproject.toml
|
|
18
|
+
- .github/workflows/test.yml
|
|
19
|
+
- .github/workflows/constraints.txt
|
|
20
|
+
schedule:
|
|
21
|
+
- cron: "0 10 * * *"
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
tests:
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
env:
|
|
27
|
+
FORCE_COLOR: "1"
|
|
28
|
+
PIP_CONSTRAINT: .github/workflows/constraints.txt
|
|
29
|
+
strategy:
|
|
30
|
+
fail-fast: false
|
|
31
|
+
matrix:
|
|
32
|
+
script: ["test:integration"]
|
|
33
|
+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
|
34
|
+
include:
|
|
35
|
+
- { script: "test:dependencies", python-version: "3.11" }
|
|
36
|
+
- { script: "typing:check", python-version: "3.11" }
|
|
37
|
+
|
|
38
|
+
steps:
|
|
39
|
+
- name: Checkout code
|
|
40
|
+
uses: actions/checkout@v4
|
|
41
|
+
|
|
42
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
43
|
+
uses: actions/setup-python@v5
|
|
44
|
+
with:
|
|
45
|
+
python-version: ${{ matrix.python-version }}
|
|
46
|
+
cache: pip
|
|
47
|
+
|
|
48
|
+
- name: Upgrade pip
|
|
49
|
+
run: |
|
|
50
|
+
pip install pip
|
|
51
|
+
pip --version
|
|
52
|
+
|
|
53
|
+
- name: Install Hatch
|
|
54
|
+
run: |
|
|
55
|
+
pipx install hatch --python "python${{ matrix.python-version }}"
|
|
56
|
+
hatch --version
|
|
57
|
+
|
|
58
|
+
- name: Run
|
|
59
|
+
env:
|
|
60
|
+
TAP_BELVO_SECRET_ID: ${{ secrets.TAP_BELVO_SECRET_ID }}
|
|
61
|
+
TAP_BELVO_PASSWORD: ${{ secrets.TAP_BELVO_PASSWORD }}
|
|
62
|
+
TAP_BELVO_BASE_URL: https://sandbox.belvo.com
|
|
63
|
+
run: |
|
|
64
|
+
hatch run ${{ matrix.script }}
|
|
65
|
+
|
|
66
|
+
pre-commit:
|
|
67
|
+
runs-on: ubuntu-latest
|
|
68
|
+
env:
|
|
69
|
+
FORCE_COLOR: "1"
|
|
70
|
+
steps:
|
|
71
|
+
- name: Checkout code
|
|
72
|
+
uses: actions/checkout@v4
|
|
73
|
+
|
|
74
|
+
- name: Set up Python
|
|
75
|
+
uses: actions/setup-python@v5
|
|
76
|
+
with:
|
|
77
|
+
python-version: "3.11"
|
|
78
|
+
cache: pip
|
|
79
|
+
cache-dependency-path: .pre-commit-config.yaml
|
|
80
|
+
|
|
81
|
+
- uses: pre-commit/action@v3.0.0
|
|
82
|
+
|
|
83
|
+
- uses: pre-commit-ci/lite-action@v1.0.1
|
|
84
|
+
if: always()
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# VSCode
|
|
2
|
+
**/.vscode/*
|
|
3
|
+
|
|
4
|
+
# Ignore meltano internal cache and sqlite systemdb
|
|
5
|
+
.meltano/
|
|
6
|
+
tap_belvo_cache.sqlite
|
|
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/
|
|
137
|
+
|
|
138
|
+
# General
|
|
139
|
+
.DS_Store
|
|
140
|
+
.AppleDouble
|
|
141
|
+
.LSOverride
|
|
142
|
+
|
|
143
|
+
# Icon must end with two \r
|
|
144
|
+
Icon
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
# Thumbnails
|
|
148
|
+
._*
|
|
149
|
+
|
|
150
|
+
# Files that might appear in the root of a volume
|
|
151
|
+
.DocumentRevisions-V100
|
|
152
|
+
.fseventsd
|
|
153
|
+
.Spotlight-V100
|
|
154
|
+
.TemporaryItems
|
|
155
|
+
.Trashes
|
|
156
|
+
.VolumeIcon.icns
|
|
157
|
+
.com.apple.timemachine.donotpresent
|
|
158
|
+
|
|
159
|
+
# Directories potentially created on remote AFP share
|
|
160
|
+
.AppleDB
|
|
161
|
+
.AppleDesktop
|
|
162
|
+
Network Trash Folder
|
|
163
|
+
Temporary Items
|
|
164
|
+
.apdisk
|
|
165
|
+
|
|
166
|
+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
|
167
|
+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
|
168
|
+
|
|
169
|
+
# User-specific stuff
|
|
170
|
+
.idea/**/workspace.xml
|
|
171
|
+
.idea/**/tasks.xml
|
|
172
|
+
.idea/**/usage.statistics.xml
|
|
173
|
+
.idea/**/dictionaries
|
|
174
|
+
.idea/**/shelf
|
|
175
|
+
|
|
176
|
+
# AWS User-specific
|
|
177
|
+
.idea/**/aws.xml
|
|
178
|
+
|
|
179
|
+
# Generated files
|
|
180
|
+
.idea/**/contentModel.xml
|
|
181
|
+
|
|
182
|
+
# Sensitive or high-churn files
|
|
183
|
+
.idea/**/dataSources/
|
|
184
|
+
.idea/**/dataSources.ids
|
|
185
|
+
.idea/**/dataSources.local.xml
|
|
186
|
+
.idea/**/sqlDataSources.xml
|
|
187
|
+
.idea/**/dynamic.xml
|
|
188
|
+
.idea/**/uiDesigner.xml
|
|
189
|
+
.idea/**/dbnavigator.xml
|
|
190
|
+
|
|
191
|
+
# Gradle
|
|
192
|
+
.idea/**/gradle.xml
|
|
193
|
+
.idea/**/libraries
|
|
194
|
+
|
|
195
|
+
# Gradle and Maven with auto-import
|
|
196
|
+
# When using Gradle or Maven with auto-import, you should exclude module files,
|
|
197
|
+
# since they will be recreated, and may cause churn. Uncomment if using
|
|
198
|
+
# auto-import.
|
|
199
|
+
# .idea/artifacts
|
|
200
|
+
# .idea/compiler.xml
|
|
201
|
+
# .idea/jarRepositories.xml
|
|
202
|
+
# .idea/modules.xml
|
|
203
|
+
# .idea/*.iml
|
|
204
|
+
# .idea/modules
|
|
205
|
+
# *.iml
|
|
206
|
+
# *.ipr
|
|
207
|
+
|
|
208
|
+
# CMake
|
|
209
|
+
cmake-build-*/
|
|
210
|
+
|
|
211
|
+
# Mongo Explorer plugin
|
|
212
|
+
.idea/**/mongoSettings.xml
|
|
213
|
+
|
|
214
|
+
# File-based project format
|
|
215
|
+
*.iws
|
|
216
|
+
|
|
217
|
+
# IntelliJ
|
|
218
|
+
out/
|
|
219
|
+
|
|
220
|
+
# mpeltonen/sbt-idea plugin
|
|
221
|
+
.idea_modules/
|
|
222
|
+
|
|
223
|
+
# JIRA plugin
|
|
224
|
+
atlassian-ide-plugin.xml
|
|
225
|
+
|
|
226
|
+
# Cursive Clojure plugin
|
|
227
|
+
.idea/replstate.xml
|
|
228
|
+
|
|
229
|
+
# SonarLint plugin
|
|
230
|
+
.idea/sonarlint/
|
|
231
|
+
|
|
232
|
+
# Crashlytics plugin (for Android Studio and IntelliJ)
|
|
233
|
+
com_crashlytics_export_strings.xml
|
|
234
|
+
crashlytics.properties
|
|
235
|
+
crashlytics-build.properties
|
|
236
|
+
fabric.properties
|
|
237
|
+
|
|
238
|
+
# Editor-based Rest Client
|
|
239
|
+
.idea/httpRequests
|
|
240
|
+
|
|
241
|
+
# Android studio 3.1+ serialized cache file
|
|
242
|
+
.idea/caches/build_file_checksums.ser
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
ci:
|
|
2
|
+
autofix_prs: false
|
|
3
|
+
autofix_commit_msg: '[pre-commit.ci] auto fixes'
|
|
4
|
+
autoupdate_schedule: weekly
|
|
5
|
+
autoupdate_commit_msg: 'chore(deps): pre-commit autoupdate'
|
|
6
|
+
|
|
7
|
+
repos:
|
|
8
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
9
|
+
rev: v4.5.0
|
|
10
|
+
hooks:
|
|
11
|
+
- id: check-json
|
|
12
|
+
exclude: "\\.vscode/.*.json"
|
|
13
|
+
- id: check-toml
|
|
14
|
+
- id: check-yaml
|
|
15
|
+
- id: end-of-file-fixer
|
|
16
|
+
exclude: "plugins/.*/.*\\.lock"
|
|
17
|
+
- id: trailing-whitespace
|
|
18
|
+
|
|
19
|
+
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
20
|
+
rev: "1.5.3"
|
|
21
|
+
hooks:
|
|
22
|
+
- id: pyproject-fmt
|
|
23
|
+
|
|
24
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
25
|
+
rev: "v0.1.7"
|
|
26
|
+
hooks:
|
|
27
|
+
- id: ruff
|
|
28
|
+
args: [--fix, --exit-non-zero-on-fix, --show-fixes]
|
|
29
|
+
- id: ruff-format
|
|
30
|
+
|
|
31
|
+
- repo: https://github.com/pre-commit/pre-commit
|
|
32
|
+
rev: v3.5.0
|
|
33
|
+
hooks:
|
|
34
|
+
- id: validate_manifest
|
|
@@ -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
|
|
@@ -1,23 +1,34 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tap-belvo
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.1b6
|
|
4
4
|
Summary: `tap-belvo` is a Singer tap for Belvo, built with the Meltano SDK for Singer Taps.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Author: Edgar Ramírez-Mondragón
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
Project-URL: Documentation, https://github.com/edgarrmondragon/tap-belvo#readme
|
|
6
|
+
Project-URL: Homepage, https://github.com/edgarrmondragon/tap-belvo
|
|
7
|
+
Project-URL: Source, https://github.com/edgarrmondragon/tap-belvo
|
|
8
|
+
Author-email: Edgar Ramírez-Mondragón <edgarrm358@gmail.com>
|
|
9
|
+
Maintainer-email: Edgar Ramírez-Mondragón <edgarrm358@gmail.com>
|
|
10
|
+
License-Expression: Apache-2.0
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: Belvo,ELT,singer.io
|
|
13
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
13
14
|
Classifier: Programming Language :: Python :: 3.8
|
|
14
15
|
Classifier: Programming Language :: Python :: 3.9
|
|
15
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
-
|
|
18
|
-
Requires-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Requires-Python: >=3.8
|
|
20
|
+
Requires-Dist: importlib-resources; python_version < '3.9'
|
|
21
|
+
Requires-Dist: pendulum~=3.0.0b1; python_version >= '3.12'
|
|
22
|
+
Requires-Dist: requests
|
|
23
|
+
Requires-Dist: requests-cache==1.*
|
|
24
|
+
Requires-Dist: singer-sdk~=0.34.0
|
|
25
|
+
Provides-Extra: testing
|
|
26
|
+
Requires-Dist: deptry>=0.12; extra == 'testing'
|
|
27
|
+
Requires-Dist: pytest>=7.4; extra == 'testing'
|
|
28
|
+
Requires-Dist: singer-sdk[testing]~=0.34.0; extra == 'testing'
|
|
29
|
+
Provides-Extra: typing
|
|
30
|
+
Requires-Dist: mypy; extra == 'typing'
|
|
31
|
+
Requires-Dist: types-requests; extra == 'typing'
|
|
21
32
|
Description-Content-Type: text/markdown
|
|
22
33
|
|
|
23
34
|
# `tap-belvo`
|
|
@@ -52,7 +63,7 @@ A full list of supported settings and capabilities is available by running: `tap
|
|
|
52
63
|
|
|
53
64
|
### Source Authentication and Authorization
|
|
54
65
|
|
|
55
|
-
|
|
66
|
+
See https://developers.belvo.com/reference/authentication-1.
|
|
56
67
|
|
|
57
68
|
## Usage
|
|
58
69
|
|
|
@@ -68,27 +79,24 @@ tap-belvo --config CONFIG --discover > ./catalog.json
|
|
|
68
79
|
|
|
69
80
|
## Developer Resources
|
|
70
81
|
|
|
71
|
-
- [ ] `Developer TODO:` As a first step, scan the entire project for the text "`TODO:`" and complete any recommended steps, deleting the "TODO" references once completed.
|
|
72
|
-
|
|
73
82
|
### Initialize your Development Environment
|
|
74
83
|
|
|
75
84
|
```bash
|
|
76
|
-
pipx install
|
|
77
|
-
poetry install
|
|
85
|
+
pipx install hatch
|
|
78
86
|
```
|
|
79
87
|
|
|
80
88
|
### Create and Run Tests
|
|
81
89
|
|
|
82
|
-
|
|
90
|
+
Run integration tests:
|
|
83
91
|
|
|
84
92
|
```bash
|
|
85
|
-
|
|
93
|
+
hatch run tests:integration
|
|
86
94
|
```
|
|
87
95
|
|
|
88
|
-
You can also test the `tap-belvo` CLI interface directly
|
|
96
|
+
You can also test the `tap-belvo` CLI interface directly:
|
|
89
97
|
|
|
90
98
|
```bash
|
|
91
|
-
|
|
99
|
+
hatch run sync:console -- --about --format=json
|
|
92
100
|
```
|
|
93
101
|
|
|
94
102
|
### Testing with [Meltano](https://www.meltano.com)
|
|
@@ -96,30 +104,22 @@ poetry run tap-belvo --help
|
|
|
96
104
|
_**Note:** This tap will work in any Singer environment and does not require Meltano.
|
|
97
105
|
Examples here are for convenience and to streamline end-to-end orchestration scenarios._
|
|
98
106
|
|
|
99
|
-
Your project comes with a custom `meltano.yml` project file already created.
|
|
100
|
-
the file.
|
|
101
|
-
|
|
102
|
-
Next, install Meltano (if you haven't already) and any needed plugins:
|
|
107
|
+
Your project comes with a custom `meltano.yml` project file already created. Go ahead and [install Meltano](https://docs.meltano.com/getting-started/installation/) if you haven't already.
|
|
103
108
|
|
|
104
|
-
|
|
105
|
-
# Install meltano
|
|
106
|
-
pipx install meltano
|
|
107
|
-
# Initialize meltano within this directory
|
|
108
|
-
cd tap-belvo
|
|
109
|
-
meltano install
|
|
110
|
-
```
|
|
109
|
+
1. Install all plugins
|
|
111
110
|
|
|
112
|
-
|
|
111
|
+
```bash
|
|
112
|
+
meltano install
|
|
113
|
+
```
|
|
113
114
|
|
|
114
|
-
|
|
115
|
-
# Test invocation:
|
|
116
|
-
meltano invoke tap-belvo --version
|
|
117
|
-
# OR run a test `elt` pipeline:
|
|
118
|
-
meltano elt tap-belvo target-jsonl
|
|
119
|
-
```
|
|
115
|
+
1. Check that the extractor is working properly
|
|
120
116
|
|
|
121
|
-
|
|
117
|
+
```bash
|
|
118
|
+
meltano invoke tap-belvo --version
|
|
119
|
+
```
|
|
122
120
|
|
|
123
|
-
|
|
124
|
-
develop your own taps and targets.
|
|
121
|
+
1. Execute an ELT pipeline
|
|
125
122
|
|
|
123
|
+
```bash
|
|
124
|
+
meltano run tap-belvo target-jsonl
|
|
125
|
+
```
|
|
@@ -30,7 +30,7 @@ A full list of supported settings and capabilities is available by running: `tap
|
|
|
30
30
|
|
|
31
31
|
### Source Authentication and Authorization
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
See https://developers.belvo.com/reference/authentication-1.
|
|
34
34
|
|
|
35
35
|
## Usage
|
|
36
36
|
|
|
@@ -46,27 +46,24 @@ tap-belvo --config CONFIG --discover > ./catalog.json
|
|
|
46
46
|
|
|
47
47
|
## Developer Resources
|
|
48
48
|
|
|
49
|
-
- [ ] `Developer TODO:` As a first step, scan the entire project for the text "`TODO:`" and complete any recommended steps, deleting the "TODO" references once completed.
|
|
50
|
-
|
|
51
49
|
### Initialize your Development Environment
|
|
52
50
|
|
|
53
51
|
```bash
|
|
54
|
-
pipx install
|
|
55
|
-
poetry install
|
|
52
|
+
pipx install hatch
|
|
56
53
|
```
|
|
57
54
|
|
|
58
55
|
### Create and Run Tests
|
|
59
56
|
|
|
60
|
-
|
|
57
|
+
Run integration tests:
|
|
61
58
|
|
|
62
59
|
```bash
|
|
63
|
-
|
|
60
|
+
hatch run tests:integration
|
|
64
61
|
```
|
|
65
62
|
|
|
66
|
-
You can also test the `tap-belvo` CLI interface directly
|
|
63
|
+
You can also test the `tap-belvo` CLI interface directly:
|
|
67
64
|
|
|
68
65
|
```bash
|
|
69
|
-
|
|
66
|
+
hatch run sync:console -- --about --format=json
|
|
70
67
|
```
|
|
71
68
|
|
|
72
69
|
### Testing with [Meltano](https://www.meltano.com)
|
|
@@ -74,29 +71,22 @@ poetry run tap-belvo --help
|
|
|
74
71
|
_**Note:** This tap will work in any Singer environment and does not require Meltano.
|
|
75
72
|
Examples here are for convenience and to streamline end-to-end orchestration scenarios._
|
|
76
73
|
|
|
77
|
-
Your project comes with a custom `meltano.yml` project file already created.
|
|
78
|
-
the file.
|
|
74
|
+
Your project comes with a custom `meltano.yml` project file already created. Go ahead and [install Meltano](https://docs.meltano.com/getting-started/installation/) if you haven't already.
|
|
79
75
|
|
|
80
|
-
|
|
76
|
+
1. Install all plugins
|
|
81
77
|
|
|
82
|
-
```bash
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
# Initialize meltano within this directory
|
|
86
|
-
cd tap-belvo
|
|
87
|
-
meltano install
|
|
88
|
-
```
|
|
78
|
+
```bash
|
|
79
|
+
meltano install
|
|
80
|
+
```
|
|
89
81
|
|
|
90
|
-
|
|
82
|
+
1. Check that the extractor is working properly
|
|
91
83
|
|
|
92
|
-
```bash
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
# OR run a test `elt` pipeline:
|
|
96
|
-
meltano elt tap-belvo target-jsonl
|
|
97
|
-
```
|
|
84
|
+
```bash
|
|
85
|
+
meltano invoke tap-belvo --version
|
|
86
|
+
```
|
|
98
87
|
|
|
99
|
-
|
|
88
|
+
1. Execute an ELT pipeline
|
|
100
89
|
|
|
101
|
-
|
|
102
|
-
|
|
90
|
+
```bash
|
|
91
|
+
meltano run tap-belvo target-jsonl
|
|
92
|
+
```
|