Skip to main content

tablegis

tablegis is a Python package for geospatial data processing and analysis, built on geopandas, pandas, shapely, and pyproj. It provides a series of utility functions to simplify common GIS operations.

Features

  • Distance Calculation: Efficiently compute the nearest distance between DataFrames.
  • Spatial Analysis: Create buffers (input in meters), Voronoi polygons, Delaunay triangulations, etc.
  • Format Conversion: Easily convert between GeoDataFrame and formats like Shapefile, KML, etc.
  • Coordinate Aggregation: Provides tools for aggregating coordinate points into grids.
  • Geometric Operations: Includes merging polygons, calculating centroids, adding sectors, etc.
  • Fast Table Reading: Read large Excel/CSV files 10-50x faster with Polars + Parquet caching.

Installation

1、You can install tablegis from PyPI:

pip install tablegis

2、Or, install the latest version directly from the GitHub repository:

pip install git+https://github.com/Non-existent987/tablegis.git

3、After downloading the project, it is convenient to import from local files for modification.

import sys
import pandas as pd
# Find the file path of the tablegis you downloaded.
sys.path.insert(0, r'C:\Users\Administrator\Desktop\tablegis')
# Now it can be imported.
import tablegis as tg

Quick Start

Here is a simple example of how to use tablegis:

1. Find the nearest point (in df2) for each point in df1 and add its ID, longitude, latitude, and distance.

import pandas as pd
import tablegis as tg

# Create two example DataFrames
df1 = pd.DataFrame({
    'id': [1, 2, 3],
    'lon1': [116.404, 116.405, 116.406],
    'lat1': [39.915, 39.916, 39.917]
})

df2 = pd.DataFrame({
    'id': ['A', 'B', 'C', 'D'],
    'lon2': [116.403, 116.407, 116.404, 116.408],
    'lat2': [39.914, 39.918, 39.916, 39.919]
})

# Calculate the nearest 1 point
result = tg.min_distance_twotable(df1, df2, lon1='lon1', lat1='lat1', lon2='lon2', lat2='lat2', df2_id='id', n=1)
# Calculate the nearest 2 points
result2 = tg.min_distance_twotable(df1, df2, lon1='lon1', lat1='lat1', lon2='lon2', lat2='lat2', df2_id='id', n=2)

print("\nExample result (distance in meters):")
print(result)
print(result2)

Result Display:

Table df1:

id lon1 lat1
A 114.0 30.0
B 114.1 30.1

Table df2:

id lon2 lat2
p1 114.01 30.01
p2 114.05 30.05
p3 114.12 30.12

Nearest 1 point:

id lon1 lat1 nearest1_id nearest1_lon2 nearest1_lat2 nearest1_distance
A 114.0 30.0 p1 114.01 30.01 1470.515926
B 114.1 30.1 p3 114.12 30.12 2939.507557

Nearest 2 points:

id lon1 lat1 nearest1_id nearest1_lon2 nearest1_lat2 nearest1_distance nearest2_id nearest2_lon2 nearest2_lat2 nearest2_distance mean_distance
A 114.0 30.0 p1 114.01 30.01 1470.515926 p2 114.05 30.05 7351.852775 4411.184351
B 114.1 30.1 p3 114.12 30.12 2939.507557 p2 114.05 30.05 7350.037700 5144.772629

2. Find the nearest point for each point within the same table and add its ID, longitude, latitude, and distance.

import pandas as pd
import tablegis as tg

# Create an example DataFrame
df2 = pd.DataFrame({
    'id': ['A', 'B', 'C', 'D'],
    'lon2': [116.403, 116.407, 116.404, 116.408],
    'lat2': [39.914, 39.918, 39.916, 39.919]
})

# Calculate the nearest 1 point
result = tg.min_distance_onetable(df2, 'lon2', 'lat2', idname='id', n=1)
# Calculate the nearest 2 points
result2 = tg.min_distance_onetable(df2, 'lon2', 'lat2', idname='id', n=2)

print("\nExample result (distance in meters):")
print(result)
print(result2)

Result Display:

Table df2:

id lon2 lat2
p1 114.01 30.01
p2 114.05 30.05
p3 114.12 30.12

