Skip to content

CLO-143: [GH-105] Add Collection.has_item(name) method to check item existence#108

Open
cloop-agent[bot] wants to merge 4 commits into
devfrom
cs/CLO-143-gh-105-add-collection-has-item-name-method-to-chec
Open

CLO-143: [GH-105] Add Collection.has_item(name) method to check item existence#108
cloop-agent[bot] wants to merge 4 commits into
devfrom
cs/CLO-143-gh-105-add-collection-has-item-name-method-to-chec

Conversation

@cloop-agent
Copy link
Copy Markdown

@cloop-agent cloop-agent Bot commented Apr 27, 2026

CLO-143: [GH-105] Add Collection.has_item(name) method to check item existence

Statement of Work

Why

Goal

What was done

Impact Analysis for 2 changed file(s)

Changed symbols (71)

  • class Collection in pystore/collection.py (lines 55-1066)
  • method Collection.__repr__ in pystore/collection.py (lines 56-57)
  • method Collection.__init__ in pystore/collection.py (lines 63-72)
  • method Collection.get_item_path in pystore/collection.py (lines 74-93)
  • method Collection._item_path in pystore/collection.py (lines 95-104)
  • method Collection._list_items_threaded in pystore/collection.py (lines 106-121)
  • method Collection.list_items in pystore/collection.py (lines 123-144)
  • method Collection.item in pystore/collection.py (lines 146-147)
  • method Collection.get_item_metadata in pystore/collection.py (lines 149-174)
  • method Collection.clear_metadata_cache in pystore/collection.py (lines 176-185)
  • method Collection.index in pystore/collection.py (lines 187-204)
  • method Collection.delete_item in pystore/collection.py (lines 206-220)
  • method Collection.set_validator in pystore/collection.py (lines 222-224)
  • method Collection.get_validator in pystore/collection.py (lines 226-228)
  • method Collection._validate_data in pystore/collection.py (lines 230-233)
  • method Collection.enable_schema_evolution in pystore/collection.py (lines 235-243)
  • method Collection.get_item_evolution in pystore/collection.py (lines 245-247)
  • method Collection.migrate_item_to_version in pystore/collection.py (lines 249-262)
  • method Collection.write_threaded in pystore/collection.py (lines 264-282)
  • method Collection._validate_write_item in pystore/collection.py (lines 284-290)
  • method Collection._prepare_write_data in pystore/collection.py (lines 292-298)
  • method Collection._apply_data_transformations in pystore/collection.py (lines 300-335)
  • method Collection._determine_partitioning in pystore/collection.py (lines 337-370)
  • method Collection._write_to_storage in pystore/collection.py (lines 372-392)
  • method Collection.write in pystore/collection.py (lines 394-449)
  • method Collection._validate_append_item in pystore/collection.py (lines 451-456)
  • method Collection._prepare_append_data in pystore/collection.py (lines 458-463)
  • method Collection._handle_schema_evolution in pystore/collection.py (lines 465-483)
  • method Collection._calculate_partitions in pystore/collection.py (lines 485-492)
  • method Collection._write_temporary_item in pystore/collection.py (lines 494-524)
  • method Collection._replace_item_with_temporary in pystore/collection.py (lines 526-533)
  • method Collection.append in pystore/collection.py (lines 535-685)
  • method Collection.create_snapshot in pystore/collection.py (lines 687-699)
  • method Collection.list_snapshots in pystore/collection.py (lines 701-705)
  • method Collection.delete_snapshot in pystore/collection.py (lines 707-720)
  • method Collection.delete_snapshots in pystore/collection.py (lines 722-727)
  • method Collection._validate_schema_compatibility in pystore/collection.py (lines 729-804)
  • method Collection.append_stream in pystore/collection.py (lines 806-923)
  • method Collection._flush_buffer in pystore/collection.py (lines 860-875)
  • method Collection.write_batch in pystore/collection.py (lines 925-1015)
  • method Collection.write_single in pystore/collection.py (lines 962-974)
  • method Collection.read_batch in pystore/collection.py (lines 1017-1066)
  • class TestCollection in tests/test_collection.py (lines 21-105)
  • method TestCollection.test_collection_creation in tests/test_collection.py (lines 24-27)
  • method TestCollection.test_collection_exists_error in tests/test_collection.py (lines 29-35)
  • method TestCollection.test_collection_overwrite in tests/test_collection.py (lines 37-46)
  • method TestCollection.test_delete_collection in tests/test_collection.py (lines 48-54)
  • method TestCollection.test_delete_nonexistent_collection in tests/test_collection.py (lines 56-59)
  • method TestCollection.test_rejects_invalid_collection_names in tests/test_collection.py (lines 62-68)
  • method TestCollection.test_list_items in tests/test_collection.py (lines 70-79)
  • method TestCollection.test_list_items_with_metadata_filter in tests/test_collection.py (lines 81-93)
  • method TestCollection.test_rejects_invalid_item_names in tests/test_collection.py (lines 96-105)
  • class TestAppendValidateSchemaTransformed in tests/test_collection.py (lines 108-229)
  • method TestAppendValidateSchemaTransformed.test_validate_schema_multiindex_append in tests/test_collection.py (lines 118-147)
  • method TestAppendValidateSchemaTransformed.test_validate_schema_category_column_append in tests/test_collection.py (lines 149-185)
  • method TestAppendValidateSchemaTransformed.test_validate_schema_interval_column_append in tests/test_collection.py (lines 187-213)
  • method TestAppendValidateSchemaTransformed.test_validate_schema_rejects_mismatched_columns in tests/test_collection.py (lines 215-229)
  • class TestMetadataCacheEviction in tests/test_collection.py (lines 232-294)
  • method TestMetadataCacheEviction.test_cache_eviction_occurs_beyond_max in tests/test_collection.py (lines 235-261)
  • method TestMetadataCacheEviction.test_clear_metadata_cache_specific_item in tests/test_collection.py (lines 263-280)
  • method TestMetadataCacheEviction.test_clear_metadata_cache_all in tests/test_collection.py (lines 282-294)
  • class TestOverwriteRecovery in tests/test_collection.py (lines 297-331)
  • method TestOverwriteRecovery.test_append_recovers_from_stale_tmp_item in tests/test_collection.py (lines 300-331)
  • class TestItemPathDeprecation in tests/test_collection.py (lines 334-354)
  • method TestItemPathDeprecation.test_item_path_emits_deprecation_warning in tests/test_collection.py (lines 337-346)
  • method TestItemPathDeprecation.test_item_path_as_string_emits_deprecation_warning in tests/test_collection.py (lines 348-354)
  • class TestWriteThreadedDeprecation in tests/test_collection.py (lines 357-378)
  • method TestWriteThreadedDeprecation.test_write_threaded_emits_deprecation_warning in tests/test_collection.py (lines 360-367)
  • method TestWriteThreadedDeprecation.test_write_threaded_overwrite_emits_deprecation_warning in tests/test_collection.py (lines 369-378)
  • class TestIndexEmptyGuard in tests/test_collection.py (lines 381-404)
  • method TestIndexEmptyGuard.test_index_last_empty_index_returns_none in tests/test_collection.py (lines 384-404)

Related tests (1)

  • tests/test_collection.py tests collection.py

Files importing changed modules (5)

  • pystore/store.py imports .collection
  • tests/test_validation.py imports pystore.collection
  • pystore/memory.py imports collections.abc
  • pystore/schema_evolution.py imports collections.abc
  • pystore/validation.py imports collections.abc
    Files changed (2)
  • pystore/collection.py
  • tests/test_collection.py

Review

Confidence Complexity
85/100 21/100

Validation

  • Tests passed during verification.

Created by Cloop

ranaroussi and others added 4 commits April 17, 2026 19:32
… item existence

Co-Authored-By: Cloop <3158731+cloop-dev[bot]@users.noreply.github.com>
Co-Authored-By: Cloop <3158731+cloop-dev[bot]@users.noreply.github.com>
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.

1 participant