tap-belvo 0.0.1b5__tar.gz → 0.0.1b7__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.

Files changed (31) hide show
  1. tap_belvo-0.0.1b7/.copier-answers.yml +20 -0
  2. tap_belvo-0.0.1b7/.github/dependabot.yml +42 -0
  3. tap_belvo-0.0.1b7/.github/workflows/constraints.txt +2 -0
  4. tap_belvo-0.0.1b7/.github/workflows/dynamic-publish.yaml +40 -0
  5. tap_belvo-0.0.1b7/.github/workflows/test.yml +82 -0
  6. tap_belvo-0.0.1b7/.gitignore +242 -0
  7. tap_belvo-0.0.1b7/.pre-commit-config.yaml +34 -0
  8. tap_belvo-0.0.1b7/.secrets/.gitignore +10 -0
  9. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/PKG-INFO +43 -44
  10. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/README.md +19 -29
  11. tap_belvo-0.0.1b7/meltano.yml +55 -0
  12. tap_belvo-0.0.1b7/output/.gitignore +2 -0
  13. tap_belvo-0.0.1b7/plugins/loaders/target-duckdb--jwills.lock +135 -0
  14. tap_belvo-0.0.1b7/plugins/loaders/target-jsonl--andyh1203.lock +34 -0
  15. tap_belvo-0.0.1b7/pyproject.toml +125 -0
  16. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/client.py +41 -16
  17. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/openapi/BelvoOpenFinanceApiSpec.json +30230 -22065
  18. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/openapi/__init__.py +5 -5
  19. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/streams/banking.py +9 -9
  20. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/streams/enrichment.py +3 -3
  21. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/streams/fiscal.py +8 -8
  22. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/streams/links.py +7 -5
  23. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/tap.py +0 -1
  24. tap_belvo-0.0.1b7/tests/__init__.py +3 -0
  25. tap_belvo-0.0.1b7/tests/conftest.py +3 -0
  26. tap_belvo-0.0.1b7/tests/test_core.py +65 -0
  27. tap_belvo-0.0.1b5/pyproject.toml +0 -99
  28. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/LICENSE +0 -0
  29. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/__init__.py +0 -0
  30. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/__main__.py +0 -0
  31. {tap_belvo-0.0.1b5 → tap_belvo-0.0.1b7}/tap_belvo/streams/__init__.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,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: "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
+ groups:
19
+ singer-sdk:
20
+ patterns:
21
+ - "singer-sdk*"
22
+ - package-ecosystem: pip
23
+ directory: "/.github/workflows"
24
+ schedule:
25
+ interval: "daily"
26
+ reviewers:
27
+ - "edgarrmondragon"
28
+ commit-message:
29
+ prefix: "ci: "
30
+ - package-ecosystem: github-actions
31
+ directory: "/"
32
+ schedule:
33
+ interval: "weekly"
34
+ reviewers:
35
+ - "edgarrmondragon"
36
+ commit-message:
37
+ prefix: "ci: "
38
+ groups:
39
+ artifacts:
40
+ patterns:
41
+ - "actions/*-load-artifact"
42
+ - "hynek/build-and-inspect-python-package"
@@ -0,0 +1,2 @@
1
+ pip==24.0
2
+ hatch==1.9.7
@@ -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@v2
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@v4
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.14
@@ -0,0 +1,82 @@
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.workspace }}/.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
+ - uses: actions/checkout@v4
40
+ - uses: actions/setup-python@v5
41
+ id: setup-python
42
+ with:
43
+ python-version: ${{ matrix.python-version }}
44
+ cache: pip
45
+
46
+ - name: Upgrade pip
47
+ run: |
48
+ pip install pip
49
+ pip --version
50
+
51
+ - name: Install Hatch
52
+ run: |
53
+ pipx install --python '${{ steps.setup-python.outputs.python-path }}' hatch
54
+ hatch --version
55
+
56
+ - name: Run
57
+ env:
58
+ TAP_BELVO_SECRET_ID: ${{ secrets.TAP_BELVO_SECRET_ID }}
59
+ TAP_BELVO_PASSWORD: ${{ secrets.TAP_BELVO_PASSWORD }}
60
+ TAP_BELVO_BASE_URL: https://sandbox.belvo.com
61
+ run: |
62
+ hatch run ${{ matrix.script }}
63
+
64
+ pre-commit:
65
+ runs-on: ubuntu-latest
66
+ env:
67
+ FORCE_COLOR: "1"
68
+ steps:
69
+ - name: Checkout code
70
+ uses: actions/checkout@v4
71
+
72
+ - name: Set up Python
73
+ uses: actions/setup-python@v5
74
+ with:
75
+ python-version: "3.11"
76
+ cache: pip
77
+ cache-dependency-path: .pre-commit-config.yaml
78
+
79
+ - uses: pre-commit/action@v3.0.1
80
+
81
+ - uses: pre-commit-ci/lite-action@v1.0.2
82
+ 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.6.0"
21
+ hooks:
22
+ - id: pyproject-fmt
23
+
24
+ - repo: https://github.com/astral-sh/ruff-pre-commit
25
+ rev: "v0.1.13"
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.6.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,33 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: tap-belvo
3
- Version: 0.0.1b5
3
+ Version: 0.0.1b7
4
4
  Summary: `tap-belvo` is a Singer tap for Belvo, built with the Meltano SDK for Singer Taps.
