)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"e4ef9c2ca4d57ad0d12ed98e2c28aff9aa6462c6","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Manpreet Kaur \u003ckaurmanpreet2620@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-07-08 21:00:46 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix migration for sqlalchemy 1.4"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch fixes a database migration for sqlalchemy 1.4."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5c231489_06545de4","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":28},"updated":"2021-07-09 08:31:45.000000000","message":"I think it is better to be unified to SQLAlchemy.","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"091bd54cff87c3bde2b5d18467723a013dbff1f0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Manpreet Kaur \u003ckaurmanpreet2620@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-07-08 21:00:46 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix migration for sqlalchemy 1.4"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch fixes a database migration for sqlalchemy 1.4."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1a4b1d6d_a4f5f033","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":28},"in_reply_to":"5c231489_06545de4","updated":"2021-07-09 09:35:00.000000000","message":"Done","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"e4ef9c2ca4d57ad0d12ed98e2c28aff9aa6462c6","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix migration for sqlalchemy 1.4"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch fixes a database migration for sqlalchemy 1.4."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In tacker repository following issues are encounter:"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9a8ddbfd_0c97c877","line":9,"range":{"start_line":9,"start_character":42,"end_line":9,"end_character":52},"updated":"2021-07-09 08:31:45.000000000","message":"ditto.","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"091bd54cff87c3bde2b5d18467723a013dbff1f0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix migration for sqlalchemy 1.4"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch fixes a database migration for sqlalchemy 1.4."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In tacker repository following issues are encounter:"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"989650ea_92fac54f","line":9,"range":{"start_line":9,"start_character":42,"end_line":9,"end_character":52},"in_reply_to":"9a8ddbfd_0c97c877","updated":"2021-07-09 09:35:00.000000000","message":"Done","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"e4ef9c2ca4d57ad0d12ed98e2c28aff9aa6462c6","unresolved":true,"context_lines":[{"line_number":11,"context_line":"In tacker repository following issues are encounter:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"1. Replace deprecated SQLAlchemy \"with_lockmode\" method."},{"line_number":14,"context_line":"   The method was deprecated in sqlalchemy 0.9 [1][2]"},{"line_number":15,"context_line":"   and finally removed in version 1.4."},{"line_number":16,"context_line":"   This patch replaces \"with_lockmode\" with new method"},{"line_number":17,"context_line":"   \"with_for_update\", which has no end-user impact."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"ddade416_11fef98d","line":14,"range":{"start_line":14,"start_character":32,"end_line":14,"end_character":42},"updated":"2021-07-09 08:31:45.000000000","message":"ditto.","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"091bd54cff87c3bde2b5d18467723a013dbff1f0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"In tacker repository following issues are encounter:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"1. Replace deprecated SQLAlchemy \"with_lockmode\" method."},{"line_number":14,"context_line":"   The method was deprecated in sqlalchemy 0.9 [1][2]"},{"line_number":15,"context_line":"   and finally removed in version 1.4."},{"line_number":16,"context_line":"   This patch replaces \"with_lockmode\" with new method"},{"line_number":17,"context_line":"   \"with_for_update\", which has no end-user impact."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3379d2b4_e81321ff","line":14,"range":{"start_line":14,"start_character":32,"end_line":14,"end_character":42},"in_reply_to":"ddade416_11fef98d","updated":"2021-07-09 09:35:00.000000000","message":"Done","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"e4ef9c2ca4d57ad0d12ed98e2c28aff9aa6462c6","unresolved":true,"context_lines":[{"line_number":45,"context_line":"   This patch drops \"sqlalchemy_filters\" and add customize method"},{"line_number":46,"context_line":"   to apply filters in query."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The tacker-functional-devstack-multinode-legacy test were failing due"},{"line_number":49,"context_line":"to aodh-client exception, added depend on the patch [8]."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Note: This patch address sqlalchemy errors, SAWarnings will be resolve"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"44efeba2_e22fc34f","line":48,"range":{"start_line":48,"start_character":4,"end_line":48,"end_character":52},"updated":"2021-07-09 08:31:45.000000000","message":"To be precise, \"tacker-functional-devstack-multide-libs-master\" also failed.","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"091bd54cff87c3bde2b5d18467723a013dbff1f0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"   This patch drops \"sqlalchemy_filters\" and add customize method"},{"line_number":46,"context_line":"   to apply filters in query."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The tacker-functional-devstack-multinode-legacy test were failing due"},{"line_number":49,"context_line":"to aodh-client exception, added depend on the patch [8]."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Note: This patch address sqlalchemy errors, SAWarnings will be resolve"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7e411042_ffff220c","line":48,"range":{"start_line":48,"start_character":4,"end_line":48,"end_character":52},"in_reply_to":"44efeba2_e22fc34f","updated":"2021-07-09 09:35:00.000000000","message":"Done","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"}],"samples/vnf_packages/Definitions/helloworld3_df_simple.yaml":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"06c042257b5c32a878eb33ce54e757331ef774e6","unresolved":true,"context_lines":[{"line_number":91,"context_line":"          version: \u00270.5.2\u0027"},{"line_number":92,"context_line":"          checksum:"},{"line_number":93,"context_line":"            algorithm: sha-512"},{"line_number":94,"context_line":"            hash: 6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78"},{"line_number":95,"context_line":"          container_format: bare"},{"line_number":96,"context_line":"          disk_format: qcow2"},{"line_number":97,"context_line":"          min_disk: 1 GB"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"883f7df9_75b99c1d","line":94,"range":{"start_line":94,"start_character":12,"end_line":94,"end_character":146},"updated":"2021-06-30 00:59:31.000000000","message":"Need to change here and similar part of other VNFD.","commit_id":"a49e5aa9a9060fb5ecebb89019bce7fc6afd9305"}],"tacker/db/nfvo/nfvo_db_plugin.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"23367aa80a579cbeeb46945eff09587b56329288","unresolved":true,"context_lines":[{"line_number":159,"context_line":"                    vim_db.update("},{"line_number":160,"context_line":"                        {\u0027placement_attr\u0027: vim.get(\u0027placement_attr\u0027)})"},{"line_number":161,"context_line":"                vim_auth_db \u003d (self._model_query(context, nfvo_db.VimAuth)"},{"line_number":162,"context_line":"                        .filter(nfvo_db.VimAuth.vim_id \u003d\u003d vim_id)."},{"line_number":163,"context_line":"                        with_for_update().one())"},{"line_number":164,"context_line":"            except orm_exc.NoResultFound:"},{"line_number":165,"context_line":"                raise nfvo.VimNotFoundException(vim_id\u003dvim_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"92f90c6a_5d2a8fac","line":162,"range":{"start_line":162,"start_character":65,"end_line":162,"end_character":66},"updated":"2021-07-09 03:14:54.000000000","message":"nit, but It\u0027s better to keep a consistency for such a chain method. The period is better to put at the top of the next line.","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"091bd54cff87c3bde2b5d18467723a013dbff1f0","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                    vim_db.update("},{"line_number":160,"context_line":"                        {\u0027placement_attr\u0027: vim.get(\u0027placement_attr\u0027)})"},{"line_number":161,"context_line":"                vim_auth_db \u003d (self._model_query(context, nfvo_db.VimAuth)"},{"line_number":162,"context_line":"                        .filter(nfvo_db.VimAuth.vim_id \u003d\u003d vim_id)."},{"line_number":163,"context_line":"                        with_for_update().one())"},{"line_number":164,"context_line":"            except orm_exc.NoResultFound:"},{"line_number":165,"context_line":"                raise nfvo.VimNotFoundException(vim_id\u003dvim_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"a1b0bbd0_36fabbd3","line":162,"range":{"start_line":162,"start_character":65,"end_line":162,"end_character":66},"in_reply_to":"92f90c6a_5d2a8fac","updated":"2021-07-09 09:35:00.000000000","message":"Done","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"}],"tacker/objects/common.py":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"cc4184bceefa6f79310aa890ac8d7da118337c09","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"def apply_filters(query, model, **filters):"},{"line_number":18,"context_line":"    filter_dict \u003d {}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    for key, value in filters.items():"}],"source_content_type":"text/x-python","patch_set":4,"id":"e6b5adae_bb40eb42","line":17,"range":{"start_line":17,"start_character":25,"end_line":17,"end_character":41},"updated":"2021-06-25 07:51:54.000000000","message":"The argument does not seem to match the function it is used.\nThis causes the filter to appear to be not working properly.\n\ne.g. tacker/objects/vnf_package.py\nhttps://review.opendev.org/c/openstack/tacker/+/796160/4/tacker/objects/vnf_package.py#188\n```\nquery \u003d common.apply_filters(query, filters)\n```","commit_id":"43cd63aa0055a4e1c5ac98081cea504f619460d9"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"23367aa80a579cbeeb46945eff09587b56329288","unresolved":true,"context_lines":[{"line_number":16,"context_line":"from tacker.db.db_sqlalchemy import models"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def apply_filters(query, filters):"},{"line_number":20,"context_line":"    def apply_filter(query, filter):"},{"line_number":21,"context_line":"        field \u003d filter.get(\u0027field\u0027)"},{"line_number":22,"context_line":"        model \u003d filter.get(\u0027model\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"830f5a02_996f4511","line":19,"updated":"2021-07-09 03:14:54.000000000","message":"I\u0027d ask you to add docstring as same as sqlalchemy-filters[1]. If we remove sqlalchemy-filters support, we should explain the function is for SQLAlchemy objects clearly.\n\n[1] https://github.com/juliotrigo/sqlalchemy-filters/blob/master/sqlalchemy_filters/filters.py#L199","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"091bd54cff87c3bde2b5d18467723a013dbff1f0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from tacker.db.db_sqlalchemy import models"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def apply_filters(query, filters):"},{"line_number":20,"context_line":"    def apply_filter(query, filter):"},{"line_number":21,"context_line":"        field \u003d filter.get(\u0027field\u0027)"},{"line_number":22,"context_line":"        model \u003d filter.get(\u0027model\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"0a666410_2e380121","line":19,"in_reply_to":"830f5a02_996f4511","updated":"2021-07-09 09:35:00.000000000","message":"Done","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"23367aa80a579cbeeb46945eff09587b56329288","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def apply_filters(query, filters):"},{"line_number":20,"context_line":"    def apply_filter(query, filter):"},{"line_number":21,"context_line":"        field \u003d filter.get(\u0027field\u0027)"},{"line_number":22,"context_line":"        model \u003d filter.get(\u0027model\u0027)"},{"line_number":23,"context_line":"        value \u003d filter.get(\u0027value\u0027)"},{"line_number":24,"context_line":"        op \u003d filter.get(\u0027op\u0027)"},{"line_number":25,"context_line":"        model \u003d getattr(models, model)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5ba97e8b_6b8b1fa1","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":35},"updated":"2021-07-09 03:14:54.000000000","message":"It seems no need to have these two lines. Second one is confusing because `model` is defined again at L.25. It\u0027s better to change as follows.","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"091bd54cff87c3bde2b5d18467723a013dbff1f0","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def apply_filters(query, filters):"},{"line_number":20,"context_line":"    def apply_filter(query, filter):"},{"line_number":21,"context_line":"        field \u003d filter.get(\u0027field\u0027)"},{"line_number":22,"context_line":"        model \u003d filter.get(\u0027model\u0027)"},{"line_number":23,"context_line":"        value \u003d filter.get(\u0027value\u0027)"},{"line_number":24,"context_line":"        op \u003d filter.get(\u0027op\u0027)"},{"line_number":25,"context_line":"        model \u003d getattr(models, model)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dc4f5585_324e5604","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":35},"in_reply_to":"5ba97e8b_6b8b1fa1","updated":"2021-07-09 09:35:00.000000000","message":"Done","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"23367aa80a579cbeeb46945eff09587b56329288","unresolved":true,"context_lines":[{"line_number":22,"context_line":"        model \u003d filter.get(\u0027model\u0027)"},{"line_number":23,"context_line":"        value \u003d filter.get(\u0027value\u0027)"},{"line_number":24,"context_line":"        op \u003d filter.get(\u0027op\u0027)"},{"line_number":25,"context_line":"        model \u003d getattr(models, model)"},{"line_number":26,"context_line":"        column_attr \u003d getattr(model, field)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        if \u0027in\u0027 \u003d\u003d op:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1cc1f09c_1b4694c1","line":25,"updated":"2021-07-09 03:14:54.000000000","message":"```\nmodel \u003d getattr(models, filter.get(\u0027model\u0027))\n```","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"091bd54cff87c3bde2b5d18467723a013dbff1f0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        model \u003d filter.get(\u0027model\u0027)"},{"line_number":23,"context_line":"        value \u003d filter.get(\u0027value\u0027)"},{"line_number":24,"context_line":"        op \u003d filter.get(\u0027op\u0027)"},{"line_number":25,"context_line":"        model \u003d getattr(models, model)"},{"line_number":26,"context_line":"        column_attr \u003d getattr(model, field)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        if \u0027in\u0027 \u003d\u003d op:"}],"source_content_type":"text/x-python","patch_set":10,"id":"07c8889e_1918fa7e","line":25,"in_reply_to":"1cc1f09c_1b4694c1","updated":"2021-07-09 09:35:00.000000000","message":"Done","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"23367aa80a579cbeeb46945eff09587b56329288","unresolved":true,"context_lines":[{"line_number":23,"context_line":"        value \u003d filter.get(\u0027value\u0027)"},{"line_number":24,"context_line":"        op \u003d filter.get(\u0027op\u0027)"},{"line_number":25,"context_line":"        model \u003d getattr(models, model)"},{"line_number":26,"context_line":"        column_attr \u003d getattr(model, field)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        if \u0027in\u0027 \u003d\u003d op:"},{"line_number":29,"context_line":"            query \u003d query.filter(column_attr.in_(value))"}],"source_content_type":"text/x-python","patch_set":10,"id":"3cb99e42_632f22a5","line":26,"updated":"2021-07-09 03:14:54.000000000","message":"```\ncolumn_attr \u003d getattr(model, filter.get(\u0027field\u0027))\n```","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"091bd54cff87c3bde2b5d18467723a013dbff1f0","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        value \u003d filter.get(\u0027value\u0027)"},{"line_number":24,"context_line":"        op \u003d filter.get(\u0027op\u0027)"},{"line_number":25,"context_line":"        model \u003d getattr(models, model)"},{"line_number":26,"context_line":"        column_attr \u003d getattr(model, field)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        if \u0027in\u0027 \u003d\u003d op:"},{"line_number":29,"context_line":"            query \u003d query.filter(column_attr.in_(value))"}],"source_content_type":"text/x-python","patch_set":10,"id":"b2b041b1_c4e85d2a","line":26,"in_reply_to":"3cb99e42_632f22a5","updated":"2021-07-09 09:35:00.000000000","message":"Done","commit_id":"d182ff90fbb9d0f3b25c18a705ffbf92658f8873"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"fcb6c028fed2cb31207720cb0c8962ba09512024","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    :param filters: A dict or an iterable of dicts, where each one includes"},{"line_number":24,"context_line":"                    the necesary information to create a filter to be applied"},{"line_number":25,"context_line":"                    to the query. Example of query filters,"},{"line_number":26,"context_line":"                    filters \u003d [{\u0027model\u0027: \u0027Foo\u0027, \u0027field\u0027: \u0027name\u0027, \u0027op\u0027: \u0027\u003d\u003d\u0027,"},{"line_number":27,"context_line":"                    \u0027value\u0027: \u0027foo\u0027},]"},{"line_number":28,"context_line":"    \"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def apply_filter(query, filter):"}],"source_content_type":"text/x-python","patch_set":13,"id":"64aa0fca_430afdf1","line":27,"range":{"start_line":26,"start_character":20,"end_line":27,"end_character":37},"updated":"2021-07-09 23:57:08.000000000","message":"In my investigation, \u0027filters\u0027 may have two patterns as the following.\n1. single condition\n   {\u0027field\u0027: \u0027name\u0027, \u0027model\u0027: \u0027Foo\u0027, \u0027value\u0027: \u0027foo\u0027, \u0027op\u0027: \u0027\u003d\u003d\u0027}\n2. multiple conditions\n   {\u0027and\u0027: [\n     {\u0027field\u0027: \u0027name\u0027, \u0027model\u0027: \u0027Foo\u0027, \u0027value\u0027: \u0027foo\u0027, \u0027op\u0027: \u0027\u003d\u003d\u0027},\n     {\u0027field\u0027: \u0027id\u0027, \u0027model\u0027: \u0027Bar\u0027, \u0027value\u0027: \u0027bar\u0027, \u0027op\u0027: \u0027\u003d\u003d\u0027}\n    ]}","commit_id":"1ed425d0c0db578dfdcc899ad5d6d73627e58126"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"b7a1a57005ede789e60f998e55daa23b1fd2a3c5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    :param filters: A dict or an iterable of dicts, where each one includes"},{"line_number":24,"context_line":"                    the necesary information to create a filter to be applied"},{"line_number":25,"context_line":"                    to the query. Example of query filters,"},{"line_number":26,"context_line":"                    filters \u003d [{\u0027model\u0027: \u0027Foo\u0027, \u0027field\u0027: \u0027name\u0027, \u0027op\u0027: \u0027\u003d\u003d\u0027,"},{"line_number":27,"context_line":"                    \u0027value\u0027: \u0027foo\u0027},]"},{"line_number":28,"context_line":"    \"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def apply_filter(query, filter):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9634ad9f_9044ce74","line":27,"range":{"start_line":26,"start_character":20,"end_line":27,"end_character":37},"in_reply_to":"64aa0fca_430afdf1","updated":"2021-07-10 00:56:00.000000000","message":"Sorry I have accidently added docstring of filters from sqlalchmey_filters library,","commit_id":"1ed425d0c0db578dfdcc899ad5d6d73627e58126"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"b032dc547c09b568a35578d814441d29c16e9771","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    :param filters: A dict or an iterable of dicts, where each one includes"},{"line_number":24,"context_line":"                    the necesary information to create a filter to be applied"},{"line_number":25,"context_line":"                    to the query. Example of query filters,"},{"line_number":26,"context_line":"                    filters \u003d [{\u0027model\u0027: \u0027Foo\u0027, \u0027field\u0027: \u0027name\u0027, \u0027op\u0027: \u0027\u003d\u003d\u0027,"},{"line_number":27,"context_line":"                    \u0027value\u0027: \u0027foo\u0027},]"},{"line_number":28,"context_line":"    \"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def apply_filter(query, filter):"}],"source_content_type":"text/x-python","patch_set":13,"id":"e09bd6d0_b93de279","line":27,"range":{"start_line":26,"start_character":20,"end_line":27,"end_character":37},"in_reply_to":"9634ad9f_9044ce74","updated":"2021-07-10 04:13:26.000000000","message":"thanks! I have confirmed.","commit_id":"1ed425d0c0db578dfdcc899ad5d6d73627e58126"}]}
