Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Storing Attribute Types in _type_attributes #886

Merged
merged 21 commits into from
Aug 12, 2022
Merged

Conversation

Pushkar-Bhuse
Copy link
Collaborator

This PR fixes #835.

Description of changes

This PR introduces a new structure of _type_attributes of Data Store. The _type_attributes now store the type values of individual attributes of each entry in a Data Store. For example:

DataStore._type_attributes = {
"ft.onto.base_ontology.Document": {
                "attributes": {
                    "document_class": {"index": 4, "type": (list, (str,))},
                    "sentiment": {"index": 5, "type": (dict, (str, float))},
                    "classifications": {
                        "index": 6,
                        "type": (FDict, (str, Classification)),
                    },
                },
                "parent_class": set(),
            },
}

Possible influences of this PR.

Through this PR, getter methods of dataclass attributes could be more comprehensive and return values based on their respective types. This is particularly useful in the case where attributes of type Entry are only stored through their tid. Through this PR, it can be easy to distinguish these attributes from the ones stored as int.

Test Conducted

The tests were conducted on data_store_test, data_pack_test, data_store_serialization

@Pushkar-Bhuse Pushkar-Bhuse marked this pull request as draft July 22, 2022 22:43
@codecov
Copy link

codecov bot commented Jul 26, 2022

Codecov Report

Merging #886 (7172ce2) into master (8a61272) will increase coverage by 0.02%.
The diff coverage is 95.04%.

@@            Coverage Diff             @@
##           master     #886      +/-   ##
==========================================
+ Coverage   80.85%   80.88%   +0.02%     
==========================================
  Files         254      254              
  Lines       19460    19525      +65     
==========================================
+ Hits        15734    15792      +58     
- Misses       3726     3733       +7     
Impacted Files Coverage Δ
forte/data/ontology/top.py 78.09% <88.88%> (+0.21%) ⬆️
forte/data/data_store.py 93.30% <93.22%> (-0.21%) ⬇️
forte/common/constants.py 100.00% <100.00%> (ø)
forte/data/base_pack.py 75.65% <100.00%> (-0.51%) ⬇️
forte/data/ontology/code_generation_objects.py 92.29% <100.00%> (ø)
forte/data/ontology/core.py 76.86% <100.00%> (+0.08%) ⬆️
forte/data/ontology/ontology_code_generator.py 90.11% <100.00%> (+0.02%) ⬆️
tests/forte/data/data_store_serialization_test.py 98.30% <100.00%> (+0.09%) ⬆️
tests/forte/data/data_store_test.py 95.50% <100.00%> (+0.02%) ⬆️

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@Pushkar-Bhuse Pushkar-Bhuse changed the title Entry Storing Attribute Types in _type_attributes Jul 26, 2022
forte/data/data_store.py Outdated Show resolved Hide resolved
forte/common/constants.py Show resolved Hide resolved
forte/data/data_store.py Outdated Show resolved Hide resolved
forte/data/data_store.py Outdated Show resolved Hide resolved
forte/data/data_store.py Outdated Show resolved Hide resolved
forte/data/data_store.py Show resolved Hide resolved
forte/data/data_store.py Show resolved Hide resolved
forte/data/data_store.py Show resolved Hide resolved
tests/forte/data/data_store_serialization_test.py Outdated Show resolved Hide resolved
tests/forte/data/data_store_test.py Show resolved Hide resolved
@mylibrar mylibrar marked this pull request as ready for review August 3, 2022 22:54
tests/forte/data/data_store_serialization_test.py Outdated Show resolved Hide resolved
forte/data/ontology/top.py Show resolved Hide resolved
forte/data/ontology/top.py Show resolved Hide resolved
forte/data/ontology/ontology_code_generator.py Outdated Show resolved Hide resolved
forte/data/ontology/ontology_code_generator.py Outdated Show resolved Hide resolved
forte/data/data_store.py Outdated Show resolved Hide resolved
forte/data/data_store.py Outdated Show resolved Hide resolved
forte/data/base_pack.py Outdated Show resolved Hide resolved
forte/data/base_pack.py Outdated Show resolved Hide resolved
forte/data/data_store.py Show resolved Hide resolved
@hunterhector
Copy link
Member

In the future, for this type of more complex PR's , the better idea is to split out small steps and tackle them each one separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants