While using the multiprocessing option, the data are tested as given.

Why do we need it?

Because sorted is better, we sort by default!

How does it work?


Want to read the code ? It’s here: Sort()!


This is the default one. The default python sorted() function is used for that purpose.


The objective of this is to provide sorting by service/domains.


This is a simplified version of what we actually do.

  1. Let’s say we have aaa.bbb.ccc.tdl.


    The TDL part is determined. Indeed we first look at the IANA Root Zone database, then at the Public Suffix List.

  2. Let’s split the points. We then get a list [aaa, bbb, ccc, tdl]

  3. Put the TDL first. It will gives us [tdl, aaa, bbb, ccc]

  4. Reverse everything after the TDL. It will gives us [tdl, ccc, bbb, aaa].

  5. Get the string to use for sorting. It will gives us

How to activate the hierarchical sorting?

Simply change

hierarchical_sorting: False


hierarchical_sorting: True

into your personal .PyFunceble.yaml or use the --hierarchical argument from the CLI to activate it.