Skip to content

πŸš€πŸ˜„ 2.0.0 New Filters and Capabilities to create your own filters

Latest

Choose a tag to compare

@elchicodepython elchicodepython released this 27 Apr 21:04
· 8 commits to master since this release

What's Changed

New filters and capabilities to create your own filters and filter factories.

Available filters

  • EqFilter
  • EqualFilter (Alias of EqFilter)
  • NotEqualFilter
  • GreaterThanFilter
  • GreaterOrEqualFilter
  • LessThanFilter
  • LessOrEqualFilter
  • LikeFilter

Using custom filters

Nocodb is evolving and new operators are coming with each release.

Most of the basic operations are inside this package but you could need some new
feature that could not be added yet.
For those filters you can build your own.

Example for basic filters:

from nocodb.filters.factory import basic_filter_class_factory BasicFilter = basic_filter_class_factory('=') table_rows = client.table_row_list(project, table_name, BasicFilter('age', '16'))

You can find the updated list of all the available nocodb operators here.

In some cases you might want to write your own filter string as described in the previous link.
For that cases you can use the less-semmantic RawFilter.

from nocodb.filters.raw_filter import RawFilter table_rows = client.table_row_list(project, table_name, RawFilter('(birthday,eq,exactDate,2023-06-01)'))

In some cases we might want to have a file with some custom raw filters already defined by us.
We can easily create custom raw filter classes using raw_template_filter_class_factory.

from nocodb.filters.factory import raw_template_filter_class_factory BirthdayDateFilter = raw_template_filter_class_factory('(birthday,eq,exactDate,{})') ExactDateEqFilter = raw_template_filter_class_factory('({},eq,exactDate,{})') ExactDateOpFilter = raw_template_filter_class_factory('({},{op},exactDate,{})') table_rows = client.table_row_list(project, table_name, BirthdayDateFilter('2023-06-01')) table_rows = client.table_row_list(project, table_name, ExactDateEqFilter('column', '2023-06-01')) table_rows = client.table_row_list(project, table_name, ExactDateOpFilter('column', '2023-06-01', op='eq'))
from nocodb import filters # Basic filters... nick_filter = filters.EqFilter("nickname", "elchicodepython") country_filter = filters.EqFilter("country", "es") girlfriend_code = filters.EqFilter("gfcode", "404") current_mood_code = filters.EqFilter("moodcode", "418") # Combining filters using logical filters or_filter = filters.Or(nick_filter, country_filter) and_filter = filters.And(girlfriend_code, current_mood_code) # Negating filters with a Not filter not_me = filters.Not(filters.EqFilter("nickname", "elchicodepython")) # You can also combine combinations or_combined_filter = filters.Or(or_filter, and_filter) and_combined_filter = filters.And(or_filter, and_filter)