tabularmapper 1.0.1__tar.gz → 1.0.2__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.
Files changed (26) hide show
  1. {tabularmapper-1.0.1/src/tabularmapper.egg-info → tabularmapper-1.0.2}/PKG-INFO +3 -1
  2. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/pyproject.toml +3 -1
  3. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/__init__.py +1 -1
  4. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/api.py +10 -3
  5. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/stores.py +2 -2
  6. {tabularmapper-1.0.1 → tabularmapper-1.0.2/src/tabularmapper.egg-info}/PKG-INFO +3 -1
  7. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/LICENSE +0 -0
  8. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/README.md +0 -0
  9. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/setup.cfg +0 -0
  10. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/ai_matcher.py +0 -0
  11. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/cli.py +0 -0
  12. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/engine.py +0 -0
  13. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/learn.py +0 -0
  14. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/llm_fallback.py +0 -0
  15. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/mapping_cache.py +0 -0
  16. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/schema.py +0 -0
  17. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/SOURCES.txt +0 -0
  18. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/dependency_links.txt +0 -0
  19. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/entry_points.txt +0 -0
  20. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/requires.txt +0 -0
  21. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/top_level.txt +0 -0
  22. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/tests/test_api.py +0 -0
  23. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/tests/test_learn.py +0 -0
  24. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/tests/test_mapper.py +0 -0
  25. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/tests/test_schema.py +0 -0
  26. {tabularmapper-1.0.1 → tabularmapper-1.0.2}/tests/test_stores.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tabularmapper
3
- Version: 1.0.1
3
+ Version: 1.0.2
4
4
  Summary: Map any spreadsheet (.xlsx) to a schema you define — deterministic column mapping with an optional AI matcher
5
5
  Author-email: Karthikeyan Duraisamy <karthikeyanduraisamy@kultivateindia.com>
6
6
  License-Expression: MIT
@@ -15,6 +15,8 @@ Classifier: Programming Language :: Python :: 3.9
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
18
20
  Classifier: Topic :: Office/Business
19
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
22
  Requires-Python: >=3.9
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tabularmapper"
7
- version = "1.0.1"
7
+ version = "1.0.2"
8
8
  description = "Map any spreadsheet (.xlsx) to a schema you define — deterministic column mapping with an optional AI matcher"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -22,6 +22,8 @@ classifiers = [
22
22
  "Programming Language :: Python :: 3.10",
23
23
  "Programming Language :: Python :: 3.11",
24
24
  "Programming Language :: Python :: 3.12",
25
+ "Programming Language :: Python :: 3.13",
26
+ "Programming Language :: Python :: 3.14",
25
27
  "Topic :: Office/Business",
26
28
  "Topic :: Software Development :: Libraries :: Python Modules",
27
29
  ]
@@ -44,7 +44,7 @@ from .schema import (
44
44
  )
45
45
  from .stores import open_store
46
46
 
47
- __version__ = "1.0.1"
47
+ __version__ = "1.0.2"
48
48
 
49
49
  __all__ = [
50
50
  "process_file",
@@ -30,6 +30,7 @@ from __future__ import annotations
30
30
 
31
31
  import os
32
32
  from contextlib import asynccontextmanager
33
+ from enum import Enum
33
34
  from typing import Any, Optional
34
35
 
35
36
  from fastapi import APIRouter, FastAPI, File, HTTPException, Query, UploadFile
@@ -44,6 +45,13 @@ from .mapping_cache import MappingCache
44
45
  _XLSX_MIME = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
45
46
 
46
47
 
48
+ class OutFormat(str, Enum):
49
+ """Response shape for POST /map — rendered as a dropdown in the docs."""
50
+ json = "json" # rows inline (default)
51
+ base64 = "base64" # rows inline + a mapped .xlsx in file_base64
52
+ file = "file" # download the .xlsx directly (binary, no JSON body)
53
+
54
+
47
55
  # --------------------------------------------------------------------------
48
56
  # Shared singletons (built once at startup)
49
57
  # --------------------------------------------------------------------------
@@ -122,9 +130,8 @@ async def health() -> dict:
122
130
 
123
131
  async def map_statement(
124
132
  file: UploadFile = File(...),
125
- format: str = Query(
126
- "json",
127
- pattern="^(json|base64|file)$",
133
+ format: OutFormat = Query(
134
+ OutFormat.json,
128
135
  description="json = rows inline (default); base64 = rows inline + an "
129
136
  ".xlsx encoded in file_base64; file = download the .xlsx "
130
137
  "directly (binary, no JSON body).",
@@ -145,7 +145,7 @@ def _redis_proto_client(url: str, prefer: str = "redis"):
145
145
  return mod.from_url(u) # module-level from_url (both expose it)
146
146
  raise ImportError(
147
147
  "This cache backend needs the 'valkey' or 'redis' package. Install one "
148
- "with: pip install bank-statement-mapper[valkey] (or [redis]). Both "
148
+ "with: pip install tabularmapper[valkey] (or [redis]). Both "
149
149
  "are optional — the default SQLite backend needs nothing extra."
150
150
  ) from last_err
151
151
 
@@ -188,7 +188,7 @@ class PostgresStore:
188
188
  except ImportError as exc:
189
189
  raise ImportError(
190
190
  "The postgres cache backend needs the 'psycopg' package. Install "
191
- "it with: pip install bank-statement-mapper[postgres]. It is "
191
+ "it with: pip install tabularmapper[postgres]. It is "
192
192
  "optional — the default SQLite backend needs nothing extra."
193
193
  ) from exc
194
194
  self._table = table
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tabularmapper
3
- Version: 1.0.1
3
+ Version: 1.0.2
4
4
  Summary: Map any spreadsheet (.xlsx) to a schema you define — deterministic column mapping with an optional AI matcher
5
5
  Author-email: Karthikeyan Duraisamy <karthikeyanduraisamy@kultivateindia.com>
6
6
  License-Expression: MIT
@@ -15,6 +15,8 @@ Classifier: Programming Language :: Python :: 3.9
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
18
20
  Classifier: Topic :: Office/Business
19
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
22
  Requires-Python: >=3.9
File without changes
File without changes
File without changes