Nearest 1 point:

id lon2 lat2 nearest1_id nearest1_lon2 nearest1_lat2 nearest1_distance
0 p1 114.01 30.01 p2 114.05 30.05 5881.336911
1 p2 114.05 30.05 p1 114.01 30.01 5881.336911
2 p3 114.12 30.12 p2 114.05 30.05 10289.545038

Nearest 2 points:

id lon2 lat2 nearest1_id nearest1_lon2 nearest1_lat2 nearest1_distance nearest2_id nearest2_lon2 nearest2_lat2 nearest2_distance mean_distance
0 p1 114.01 30.01 p2 114.05 30.05 5881.336911 p3 114.12 30.12 16170.880987 11026.108949
1 p2 114.05 30.05 p1 114.01 30.01 5881.336911 p3 114.12 30.12 10289.545038 8085.440974
2 p3 114.12 30.12 p2 114.05 30.05 10289.545038 p1 114.01 30.01 16170.880987 13230.213012

3、Replace the longitude and latitude columns in the table with the corresponding values in another coordinate system, and add a new column for longitude and latitude.

import pandas as pd
import tablegis as tg

# Create two sample DataFrames
df = pd.DataFrame({
    'id': ['A', 'B', 'C', 'D'],
    'lon': [116.403, 116.407, 116.404, 116.408],
    'lat': [39.914, 39.918, 39.916, 39.919]
})

# Convert the latitude and longitude in the 84 coordinate system to the latitude and longitude in the web_mercator system.
result = tg.to_lonlat(df,'lon','lat', from_crs="wgs84", to_crs="web_mercator")
print(result)

Result Display:
Added two columns of "web_mercator":

id lon lat web_mercator_lon web_mercator_lat
A 116.403 39.914 12957922.69 4853452.853
B 116.407 39.918 12958367.96 4854033.408
C 116.404 39.916 12958034.01 4853743.126
D 116.408 39.919 12958479.28 4854178.552

4、Generate buffers of the specified range based on the longitude and latitude columns in the table and add the geometry.

import pandas as pd
import tablegis as tg

df = pd.DataFrame({
        'lon': [116.4074, 121.4737],
        'lat': [39.9042, 31.2304],
        'buffer_size': [500, 1000]
    })
# Set a 100-meter buffer zone
res_100 = tg.add_buffer(df,'lon','lat',100) 
# Set the buffer range according to the numbers in the "buffer_size" column.
res_buffer_size = tg.add_buffer(df,'lon','lat','buffer_size')
print(res_100)
print(res_buffer_size)

Result Display:

df table

lon lat buffer_size
0 116.4074 39.9042 500
1 121.4737 31.2304 1000

Set a 100-meter buffer zone

