You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
"""
 | 
						|
Tests for the pseudo-public API implemented in internals/api.py and exposed
 | 
						|
in core.internals
 | 
						|
"""
 | 
						|
 | 
						|
import pytest
 | 
						|
 | 
						|
import pandas as pd
 | 
						|
import pandas._testing as tm
 | 
						|
from pandas.core import internals
 | 
						|
from pandas.core.internals import api
 | 
						|
 | 
						|
 | 
						|
def test_internals_api():
 | 
						|
    assert internals.make_block is api.make_block
 | 
						|
 | 
						|
 | 
						|
def test_namespace():
 | 
						|
    # SUBJECT TO CHANGE
 | 
						|
 | 
						|
    modules = [
 | 
						|
        "blocks",
 | 
						|
        "concat",
 | 
						|
        "managers",
 | 
						|
        "construction",
 | 
						|
        "array_manager",
 | 
						|
        "base",
 | 
						|
        "api",
 | 
						|
        "ops",
 | 
						|
    ]
 | 
						|
    expected = [
 | 
						|
        "make_block",
 | 
						|
        "DataManager",
 | 
						|
        "ArrayManager",
 | 
						|
        "BlockManager",
 | 
						|
        "SingleDataManager",
 | 
						|
        "SingleBlockManager",
 | 
						|
        "SingleArrayManager",
 | 
						|
        "concatenate_managers",
 | 
						|
    ]
 | 
						|
 | 
						|
    result = [x for x in dir(internals) if not x.startswith("__")]
 | 
						|
    assert set(result) == set(expected + modules)
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize(
 | 
						|
    "name",
 | 
						|
    [
 | 
						|
        "NumericBlock",
 | 
						|
        "ObjectBlock",
 | 
						|
        "Block",
 | 
						|
        "ExtensionBlock",
 | 
						|
        "DatetimeTZBlock",
 | 
						|
    ],
 | 
						|
)
 | 
						|
def test_deprecations(name):
 | 
						|
    # GH#55139
 | 
						|
    msg = f"{name} is deprecated.* Use public APIs instead"
 | 
						|
    with tm.assert_produces_warning(DeprecationWarning, match=msg):
 | 
						|
        getattr(internals, name)
 | 
						|
 | 
						|
    if name not in ["NumericBlock", "ObjectBlock"]:
 | 
						|
        # NumericBlock and ObjectBlock are not in the internals.api namespace
 | 
						|
        with tm.assert_produces_warning(DeprecationWarning, match=msg):
 | 
						|
            getattr(api, name)
 | 
						|
 | 
						|
 | 
						|
def test_make_block_2d_with_dti():
 | 
						|
    # GH#41168
 | 
						|
    dti = pd.date_range("2012", periods=3, tz="UTC")
 | 
						|
    blk = api.make_block(dti, placement=[0])
 | 
						|
 | 
						|
    assert blk.shape == (1, 3)
 | 
						|
    assert blk.values.shape == (1, 3)
 | 
						|
 | 
						|
 | 
						|
def test_create_block_manager_from_blocks_deprecated():
 | 
						|
    # GH#33892
 | 
						|
    # If they must, downstream packages should get this from internals.api,
 | 
						|
    #  not internals.
 | 
						|
    msg = (
 | 
						|
        "create_block_manager_from_blocks is deprecated and will be "
 | 
						|
        "removed in a future version. Use public APIs instead"
 | 
						|
    )
 | 
						|
    with tm.assert_produces_warning(DeprecationWarning, match=msg):
 | 
						|
        internals.create_block_manager_from_blocks
 |