5
- Home-page: https://github.com/edgarrmondragon/tap-belvo
6
- License: Apache 2.0
7
- Keywords: ELT,singer.io,Belvo
8
- Author: Edgar Ramírez-Mondragón
9
- Author-email: edgarrm358@gmail.com
10
- Requires-Python: >=3.7.1,<3.12
11
- Classifier: License :: Other/Proprietary License
12
- Classifier: Programming Language :: Python :: 3
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
- Requires-Dist: requests-cache (==1.*)
18
- Requires-Dist: singer-sdk (>=0.28,<0.31)
19
- Project-URL: Documentation, https://github.com/edgarrmondragon/tap-belvo#readme
20
- Project-URL: Repository, https://github.com/edgarrmondragon/tap-belvo
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Requires-Python: >=3.8
20
+ Requires-Dist: importlib-resources; python_version < '3.9'
21
+ Requires-Dist: requests
22
+ Requires-Dist: requests-cache==1.*
23
+ Requires-Dist: singer-sdk~=0.37.0
24
+ Provides-Extra: testing
25
+ Requires-Dist: deptry>=0.12; extra == 'testing'
26
+ Requires-Dist: pytest>=7.4; extra == 'testing'
27
+ Requires-Dist: singer-sdk[testing]~=0.37.0; extra == 'testing'
28
+ Provides-Extra: typing
29
+ Requires-Dist: mypy; extra == 'typing'
30
+ Requires-Dist: types-requests; extra == 'typing'
21
31
  Description-Content-Type: text/markdown
22
32
 
23
33
  # `tap-belvo`
@@ -52,7 +62,7 @@ A full list of supported settings and capabilities is available by running: `tap
52
62
 
53
63
  ### Source Authentication and Authorization
54
64
 
55
- - [ ] `Developer TODO:` If your tap requires special access on the source system, or any special authentication requirements, provide those here.
65
+ See https://developers.belvo.com/reference/authentication-1.
56
66
 
57
67
  ## Usage
58
68
 
@@ -68,27 +78,24 @@ tap-belvo --config CONFIG --discover > ./catalog.json
68
78
 
69
79
  ## Developer Resources
70
80
 
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
81
  ### Initialize your Development Environment
74
82
 
75
83
  ```bash
76
- pipx install poetry
77
- poetry install
84
+ pipx install hatch
78
85
  ```
79
86
 
80
87
  ### Create and Run Tests
81
88
 
82
- Create tests within the `tests` subfolder and then run:
89
+ Run integration tests:
83
90
 
84
91
  ```bash
