diff --git a/pynamodb/connection/base.py b/pynamodb/connection/base.py
index ac92ae0..bf425ef 100644
--- a/pynamodb/connection/base.py
+++ b/pynamodb/connection/base.py
@@ -95,6 +95,22 @@ class MetaTable(object):
                     break
         return self._hash_keyname
 
+    def get_key_names(self, index_name=None):
+        """
+        Returns the names of the primary key attributes and index key attributes (if index_name is specified)
+        """
+        key_names = [self.hash_keyname]
+        if self.range_keyname:
+            key_names.append(self.range_keyname)
+        if index_name is not None:
+            index_hash_keyname = self.get_index_hash_keyname(index_name)
+            if index_hash_keyname not in key_names:
+                key_names.append(index_hash_keyname)
+            index_range_keyname = self.get_index_range_keyname(index_name)
+            if index_range_keyname is not None and index_range_keyname not in key_names:
+                key_names.append(index_range_keyname)
+        return key_names
+
     def get_index_hash_keyname(self, index_name):
         """
         Returns the name of the hash key for a given index
diff --git a/pynamodb/connection/table.py b/pynamodb/connection/table.py
index 1e7a439..35f46bd 100644
--- a/pynamodb/connection/table.py
+++ b/pynamodb/connection/table.py
@@ -28,6 +28,12 @@ class TableConnection(object):
                                      max_retry_attempts=max_retry_attempts,
                                      base_backoff_ms=base_backoff_ms)
 
+    def get_meta_table(self, refresh=False):
+        """
+        Returns a MetaTable
+        """
+        return self.connection.get_meta_table(self.table_name, refresh=refresh)
+
     def delete_item(self, hash_key,
                     range_key=None,
                     condition=None,
diff --git a/pynamodb/pagination.py b/pynamodb/pagination.py
index 8f008e2..6f948b6 100644
--- a/pynamodb/pagination.py
+++ b/pynamodb/pagination.py
@@ -35,6 +35,16 @@ class PageIterator(object):
     def next(self):
         return self.__next__()
 
+    @property
+    def key_names(self):
+        # If the current page has a last_evaluated_key, use it to determine key attributes
+        if self._last_evaluated_key:
+            return self._last_evaluated_key.keys()
+
+        # Use the table meta data to determine the key attributes
+        table_meta = self._operation.im_self.get_meta_table()
+        return table_meta.get_key_names(self._kwargs.get('index_name'))
+
     @property
     def page_size(self):
         return self._kwargs.get('limit')
@@ -100,7 +110,20 @@ class ResultIterator(object):
 
     @property
     def last_evaluated_key(self):
-        return self.page_iter.last_evaluated_key
+        if self._first_iteration:
+            # Not started iterating yet: there cannot be a last_evaluated_key
+            return None
+
+        if self._index == self._count:
+            # Entire page has been consumed: last_evaluated_key is whatever DynamoDB returned
+            # It may correspond to the current item, or it may correspond to an item evaluated but not returned.
+            return self.page_iter.last_evaluated_key
+
+        # In the middle of a page of results: reconstruct a last_evaluated_key from the current item
+        # The operation should be resumed starting at the last item returned, not the last item evaluated.
+        # This can occur if the 'limit' is reached in the middle of a page.
+        item = self._items[self._index - 1]
+        return dict((key, item[key]) for key in self.page_iter.key_names)
 
     @property
     def total_count(self):

Last Evaluated Key and Limited Queries/Scans
The `last_evaluated_key` value returns whatever was last evaluated for the current result page. When limiting the query but not setting the page size to the limit, the value does not represent the last item returned by the iterator.
diff --git a/pynamodb/tests/test_base_connection.py b/pynamodb/tests/test_base_connection.py
index 4095d6c..b9b33fa 100644
--- a/pynamodb/tests/test_base_connection.py
+++ b/pynamodb/tests/test_base_connection.py
@@ -6,10 +6,12 @@ import json
 import six
 from pynamodb.compat import CompatTestCase as TestCase
 from pynamodb.connection import Connection
+from pynamodb.connection.base import MetaTable
 from botocore.vendored import requests
 from pynamodb.exceptions import (VerboseClientError,
     TableError, DeleteError, UpdateError, PutError, GetError, ScanError, QueryError, TableDoesNotExist)
-from pynamodb.constants import DEFAULT_REGION, UNPROCESSED_ITEMS, STRING_SHORT, BINARY_SHORT, DEFAULT_ENCODING
+from pynamodb.constants import (
+    DEFAULT_REGION, UNPROCESSED_ITEMS, STRING_SHORT, BINARY_SHORT, DEFAULT_ENCODING, TABLE_KEY)
 from pynamodb.expressions.operand import Path
 from pynamodb.tests.data import DESCRIBE_TABLE_DATA, GET_ITEM_DATA, LIST_TABLE_DATA
 from pynamodb.tests.deep_eq import deep_eq
@@ -25,6 +27,23 @@ else:
 PATCH_METHOD = 'pynamodb.connection.Connection._make_api_call'
 
 
+class MetaTableTestCase(TestCase):
+    """
+    Tests for the meta table class
+    """
+
+    def setUp(self):
+        self.meta_table = MetaTable(DESCRIBE_TABLE_DATA.get(TABLE_KEY))
+
+    def test_get_key_names(self):
+        key_names = self.meta_table.get_key_names()
+        self.assertEqual(key_names, ["ForumName", "Subject"])
+
+    def test_get_key_names_index(self):
+        key_names = self.meta_table.get_key_names("LastPostIndex")
+        self.assertEqual(key_names, ["ForumName", "Subject", "LastPostDateTime"])
+
+
 class ConnectionTestCase(TestCase):
     """
     Tests for the base connection class
