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.
- {tabularmapper-1.0.1/src/tabularmapper.egg-info → tabularmapper-1.0.2}/PKG-INFO +3 -1
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/pyproject.toml +3 -1
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/__init__.py +1 -1
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/api.py +10 -3
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/stores.py +2 -2
- {tabularmapper-1.0.1 → tabularmapper-1.0.2/src/tabularmapper.egg-info}/PKG-INFO +3 -1
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/LICENSE +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/README.md +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/setup.cfg +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/ai_matcher.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/cli.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/engine.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/learn.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/llm_fallback.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/mapping_cache.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper/schema.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/SOURCES.txt +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/dependency_links.txt +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/entry_points.txt +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/requires.txt +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/src/tabularmapper.egg-info/top_level.txt +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/tests/test_api.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/tests/test_learn.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/tests/test_mapper.py +0 -0
- {tabularmapper-1.0.1 → tabularmapper-1.0.2}/tests/test_schema.py +0 -0
- {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.
|
|
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.
|
|
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
|
]
|
|
@@ -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:
|
|
126
|
-
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|