All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add cartodbfication step for create_table_from_query and copy_table functions (#1744)
- Check API Keys granted permissions before retrieving cached Keys
- Perform cartodbfication step after COPY from for performance improvement (#1735)
- Use UDF strategy on drop-add columns to avoid Batch API payload limit (#1734)
- Avoid batch api to carto create table (#1731)
- Filter only product entities in subscriptions (#1723, #1728)
- Dataset describe not in scientific notation (#1722)
- Review and improve SQLClient utilities (#1725)
- Fix timestamptz read carto (#1720)
- Avoid renaming geometry if geometry name is already GEOM_COLUMN_NAME (#1726)
- Fix user_id in metrics (#1727)
- Remove DataObsClient (#1721)
- Fix geocoding status columns when using cached parameter (#1717)
- Add new API to delete map publications (#1497)
- Provide Google (Data Observatory) credentials (#1688)
- Allow to set a value for null geometries (#1667)
- Add documentation for executing a single test (#1668)
- Add global datasets message in catalog functions (#1670)
- Remove sort by data_range when retrieving isolines (#1673)
- Switch from Travis to Github Actions (#1672)
- Upload table using to_carto in chunks (#1676)
- Check account disk quotas before writing using to_carto (#1674)
- Return GeoDataFrame in the to_dataframe function (#1681)
- Improve metrics for on-prem and staging (#1685)
- Optimize datasets/geographies download (#1693)
- Check geom_coverage and print a message if None (#1695)
- Remove unused BigQueryClient code (#1602)
- Repo clean-up. Refactor docs (#1682)
- Add tests for notebook execution (#1696)
- Mark DataObsClient as deprecated (#1697)
- Review reference (#1699)
- Improve documentation: guides and examples (#1698, #1700, #1704)
- Change iterrows method for index attribute in row data generation (#1706)
- Automatic reprojection in to_carto and Layer (#1708)
- Use regenerate table in replace strategy in to_carto (#1707)
- Remove the batch_size parameter in the call to bulk_geocode (#1666)
- Fix credentials link for set_default_credentials (#1665)
- Fix identifier quoting for columns (#1675, #1678)
- Fix uploading extra the_geom column (#1677)
- Fix wrong username error (#1687)
- Fix empty popups (#1689, #1690)
- Remove None from geometry_types to check validity (#1691)
- Remove nan raw geometries for visualization (#1694)
- Generate carto_geocode_hash with NULL values (#1702)
- Fix formula widget count operation (#1703)
- Add list_tables function (#1649)
- Add catalog public filter to providers, countries and categories (#1658)
- Add set_default_do_credentials function for DO authentication (#1655)
- Open publication link in another window (#1647)
- Show a warning when uploading a GeoDataFrame without geometry (#1650)
- Improve GeoDataFrame CRS check, docs and examples (#1656)
- Fix empty geometries issue (#1652)
- Fix Layout publication API key issue (#1654)
- Fix ColumnInfo comparison when replacing a table (#1660)
- Fix formula count (#1662)
- Fix catalog empty output (#1663)
- Fix read null geoms from carto (#1637)
- Fix show_info in layout maps (#1638)
- Add SQL query param to DO download (#1604, #1618, #1621, #1620)
- Add public filter to catalog (#1623)
- Add providers property to catalog (#1625)
- Add format attribute to map elements (#1626)
- Add download dataset example (#1634)
- Require pandas >= 0.25 (#1622)
- Remove enrichment max number of variables restriction from reference (#1624)
- Make Layout interactive by default (#1630)
- UI elements removed in static layout (#1631)
- Improve replace table strategy (#1628, #1633)
- Improve installation guide (#1635)
- Allow multi-selection in category widget
- Scape quotes in SQL function calls (#1619)
- Fix viz palettes (#1627)
- Fix metadata entity request (#1629)
- Add geometry icon to single legends (#1580)
- Publish Layout (#1598)
- Use Enrichment API and Metadata API for DO features (#1575, #1594)
- Improve to_csv info message (#1589)
- Use default credentials in metrics (#1603)
- Improve Layout map ordering (#1597)
- Change numeric autoformat (remove scientific notation)
- Return normalized table name in to_carto (#1609)
- Remove empty geometries in Source (#1610)
- Improve docs and examples (#1608, #1611)
- Update catalog info structure (#1612, #1606)
- Allow using columns with symbols in visualization (#1585)
- Fix layer_selector without style helpers (#1580)
- Fix layer_selector in published maps (#1595)
- Fix Google geocoding (#1600)
- Fix legends in Layout (#1597)
- Add encode_data param to Layer (#1536)
- Add WKT case in CSV example (#1545)
- Add Data Management guide (#1547)
- Layer selector in legends (#1551, #1558)
- New 'ascending' parameter to sort numeric legends in ascending or descending order (#1537)
- Include user_id in metrics (#1539)
- Disable default param exclusive for isolines (1540)
- Raise an error when trying to visualise a multi-geom GeoDataFrame (#1541)
- Update installation guide structure (#1549)
- Minor examples/guides improvements (#1534, #1552)
- Numeric legends are sorted in descending order by default (#1537)
- Fix legend footer in published maps (#1523)
- Fix default legend for cluster_size_style (#1533)
- Fix DO doc reference generation (#1550)
- Fix get token for Mapbox styles (#1565)
- Add metrics and utils.setup_metrics function (#1457)
- Add support for Python 3.8 (#1455)
- Add migration guides (#828)
- Allow to update a published map (#1451)
- Generate guides from Jupyter Notebooks (#1479)
- Review examples/guides (#1473, #1201, #1500)
- Manage kuviz quota (#1471)
- Explicit map.publish behaviour (#1485)
- Use Airship v2.2 (#1499)
- Replace geometry from geom_col (#1487)
- Fix size_continuous_style/_legend not displaying totals (#1488)
- Add CLI subscription prompt (#1388)
- Add Data Enrichment e2e tests (#1365)
- Add utils.decode_geometry function (#1418)
- Add legend helpers (#1347, #1442)
- Add style helpers (#1345, #1410)
- Add popup_element helper (#1348)
- Add title and default_* params to Layer class (#1432)
- Add default_legend/widget/popup_element helpers (#1432)
- Check quota before using Data Services (#1370)
- Check dependencies on runtime (#1342, #1310)
- Return areas using aggregation None (#1295, #1394)
- Split update_table into rename_table and update_privacy_table (#1380)
- Review subscription messages (#1391, #1407, #1413)
- Remove aggregation in column names, and add variable limit (#1400)
- Update Enrichment filter API (#1374, #1390)
- Rename methods to_csv and to_dataframe (#1396)
- Move widgets helpers to viz (#1349)
- Replace popup param by popup_hover and popup_click in Layer class (#1348, #1432)
- Cartodbfy by default in to_carto (#1416)
- Improve Error messages/docs (#1409)
- Return a GeoDataFrame in every method (#1418)
- Support several agg (#1294)
- Support array in filters (#1406)
- Catch and show Enrichment errors (BQ) (#1364)
- Fix Geography geom_coverage docstring (#1405)
- Fix Geographies not filtered by provider (#1248)
- Fix /support/contribute section in docs (#1427)
- Fix date format when using DataFrames (#1358)
- Fix hover+click behaviour (#1458)
- Fix footer in widgets (#1432)
- Fix dependencies to run in Colab (#1453)
- Remove Python 2.7 support (#1324)
- Remove get from CatalogList (#1369)
- Remove CartoDataFrame class (#1418)
- Remove utils.table (#1461)
- Remove default_legend param in Map class (#1399)
- Remove Style, Legend, Widget and Popup classes from viz (#1399)
- Add logger (#1328)
- Add source_col param in Isolines (#1303, #1336)
- Improve CartoDataFrame docs (#1307, #1308)
- Do not return cartodb_id in Geocoding/Isolines (#1302)
- Improve installation instruction guide (#1322)
- Publish privacy enhancements (#1286)
- Check if_exists param options (#1325)
- Improve download OpenData (#1309)
- Update DO endpoint (#1311, #1353)
- Improve DO download performance (#1281)
- Update quickstart (#1335, #1351)
- Fix Map default_legend param (#1191)
- Fix column names normalization (#1304)
- Review reference/guides copies (#1299, #1321)
- Display message when Dataset summary is not available (#1208)
- Fix DataObsClient (#1319)
- Fix CartoDataFrame plot (#1339)
- Fix enrichment without subscriptions (#1314)
- Fix encoding detection with all Nones (#1346)
- Add new properties in Catalog Dataset and Geography (#1209)
- Add IO functions and CartoDataFrame class (#1130, #1245)
- IO functions: read_carto, to_carto, has_table, describe_table, update_table, copy_table, create_table_from_query, delete_table.
- CartoDataFrame class: inherit GeoDataFrame class + from_carto, to_carto, viz.
- Refactor internals: ContextManager, SourceManager.
- Add index management in upload/download (#1265)
- read_carto: index_col.
- to_carto: index, index_label.
- Improve CDF geometry methods: add set_geometry_from_xy, add geom decoding in set_geometry (WKB, EWKB, WKB_HEX, EWKB_HEX, WKB_BHEX, EWKB_BHEX, WKT, EWKT).
- Add geom_col param in upload, enrichment, isolines and visualization (#1270, #1276)
- Add Enrichment/Catalog reference (#1183, #1216)
- Add Discovery Data guide (#996)
- Add Location Data Services guide (#995)
- Add Data Visualization guide (#1251)
- Add Quickstart guide (#966)
- Add Discovery Finantial Data guide (#1263)
- Add Data Enrichment guide (#997)
- Guides review (#1266, #1284)
- Optimize local data visualizations size using gzip compression (#1202)
- Optimize enrichment geometry management (#1130)
- Rename CatalogDataset class to Dataset (#1130)
- Validate DO operations (#1228, #1277)
- Validate Dataset/Geometry access (#1256)
- Upload Enrichment data via GCS (#1271)
- Fix Catalog filters (#1229)
- Fix Enrichment columns type issue (#1243, #1268, #1273)
- Remove data.Dataset class (#1130)
- Add isolines_layer helper method (#1135, #1159)
- Add range_min/max params to the continuous layer helper methods (#1120)
- Add with_lnglat param to the Isolines service functions (#1134)
- Refactor DO Enrichment into classes (#1127, #1137, #1170, #1196)
- Improve Credentials UX (#1028, #776, #1022)
- Optimize local data columns used in the map (#551)
- Fix encoding in data upload (#1133, CartoDB/support#2219)
- Fix dataset.geom_coverage method: (#1153)
- Allow iterables in the breaks param of color_bins_layer (#1146)
- Fix missing link in the documentation (#1150)
- Fix params with value 0 in the helper methods (#971)
- Fix rendering an empty Map (#975)
- Fix viewport in published maps (#1128)
- Restore dataframe after visualization (#1181)
- Fix COPY data types issues (#1190)
- Add support for variable groups in the catalog (#983)
- Add DO token in enrichment (#1020)
- Add Isolines Analysis (#889, #1076, #1070, #1078)
- Add GeoPandas as a dependency (#1047)
- Add subscription for Datasets/Geographies (#1071, #1079)
- Add nested filters for catalog search (#1038, #1069)
- Add list of catalog entities by list of ids or slugs (#1089)
- Download dataset and geographies (#1050)
- Create Maps API key automagically for published maps (#731)
- Add describe methods for CatalogDataset and Variable (#977)
- Add more examples (#1068, #1030, #1115)
- Add cached geocoding (#1066)
- Improve reference docs (#841, #1052, #1061, #1024)
- Refactor enrichment functions (#1034, #1043, #1056, #1062, #1085, #1083)
- Use public DO views (#1049)
- Use DataFrame index as cartodb_id (#1072)
- Refactor Catalog using classes (#1044, #1069, #1086, #1093, #1073)
- Rename Geocode class to Geocoding class (#1051)
- Return geocoded dataframes/isolines as geodataframes (#1088, #1092)
- Rename catalog's Dataset to CatalogDataset (#1100)
- Filter datasets by geometry (#1031)
- Improve testing framework (#1060)
- Update data.observatory namespace (#1119)
- Improve guides (#1053)
- Remove webcolors dependency (#933)
- Remove carto-python warnings (#1090)
- Remove pandas extension in catalog classes (#1038, #1044)
- Fix popups when using dark basemap (#1099)
- Fix publication using only base_url (#973)
- Add cluster_size_legend helper method (#654)
- Add Layout class to support multiple maps (#892, #953, #919)
- Add dynamic Legend: react to map changes (#935)
- Add LegendList class to allow multiple legends per layer (#925)
- Add more style params to the helper methods (#948)
- Add Discovery API to return DataFrames instances (#960)
- Add Data Discovery properties (#961)
- Add Geocoder Analysis (#888)
- Better integration of the catalog with pandas (#962)
- First stage enrichment polygons (#1016)
- Add DO token (#1019)
- Change default_legend behaviour (#775, #774)
- Update namespaces (#911)
- Fix SQLClient & DataObsClient support for set_default_credentials (#876)
- Fix request-URI Too Large for url error (#778)
- Fix sidebar footer overlap (#906)
- Fix histogram widget filter (#929, #940)
- Fix legend title overflow (#928)
- Fix show_info in settings (#918)
- Fix internal state of Dataset (#861)
- Fix retrieving widget type (#954)
- Fix Dataset.upload() with default credentials (#913)
- Fix Dataset.upload() column names using DataFrame (#947, #914, #922)
- Fix min/max Legend values (#939)
- Support uploading DataFrames with non-ascii texts in Python 2 (#1001)
- Dataset improvements
- Optimize Dataset df/gdf (#704)
- Decoupling clients from Dataset (#831)
- Client Architecture (#833)
- Deprecate cartoframes.analysis.Table in favor of Dataset (#587)
- Fix retry_times usage in Dataset.download (#783)
- Strategy pattern, factory pattern and dynamic sources in Dataset (#834)
- Improve geometry decoding strategy (#798)
- decode_geometry to support EWKT (#773)
- Fix RateLimitException in write/upload operations (#804)
- Refactoring Auth API
- Refactor auth namespace (#789)
- Deprecate _auth_send (#624)
- Tables used by a query (#730)
- New SQLClient API (#808)
- New Data Observatory API (#806)
- Widgets
- Define Widget API (#809)
- Add Histogram Widget (#810)
- Add Category Widget (#811)
- Add Animation Control Widget (#812)
- Add Time Series Widget (#813)
- Review Widget API (#827)
- Add Widgets Documentation (#859)
- Helper methods & Map improvements
- Animation helper method (#657)
- Implement embed map design (#805)
- Responsive panel tab shows when there's no legend (#771)
- Vector legends for small values shouldn't round (#544)
- Published map not holding viewport settings (#820)
- geopandas Polygon / MultiPolygon display error
- Add more params in the existing helpers (#830)
- Helper methods palette expressions as python lists (#825)
- Documentation and examples (#859, #879, #790, #873)
- Refactor Context API: Credentials (#661)
- Clean old API! (#807)
- Sharing visualizations: structure and publication (#745, #740)
- Add namespaces cartoframes.data for Dataset class
- Add support for DataFrames visualization (#735)
- Infer legend prop from the type (#743)
- Use
default_public
as default api key (#744) - Integrate size legends (#753)
- Add size helpers
- size_category (#765)
- size_bins (#652)
- size_continuous (#653)
- Add multi-layer popups (#793)
- Reverse Map layers order (#742)
- Fix schema not always properly set in write operations (#734)
- Fix error in Dataset.upload related with array data (#754)
- Fix Dataset.download error when reading boolean column with nulls (#732)
- Add new visualization API (#662)
- Add Source class (with param detection)
- Add Dataset methods .from_table(...) .from_query(...) .from_geojson(...) .from_dataframe(...)
- Add set_default_context method
- Use sources context (credentials, bounds)
- Fix Style class API for variables
- Remove Dataset, SQL, GeoJSON sources
- Remove sources, contrib namespaces
- Remove context from Map
- Update docs in viz classes
- Add/Update viz tests
- Pass PEP 8
- Add default style, based on the geom type (#648)
- Add basemap None and color interface (#635)
- Add Popup API (click and hover) (#677)
- Apply default style for not overwritten properties (#684)
- Add namespaces (#683)
- cartoframes.viz: Map, Layer, Source, Style, Popup, basemaps, helpers
- cartoframes.auth: Context, set_default_context
- Add color helpers (#692, #651)
- color_category
- color_bins
- color_continuous
- Add center/zoom information (#691)
- Add Legend API (#693)
- type, prop, title, description, footer
- Integrate size legends (#721)
- Rewrite context.read method using COPY TO (#570)
- Update dependencies (#722)
- Upgrades CARTO VL version for contrib.vector maps (#546)
- Minor refactors (#545) and doc fixes (#547)
- Fixes a bug where timestamps in LocalLayers raised errors (#550)
- Fixes a bug where multi-layer vector map legends disappeared (#549)
- Adds auto-centering for vector.LocalLayers (#526)
- Moves legends to panels instead of sidebars (#531)
- Improves documentation (#522)
- Adds basic legends for CARTO VL maps (#527)
- Adds a line to configure tqdm that prevents dependency issues (#528)
- Suppresses IFrame warnings temporarily (#524)
- Fixes bug on batch uploads where columns are a subset of util cols (#523)
- Adds a module erroneously excluded (#519)
- Refactors how client id is sent to CARTO Python SDK (#516)
- Removes unneeded print statement in QueryLayer
- Adds style by line options to Layer and QueryLayer (through cc.map) (#504)
- Adds custom basemap layer to vector maps (#490)
- Updates the Mapbox GL and CARTO VL versions for vector maps (#506)
- Multiple documentation updates
- Fixes a problem that prevented vector maps from working with on premises installations (#505)
- Fixes a bug with authorization in on prems (#493)
- Bump carto-python version that fixes auth api bug
- Adds size option for CARTO VL maps
- Bumps Mapbox GL library so vector maps work correctly
- Fixes issues where contrib wasn't included in distributions (#469)
- Adds example dataset functionality for example notebook and teaching cartoframes without an account (#382)
- Adds contrib.vector module for bring CARTO VL maps to cartoframes (#446)
- Moves BatchJobStatus to its own module (#455)
- Testing updates (#452)
- Suppresses warnings emitted from the Carto Python SDK (#456)
- Bug fix for timespans in geometry fetching (#416)
- Base URL validation to avoid issue of POSTs being converted to GETs (#445)
- Adds opacity styling option to Layer and QueryLayer (#440)
- Lowers row limit for lnglat creation to avoid platform limits on SQL API
- Adds the ability to read shared tables (from other users in org accounts) using
CartoContext.read
- Fixes a bug where the labels were not always appearing in interactive maps
- Updates MANIFEST.in to properly include asset files for interactive maps in sdist release (#400)
- Avoids collision of column names on DO augmentation (#323).
- Updates basemap URLs to new CDN
- Fixes a bug that prevented creating a table from a Data Observatory augmentation (#375)
- Fixes a bug that prevented categorical torque maps to be properly displayed
- Adds flag to
CartoContext.data_discovery
that excludes non-shoreline-clipped boundary metadata by default
- Bug fix for overwrite / privacy used in conjunction
- Adds
CartoContext.data_boundaries
CartoContext.data_discovery
returns non-denominated data- Expands
CartoContext.data
to do measure lookups based ongeom_refs
- Expands styling methods to take pre-defined bins
- Adds a compression option for write operations
- Fixes file system path creation to be generic to OS