See below for brief introductions to some new features introduced with the ArcGIS Python API 2.4.4 release. Also, checkout the What's new in ArcGIS API for Python 2.4.4 blog for additional areas updated in the API. For a comprehensive list of changes since the 2.4.3 release, visit the Release Notes for 2.4.4 document.
Release Highlights
Dependency Management changes
Starting with this release, the ArcGIS API for Python includes the arcgis-geometry package, a high-performance backend library written in Rust to deliver faster execution, improved memory efficiency, and greater reliability. Rust-based geometry processing is enabled by default across all geometry object operations. No need to update 2.4.3 code that uses the arcgis.geometry module, just run your code.
New arcgis.ai module functions
Note: These new functions in the arcgis.ai module currently depend on ArcGIS Online services that are still in beta and are expected to transition to general availability in a future release. These services may also incur ArcGIS Online credit usage for transactions made through the arcgis.ai module once they graduate from beta to general release in the future.
In addition to the functions that have transitioned to General Availablity, analyze_text(), translate(), and analyze_image(), the 2.4.4 release introduces four new beta functions to explore AI capabilities:
image_exract_text()- to pull out text from image filesgenerate_speech()- create speech from text datatranscribe_audio()- write out what's recoreded in an audio fileanalyze_file()- examine the contents of files and documents
These capabilities will not just be available for use with ArcGIS Online organizations, but will also be accessible with the ArcGIS Enterprise 12.2 release. Esri operates these services so you can use the Python API to take advantage of their analysis and processing abilities.
Improvements to GIS Administration and Content Management
Performance and efficiency improvements abound at the 2.4.4 release, including numerous updates to internal processing functions to avoid unnecessary and time-consuming calls to external services, as well as eliminating operations that tried to resolve private urls when security mechanisms did not require them. The new UserManager.all() method provides the capability to return all users in an organization even when that number exceeds the 10000 limit for pagination. Major updates to the OfflineContentManager introduce the capability to export and import content asynchronously to avoid idle time while processing large amounts of content or extremely complicated items. Since it integrates with the processing capabilities of the arcgis.apps.itemgraph module, services are validated and included within internal processing dependency graphs, providing more accurate representations of how items, applications, and services are connected. In addition, now KnowledgeGraph items are explicitly supported with this class to enable cloning of these items. Various LogManager.query() methods were updated in numerous arcgis.gis submodules, including arcgis.gis.mission and arcgis.gis.nb, to allow for more options when specifying start_time and end_time values. New classes, methods, and models were added to the arcgis.graph module to enable synchronization workflows with KnowledgeGraphs.
Enhancements in Mapping Capabilities and Visualization
An reorganizaiton of the SmartMapping functionality presents new documentation subheadings within the arcgis.map module. The Smart Mapping subheading groups the SmartMappingManager and various data models (objects which function like classes). These objects simplify inputs for visualizing data in the map widget while also providing validation before runtime to avoid errors. The Smart Mapping Enumerations provide member objects to assist in the creation of new RendererParam objects for input to the SmartMappingManager.create_renderer() method so as to inject data validation before sending requests to the server for quicker error catching. The goal of introducing these new classes is to simplify the creation of the numerous rendering options that the Python API map widget provides through its integration with the latest release of the ArcGIS Maps SDK for Javascript.
Updates to Core GIS Functionality
Enhanced documentation, particularly with more code examples for initializing class objects and analysis functions, increases the accuracy of code results produced from ai agents being asked questions about the Python API. See the FeatureLayer, FeatureLayerCollection, ParcelFabricManager, and various arcgis.features.analysis API reference pages for examples of the type of updates being made to increase accuracy of AI agent code. The ContentManager.create_service() and Item.update() methods have been enhanced to allow sharing with groups when the item_properties argument is configured appropriately. Updates to the SharingManager have improved performance when accessing and setting properties. In addition, modifications to the Folder class's add() and list() methods create and retrieve content more reliably and quickly.
Additional Details
Documentation updates in the arcgis.graph module
The new Replica-Synchronization Types API Reference section of the module fully documents new classes for working with inputs and responses of the new KnowledgeGraph.create_replica(), KnowledgeGraph.sychronize_replica(), KnowledgeGraph.get_replica_definition(), and KnowledgeGraph.unregister_replica() methods.
OfflineContentManager Improvements
A series of internal processing changes results in overall performance improvement for the methods of these objects. There is an expanced range of items that can be cloned, such that nearly all item types can be exported and imported.
Improvemens in the arcgis.apps.itemgraph module
Dependency graphing now includes standalone services and internal processing changes bring about an overall peformance improvement to objects and functions within this module. Item graphs are aligned with the new related items provided in ArcGIS Online.
General Availability for the arcgis.raster.realitymapping module
The arcgis.raster.realitymapping module will function reliably when ArcGIS Reality Server transitions to General Availability with the release of ArcGIS Enterprise 12.2. Classes, properties, and methods will not change between releases such to cause any breaking change in code.
Updates in the arcgis.layers module
The 2.4.4 release is focused on providing fully functional caching workflows with the introduction of new methods for cache and tile management to the EnterpriseMapImageLayerManager class. Documentation updates elaborate on initialization of Map Service layer objects, and add narrative descriptions to better detail concepts and usage for the classes within the module.