tap-belvo 0.0.1b7__tar.gz → 0.0.1b9__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 → tap_belvo-0.0.1b9}/.github/dependabot.yml +15 -9
  2. tap_belvo-0.0.1b9/.github/workflows/constraints.txt +2 -0
  3. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/.github/workflows/dynamic-publish.yaml +1 -1
  4. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/.github/workflows/test.yml +11 -4
  5. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/.pre-commit-config.yaml +4 -4
  6. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/PKG-INFO +5 -4
  7. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/pyproject.toml +32 -35
  8. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/client.py +9 -8
  9. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/streams/__init__.py +1 -1
  10. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/streams/banking.py +7 -5
  11. tap_belvo-0.0.1b7/tap_belvo/streams/links.py → tap_belvo-0.0.1b9/tap_belvo/streams/core.py +16 -3
  12. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/tap.py +9 -6
  13. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tests/test_core.py +1 -1
  14. tap_belvo-0.0.1b7/.github/workflows/constraints.txt +0 -2
  15. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/.copier-answers.yml +0 -0
  16. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/.gitignore +0 -0
  17. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/.secrets/.gitignore +0 -0
  18. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/LICENSE +0 -0
  19. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/README.md +0 -0
  20. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/meltano.yml +0 -0
  21. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/output/.gitignore +0 -0
  22. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/plugins/loaders/target-duckdb--jwills.lock +0 -0
  23. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/plugins/loaders/target-jsonl--andyh1203.lock +0 -0
  24. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/__init__.py +0 -0
  25. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/__main__.py +0 -0
  26. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/openapi/BelvoOpenFinanceApiSpec.json +0 -0
  27. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/openapi/__init__.py +0 -0
  28. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/streams/enrichment.py +0 -0
  29. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tap_belvo/streams/fiscal.py +0 -0
  30. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tests/__init__.py +0 -0
  31. {tap_belvo-0.0.1b7 → tap_belvo-0.0.1b9}/tests/conftest.py +0 -0
@@ -8,7 +8,7 @@ updates:
8
8
  - package-ecosystem: pip
9
9
  directory: "/"
10
10
  schedule:
11
- interval: "daily"
11
+ interval: weekly
12
12
  reviewers:
13
13
  - "edgarrmondragon"
14
14
  versioning-strategy: increase-if-necessary
@@ -16,27 +16,33 @@ updates:
16
16
  prefix: "chore(deps): "
17
17
  prefix-development: "chore(deps-dev): "
18
18
  groups:
19
- singer-sdk:
20
- patterns:
21
- - "singer-sdk*"
19
+ development-dependencies:
20
+ dependency-type: development
21
+ runtime-dependencies:
22
+ dependency-type: production
23
+ update-types:
24
+ - "patch"
22
25
  - package-ecosystem: pip
23
26
  directory: "/.github/workflows"
24
27
  schedule:
25
- interval: "daily"
28
+ interval: monthly
26
29
  reviewers:
27
30
  - "edgarrmondragon"
28
31
  commit-message:
29
32
  prefix: "ci: "
33
+ groups:
34
+ ci:
35
+ patterns:
36
+ - "*"
30
37
  - package-ecosystem: github-actions
31
38
  directory: "/"
32
39
  schedule:
33
- interval: "weekly"
40
+ interval: monthly
34
41
  reviewers:
35
42
  - "edgarrmondragon"
36
43
  commit-message:
37
44
  prefix: "ci: "
38
45
  groups:
39
- artifacts:
46
+ actions:
40
47
  patterns:
41
- - "actions/*-load-artifact"
42
- - "hynek/build-and-inspect-python-package"
48
+ - "*"
@@ -0,0 +1,2 @@
1
+ pip==24.2
2
+ hatch==1.12.0
@@ -37,4 +37,4 @@ jobs:
37
37
  tag: ${{ github.ref }}
38
38
  overwrite: true
39
39
  file_glob: true
40
- - uses: pypa/gh-action-pypi-publish@v1.8.14
40
+ - uses: pypa/gh-action-pypi-publish@v1.10.0
@@ -30,10 +30,16 @@ jobs:
30
30
  fail-fast: false
31
31
  matrix:
32
32
  script: ["test:integration"]
33
- python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
33
+ python-version:
34
+ - "3.8"
35
+ - "3.9"
36
+ - "3.10"
37
+ - "3.11"
38
+ - "3.12"
39
+ - "3.13"
34
40
  include:
35
- - { script: "test:dependencies", python-version: "3.11" }
36
- - { script: "typing:check", python-version: "3.11" }
41
+ - { script: "test:dependencies", python-version: "3.x" }
42
+ - { script: "typing:check", python-version: "3.x" }
37
43
 
38
44
  steps:
39
45
  - uses: actions/checkout@v4
@@ -41,6 +47,7 @@ jobs:
41
47
  id: setup-python
42
48
  with:
43
49
  python-version: ${{ matrix.python-version }}
50
+ allow-prereleases: true
44
51
  cache: pip
45
52
 
46
53
  - name: Upgrade pip
@@ -72,7 +79,7 @@ jobs:
72
79
  - name: Set up Python
73
80
  uses: actions/setup-python@v5
74
81
  with:
75
- python-version: "3.11"
82
+ python-version: "3.x"
76
83
  cache: pip
77
84
  cache-dependency-path: .pre-commit-config.yaml
78
85
 
@@ -6,7 +6,7 @@ ci:
6
6
 
7
7
  repos:
8
8
  - repo: https://github.com/pre-commit/pre-commit-hooks
9
- rev: v4.5.0
9
+ rev: v4.6.0
10
10
  hooks:
11
11
  - id: check-json
12
12
  exclude: "\\.vscode/.*.json"
@@ -17,18 +17,18 @@ repos:
17
17
  - id: trailing-whitespace
18
18
 
19
19
  - repo: https://github.com/tox-dev/pyproject-fmt
20
- rev: "1.6.0"
20
+ rev: "2.2.1"
21
21
  hooks:
22
22
  - id: pyproject-fmt
23
23
 
24
24
  - repo: https://github.com/astral-sh/ruff-pre-commit
25
- rev: "v0.1.13"
25
+ rev: "v0.6.3"
26
26
  hooks:
27
27
  - id: ruff
28
28
  args: [--fix, --exit-non-zero-on-fix, --show-fixes]
29
29
  - id: ruff-format
30
30
 
31
31
  - repo: https://github.com/pre-commit/pre-commit
32
- rev: v3.6.0
32
+ rev: v3.8.0
33
33
  hooks:
34
34
  - id: validate_manifest
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: tap-belvo
3
- Version: 0.0.1b7
4
- Summary: `tap-belvo` is a Singer tap for Belvo, built with the Meltano SDK for Singer Taps.
3
+ Version: 0.0.1b9
4
+ Summary: Singer tap for Belvo, built with the Meltano SDK for Singer Taps.
5
5
  Project-URL: Documentation, https://github.com/edgarrmondragon/tap-belvo#readme
6
6
  Project-URL: Homepage, https://github.com/edgarrmondragon/tap-belvo
7
7
  Project-URL: Source, https://github.com/edgarrmondragon/tap-belvo
@@ -16,15 +16,16 @@ Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
19
20
  Requires-Python: >=3.8
20
21
  Requires-Dist: importlib-resources; python_version < '3.9'
21
22
  Requires-Dist: requests
22
23
  Requires-Dist: requests-cache==1.*
23
- Requires-Dist: singer-sdk~=0.37.0
24
+ Requires-Dist: singer-sdk~=0.40.0
24
25
  Provides-Extra: testing
25
26
  Requires-Dist: deptry>=0.12; extra == 'testing'
26
27
  Requires-Dist: pytest>=7.4; extra == 'testing'
27
- Requires-Dist: singer-sdk[testing]~=0.37.0; extra == 'testing'
28
+ Requires-Dist: singer-sdk[testing]; extra == 'testing'
28
29
  Provides-Extra: typing
29
30
  Requires-Dist: mypy; extra == 'typing'
30
31
  Requires-Dist: types-requests; extra == 'typing'
@@ -7,7 +7,7 @@ requires = [
7
7
 
8
8
  [project]
9
9
  name = "tap-belvo"
10
- description = "`tap-belvo` is a Singer tap for Belvo, built with the Meltano SDK for Singer Taps."
10
+ description = "Singer tap for Belvo, built with the Meltano SDK for Singer Taps."
11
11
  readme = "README.md"
12
12
  keywords = [
13
13
  "Belvo",
@@ -15,8 +15,8 @@ keywords = [
15
15
  "singer.io",
16
16
  ]
17
17
  license = "Apache-2.0"
18
- maintainers = [{ name = "Edgar Ramírez-Mondragón", email = "edgarrm358@gmail.com" }]
19
- authors = [{ name = "Edgar Ramírez-Mondragón", email = "edgarrm358@gmail.com" }]
18
+ maintainers = [ { name = "Edgar Ramírez-Mondragón", email = "edgarrm358@gmail.com" } ]
19
+ authors = [ { name = "Edgar Ramírez-Mondragón", email = "edgarrm358@gmail.com" } ]
20
20
  requires-python = ">=3.8"
21
21
  classifiers = [
22
22
  "Programming Language :: Python :: 3 :: Only",
@@ -25,20 +25,21 @@ classifiers = [
25
25
  "Programming Language :: Python :: 3.10",
26
26
  "Programming Language :: Python :: 3.11",
27
27
  "Programming Language :: Python :: 3.12",
28
+ "Programming Language :: Python :: 3.13",
28
29
  ]
29
30
  dynamic = [
30
31
  "version",
31
32
  ]
32
33
  dependencies = [
33
- 'importlib-resources; python_version < "3.9"',
34
+ "importlib-resources; python_version<'3.9'",
34
35
  "requests",
35
36
  "requests-cache==1.*",
36
- "singer-sdk~=0.37.0",
37
+ "singer-sdk~=0.40.0",
37
38
  ]
38
39
  optional-dependencies.testing = [
39
40
  "deptry>=0.12",
40
41
  "pytest>=7.4",
41
- "singer-sdk[testing]~=0.37.0",
42
+ "singer-sdk[testing]",
42
43
  ]
43
44
  optional-dependencies.typing = [
44
45
  "mypy",
@@ -57,47 +58,40 @@ console = "tap-belvo {args}"
57
58
  jsonl = "tap-belvo {args} > tap-belvo.jsonl"
58
59
 
59
60
  [tool.hatch.envs.test]
60
- features = ["testing"]
61
+ features = [ "testing" ]
61
62
  [tool.hatch.envs.test.scripts]
62
63
  integration = "pytest {args:tests}"
63
64
  dependencies = "deptry ."
64
65
 
65
66
  [tool.hatch.envs.typing]
66
- features = ["testing", "typing"]
67
+ features = [ "testing", "typing" ]
67
68
  [tool.hatch.envs.typing.scripts]
68
69
  check = "mypy --strict {args:tap_belvo tests}"
69
70
 
70
71
  [tool.ruff]
71
72
  line-length = 88
72
- src = ["tap_belvo", "tests"]
73
+ src = [ "tap_belvo", "tests" ]
73
74
 
74
- [tool.ruff.lint]
75
- ignore = [
76
- "ANN101", # missing-type-self
77
- "DJ", # flake8-django
78
- "FIX002", # line-contains-todo
79
- "COM812", # missing-trailing-comma
80
- "ISC001", # single-line-implicit-string-concatenation
75
+ lint.select = [ "ALL" ]
76
+ lint.ignore = [
77
+ "ANN101", # missing-type-self
78
+ "COM812", # missing-trailing-comma
79
+ "DJ", # flake8-django
80
+ "FIX002", # line-contains-todo
81
+ "ISC001", # single-line-implicit-string-concatenation
81
82
  ]
82
- select = ["ALL"]
83
- unfixable = [
84
- "ERA001", # commented-out-code
83
+ lint.per-file-ignores."noxfile.py" = [ "ANN" ]
84
+ lint.per-file-ignores."tests/*" = [
85
+ "ANN201", # missing-return-type-public-function
86
+ "S101", # assert
87
+ "SLF001", # private-member-access
85
88
  ]
86
-
87
- [tool.ruff.lint.per-file-ignores]
88
- "noxfile.py" = ["ANN"]
89
- "tests/*" = [
90
- "ANN201", # missing-return-type-public-function
91
- "S101", # assert
92
- "SLF001", # private-member-access
89
+ lint.unfixable = [
90
+ "ERA001", # commented-out-code
93
91
  ]
94
-
95
- [tool.ruff.lint.isort]
96
- known-first-party = ["tap_belvo"]
97
- required-imports = ["from __future__ import annotations"]
98
-
99
- [tool.ruff.lint.pydocstyle]
100
- convention = "google"
92
+ lint.isort.known-first-party = [ "tap_belvo" ]
93
+ lint.isort.required-imports = [ "from __future__ import annotations" ]
94
+ lint.pydocstyle.convention = "google"
101
95
 
102
96
  [tool.deptry.package_module_name_map]
103
97
  importlib-resources = "importlib_resources"
@@ -111,15 +105,18 @@ DEP002 = [
111
105
  "pytest",
112
106
  ]
113
107
 
108
+ [tool.pyproject-fmt]
109
+ max_supported_python = "3.13"
110
+
114
111
  [tool.pytest.ini_options]
115
112
  addopts = "-vvv"
116
113
 
117
114
  [tool.mypy]
118
- python_version = "3.11"
115
+ python_version = "3.12"
119
116
  warn_redundant_casts = true
120
117
  warn_unused_configs = true
121
118
  warn_unused_ignores = true
122
119
 
123
120
  [[tool.mypy.overrides]]
124
121
  ignore_missing_imports = true
125
- module = ["backoff.*"]
122
+ module = [ "backoff.*" ]
@@ -2,9 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import typing as t
5
6
  from abc import ABCMeta, abstractmethod
6
7
  from copy import deepcopy
7
- from typing import TYPE_CHECKING, Any
8
8
  from urllib.parse import ParseResult, parse_qsl
9
9
 
10
10
  from requests.auth import HTTPBasicAuth
@@ -16,8 +16,9 @@ from singer_sdk.pagination import BaseHATEOASPaginator
16
16
 
17
17
  from tap_belvo.openapi import load_openapi
18
18
 
19
- if TYPE_CHECKING:
19
+ if t.TYPE_CHECKING:
20
20
  from requests import Response
21
+ from singer_sdk.helpers.types import Context
21
22
 
22
23
 
23
24
  PAGE_SIZE = 1000
@@ -25,7 +26,7 @@ PAGE_SIZE = 1000
25
26
  install_cache("tap_belvo_cache", backend="sqlite", expire_after=3600)
26
27
 
27
28
 
28
- def _handle_schema_nullable(schema: dict[str, Any]) -> dict[str, Any]:
29
+ def _handle_schema_nullable(schema: dict[str, t.Any]) -> dict[str, t.Any]:
29
30
  """Resolve x-nullable properties to standard JSON Schema nullable type.
30
31
 
31
32
  Args:
@@ -115,9 +116,9 @@ class BelvoStream(RESTStream[ParseResult], metaclass=ABCMeta):
115
116
 
116
117
  def get_url_params(
117
118
  self,
118
- context: dict[Any, Any] | None,
119
+ context: Context | None,
119
120
  next_page_token: ParseResult | None,
120
- ) -> dict[str, Any]:
121
+ ) -> dict[str, t.Any]:
121
122
  """Get URL query parameters.
122
123
 
123
124
  Args:
@@ -127,7 +128,7 @@ class BelvoStream(RESTStream[ParseResult], metaclass=ABCMeta):
127
128
  Returns:
128
129
  Mapping of URL query parameters.
129
130
  """
130
- params: dict[str, Any] = {
131
+ params: dict[str, t.Any] = {
131
132
  "page": 1,
132
133
  "page_size": PAGE_SIZE,
133
134
  }
@@ -158,14 +159,14 @@ class BelvoStream(RESTStream[ParseResult], metaclass=ABCMeta):
158
159
  type_dict = self.schema.get("properties", {}).get(self.replication_key)
159
160
  return is_date_or_datetime_type(type_dict)
160
161
 
161
- def _resolve_openapi_ref(self) -> dict[str, Any]:
162
+ def _resolve_openapi_ref(self) -> dict[str, t.Any]:
162
163
  schema = {"$ref": f"#/components/schemas/{self.openapi_ref}"}
163
164
  openapi = load_openapi()
164
165
  schema["components"] = openapi["components"]
165
166
  return resolve_schema_references(schema)
166
167
 
167
168
  @property
168
- def schema(self) -> dict[str, Any]:
169
+ def schema(self) -> dict[str, t.Any]:
169
170
  """Return the schema for this stream.
170
171
 
171
172
  Returns:
@@ -11,6 +11,7 @@ from tap_belvo.streams.banking import (
11
11
  ReceivableTransactions,
12
12
  Transactions,
13
13
  )
14
+ from tap_belvo.streams.core import Institutions, Links
14
15
  from tap_belvo.streams.enrichment import Incomes, RecurringExpenses, RiskInsights
15
16
  from tap_belvo.streams.fiscal import (
16
17
  Invoices,
@@ -20,7 +21,6 @@ from tap_belvo.streams.fiscal import (
20
21
  TaxReturns,
21
22
  TaxStatuses,
22
23
  )
23
- from tap_belvo.streams.links import Institutions, Links
24
24
 
25
25
  __all__ = [
26
26
  "Links",
@@ -2,14 +2,16 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import TYPE_CHECKING, Any
5
+ import typing as t
6
6
 
7
7
  from tap_belvo.client import BelvoStream
8
- from tap_belvo.streams.links import Links
8
+ from tap_belvo.streams.core import Links
9
9
 
10
- if TYPE_CHECKING:
10
+ if t.TYPE_CHECKING:
11
11
  from urllib.parse import ParseResult
12
12
 
13
+ from singer_sdk.helpers.types import Context
14
+
13
15
 
14
16
  class Accounts(BelvoStream):
15
17
  """Accounts stream."""
@@ -33,9 +35,9 @@ class Transactions(BelvoStream):
33
35
 
34
36
  def get_url_params(
35
37
  self,
36
- context: dict[Any, Any] | None,
38
+ context: Context | None,
37
39
  next_page_token: ParseResult | None,
38
- ) -> dict[str, Any]:
40
+ ) -> dict[str, t.Any]:
39
41
  """Get URL query parameters.
40
42
 
41
43
  Args:
@@ -6,11 +6,14 @@ import typing as t
6
6
 
7
7
  from tap_belvo.client import BelvoStream
8
8
 
9
+ if t.TYPE_CHECKING:
10
+ from singer_sdk.helpers.types import Context
11
+
9
12
 
10
13
  class Links(BelvoStream):
11
14
  """Links stream."""
12
15
 
13
- name = "links_links"
16
+ name = "links"
14
17
  path = "/api/links"
15
18
  primary_keys = ("id",)
16
19
  replication_key = "created_at"
@@ -19,7 +22,7 @@ class Links(BelvoStream):
19
22
  def get_child_context(
20
23
  self,
21
24
  record: dict[str, t.Any],
22
- context: dict[t.Any, t.Any] | None, # noqa: ARG002
25
+ context: Context | None, # noqa: ARG002
23
26
  ) -> dict[t.Any, t.Any]:
24
27
  """Return the child context.
25
28
 
@@ -36,8 +39,18 @@ class Links(BelvoStream):
36
39
  class Institutions(BelvoStream):
37
40
  """Institutions stream."""
38
41
 
39
- name = "links_institutions"
42
+ name = "institutions"
40
43
  path = "/api/institutions"
41
44
  primary_keys = ("id",)
42
45
  replication_key = None
43
46
  openapi_ref = "Institution"
47
+
48
+
49
+ class Consents(BelvoStream):
50
+ """Consents stream."""
51
+
52
+ name = "consents"
53
+ path = "/api/consents"
54
+ primary_keys = ("id",)
55
+ replication_key = None
56
+ openapi_ref = "Consent"
@@ -2,13 +2,13 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from singer_sdk import Stream, Tap
5
+ import singer_sdk
6
6
  from singer_sdk import typing as th
7
7
 
8
- from tap_belvo.streams import banking, enrichment, fiscal, links
8
+ from tap_belvo.streams import banking, core, enrichment, fiscal
9
9
 
10
10
 
11
- class TapBelvo(Tap):
11
+ class TapBelvo(singer_sdk.Tap):
12
12
  """Singer tap for Belvo."""
13
13
 
14
14
  name = "tap-belvo"
@@ -41,7 +41,7 @@ class TapBelvo(Tap):
41
41
  ),
42
42
  ).to_dict()
43
43
 
44
- def discover_streams(self) -> list[Stream]:
44
+ def discover_streams(self) -> list[singer_sdk.Stream]:
45
45
  """Return a list of discovered streams.
46
46
 
47
47
  Returns:
@@ -50,8 +50,11 @@ class TapBelvo(Tap):
50
50
  # TODO(edgarrmondragon): Add tax declarations and tax returns
51
51
  # https://github.com/edgarrmondragon/tap-belvo/issues/76
52
52
  return [
53
- links.Links(self),
54
- links.Institutions(self),
53
+ core.Links(self),
54
+ core.Institutions(self),
55
+ # TODO(edgarrmondragon): Register this stream when it's available in the OpenAPI spec # noqa: E501
56
+ # https://statics.belvo.io/openapi-specs/BelvoOpenFinanceApiSpec.json
57
+ # core.Consents(self), # noqa: ERA001
55
58
  banking.Accounts(self),
56
59
  banking.Transactions(self),
57
60
  banking.Owners(self),
@@ -30,7 +30,7 @@ TestTapBelvo = get_tap_test_class(
30
30
  "fiscal_tax_compliance_statuses",
31
31
  "fiscal_tax_retentions",
32
32
  "fiscal_tax_statuses",
33
- "links_links",
33
+ "links",
34
34
  ],
35
35
  ),
36
36
  )
@@ -1,2 +0,0 @@
1
- pip==24.0
2
- hatch==1.9.7
File without changes
File without changes
File without changes
File without changes