85
- poetry run pytest
92
+ hatch run test:integration
86
93
  ```
87
94
 
88
- You can also test the `tap-belvo` CLI interface directly using `poetry run`:
95
+ You can also test the `tap-belvo` CLI interface directly:
89
96
 
90
97
  ```bash
91
- poetry run tap-belvo --help
98
+ hatch run sync:console -- --about --format=json
92
99
  ```
93
100
 
94
101
  ### Testing with [Meltano](https://www.meltano.com)
@@ -96,30 +103,22 @@ poetry run tap-belvo --help
96
103
  _**Note:** This tap will work in any Singer environment and does not require Meltano.
97
104
  Examples here are for convenience and to streamline end-to-end orchestration scenarios._
98
105
 
99
- Your project comes with a custom `meltano.yml` project file already created. Open the `meltano.yml` and follow any _"TODO"_ items listed in
100
- the file.
101
-
102
- Next, install Meltano (if you haven't already) and any needed plugins:
106
+ 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
107
 
104
- ```bash
105
- # Install meltano
106
- pipx install meltano
107
- # Initialize meltano within this directory
108
- cd tap-belvo
109
- meltano install
110
- ```
108
+ 1. Install all plugins
111
109
 
112
- Now you can test and orchestrate using Meltano:
110
+ ```bash
111
+ meltano install
112
+ ```
113
113
 
114
- ```bash
115
- # Test invocation:
116
- meltano invoke tap-belvo --version
117
- # OR run a test `elt` pipeline:
118
- meltano elt tap-belvo target-jsonl
119
- ```
114
+ 1. Check that the extractor is working properly
120
115
 
121
- ### SDK Dev Guide
116
+ ```bash
117
+ meltano invoke tap-belvo --version
118
+ ```
122
119
 
123
- See the [dev guide](https://sdk.meltano.com/en/latest/dev_guide.html) for more instructions on how to use the SDK to
124
- develop your own taps and targets.
120
+ 1. Execute an ELT pipeline
125
121
 
122
+ ```bash
123
+ meltano run tap-belvo target-jsonl
124
+ ```
@@ -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
- - [ ] `Developer TODO:` If your tap requires special access on the source system, or any special authentication requirements, provide those here.
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 poetry
55
- poetry install
52
+ pipx install hatch
56
53
  ```
57
54
 
58
55
  ### Create and Run Tests
59
56
 
60
- Create tests within the `tests` subfolder and then run:
57
+ Run integration tests:
61
58
 
62
59
  ```bash
63
- poetry run pytest
60
+ hatch run test:integration
64
61
  ```
65
62
 
66
- You can also test the `tap-belvo` CLI interface directly using `poetry run`:
63
+ You can also test the `tap-belvo` CLI interface directly:
67
64
 
68
65
  ```bash
69
- poetry run tap-belvo --help
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. Open the `meltano.yml` and follow any _"TODO"_ items listed in
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
- Next, install Meltano (if you haven't already) and any needed plugins:
76
+ 1. Install all plugins
81
77
 
82
- ```bash
83
- # Install meltano
84
- pipx install meltano
85
- # Initialize meltano within this directory
86
- cd tap-belvo
87
- meltano install
88
- ```
78
+ ```bash
79
+ meltano install
80
+ ```
89
81
 
90
- Now you can test and orchestrate using Meltano:
82
+ 1. Check that the extractor is working properly
91
83
 
92
- ```bash
93
- # Test invocation:
94
- meltano invoke tap-belvo --version
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
- ### SDK Dev Guide
88
+ 1. Execute an ELT pipeline
100
89
 
101
- See the [dev guide](https://sdk.meltano.com/en/latest/dev_guide.html) for more instructions on how to use the SDK to
102
- develop your own taps and targets.
90
+ ```bash
91
+ meltano run tap-belvo target-jsonl
92
+ ```