Skip to content

Closes #5441: Remove deprecated modules#5442

Merged
ajpotts merged 1 commit intoBears-R-Us:mainfrom
ajpotts:5441_Remove_deprecated_modules
Feb 27, 2026
Merged

Closes #5441: Remove deprecated modules#5442
ajpotts merged 1 commit intoBears-R-Us:mainfrom
ajpotts:5441_Remove_deprecated_modules

Conversation

@ajpotts
Copy link
Contributor

@ajpotts ajpotts commented Feb 26, 2026

Summary

This PR completes a structural refactor of the Arkouda Python package
by:

  • Removing deprecated top-level legacy modules.
  • Redirecting imports to their canonical locations under:
    • arkouda.pandas
    • arkouda.numpy
    • arkouda.core
    • arkouda.scipy
  • Updating documentation, tests, and internal imports to reflect the
    new structure.

The goal is to eliminate transitional shims and finalize the namespace
reorganization.


Motivation

Historically, Arkouda exposed many modules at the top level (e.g.,
arkouda.dataframe, arkouda.groupbyclass, arkouda.util, etc.).
Over time, these were reorganized into clearer logical namespaces:

  • Pandas-like APIs → arkouda.pandas.*
  • NumPy-like APIs → arkouda.numpy.*
  • Core client/server utilities → arkouda.core.*
  • Sparse/scipy-related → arkouda.scipy.*

Deprecated compatibility modules remained as thin wrappers issuing
DeprecationWarnings.
This PR removes those wrappers and updates all references to their
canonical modules.


What Changed

1. Removed Deprecated Top-Level Modules

Deleted legacy modules such as:

  • arkouda.dataframe
  • arkouda.groupbyclass
  • arkouda.index
  • arkouda.categorical
  • arkouda.series
  • arkouda.util
  • arkouda.sorting
  • arkouda.random
  • arkouda.segarray
  • arkouda.strings
  • arkouda.timeclass
  • arkouda.io
  • arkouda.io_util
  • arkouda.row
  • arkouda.accessor
  • arkouda.numeric
  • arkouda.dtypes
  • arkouda.match, arkouda.matcher
  • arkouda.message
  • arkouda.security
  • arkouda.logger
  • arkouda.sparrayclass
  • arkouda.sparsematrix
  • arkouda.client
  • arkouda.pdarrayclass
  • arkouda.pdarraycreation
  • arkouda.pdarraymanipulation
  • arkouda.pdarraysetops
  • arkouda.alignment
  • arkouda.infoclass
  • arkouda.join

These modules previously re-exported symbols from their new locations
and emitted DeprecationWarnings.


2. Canonicalized Imports

All internal imports were updated to use the correct module paths, for
example:

Old Import New Import


arkouda.dataframe arkouda.pandas.dataframe
arkouda.groupbyclass arkouda.pandas.groupbyclass
arkouda.index arkouda.pandas.index
arkouda.categorical arkouda.pandas.categorical
arkouda.util arkouda.numpy.util
arkouda.sorting arkouda.numpy.sorting
arkouda.pdarraycreation arkouda.numpy.pdarraycreation
arkouda.infoclass arkouda.core.infoclass
arkouda.logger arkouda.core.logger

This affects: - Core library code - Pandas extension API - Tests -
Documentation - Training materials


3. Documentation Updates

Updated: - Sphinx autodoc references - Markdown documentation - Usage
guides - File I/O documentation - Training materials

All references now consistently point to:

  • arkouda.pandas.DataFrame
  • arkouda.pandas.Series
  • arkouda.pandas.Index
  • arkouda.pandas.Categorical
  • arkouda.numpy.* utilities

4. Tests Updated

All tests were updated to import from canonical module locations.
Assertions that referenced old module paths were updated accordingly.


Behavioral Impact

  • ❗ Code importing deprecated modules (e.g., arkouda.dataframe)
    will now fail instead of emitting a warning.
  • ✅ No runtime behavior of core functionality is changed.
  • ✅ No algorithmic or performance changes.
  • ✅ Public API remains available via canonical namespaces.

This is a namespace cleanup only.


Benefits

  • Eliminates confusing duplicate module paths.
  • Clarifies architectural boundaries:
    • Pandas API layer
    • NumPy API layer
    • Core infrastructure
  • Reduces maintenance burden.
  • Prepares the project for future API stabilization work.

Migration Guide

Replace old imports:

# OLD
from arkouda.dataframe import DataFrame
from arkouda.groupbyclass import GroupBy
from arkouda.util import register

# NEW
from arkouda.pandas.dataframe import DataFrame
from arkouda.pandas.groupbyclass import GroupBy
from arkouda.numpy.util import register

If using sparse functionality:

from arkouda.scipy.sparsematrix import create_sparse_matrix

Conclusion

This PR finalizes the Arkouda namespace refactor by removing deprecated
compatibility modules and standardizing all imports across the codebase.
It simplifies the package structure and clarifies the architectural
layering between pandas-style APIs, numpy-style APIs, and core
infrastructure.

Closes #5441: Remove deprecated modules

@ajpotts ajpotts force-pushed the 5441_Remove_deprecated_modules branch from 6464027 to f157a57 Compare February 26, 2026 17:33
@ajpotts ajpotts requested a review from jaketrookman February 26, 2026 17:34
@ajpotts ajpotts marked this pull request as ready for review February 26, 2026 17:34
@ajpotts ajpotts force-pushed the 5441_Remove_deprecated_modules branch from f157a57 to a0a0576 Compare February 26, 2026 19:31
@ajpotts ajpotts force-pushed the 5441_Remove_deprecated_modules branch from a0a0576 to b9e86e1 Compare February 26, 2026 19:33
Copy link
Contributor

@jaketrookman jaketrookman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

@ajpotts ajpotts added this pull request to the merge queue Feb 27, 2026
Merged via the queue into Bears-R-Us:main with commit 6f9ac12 Feb 27, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove deprecated modules

2 participants