2007/11/24, Jérôme <romjerome@yahoo.fr>:

I just have a minor "STEP family" issue on all_relations informations:

UNKNOWN relation type between FATHER and (STEP-MOTHER) returns the same
value as inlaw=True and step=False !!!

I try to use:

elif gender_b == gen.lib.Person.FEMALE and Ga < len(_mother_level):
                if inlaw and Ga == 1 and not step:
                    rel_str = "la mère du conjoint"
                elif step and Ga == 1 and not inlaw:
                    rel_str = "la belle-mère"
                    rel_str = self.get_mother(Ga, inlaw)

Yes, for siblings you will see the correct step value.
For people who are further away (nephews, ...), I have chosen on the all relationships to collapse families so father and stepmother is a family. If a person has a birth relation to one of the two, this is interpreted as a birth relation to the family, and you obtain hence step = False.

Note that step is false is only returned for people who have that family as common ancestors. I believe that is acceptable tradeoff so as not to add more complexity in the algorithms. That is the siblings at top level under common ancestors can be half siblings or step siblings. The half siblings would cause eg nephews (and not 3/4 nephews ;-) ), the step siblings would cause step siblings.
It would be complicated. Note further that all relationships gives in the details: Parents, birth Yes. So this means means birth to at least one parent.

I agree, it is not a second marriage, just an other spouse/partner.
> Traditionally, a stepfamily is the family one acquires when a parent enters a new marriage, whether the parent was widowed or divorced.

Does it mean that STEP is only for family_type = MARRIED and we ignore

STEP is for all relation types.  It depends only on the common ancestors of a family if it is given.