<div dir="ltr"><div><div dir="ltr"><span style="font-size:13.33px;font-variant-numeric:normal;font-variant-east-asian:normal">Hi Everyone,</span></div><div dir="ltr" style="font-variant-numeric:normal;font-variant-east-asian:normal;font-size:13.33px"><br>This is my report for the period (July 13 - July 19). The updated report can also be found at the project wiki page <a href="https://wiki.osgeo.org/wiki/GSoC_2020_Develop_CQL_Filter_implementation_for_pygeoapi" target="_blank">https://wiki.osgeo.org/wiki/GSoC_2020_Develop_CQL_Filter_implementation_for_pygeoapi</a>. The forked repo of the project can be found here <a href="https://github.com/FarheenB/pygeoapi" target="_blank">https://github.com/FarheenB/pygeoapi</a></div></div><div dir="ltr" style="font-variant-numeric:normal;font-variant-east-asian:normal;font-size:13.33px"><br></div><b style="font-family:sans-serif;font-size:14px">What I have done during this period?</b><br><ul style="margin:0.3em 0px 0px 1.6em;padding:0px;font-family:sans-serif;font-size:14px"><li style="margin-bottom:0.1em">Designed a filter class for generating AST of the CQL filter expression using pycql lexer and parser.</li><li style="margin-bottom:0.1em">Created evaluate.py file for evaluating AST using Recursive Descent Approach.</li><li style="margin-bottom:0.1em">Created filter.py file for defining all the filter evaluating functions to get filtered features.</li><li style="margin-bottom:0.1em">Defined a function for evaluating <b>AttributeExpression</b> of AST.</li><li style="margin-bottom:0.1em">Defined a function for evaluating <b>LiteralExpression</b> of AST.</li><li style="margin-bottom:0.1em">Defined a function for evaluating <b>CombinationConditionNode</b> of AST for logical operators like "AND" and "OR".</li><li style="margin-bottom:0.1em">Defined a function for evaluating <b>ComparisonPredicateNode</b> of AST for conditional operators like "<", ">", "=", "<=", ">=" and "<>".</li><li style="margin-bottom:0.1em">Successfully performed the desired CQL operation on CSV Provider Dataset and retrieved filtered feature dataset.</li><li style="margin-bottom:0.1em">Other query operations like start index, last index, page limit etc. are performed with the CQL query operations.</li><li style="margin-bottom:0.1em">Added unit test cases for combination and comparison operations.</li><li style="margin-bottom:0.1em">Successfully performed tests for Simple CQL filter expressions on CSV dataset('pygeoapi-test.csv').</li></ul><font face="sans-serif"><span style="font-size:14px"><br></span></font><b style="font-family:sans-serif;font-size:14px">What am I going to achieve for next week?</b><br><ul style="margin:0.3em 0px 0px 1.6em;padding:0px;font-family:sans-serif;font-size:14px"><li style="margin-bottom:0.1em">Define functions for evaluating NotConditionNode, BetweenPredicateNode, LikePredicateNode, ArithmeticExpressionNode, InPredicateNode, NullPredicateNode, TemporalPredicateNode, SpatialPredicateNode, and BBoxPredicateNode of AST.</li><li style="margin-bottom:0.1em">Perform the evaluation of CQL Filter expressions for other data providers of pygeoapi.</li><li style="margin-bottom:0.1em">Restructure filter class and make the implementation generic for all the data providers of pygeoapi.</li></ul><div><font face="sans-serif"><span style="font-size:14px"><br></span></font></div><b style="font-family:sans-serif;font-size:14px">Are there any blockers?</b><b style="font-family:sans-serif;font-size:14px"><br></b><ul style="margin:0.3em 0px 0px 1.6em;padding:0px;font-family:sans-serif;font-size:14px"><li style="margin-bottom:0.1em">No blockers for now</li></ul><div><font face="sans-serif"><span style="font-size:14px"><br></span></font></div><div><span style="font-variant-numeric:normal;font-variant-east-asian:normal;font-size:13.33px">Regards,</span><br style="font-variant-numeric:normal;font-variant-east-asian:normal;font-size:13.33px"><span style="font-variant-numeric:normal;font-variant-east-asian:normal;font-size:13.33px">Farheen Bano</span>  <font face="sans-serif"><span style="font-size:14px"><br></span></font></div></div>