diff --git a/pynamodb/tests/test_model.py b/pynamodb/tests/test_model.py
index f0ac212..ab93c07 100644
--- a/pynamodb/tests/test_model.py
+++ b/pynamodb/tests/test_model.py
@@ -2125,9 +2125,9 @@ class ModelTestCase(TestCase):
                 items.append(item)
 
             req.side_effect = [
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': 'x'},
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': 'y'},
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[20:30], 'LastEvaluatedKey': 'z'},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': {'user_id': 'x'}},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': {'user_id': 'y'}},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[20:30], 'LastEvaluatedKey': {'user_id': 'z'}},
             ]
             results_iter = UserModel.query('foo', limit=25)
             results = list(results_iter)
@@ -2136,7 +2136,7 @@ class ModelTestCase(TestCase):
             self.assertEquals(req.mock_calls[0][1][1]['Limit'], 25)
             self.assertEquals(req.mock_calls[1][1][1]['Limit'], 25)
             self.assertEquals(req.mock_calls[2][1][1]['Limit'], 25)
-            self.assertEquals(results_iter.last_evaluated_key, 'z')
+            self.assertEquals(results_iter.last_evaluated_key, {'user_id': items[24]['user_id']})
             self.assertEquals(results_iter.total_count, 30)
             self.assertEquals(results_iter.page_iter.total_scanned_count, 60)
 
@@ -2153,9 +2153,9 @@ class ModelTestCase(TestCase):
                 items.append(item)
 
             req.side_effect = [
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': 'x'},
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': 'y'},
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[20:30], 'LastEvaluatedKey': 'z'},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': {'user_id': 'x'}},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': {'user_id': 'y'}},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[20:30], 'LastEvaluatedKey': {'user_id': 'x'}},
             ]
             results_iter = UserModel.query('foo', limit=25, page_size=10)
             results = list(results_iter)
@@ -2164,7 +2164,7 @@ class ModelTestCase(TestCase):
             self.assertEquals(req.mock_calls[0][1][1]['Limit'], 10)
             self.assertEquals(req.mock_calls[1][1][1]['Limit'], 10)
             self.assertEquals(req.mock_calls[2][1][1]['Limit'], 10)
-            self.assertEquals(results_iter.last_evaluated_key, 'z')
+            self.assertEquals(results_iter.last_evaluated_key, {'user_id': items[24]['user_id']})
             self.assertEquals(results_iter.total_count, 30)
             self.assertEquals(results_iter.page_iter.total_scanned_count, 60)
 
