Sweden (se)

Forms

Swedish specific Form helpers.

class localflavor.se.forms.SECountySelect(attrs=None)[source]

A Select form widget that uses a list of the Swedish counties (län) as its choices.

The cleaned value is the official county code – see http://en.wikipedia.org/wiki/Counties_of_Sweden for a list.

class localflavor.se.forms.SEOrganisationNumberField(*, max_length=None, min_length=None, strip=True, empty_value='', **kwargs)[source]

A form field that validates input as a Swedish organisation number (organisationsnummer).

It accepts the same input as SEPersonalIdentityField (for sole proprietorships (enskild firma). However, co-ordination numbers are not accepted.

It also accepts ordinary Swedish organisation numbers with the format NNNNNNNNNN.

The return value will be YYYYMMDDXXXX for sole proprietors, and NNNNNNNNNN for other organisations.

clean(value)[source]

Validate the given value and return its “cleaned” value as an appropriate Python object. Raise ValidationError for any errors.

class localflavor.se.forms.SEPersonalIdentityNumberField(coordination_number=True, interim_number=False, **kwargs)[source]

A form field that validates input as a Swedish personal identity number (personnummer).

The correct formats are YYYYMMDD-XXXX, YYYYMMDDXXXX, YYMMDD-XXXX, YYMMDDXXXX and YYMMDD+XXXX.

A + indicates that the person is older than 100 years, which will be taken into consideration when the date is validated.

The checksum will be calculated and checked. The birth date is checked to be a valid date.

By default, co-ordination numbers (samordningsnummer) will be accepted. To only allow real personal identity numbers, pass the keyword argument coordination_number=False to the constructor.

Interim numbers (interimspersonnummer), used by educational institutions within the Ladok system, are supported but not accepted by default, since they are not considered valid outside Ladok. They have the same format and semantics as real personal identity numbers, except that the first control digit is replaced by a letter (A-Z). To allow the use of interim numbers, pass the keyword argument interim_numbers=True to the constructor.

The cleaned value will always have the format YYYYMMDDXXXX.

clean(value)[source]

Validate the given value and return its “cleaned” value as an appropriate Python object. Raise ValidationError for any errors.

class localflavor.se.forms.SEPostalCodeField(**kwargs)[source]

A form field that validates input as a Swedish postal code (postnummer).

Valid codes consist of five digits (XXXXX). The number can optionally be formatted with a space after the third digit (XXX XX).

The cleaned value will never contain the space.

clean(value)[source]

Validate the given value and return its “cleaned” value as an appropriate Python object. Raise ValidationError for any errors.

Utilities

localflavor.se.utils.id_number_checksum(gd)[source]

Calculates a Swedish ID number checksum, using the “Luhn”-algoritm.

localflavor.se.utils.validate_id_birthday(gd, fix_coordination_number_day=True)[source]

Validates the birth_day and returns the datetime.date object for the birth_day.

If the date is an invalid birth day, a ValueError will be raised.

Data

localflavor.se.se_counties.COUNTY_CHOICES = (('AB', 'Stockholm'), ('AC', 'Västerbotten'), ('BD', 'Norrbotten'), ('C', 'Uppsala'), ('D', 'Södermanland'), ('E', 'Östergötland'), ('F', 'Jönköping'), ('G', 'Kronoberg'), ('H', 'Kalmar'), ('I', 'Gotland'), ('K', 'Blekinge'), ('M', 'Skåne'), ('N', 'Halland'), ('O', 'Västra Götaland'), ('S', 'Värmland'), ('T', 'Örebro'), ('U', 'Västmanland'), ('W', 'Dalarna'), ('X', 'Gävleborg'), ('Y', 'Västernorrland'), ('Z', 'Jämtland'))

An alphabetical list of Swedish counties, sorted by codes. http://en.wikipedia.org/wiki/Counties_of_Sweden