update shared dependencies
This commit is contained in:
parent
d4d3d82be3
commit
736cd598a8
521 changed files with 45146 additions and 22574 deletions
21
Shared/lib/python3.4/site-packages/stdnum/ch/__init__.py
Normal file
21
Shared/lib/python3.4/site-packages/stdnum/ch/__init__.py
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# __init__.py - collection of Swiss numbers
|
||||
# coding: utf-8
|
||||
#
|
||||
# Copyright (C) 2014 Denis Krienbuehl
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301 USA
|
||||
|
||||
"""Collection of Swiss numbers."""
|
||||
72
Shared/lib/python3.4/site-packages/stdnum/ch/ssn.py
Normal file
72
Shared/lib/python3.4/site-packages/stdnum/ch/ssn.py
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
# vat.py - functions for handling Swiss social security numbers
|
||||
#
|
||||
# Copyright (C) 2014 Denis Krienbuehl
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301 USA
|
||||
|
||||
"""Swiss social security number ("Sozialversicherungsnummer").
|
||||
|
||||
Also known as "Neue AHV Nummer".
|
||||
|
||||
The Swiss Sozialversicherungsnummer is used to identify indivduals for taxation
|
||||
and pension purposes.
|
||||
|
||||
The number is validated using EAN-13, though dashes are substitued for dots.
|
||||
|
||||
>>> compact('756.9217.0769.85')
|
||||
'7569217076985'
|
||||
>>> format('7569217076985')
|
||||
'756.9217.0769.85'
|
||||
>>> validate('7569217076985')
|
||||
'7569217076985'
|
||||
>>> validate('756.9217.0769.85')
|
||||
'7569217076985'
|
||||
>>> validate('756.9217.0769.84')
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
InvalidChecksum: ...
|
||||
"""
|
||||
|
||||
from stdnum.exceptions import ValidationError
|
||||
from stdnum import ean
|
||||
from stdnum.util import clean
|
||||
|
||||
|
||||
def compact(number):
|
||||
"""Convert the number to the minimal representation. This strips the
|
||||
number of any valid separators and removes surrounding whitespace."""
|
||||
return clean(number, ' .').strip()
|
||||
|
||||
|
||||
def format(number):
|
||||
"""Reformat the passed number to the standard format."""
|
||||
number = compact(number)
|
||||
return '.'.join((number[:3], number[3:7], number[7:11], number[11:]))
|
||||
|
||||
|
||||
def validate(number):
|
||||
"""Checks to see if the number provided is a valid
|
||||
Swiss Sozialversicherungsnummer."""
|
||||
return ean.validate(compact(number))
|
||||
|
||||
|
||||
def is_valid(number):
|
||||
"""Checks to see if the number provided is a valid
|
||||
Sozialversicherungsnummer."""
|
||||
try:
|
||||
return bool(validate(number))
|
||||
except ValidationError:
|
||||
return False
|
||||
90
Shared/lib/python3.4/site-packages/stdnum/ch/uid.py
Normal file
90
Shared/lib/python3.4/site-packages/stdnum/ch/uid.py
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
# uid.py - functions for handling Swiss business identifiers
|
||||
# coding: utf-8
|
||||
#
|
||||
# Copyright (C) 2015 Arthur de Jong
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301 USA
|
||||
|
||||
"""UID (Unternehmens-Identifikationsnummer, Swiss business identifier).
|
||||
|
||||
The Swiss UID is used to uniquely identify businesses for taxation purposes.
|
||||
The number consists of a fixed "CHE" prefix, followed by 9 digits that are
|
||||
protected with a simple checksum.
|
||||
|
||||
This module only supports the "new" format that was introduced in 2011 which
|
||||
completely replaced the "old" 6-digit format in 2014.
|
||||
|
||||
More information is available at:
|
||||
https://www.uid.admin.ch/
|
||||
https://de.wikipedia.org/wiki/Unternehmens-Identifikationsnummer
|
||||
|
||||
>>> validate('CHE-100.155.212')
|
||||
'CHE100155212'
|
||||
>>> validate('CHE-100.155.213')
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
InvalidChecksum: ...
|
||||
>>> format('CHE100155212')
|
||||
'CHE-100.155.212'
|
||||
"""
|
||||
|
||||
from stdnum.exceptions import *
|
||||
from stdnum.util import clean
|
||||
|
||||
|
||||
def compact(number):
|
||||
"""Convert the number to the minimal representation. This strips
|
||||
surrounding whitespace and separators."""
|
||||
return clean(number, ' -.').strip().upper()
|
||||
|
||||
|
||||
def calc_check_digit(number):
|
||||
"""Calculate the check digit for organisations. The number passed should
|
||||
not have the check digit included."""
|
||||
weights = (5, 4, 3, 2, 7, 6, 5, 4)
|
||||
s = sum(w * int(n) for w, n in zip(weights, number))
|
||||
return str((11 - s) % 11)
|
||||
|
||||
|
||||
def validate(number):
|
||||
"""Checks to see if the number provided is a valid number. This checks
|
||||
the length, formatting and check digit."""
|
||||
number = compact(number)
|
||||
if len(number) != 12:
|
||||
raise InvalidLength()
|
||||
if not number.startswith('CHE'):
|
||||
raise InvalidComponent()
|
||||
if not number[3:].isdigit():
|
||||
raise InvalidFormat()
|
||||
if number[-1] != calc_check_digit(number[3:-1]):
|
||||
raise InvalidChecksum()
|
||||
return number
|
||||
|
||||
|
||||
def is_valid(number):
|
||||
"""Checks to see if the number provided is a valid number. This checks
|
||||
the length, formatting and check digit."""
|
||||
try:
|
||||
return bool(validate(number))
|
||||
except ValidationError:
|
||||
return False
|
||||
|
||||
|
||||
def format(number):
|
||||
"""Reformat the passed number to the standard format."""
|
||||
number = compact(number)
|
||||
return number[:3] + '-' + '.'.join(
|
||||
number[i:i + 3] for i in range(3, len(number), 3))
|
||||
79
Shared/lib/python3.4/site-packages/stdnum/ch/vat.py
Normal file
79
Shared/lib/python3.4/site-packages/stdnum/ch/vat.py
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
# vat.py - functions for handling Swiss VAT numbers
|
||||
# coding: utf-8
|
||||
#
|
||||
# Copyright (C) 2015 Arthur de Jong
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301 USA
|
||||
|
||||
"""VAT, MWST, TVA, IVA, TPV (Mehrwertsteuernummer, the Swiss VAT number).
|
||||
|
||||
The Swiss VAT number is based on the UID but is followed by either "MWST"
|
||||
(Mehrwertsteuer, the German abbreviation for VAT), "TVA" (Taxe sur la valeur
|
||||
ajoutée in French), "IVA" (Imposta sul valore aggiunto in Italian) or "TPV"
|
||||
(Taglia sin la plivalur in Romanian).
|
||||
|
||||
This module only supports the "new" format that was introduced in 2011 which
|
||||
completely replaced the "old" 6-digit format in 2014.
|
||||
|
||||
More information is available at:
|
||||
https://www.ch.ch/en/value-added-tax-number-und-business-identification-number/
|
||||
https://www.uid.admin.ch/
|
||||
|
||||
>>> validate('CHE-107.787.577 IVA')
|
||||
'CHE107787577IVA'
|
||||
>>> validate('CHE-107.787.578 IVA')
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
InvalidChecksum: ...
|
||||
>>> format('CHE107787577IVA')
|
||||
'CHE-107.787.577 IVA'
|
||||
"""
|
||||
|
||||
from stdnum.exceptions import *
|
||||
from stdnum.ch import uid
|
||||
|
||||
|
||||
def compact(number):
|
||||
"""Convert the number to the minimal representation. This strips
|
||||
surrounding whitespace and separators."""
|
||||
return uid.compact(number)
|
||||
|
||||
|
||||
def validate(number):
|
||||
"""Checks to see if the number provided is a valid number. This checks
|
||||
the length, formatting and check digit."""
|
||||
number = compact(number)
|
||||
if len(number) not in (15, 16):
|
||||
raise InvalidLength()
|
||||
uid.validate(number[:12])
|
||||
if number[12:] not in ('MWST', 'TVA', 'IVA', 'TPV'):
|
||||
raise InvalidComponent()
|
||||
return number
|
||||
|
||||
|
||||
def is_valid(number):
|
||||
"""Checks to see if the number provided is a valid number. This checks
|
||||
the length, formatting and check digit."""
|
||||
try:
|
||||
return bool(validate(number))
|
||||
except ValidationError:
|
||||
return False
|
||||
|
||||
|
||||
def format(number):
|
||||
"""Reformat the passed number to the standard format."""
|
||||
number = compact(number)
|
||||
return uid.format(number[:12]) + ' ' + number[12:]
|
||||
Loading…
Add table
Add a link
Reference in a new issue