@@ -2181,8 +2181,8 @@ class ModelTestCase(TestCase):
                 items.append(item)
 
             req.side_effect = [
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': 'x'},
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': 'y'},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': {'user_id': 'x'}},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': {'user_id': 'y'}},
                 {'Count': 10, 'ScannedCount': 20, 'Items': items[20:30]},
             ]
             results_iter = UserModel.query('foo', limit=50)
@@ -2209,8 +2209,8 @@ class ModelTestCase(TestCase):
                 items.append(item)
 
             req.side_effect = [
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': 'x'},
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': 'y'},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': {'user_id': 'x'}},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': {'user_id': 'y'}},
                 {'Count': 10, 'ScannedCount': 20, 'Items': items[20:30]},
             ]
             results_iter = UserModel.query('foo', limit=50, page_size=10)
@@ -2545,9 +2545,9 @@ class ModelTestCase(TestCase):
                 items.append(item)
 
             req.side_effect = [
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': 'x'},
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': 'y'},
-                {'Count': 10, 'ScannedCount': 20, 'Items': items[20:30], 'LastEvaluatedKey': 'z'},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[:10], 'LastEvaluatedKey': {'user_id': 'x'}},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[10:20], 'LastEvaluatedKey': {'user_id': 'y'}},
+                {'Count': 10, 'ScannedCount': 20, 'Items': items[20:30], 'LastEvaluatedKey': {'user_id': 'z'}},
             ]
             results_iter = UserModel.scan(limit=25, page_size=10)
             results = list(results_iter)
@@ -2556,7 +2556,7 @@ class ModelTestCase(TestCase):
             self.assertEquals(req.mock_calls[0][1][1]['Limit'], 10)
             self.assertEquals(req.mock_calls[1][1][1]['Limit'], 10)
             self.assertEquals(req.mock_calls[2][1][1]['Limit'], 10)
-            self.assertEquals(results_iter.last_evaluated_key, 'z')
+            self.assertEquals(results_iter.last_evaluated_key, {'user_id': items[24]['user_id']})
             self.assertEquals(results_iter.total_count, 30)
             self.assertEquals(results_iter.page_iter.total_scanned_count, 60)
 

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-mock
apt-get update apt-get install -y gcc
3.6
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
botocore==1.2.0
certifi==2021.5.30
coverage==6.2
docutils==0.18.1
importlib-metadata==4.8.3
iniconfig==1.1.1
jmespath==0.7.1
packaging==21.3
pluggy==1.0.0
py==1.11.0
-e git+https://github.com/pynamodb/PynamoDB.git@1828bda52376a4b0313146b64ffb447e5392f467#egg=pynamodb
pyparsing==3.1.4
pytest==7.0.1
pytest-cov==4.0.0
pytest-mock==3.6.1
python-dateutil==2.9.0.post0
six==1.9.0
tomli==1.2.3
typing_extensions==4.1.1
zipp==3.6.0

name: PynamoDB
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - botocore==1.2.0
      - coverage==6.2
      - docutils==0.18.1
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - jmespath==0.7.1
      - packaging==21.3
      - pluggy==1.0.0
      - py==1.11.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - pytest-mock==3.6.1
      - python-dateutil==2.9.0.post0
      - six==1.9.0
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - zipp==3.6.0
prefix: /opt/conda/envs/PynamoDB

pynamodb/tests/test_base_connection.py::MetaTableTestCase::test_get_key_names pynamodb/tests/test_base_connection.py::MetaTableTestCase::test_get_key_names_index pynamodb/tests/test_model.py::ModelTestCase::test_query_limit_less_than_available_and_page_size pynamodb/tests/test_model.py::ModelTestCase::test_query_limit_less_than_available_items_multiple_page pynamodb/tests/test_model.py::ModelTestCase::test_scan_limit_with_page_size
pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_create_connection
pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_batch_get_item pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_batch_write_item pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_create_prepared_request pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_create_table pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_delete_item pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_delete_table pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_describe_table pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_get_expected_map pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_get_item pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_get_query_filter_map pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_handle_binary_attributes_for_unprocessed_items pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_handle_binary_attributes_for_unprocessed_keys pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_list_tables pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_make_api_call_retries_properly pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_make_api_call_throws_retry_disabled pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_make_api_call_throws_verbose_error_after_backoff pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_make_api_call_throws_verbose_error_after_backoff_later_succeeds pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_make_api_call_throws_when_retries_exhausted pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_put_item pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_query pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_rate_limited_scan pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_rate_limited_scan_retries_max_sleep pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_rate_limited_scan_retries_min_sleep pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_rate_limited_scan_retries_on_rate_unavailable pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_rate_limited_scan_retries_on_rate_unavailable_within_s pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_rate_limited_scan_retries_timeout pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_ratelimited_scan_exception_on_max_threshold pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_ratelimited_scan_raises_non_client_error pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_ratelimited_scan_raises_other_client_errors pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_ratelimited_scan_retries_on_throttling pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_ratelimited_scan_with_pagination_ends pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_scan pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_subsequent_client_is_cached_when_credentials_truthy pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_subsequent_client_is_not_cached_when_credentials_none pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_update_item pynamodb/tests/test_base_connection.py::ConnectionTestCase::test_update_table pynamodb/tests/test_model.py::ModelTestCase::test_batch_get pynamodb/tests/test_model.py::ModelTestCase::test_batch_write pynamodb/tests/test_model.py::ModelTestCase::test_batch_write_with_unprocessed pynamodb/tests/test_model.py::ModelTestCase::test_car_model_retrieve_from_db pynamodb/tests/test_model.py::ModelTestCase::test_car_model_with_null_retrieve_from_db pynamodb/tests/test_model.py::ModelTestCase::test_complex_key pynamodb/tests/test_model.py::ModelTestCase::test_complex_model_is_complex pynamodb/tests/test_model.py::ModelTestCase::test_complex_model_retrieve_from_db pynamodb/tests/test_model.py::ModelTestCase::test_conditional_operator_map_attribute pynamodb/tests/test_model.py::ModelTestCase::test_count pynamodb/tests/test_model.py::ModelTestCase::test_count_no_hash_key pynamodb/tests/test_model.py::ModelTestCase::test_create_model pynamodb/tests/test_model.py::ModelTestCase::test_delete pynamodb/tests/test_model.py::ModelTestCase::test_delete_doesnt_do_validation_on_null_attributes pynamodb/tests/test_model.py::ModelTestCase::test_deserializing_map_four_layers_deep_works pynamodb/tests/test_model.py::ModelTestCase::test_deserializing_new_style_bool_false_works pynamodb/tests/test_model.py::ModelTestCase::test_deserializing_new_style_bool_true_works pynamodb/tests/test_model.py::ModelTestCase::test_deserializing_old_style_bool_false_works pynamodb/tests/test_model.py::ModelTestCase::test_deserializing_old_style_bool_true_works pynamodb/tests/test_model.py::ModelTestCase::test_dumps pynamodb/tests/test_model.py::ModelTestCase::test_explicit_raw_map_serialize_pass pynamodb/tests/test_model.py::ModelTestCase::test_filter_count pynamodb/tests/test_model.py::ModelTestCase::test_get pynamodb/tests/test_model.py::ModelTestCase::test_global_index pynamodb/tests/test_model.py::ModelTestCase::test_index_count pynamodb/tests/test_model.py::ModelTestCase::test_index_multipage_count pynamodb/tests/test_model.py::ModelTestCase::test_index_queries pynamodb/tests/test_model.py::ModelTestCase::test_invalid_car_model_with_null_retrieve_from_db pynamodb/tests/test_model.py::ModelTestCase::test_invalid_map_model_raises pynamodb/tests/test_model.py::ModelTestCase::test_list_of_map_works_like_list_of_map pynamodb/tests/test_model.py::ModelTestCase::test_list_works_like_list pynamodb/tests/test_model.py::ModelTestCase::test_loads pynamodb/tests/test_model.py::ModelTestCase::test_loads_complex_model pynamodb/tests/test_model.py::ModelTestCase::test_local_index pynamodb/tests/test_model.py::ModelTestCase::test_model_attrs pynamodb/tests/test_model.py::ModelTestCase::test_model_subclass_attributes_inherited_on_create pynamodb/tests/test_model.py::ModelTestCase::test_model_with_invalid_data_does_not_validate pynamodb/tests/test_model.py::ModelTestCase::test_model_with_list pynamodb/tests/test_model.py::ModelTestCase::test_model_with_list_of_map pynamodb/tests/test_model.py::ModelTestCase::test_model_with_list_of_map_retrieve_from_db pynamodb/tests/test_model.py::ModelTestCase::test_model_with_list_retrieve_from_db pynamodb/tests/test_model.py::ModelTestCase::test_model_with_maps pynamodb/tests/test_model.py::ModelTestCase::test_model_with_maps_retrieve_from_db pynamodb/tests/test_model.py::ModelTestCase::test_model_with_maps_with_nulls_retrieve_from_db pynamodb/tests/test_model.py::ModelTestCase::test_model_with_maps_with_pythonic_attributes pynamodb/tests/test_model.py::ModelTestCase::test_model_with_nulls_validates pynamodb/tests/test_model.py::ModelTestCase::test_model_works_like_model pynamodb/tests/test_model.py::ModelTestCase::test_multiple_indices_share_non_key_attribute pynamodb/tests/test_model.py::ModelTestCase::test_new_style_boolean_serializes_as_bool pynamodb/tests/test_model.py::ModelTestCase::test_old_style_boolean_serializes_as_bool pynamodb/tests/test_model.py::ModelTestCase::test_old_style_model_exception pynamodb/tests/test_model.py::ModelTestCase::test_overidden_defaults pynamodb/tests/test_model.py::ModelTestCase::test_overidden_session pynamodb/tests/test_model.py::ModelTestCase::test_overridden_attr_name pynamodb/tests/test_model.py::ModelTestCase::test_projections pynamodb/tests/test_model.py::ModelTestCase::test_query pynamodb/tests/test_model.py::ModelTestCase::test_query_limit_greater_than_available_items_and_page_size pynamodb/tests/test_model.py::ModelTestCase::test_query_limit_greater_than_available_items_multiple_page pynamodb/tests/test_model.py::ModelTestCase::test_query_limit_greater_than_available_items_single_page pynamodb/tests/test_model.py::ModelTestCase::test_query_limit_identical_to_available_items_single_page pynamodb/tests/test_model.py::ModelTestCase::test_rate_limited_scan pynamodb/tests/test_model.py::ModelTestCase::test_raw_map_as_sub_map pynamodb/tests/test_model.py::ModelTestCase::test_raw_map_as_sub_map_deserialize pynamodb/tests/test_model.py::ModelTestCase::test_raw_map_as_sub_map_from_raw_data_works pynamodb/tests/test_model.py::ModelTestCase::test_raw_map_as_sub_map_serialize_pass pynamodb/tests/test_model.py::ModelTestCase::test_raw_map_deserializes pynamodb/tests/test_model.py::ModelTestCase::test_raw_map_from_raw_data_works pynamodb/tests/test_model.py::ModelTestCase::test_raw_map_serialize_fun_one pynamodb/tests/test_model.py::ModelTestCase::test_refresh pynamodb/tests/test_model.py::ModelTestCase::test_result_set_init pynamodb/tests/test_model.py::ModelTestCase::test_result_set_iter pynamodb/tests/test_model.py::ModelTestCase::test_save pynamodb/tests/test_model.py::ModelTestCase::test_scan pynamodb/tests/test_model.py::ModelTestCase::test_scan_limit pynamodb/tests/test_model.py::ModelTestCase::test_update pynamodb/tests/test_model.py::ModelTestCase::test_update_item pynamodb/tests/test_model.py::ModelInitTestCase::test_raw_map_attribute_with_dict_init pynamodb/tests/test_model.py::ModelInitTestCase::test_raw_map_attribute_with_initialized_instance_init pynamodb/tests/test_model.py::ModelInitTestCase::test_subclassed_map_attribute_with_dict_init pynamodb/tests/test_model.py::ModelInitTestCase::test_subclassed_map_attribute_with_initialized_instance_init pynamodb/tests/test_model.py::ModelInitTestCase::test_subclassed_map_attribute_with_map_attribute_member_with_initialized_instance_init pynamodb/tests/test_model.py::ModelInitTestCase::test_subclassed_map_attribute_with_map_attributes_member_with_dict_init
pynamodb/pagination.py pynamodb/connection/table.py pynamodb/connection/base.py
pynamodb/pagination.py pynamodb/connection/table.py pynamodb/connection/base.py