lon lat buffer_size geometry
0 116.4074 39.9042 500 POLYGON ((116.40857 39.90421, 116.40856 39.904...
1 121.4737 31.2304 1000 POLYGON ((121.47475 31.23036, 121.47474 31.230...

Set the buffer range according to the numbers in the "buffer_size" column.

lon lat buffer_size geometry
0 116.4074 39.9042 500 POLYGON ((116.41325 39.90423, 116.41322 39.903...
1 121.4737 31.2304 1000 POLYGON ((121.48417 31.23003, 121.48408 31.229...

Addition: add_buffer now supports a min_distance parameter. Pass a scalar or a column name to create a ring (inner radius = min_distance, outer radius = dis). If min_distance is None (default) the function creates a filled buffer as before.

4a. Expand or shrink existing GeoDataFrame geometries by a buffer distance

import geopandas as gpd
from shapely.geometry import Point, Polygon
import tablegis as tg

# Create a GeoDataFrame with point geometries
gdf_point = gpd.GeoDataFrame(
    {'id': [1, 2]},
    geometry=[Point(116.4074, 39.9042), Point(121.4737, 31.2304)],
    crs='EPSG:4326'
)

# Expand buffer by 100 meters
gdf_expanded = tg.buffer(gdf_point, 100)
print(gdf_expanded)

# Shrink buffer by 50 meters (negative value)
gdf_shrunk = tg.buffer(gdf_point, -50)
print(gdf_shrunk)

# Use with polygon geometries
polygon = Polygon([(116.3, 39.8), (116.5, 39.8), (116.5, 40.0), (116.3, 40.0)])
gdf_poly = gpd.GeoDataFrame(
    {'id': [1]},
    geometry=[polygon],
    crs='EPSG:4326'
)
gdf_poly_expanded = tg.buffer(gdf_poly, 200)
print(gdf_poly_expanded)

Key Features:

  • Automatically projects to UTM for accurate meter-based calculations
  • Supports both positive (expand) and negative (shrink) distances
  • Preserves original CRS in output
  • Handles multi-part geometries
  • Warns if input GeoDataFrame has no CRS (assumes EPSG:4326)

Polygons

  • add_polygon(df, lon, lat, num_sides, radius=..., side_length=..., interior_angle=None, rotation=0.0, geometry='geometry')

    Create regular polygons around points. Parameters:

    • radius / side_length: one required; can be scalar or column name (meters in projected coordinates).
    • interior_angle: optional interior angle in degrees. If provided, function enters interior-mode; if None (default), operates in exterior/regular mode.
    • rotation: overall rotation in degrees (clockwise positive) applied after interior/exterior handling. Can be scalar or column name for per-row rotation.
    • geometry: output geometry column name.

    Note: vertex computation is vectorized for performance on large datasets; both interior_angle and rotation accept scalars or per-row column names.

    Example (rotated hexagon by 10°):

    res = tg.add_polygon(df, lon='lon', lat='lat', num_sides=6, radius=500, rotation=10.0)
    

    Example (per-row interior angle and rotation):

    res = tg.add_polygon(df, lon='lon', lat='lat', num_sides=5, radius='r_col', interior_angle='inner_deg', rotation='rot_deg')
    

5、Convert the latitude and longitude columns in the table into point-shaped geometries and then transform them into a gdf.

import pandas as pd
import tablegis as tg

df = pd.DataFrame({
        'lon': [116.4074, 121.4737, 113.2644],
        'lat': [39.9042, 31.2304, 23.1291],
        'city': ['Beijing', 'Shanghai', 'Guangzhou']
    })
# Generate points based on latitude and longitude
result1 = tg.add_points(df)
print(result1)

Result Display:

lon lat city geometry
116.4074 39.9042 Beijing POINT (116.4074 39.9042)
121.4737 31.2304 Shanghai POINT (121.4737 31.2304)
113.2644 23.1291 Guangzhou POINT (113.2644 23.1291)

6、Concentrate the latitude and longitude data in the table using the method of expansion and recombination, and add the fused id as well as the range geom.

import pandas as pd
import tablegis as tg
# Prepare test data
test_data = pd.DataFrame({
    'lon': [116.40, 116.41, 116.50, 116.51],
    'lat': [39.90, 39.91, 39.95, 39.96],
    'name': ['A', 'B', 'C', 'D'],
    'value': [1, 2, 3, 4]
})

# Test 1: Return geometry
result_no_geom = tg.add_buffer_groupbyid(
    test_data, 
    lon='lon', 
    lat='lat',
    distance=1000,
    columns_name='group_id',
    id_label_prefix='id_',
    geom=True
)
# Test 2: Do not return geometry
result_geom = tg.add_buffer_groupbyid(
    test_data, 
    lon='lon', 
    lat='lat',
    distance=1000,
    columns_name='group_id',
    id_label_prefix='id_',
    geom=False
)

Result Display:

no geom

lon lat name value group_id
116.40 39.90 A 1 id_0
116.41 39.91 B 2 id_0
116.50 39.95 C 3 id_1
116.51 39.96 D 4 id_1

geom

lon lat name value group_id geometry
116.40 39.90 A 1 id_0 POLYGON ((116.41149 39.8983, 116.41122 39.8974...)
116.41 39.91 B 2 id_0 POLYGON ((116.41149 39.8983, 116.41122 39.8974...)
116.50 39.95 C 3 id_1 POLYGON ((116.51149 39.94829, 116.51122 39.947...)
116.51 39.96 D 4 id_1 POLYGON ((116.51149 39.94829, 116.51122 39.947...)

7. Add a column for area to geopandas. The area is calculated based on the shape's area. The unit of the geographic coordinate system is meters, which is consistent with the units of both the horizontal and vertical planes.

import tablegis as tg
import geopandas as gpd
polygon = Polygon([(113.343, 29.3434), (113.353, 29.3434), (113.353, 29.3534), (113.343, 29.3534)])
gdf = gpd.GeoDataFrame({'id': [1], 'geometry': [polygon]}, crs="epsg:4326")
# Test 1: Add Area Column (Automatically Select Coordinate System)
result_gdf = tg.add_area(gdf, 'area')
print('area:',result_gdf['area'].astype(int)[0])

# Test 2: Add column name for area and coordinate system
result_gdf = tg.add_area(gdf, 'area', crs_epsg=32650)
print('area:',result_gdf['area'].astype(int)[0])

结果展示:

Add Area Column (Automatically Select Coordinate System)

Center: (113.3480, 29.3484) → UTM Zone 49 N → EPSG:32649
area: 1076905

Add column names for area and coordinate system

area: 1078867

8. Create sector (wedge) polygons around points with specified azimuth, distance, and angle.

import pandas as pd
import tablegis as tg

df = pd.DataFrame({
    'lon': [116.4074, 121.4737],
    'lat': [39.9042, 31.2304],
    'azimuth': [45, 90],
    'distance': [1000, 1500],
    'angle': [60, 45]
})

# Create sectors with default parameters
result = tg.add_sectors(df, lon='lon', lat='lat', azimuth='azimuth', distance='distance', angle='angle')
print(result)

9. Play a built-in notification sound.

import tablegis as tg

# Play the notification sound (Windows only)
tg.dog()

10. Match spatial layer attributes to DataFrame

Match attributes from a spatial layer (GeoDataFrame or file) to a DataFrame based on spatial relationship.

import pandas as pd
import geopandas as gpd
from shapely.geometry import Polygon
import tablegis as tg

# Data to be matched
df = pd.DataFrame({'lon': [116.4], 'lat': [39.9]})

# Spatial layer (e.g., administrative districts)
poly = Polygon([(116.0, 39.0), (117.0, 39.0), (117.0, 40.0), (116.0, 40.0)])
gdf_layer = gpd.GeoDataFrame({'name': ['Beijing'], 'code': [100]}, geometry=[poly], crs="EPSG:4326")

# Match 'name' from layer to df
res = tg.match_layer(df, gdf_layer, columns=['name'])
print(res)

11. Convert DataFrame with WKT to GeoDataFrame

Convert a DataFrame containing WKT (Well-Known Text) geometry strings into a GeoDataFrame.

import pandas as pd
import tablegis as tg

df = pd.DataFrame({
    'id': [1, 2],
    'wkt': ['POINT (116.4 39.9)', 'POINT (121.5 31.2)']
})

gdf = tg.df_to_gdf(df, geometry='wkt')
print(gdf)

12. Fast Read — Read large Excel/CSV files with Parquet caching

Read large Excel files (hundreds of MB, millions of rows) 10-50x faster than pandas.read_excel. Uses Polars + Calamine (Rust engine) for parsing, and automatically caches to Parquet for near-instant subsequent reads. Only converts the sheet you need — other sheets are not touched.

Basic Usage

import tablegis as tg

# Read a single sheet (only this sheet is converted, ~5s for first time)
df = tg.fast_read("data.xlsx", sheet="站点信息")

# Read again — cached, near-instant (~0.02s)
df = tg.fast_read("data.xlsx", sheet="站点信息")

# Read only specific columns (faster, less memory)
df = tg.fast_read("data.xlsx", sheet="站点信息", columns=["城市", "经度", "纬度"])

# Return pandas DataFrame (compatible with other tablegis functions)
pd_df = tg.fast_read("data.xlsx", sheet="站点信息", to_pandas=True)

# Read all sheets (returns a dict: {sheet_name: DataFrame})
data = tg.fast_read("data.xlsx")

# Read CSV (no caching needed — Polars reads CSV natively and fast)
df = tg.fast_read("data.csv")

# Force refresh cache (after source file is updated)
df = tg.fast_read("data.xlsx", sheet="站点信息", refresh=True)

Real-World Scenarios

Scenario 1: Telecom planning — read a specific sheet from a multi-sheet workbook

import tablegis as tg

# A 321MB planning workbook with 10 sheets — only read the one you need
stations = tg.fast_read("5g_planning_2024.xlsx", sheet="站点规划")
print(f"Loaded {len(stations):,} stations in milliseconds")

# Chain with other tablegis functions
pd_stations = tg.fast_read("5g_planning_2024.xlsx", sheet="站点规划", to_pandas=True)
buffers = tg.add_buffer(pd_stations, lon="经度", lat="纬度", dis=500)

Scenario 2: Selective column loading for large datasets

# Only load the columns you need — saves memory and time
df = tg.fast_read("huge_data.xlsx", sheet="orders", columns=["order_id", "city", "amount"])
print(df.head())

# Works with CSV too
df = tg.fast_read("transactions.csv", columns=["date", "revenue"])

Scenario 3: Read all sheets and iterate

# Read all sheets at once (first time converts all, cached after)
all_data = tg.fast_read("report.xlsx")

for sheet_name, df in all_data.items():
    print(f"Sheet '{sheet_name}': {len(df):,} rows × {len(df.columns)} columns")

# Convert a specific sheet to pandas for tablegis compatibility
pd_df = all_data["边界信息"].to_pandas()

Scenario 4: Data pipeline — refresh after source update

# Initial read (creates cache)
df = tg.fast_read("live_data.xlsx", sheet="metrics")

# ... source file gets updated externally ...

# Force refresh to pick up changes
df = tg.fast_read("live_data.xlsx", sheet="metrics", refresh=True)

Key Features

Feature Description
Rust-powered parsing Calamine engine reads Excel 10-50x faster than openpyxl
Automatic Parquet cache First read converts to .parquet_cache/; subsequent reads load in milliseconds
Sheet-isolated conversion Specifying sheet="X" only converts sheet X — other sheets are never touched
Smart type casting Numeric strings auto-detected and cast to Float64/Int64 (with 5% tolerance for mixed columns)
MD5-based invalidation Source file changes are detected via MD5; cache is automatically rebuilt
Column pruning columns parameter enables lazy column loading from Parquet
Polars or pandas Return Polars (default, faster) or pandas (to_pandas=True) DataFrame
CSV support CSV files read natively by Polars — fast enough that no caching is needed

Cache Management

Cache files are stored in .parquet_cache/<filename>/ relative to your working directory. Each sheet becomes a <sheet_name>.parquet file, plus a _meta.json for tracking MD5 and row counts.

# Cache directory structure after reading "data.xlsx" sheet "站点信息":
# .parquet_cache/
#   data/
#     站点信息.parquet    # columnar cache for this sheet
#     _meta.json          # {md5: "...", sheets: {"站点信息": 147000}}

To clear the cache, simply delete the .parquet_cache directory:

rm -rf .parquet_cache

Performance Comparison

Test file: 290M rows, 10 sheets, 321MB Excel file.

Method Single sheet (147K rows) All sheets (2.9M rows) Memory
pandas.read_excel 244s ~40min 238MB (single sheet)
tg.fast_read (first time) ~5s ~2.5min —
tg.fast_read (cached) 0.02s 0.12s 82MB (all sheets)

Contributing

Contributions in all forms are welcome, including feature requests, bug reports, and code contributions.

License

This project is licensed under the MIT License.

Metadata

Release files for tablegis 0.0.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tablegis 0.0.16
File Size Uploaded
tablegis-0.0.16.tar.gz 1.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for tablegis 0.0.16
File
tablegis-0.0.16-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
tablegis-0.0.16-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
tablegis-0.0.16-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details
tablegis-0.0.16-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
tablegis-0.0.16-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
tablegis-0.0.16-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
tablegis-0.0.16-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details
tablegis-0.0.16-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
tablegis-0.0.16-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
tablegis-0.0.16-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
tablegis-0.0.16-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details
tablegis-0.0.16-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
tablegis-0.0.16-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
tablegis-0.0.16-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
tablegis-0.0.16-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details
tablegis-0.0.16-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
tablegis-0.0.16-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
tablegis-0.0.16-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
tablegis-0.0.16-cp39-cp39-macosx_11_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 11.0+ x86-64 Details
tablegis-0.0.16-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 35.4 MB

Release files / tablegis-0.0.16.tar.gz

Download URL tablegis-0.0.16.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
8f97ea78edcae5e3c2281be836cdf593754b291c9a2f9a8f1502e1ed0d00e4f8
BLAKE2b-256 checksum
How to use checksums
88d2e1dc2d41c641ff3cfe8452f72455ead1aa93a96b356a9260557d31053efa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / tablegis-0.0.16-cp313-cp313-win_amd64.whl

Download URL tablegis-0.0.16-cp313-cp313-win_amd64.whl
Size 1.7 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
a7675be3bdc84fd8edea79b0a90afd6955cdaf1f94f3d0a783b90b32b792cb81
BLAKE2b-256 checksum
How to use checksums
563ec4f6e1e589c0a6c1fbaf0ba325df6d98fe1bf3f949906bf1e06cbf9e311c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL tablegis-0.0.16-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8d49fd6cd6b27984bc624054763a82eb3ebc111c14b1087df3428408b28c6aa9
BLAKE2b-256 checksum
How to use checksums
a49f62624204a7bccf3940795d7c52577cd3d1853c189ea05ffb9b05838c9057
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp313-cp313-macosx_11_0_x86_64.whl

Download URL tablegis-0.0.16-cp313-cp313-macosx_11_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
ef0aabec7f1d3adb88c2c2798378ceecdba74050b67ed6caedc724882976cf18
BLAKE2b-256 checksum
How to use checksums
9c3b626716b5b85cec1d7a8b5b47eb722efa6a405ae3aeded21b21ceaf39d7b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp313-cp313-macosx_11_0_arm64.whl

Download URL tablegis-0.0.16-cp313-cp313-macosx_11_0_arm64.whl
Size 1.7 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
285b40d8091bd0269cd7e2fb3fcf83ef1e00ac0254c32edc524c09316fc982cc
BLAKE2b-256 checksum
How to use checksums
60daa6a1aa8553934b44f4f8b2b51bc7b89573238efdb43150301b9812f1ebeb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp312-cp312-win_amd64.whl

Download URL tablegis-0.0.16-cp312-cp312-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
afcefe514105b96808010e68173d4fd9f41183d7549867a275250aea92a183e4
BLAKE2b-256 checksum
How to use checksums
1f554020c22b8ffe2583defbcd22950a96c523e96693db884e4a37844337e579
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL tablegis-0.0.16-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5c84f46053072400bbc41137c7055c7f5404ad9c98957d678d7bcbb4e81da3be
BLAKE2b-256 checksum
How to use checksums
c2816eea0331447956bbc6f703d60d77bde7b0728cfce874ee533ed6a909d039
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp312-cp312-macosx_11_0_x86_64.whl

Download URL tablegis-0.0.16-cp312-cp312-macosx_11_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
7bafe7c066bde8a71ecc454c6f720558c71ababb8a15c90323d4f1069b5e76d3
BLAKE2b-256 checksum
How to use checksums
4b4989592c5cf8fbceeb7a8261ea254ab8c92e45954b1e2431e375351d2b35d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp312-cp312-macosx_11_0_arm64.whl

Download URL tablegis-0.0.16-cp312-cp312-macosx_11_0_arm64.whl
Size 1.7 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
35c901ed0587fc09f8708697e8f0a18ebc6f594ed564cf0ceb1da9942162df2f
BLAKE2b-256 checksum
How to use checksums
c3c8475e333bc5c5a2f5049c1a57413cd206f97e6087f5646d5f1d1f76dc78fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp311-cp311-win_amd64.whl

Download URL tablegis-0.0.16-cp311-cp311-win_amd64.whl
Size 1.7 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
4bc283032a939333cb8ea93c6534cb7a4a25f5edbbd4216f744060489a33660c
BLAKE2b-256 checksum
How to use checksums
c6b9785547a350a98533df54c0c8a00a702ca8df5460ffcf0a4cdbf28cba6cc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL tablegis-0.0.16-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5dba0a9534c31634d99a906cc971476d45b6e6ff5daf64977990732487284926
BLAKE2b-256 checksum
How to use checksums
866a23bbe4472c848256ba7e48152ae87b405f1e6e257c077faf61f60f0a58cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp311-cp311-macosx_11_0_x86_64.whl

Download URL tablegis-0.0.16-cp311-cp311-macosx_11_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
4576d5c7079c13c31d1459715001d09f257d94b53732297b2ca62ceadec3206c
BLAKE2b-256 checksum
How to use checksums
3bfd890e9ffcd66fc37a53779c0627e0f691a6047836288b2197b7582891f1a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp311-cp311-macosx_11_0_arm64.whl

Download URL tablegis-0.0.16-cp311-cp311-macosx_11_0_arm64.whl
Size 1.7 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3272560c3daeffc923266a39e388f35b11ac6ad3a4f4ec010fe9544e8b36d0c6
BLAKE2b-256 checksum
How to use checksums
035cb95d7e0c1e5961a7c1c3757b7088d728531459c3c92084da89101141ec01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp310-cp310-win_amd64.whl

Download URL tablegis-0.0.16-cp310-cp310-win_amd64.whl
Size 1.7 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
54319b617a02c9c5257343e12b6bf9765325fcb2bd608d0ab81010d968b268e9
BLAKE2b-256 checksum
How to use checksums
e2c97947dcf14c1377f97f157cc29b831b48d86ee98cda20483dab87263f8576
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL tablegis-0.0.16-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
050b40389b68ba8171be9f7fd4492e96022fcea05756da1acc0d5ff7f9cb6207
BLAKE2b-256 checksum
How to use checksums
54111af50cfa06fecd2fd28b99eac388df11fadf2db604ca40a5dd06dc58796e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp310-cp310-macosx_11_0_x86_64.whl

Download URL tablegis-0.0.16-cp310-cp310-macosx_11_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
e28ed50f283f7eb2dbe72b6dda9884b7ba14dadfce92b35943ae59a19d3b8ba2
BLAKE2b-256 checksum
How to use checksums
145dca3943649c18451fc46983fbd49c2154ef9fc75f048aee878a68b923b319
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp310-cp310-macosx_11_0_arm64.whl

Download URL tablegis-0.0.16-cp310-cp310-macosx_11_0_arm64.whl
Size 1.7 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e8dfbbd31ee1f409da94fc9e8b9298c1ef5ae8c3ed8b4f8270366df0518f5521
BLAKE2b-256 checksum
How to use checksums
0b42a2fa3936917be8005469da183716f8876d6ff90eeacf13886dc57c29f74a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp39-cp39-win_amd64.whl

Download URL tablegis-0.0.16-cp39-cp39-win_amd64.whl
Size 1.7 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
211d5303951644b044acf2304f17236ec6d8eb6032fac9bd58899867b8f04bb1
BLAKE2b-256 checksum
How to use checksums
673d565c0274cfdd266130d80e2074d9b7b30eb8568086ec7dbe8242feb9e2c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL tablegis-0.0.16-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a70e4069fdd2c12d5f53742ca2c82445ae76f7ef037bc15095a7824cf7fa959c
BLAKE2b-256 checksum
How to use checksums
2cb42210f88295dd6b48f6f5ba77e6edf4c80ac3b960bcd21f9d4a8c5a6f9712
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp39-cp39-macosx_11_0_x86_64.whl

Download URL tablegis-0.0.16-cp39-cp39-macosx_11_0_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
63ee566f6e58b1a96cd81442001d2bb4af3936c67ffd90844b87017b7119223c
BLAKE2b-256 checksum
How to use checksums
fb028541eac47fcd3f47c5aca2da8839dadbc6a029fe989f538f46a715ca6cc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / tablegis-0.0.16-cp39-cp39-macosx_11_0_arm64.whl

Download URL tablegis-0.0.16-cp39-cp39-macosx_11_0_arm64.whl
Size 1.7 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b0e8651c5b1ef0b1f2dbaae48a80208e9dbb97080329a5905cfc82a4f25af281
BLAKE2b-256 checksum
How to use checksums
0302be301874c1b25feb7705c4415f0ac195bcceda768cf672f29b5a82318f72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.0.16 This release

21 release files

0.0.14

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page